CAN插座-手柄未确认

问题描述

我正尝试测试从CAN网络获取ACK位。我的系统具有RPI 4,PICAN DUO和到其他CAN节点的收发器。当RPI和另一个节点都连接在一起时,一切都很好,并且我正在进行双向通信。

当单独使用RPI时,我正在发送一条消息,并且应该收到一个错误,指示没有发生确认,但是我什么也没收到。

配置:

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

解决方法

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

如果您想了解实现细节,可以在 this link 找到我的 hlcanerrdump 工具,该工具可以解析和显示 CAN 总线上的所有错误(包括 NoAck),和 hlcanerrsim 工具,用于模拟各种 CAN 总线错误。研究源代码,你就会明白如何实现你想要的。