0

我正在尝试测试从 CAN 网络获取 ACK 位。我的系统有一个 RPI 4、PICAN DUO 和其他 CAN 节点的收发器。当 RPI 和另一个节点都连接时,一切都很好,我得到了 2 路通信。

当 RPI 本身时,我正在发送一条消息并且应该收到一个错误,表明没有发生确认,但我什么也没得到。

配置:

can.interface.Bus(interface="socketcan", receive_own_messages=True, channel="can1", bitrate=500000, err_reporting=True)

4

1 回答 1

0

您不直接处理ACK,但可以在此类事件发生时通知您。所有相关信息都可以在Linux SocketCAN 文档中找到。

如果你想了解实现细节,在这个链接你可以找到我的hlcanerrdump工具,它可以解析和显示 CAN 总线上的所有错误(包括NoAck),以及用于模拟各种 CAN 总线错误的hlcanerrsim工具。研究源代码,您将了解如何实现您想要的。

于 2021-06-11T06:36:54.803 回答