【发布时间】:2015-01-02 02:45:06
【问题描述】:
我正在开发一个应用程序,我需要计算从 A 点到 B 点(乘汽车)的距离。
我问过Elm Electronics(芯片组制造商),他们说没有标准的 OBD-II PID 从里程表返回里程,尽管汽车制造商可能会提供 PID。由于这种方式不标准,所以我找到了另一种方式。
PID 0131(清除代码后的旅行距离)正在返回一些我认为可能有用的东西。如果我能够在 A 点清除它并在 B 点读取它的值,那么我就完成了:)
我想了很多来猜测“代码已清除”是什么意思,但我不明白这是什么意思?还有我的另一个重要问题,如何清除代码或重置此 PID?
任何建议将不胜感激。谢谢。
更新
我刚刚在两辆汽车上进行了测试。
- 在奔驰车上没有 OBD-II 命令有效。我无法获得任何数据:(
- 我在 Persona car (Local Malaysia) 上得到了正确的回复,但 0x0131 PID 总是返回 7F01,即 16608KM,即使经过几公里。我尝试通过发送 04 命令来重置它(正如 Eric 在他的回答中所建议的那样),但是,一切都没有弄清楚 :) 我仍然得到 7F01 作为响应。
我的图书馆可供任何正在寻找 OBD-II 库 from here 的人使用。
所以,我打算做的是,因为我能够获得速度 (v),所以我能够根据 d = v * t 公式计算距离。
【问题讨论】:
-
这里有一个提示,可以使用任何obd2阅读器或断开汽车电池来清除代码。基本上,你的方法是行不通的。
-
@ElliottFrisch 感谢您的快速回复。我实际上使用的是蓝牙 ELM327,它是一个阅读器并连接到我的应用程序。我可以发送代码并获得结果。但我想知道我可以通过命令重置(清除代码)吗?
-
根据this 是的。这是
Z。 -
我有一台 Actron,所以我真的帮不上什么忙……祝你好运!
-
@Mr.Hyde,不,您应该每秒读取
v并将其保存在某处(在内存中,例如列表或数据库中),然后将它们全部添加以找到最终距离。