Python CAN isotp套接字未接收数据,但已接收candump

2024-06-23 19:05:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试用笔记本电脑(设备2)中的独木舟与Pican3+覆盆子Pi 4(设备1)通信。我正在使用python的raspberry pi中的isotp模块。我能够从raspberry pi中的代码向canoe发送数据,但无法接收从canoe向raspberryPi发送到我在python代码中创建的isotp.socket的数据。但数据是在raspberry pi端接收的,并通过candump进行验证。下面是使用的代码

import isotp 
s = isotp.socket()
s.bind("can0", isotp.Address(rxid=0x701, txid=0x708))
s.send(b'a')
while True:
    da = s.recv()
    if da is not None:
        print('here')
        print(da)

从canoe发送的消息具有消息ID 701和标准can帧。据我所知,套接字绑定为从can0通道接收ID为701的消息。我遗漏了什么吗? 附加了用独木舟和覆盆子做成的烛台组成的信息截图,请看一看

Screenshot of canoe in my laptop

Screenshot of candump in raspberry pi 4


Tags: 数据代码id消息覆盆子pisocketraspberry
1条回答
网友
1楼 · 发布于 2024-06-23 19:05:18

代码中没有任何问题,并且工作正常。问题是在另一端,我正试图将笔记本电脑中的Canoe的罐装框架发送给PICAN。框架没有按照ISO TP格式创建,因为raspberry pi linux中的ISO TP层无法处理它。一旦我按照isotp制定了CAN框架,代码中创建的套接字就会接收和处理数据。 有关ISO TP协议的更多信息,请查看https://www.emotive.de/wiki/index.php?title=ISOTP

相关问题 更多 >

    热门问题