我使用的是OBD-Python库,当我试图从我的车辆中获得一个VIN号码时,甚至按照自定义命令文档,我收到了以下消息:
obd.obd‘b’0902: VIN NUMBER‘不支持日期: 2018-07-09 14:48:30.428588 - VIN编号: None.
def vin(messages):
""" decoder for RPM messages """
d = messages[0].data # only operate on a single message
d = d[2:] # chop off mode and PID bytes
v = bytes_to_int(d) / 4.0 # helper function for converting byte arrays to ints
return v * Unit.VIN # construct a Pint Quantity
c = OBDCommand("VIN", # name
"VIN NUMBER", # description
b"0902", # command
17, # number of return bytes to expect
vin, # decoding function
ECU.ENGINE, # (optional) ECU filter
True) # (optional) allow a "01" to be added for speed
o = obd.OBD()
o.supported_commands.add(c)
o.query(c)
print('Data: ' + str(datetime.datetime.now()) + ' -- VIN NUMBER: '+str(connection.query(c)))我做错什么了?
发布于 2018-09-02 19:00:13
你没做错什么。SAE J1979定义的几乎所有命令都是可选的,- vendors可以选择是否实现这些命令。在你的车辆的情况下,它看起来像供应商决定反对它。
发布于 2022-03-17 12:51:52
一些汽车制造商以字节表示所有的0xFF响应。他们这样做,也许是为了阻止第三方OBD2扫描工具供应商,他们只提供有限数量的车辆,可以使用该工具,并指出,要增加这一数量,需要购买更多的许可证。通过使用所有的0xFF填充VIN,意味着这个技巧不再有效。在这样做,他们的服务中心可以使用第三方OBD2扫描工具,而不必继续购买额外的VIN许可证,因为他们的车队,他们的服务增加。只是我的想法。
https://stackoverflow.com/questions/51252910
复制相似问题