我正在开发一个应用程序,我需要计算从 A 点到 B 点(乘汽车)行驶的距离。
I asked 榆树电子 http://www.elmelectronics.com/(芯片组制造商),他们表示没有标准的 OBD-II PID 来从里程表返回里程,尽管汽车制造商可能会提供 PID。由于这种方式不标准,所以我找到了另一种方式。
PID 0131 http://en.wikipedia.org/wiki/OBD-II_PIDs(代码清除后行驶的距离),正在返回一些我认为可能有帮助的东西。如果我能够在 A 点清除它并在 B 点读取它的值,那么我就完成了:)
我想了很多猜测“代码已清除”是什么意思,但我不明白它是什么意思?我的另一个重要问题是,如何清除代码或重置这个 PID?
任何建议将不胜感激。谢谢。
Update
我刚刚测试了两辆车。
- 在奔驰汽车上,OBD-II 命令不起作用。我无法获取任何数据:(
- 我在 Persona car(马来西亚本地)上得到了正确的答复,但 0x0131 PID 总是返回 7F01,即使经过几公里后也是 16608KM。我尝试通过发送 04 命令来重置它(正如 Eric 在他的回答中建议的那样),但是,什么都不清楚:),我仍然得到 7F01 作为响应。
我的库可供任何正在寻找 OBD-II 库的人使用从这里 https://github.com/Hesamedin/ELM327.
所以,我打算做的是,因为我能够获得速度(v),所以我能够根据d = v * t
公式。
榆树电子是对的。重置故障代码解决方案是一种可能的解决方法,但可能是不需要的解决方法。
模式04用于重置代码。发送 04 将重置 MIL(故障指示灯)并重置您要重置的代码。
在评论中,克里斯建议使用该值,而不是自己跟踪该值。这样您就不需要滥用模式 04。
0131 值在 65535 公里处溢出。但是,当您将汽车送去维修时,他们可以重置该值,当然这取决于谁在维护您的汽车。
Source: 模式 04 - 维基百科 http://en.wikipedia.org/wiki/OBD-II_PIDs#Mode_04
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)