【问题标题】:CAN socket - handle not ACKCAN 套接字 - 句柄不是 ACK
【发布时间】:2021-01-19 04:38:02
【问题描述】:

我正在尝试测试从 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)

【问题讨论】:

  • 确保您没有处于某种“环回”测试模式。
  • 澄清一下——在没有连接任何节点(因此没有 CAN ACK)的情况下向工作的 socketCAN 总线发送消息后,有没有办法从 python-can 获取错误/状态?

标签: can-bus socketcan python-can


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-10
    • 2022-11-04
    相关资源
    最近更新 更多