如何使用Python-CAN查看CAN网络的错误帧

问题描述 投票:0回答:1

我在下面编写了程序,

can = CAN("can0", bitrate=50000, listen_only=True, error_reporting=True)
while True:
        msg = can.recv()
        print "Msg: ", msg

但是即使我在S中运行命令以检查X时,它也仅显示标准Terminal或扩展network activity标志,我可以看到错误计数器正在增加。

import can
import CAN
import time
import logging
#logging.basicConfig(level=logging.DEBUG)

print("Initializing Listener")
can1 = CAN('can0', bitrate=500000, listen_only=True, err_reporting=True)
#print "Bus is : ", can1.bus.get_can_bus()
can1.bus.set_filters(can_filters=[{"can_mask":0x7FF, "can_id":0x00000000, "extended":False}])
CAN_ERR_FLAG = 0x20000000

while 1:
   msg = can1.recv()
   if (msg.arbitration_id & CAN_ERR_FLAG) == CAN_ERR_FLAG:
        print "Can Error Caught"
   elif msg.is_error_frame:
        print "Finally Error Frame"

我如何读取CAN总线的错误帧?使用commnad candump -e any,0:0,#FFFFFFFF]时一切正常

我在下面编写了程序,can = CAN(“ can0”,bitrate = 50000,listen_only = True,error_reporting = True)而True:msg = can.recv()打印“ Msg:”,msg但是它仅显示标准...

python error-handling embedded can-bus automotive
1个回答
0
投票

使用Python-3

© www.soinside.com 2019 - 2024. All rights reserved.