我目前正在对 CAN 节点进行一些测试,我正在使用 python-can 和 Linux SocketCAN 从节点发送和接收 CAN 帧。
定期发送和接收工作正常,但现在我想注入故障并查看 CAN 节点的行为。
有谁知道是否可以这样做,例如通过更改帧的 CRC。我已经进行了一项测试,其中我关闭了 CAN 接口,因此节点总线关闭,但还有更多 CAN 错误需要测试。
编辑:为了清楚起见:我正在开发一个测试框架,使用 pytest 和 python-can,并且对于 CAN 帧的定期发送,我有以下代码:
import can
bus = can.interface.Bus(bustype='socketcan', channel='can0', bitrate=250000)
msg = can.Message(arbitration_id=can_id,
data=data,
is_extended_id=False)
bus.send(msg)
在这里它停止了,我可以为 API 阅读什么,这里没有错误注入选项(Pyhon-can API)。
我今天拥有的另一个例子:
import can
bus = can.interface.Bus(bustype='socketcan', channel='can0', bitrate=250000)
msg = can.Message(arbitration_id=can_id,
data=data,
is_error_frame=True)
bus.send(msg)
以上代码在总线上生成错误帧,这是我正在设计的故障处理测试的一部分。