【发布时间】:2019-03-07 21:11:35
【问题描述】:
我们的产品在基于 Beaglebone Black 的嵌入式系统上使用众所周知的 CANopen 堆栈,该堆栈使用 socketCAN,在 Ubuntu 14.04 LTS 下运行。但是由于某种原因,即使我们使用的堆栈会检测 CAN 总线何时进入 PASSIVE 状态甚至 BUS OFF 状态,它也不会指示 CAN 总线何时从错误中恢复并退出 PASSIVE 或警告状态,并进入非错误状态。
如果我直接查询 socketCAN 驱动程序(通过 ioctl 调用),我是否能够检测到 CAN 总线何时进入和退出警告状态(少于 127 个错误)、进入和退出PASSIVE 状态(大于 127 个错误)还是 BUS OFF(大于 255 个错误)?
我想知道这样做是否会浪费我的时间,还是有更好的方法来准确、实时地检测 CAN 总线的所有状况?
【问题讨论】:
标签: linux-device-driver can-bus socketcan