传输方式
SocketCAN
登录后可跨设备保存划线和私人笔记登录
SocketCAN 是 Linux 内核暴露 CAN 总线的方式,而这种传输方式就是它的一个客户端。它是两种具体的 CAN 传输方式 之一;另一种是基于内存的 虚拟 CAN。
由于它通过内核运行,PLC4X 不处理总线访问、仲裁或时序——这些由底层的 CAN 层负责。它已成功用于 vcan 和 gs_usb 驱动。
| 仅限 Linux。SocketCAN 有其自己的帧表示方式——定长帧(一个 CAN 2.0A 帧总是占用 16 字节),并且使用 29 位标识符字段,而标准 CAN 帧使用 11 位,其余 3 位用于携带标志位。 |
|---|
传输语法
{name of the CAN interface}示例
canopen:can-socketcan://can0
canopen:can-socketcan://vcan0?can-socketcan.read-timeout-ms=500该接口也可以改用 can-socketcan.interface-name 选项来命名;如果两者都指定了名称,则以地址段中的名称为准。两者必须至少提供其一。
名称
类型
默认值
是否必填
描述
名称
SocketCAN
代码
can-socketcan
Maven 依赖
<dependency>
<groupId>org.apache.plc4x</groupId>
<artifactId>plc4j-transports-can-socketcan</artifactId>
<version>1.0.0</version>
</dependency>配置选项:
can-socketcan.interface-name
STRING
Linux CAN 接口名称(例如 "can0"、"vcan0")。也可以在连接字符串的地址段中指定接口名称,此时地址段中的写法优先生效。
can-socketcan.reuse-interface
BOOLEAN
false
在同一接口上的多个传输实例之间共享 CAN 套接字
can-socketcan.read-timeout-ms
INT
1000
读取超时(毫秒),用于 CAN 套接字上阻塞读取操作。
can-socketcan.filter-ids
STRING
以逗号分隔的已接受 CAN ID 列表(十进制或 0x 十六进制)。留空表示接受全部。
can-socketcan.filter-range-start
INT
-1
接受的 CAN ID 范围的起始值(含)。-1 表示不进行范围过滤。
can-socketcan.filter-range-end
INT
-1
接受的 CAN ID 范围的结束值(含该值)。-1 表示不进行范围过滤。
评论
登录后参与评论
正在加载评论…
KnowForge