SocketCAN
SocketCAN is the Linux kernel’s way of exposing a CAN bus, and this transport is a client of it. It is one of the two concrete CAN transports; the other is the in-memory Virtual CAN.
Because it goes through the kernel, PLC4X does not handle bus access, arbitration or timing - the CAN layer below does. It has been used successfully with the vcan and gs_usb drivers.
| Linux only. SocketCAN has its own frame representation - fixed-length frames (a CAN 2.0A frame always takes 16 bytes) and a 29-bit identifier field where a standard CAN frame uses 11, with the remaining 3 bits carrying flags. |
|---|
Transport syntax
{name of the CAN interface}Example
canopen:can-socketcan://can0
canopen:can-socketcan://vcan0?can-socketcan.read-timeout-ms=500The interface can also be named with the can-socketcan.interface-name option instead; the address segment wins if both name one. One of the two has to be given.
Name
Type
Default Value
Required
Description
Name
SocketCAN
Code
can-socketcan
Maven Dependency
<dependency>
<groupId>org.apache.plc4x</groupId>
<artifactId>plc4j-transports-can-socketcan</artifactId>
<version>1.0.0</version>
</dependency>Config options:
can-socketcan.interface-name
STRING
Linux CAN interface name (e.g., "can0", "vcan0"). Alternative to naming the interface in the address segment of the connection string, which takes precedence.
can-socketcan.reuse-interface
BOOLEAN
false
Share CAN socket across multiple transport instances on the same interface
can-socketcan.read-timeout-ms
INT
1000
Read timeout in milliseconds for blocking reads on the CAN socket
can-socketcan.filter-ids
STRING
Comma-separated list of accepted CAN IDs (decimal or 0x hex). Empty means accept all.
can-socketcan.filter-range-start
INT
-1
Start of accepted CAN ID range (inclusive). -1 means no range filtering.
can-socketcan.filter-range-end
INT
-1
End of accepted CAN ID range (inclusive). -1 means no range filtering.
评论
登录后参与评论
KnowForge