我正在尝试使用 CAN 阅读器和我的自定义 Python 代码读取车辆 VIN 号,遵循 OBD2 规范,但我无法获得整个 VIN 号,因为我只收到一个回复。
发送后我注意到:
7DF#0209005555555555
我得到回复:
7E8#1014490201574241
当我将 1014490201574241 翻译成位数组时,我得到以下内容:
>>> Response = "1014490201574241"
>>> ResponseByteArray = bytearray.fromhex(Response)
>>> ResponseByteArray
bytearray(b'\x10\x14I\x02\x01WBA')
现在,“WBA”只是VIN号码的17个字符中的前3个,我还没有收到ECU的任何其他消息。
我发现这篇文章:Flow control message while receiving CAN message with ELM327,它解释了“第一帧”和“流量控制”的概念。该帖子说我们必须发送“流量控制”请求才能获取其余信息。它还说这需要直接发送到主 ECU 的地址,而不是 7DF 的广播地址。在那个例子中,他们说主 ECU 的地址是 7E0。
问题:
我试图使用自定义 Python 代码和连接到 OBD2 端口的 CAN 阅读器获取 VIN 号。我期待在多条消息中收到完整的 VIN 号码,但我只收到了第一条。