问题标签 [socketcan]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 如何在 SocketCAN 中发送和接收 HMAC(Hashed Message Authentication Code) CAN 消息?
HMAC 代码
在 Socket CAN 中发送和接收消息
linux - 如何在 Linux 中连接两个 VCAN 端口?
我已经设置了两个 vcan 设备,我想将它们视为连接在一起。我希望能够使用 can-utils candump 在一条线上收听,并从另一条线发送 can 消息。如果没有物理设备,我怎么能做到这一点?
为了澄清起见,我正在编写软件来通过我已经能够进行的 CAN 进行通信,但是为了方便实际的数据收集和进一步开发,我需要两个可以启用的设备相互通信。虽然现实世界中的一个简单解决方案是通过将设备物理连接在一起来解决的,但我需要一个可以在计算机上运行的编程解决方案。
embedded - 是否可以使用 SocketCAN 在一个设备中生成 CAN 消息并在另一设备中转储 CAN 消息?
我正在使用 SocketCAN 和 CANtact 工具包来发送和接收 CAN 消息。我正在使用两个 CANtact 工具包,一个用于发送 CAN 消息,另一个用于接收 CAN 消息,两个 CANtact 工具包都通过 DB9 母头连接到 DB9 母头,另一端连接到笔记本电脑的 USB 端口。
我使用以下 SocketCAN 命令首先配置它们
以上命令适用于第一个 CANtact 工具包,然后我连接了第二个 CANtact 工具包并使用以下命令对其进行配置
我在两个不同的终端中执行了这些步骤
在第一个终端,我给了
在第二个终端,我给了
我在 2 号航站楼没有收到任何 CAN 消息,但如果我给
在第一个终端和
candump slcan0
在第二个终端中,我可以查看发送的 CAN 消息
这意味着 CAN 消息在两个 CANtact 工具包之间没有通信如何解决?还是我犯了什么错误?
] 5
python - 如何在 SocketCAN 或 Python-can 中发送和接收文件?
我想从一个串口设备(slcan0)向另一个串口设备(slcan1)发送一个文本文件,这个操作可以在SocketCAN中执行吗?我使用的串行 CAN 设备是 CANtact 工具包。或者可以在 Python-can 中完成相同的操作吗?
bash - 在 linux 命令行上发送 4 个字节的 HEX
我有一个命令
for i in {1..9} ; do cansend slcan0 "7e0#02090"$i"0000000000"
我如何发送相同的命令,但 $i 发送 4 个字节的 HEX。有点像蛮力?
macos - CAN 所需的原始套接字在 MacOS 下不起作用 - 套接字:协议不支持地址系列
我正在尝试开发一个 docker 映像来测试可以在 MacOS 和 Windows 上运行的 SocketCAN(使用 vcan),并且一切都很好,直到我运行candump vcan0返回:“套接字:协议不支持的地址系列”
一段时间后,我通过使用“--network=host --privileged”启动容器,设法让它在 Linux 上运行。不过,这不适用于在 Mac 上启动的容器,它返回:
一条“candump vcan0”显示它在此调用中停止:
奇怪的是,即使 Mac(https://docs.docker.com/network/host/)上不应该支持“--network=host”,容器的主机名显示的是 LinuxKit 映像(VM运行容器):
vcan 模块当然是加载的:
我不知道还能尝试什么;)
c - 通过 socketCAN 发送 EFF 29 位 ID 消息的问题
我正在尝试通过套接字发送 29 位 EFF CAN 消息,但由于某种原因,它使用 11 位标识符发送它们,从 ID 中截断 5 个字节。使用环回模式,通过 candump 我可以看到消息以 11 位的形式接收。
我没有错误,什么都没有,这就是我感到困惑的原因
如果这有什么不同,我正在使用树莓派 3b+。和 Can-utils 库。
raspberry-pi3 - CAN总线通信中是否需要ACK
我正在为 GPS 跟踪器制作 CAN 模拟器,它们只记录 CAN 数据,不发送 ACK。是否可以使用 mcp2515/tja1050 使用覆盆子发送 CAN 数据,而总线上没有任何会触发 ACK 的设备?
c++ - 读取 CAN 报文时如何创建停止过滤器(而不是通过过滤器)?[C++、Linux]
我正在使用 SocketCAN 访问 CAN 总线。我已经成功地创建了这样的通过过滤器:
这指示在满足过滤器设置时让 CAN 消息通过。
现在我想创建一个停止过滤器,但我不知道该怎么做。例如:我希望所有 CAN 消息都通过,除了 ID 为 0x18DAF101 的消息。
有人知道怎么做吗?
qt - 未加载 qt 的自定义插件。如何调试?
我为 编写了一个自定义插件QCanBus
,它只是 socketcan 插件的副本,但已重命名,标识符已调整为新名称。
我做了那个复制,在我改变它之前首先让插件被识别。
我将 qmake 项目更改为这样:
并添加了plugin.json
类似的内容:
然后我将其他所有内容重命名为socketcan
to copysocketcan
、main.cpp
thecopysocketcan.cpp
和 the copysocketcan.h
。
当我构建项目时,我得到了我放入$QT_PLUGIN_PATH/canbus/
目标的 *.so 文件。
但是,快速入门显示,qt 只列出了安装附带的插件,而不是我添加的自定义插件。
我尝试将QLoggingCategory::setFilterRules(QStringLiteral("qt.canbus* = true"));
第一行放在我的代码中,并希望获得更多的调试输出,但我只得到我自己的应用程序正在生成的调试输出。实际没有输出QCanBus
。
所以我的问题是
- 如何启用调试输出
qt.canbus
?我是否必须为此使用调试配置构建 QT? - 我创建插件的方法合理吗?
- 任何想法,为什么没有列出自定义插件?