2015-01-02 59 views
4

我正在研究一個應用程序,我需要計算從點A到點B(乘汽車)的距離。Android OBD-II如何清除行駛距離(PID0131)?

我問Elm Electronics(芯片組製造商),他們說沒有標準的OBD-II PID來從里程錶返回里程數,儘管汽車製造商可能會提供PID。由於這種方式不是標準的,我找到了另一種方式。

PID 0131(代碼清除後的距離),正在返回一些我認爲可能有用的東西。如果我能夠清除它在點A和讀取它的價值點B,然後我完成:)

我想了很多猜猜什麼是「代碼清除」的意思,但我不知道是什麼它的意思是?和我的另一個重要問題,如何清除代碼或重置此PID?

任何建議,將不勝感激。謝謝。


更新

我只是兩輛車進行測試。

  1. 在奔馳汽車沒有OBD-II指揮工程。我無法獲得任何數據:(
  2. 我在Persona汽車(本地馬來西亞)得到了正確的回覆,但0x0131 PID總是返回7F01,即使通過幾公里後仍然是16608KM。我嘗試通過發送04命令重置它(as埃裏克在他的回答中建議),但是,沒有什麼明確的:)我仍然得到了7F01作爲迴應。

我的庫可用於任何正在查找OBD-II lib from here的人。

所以,我打算做的是,因爲我能夠獲得速度(v),那麼我可以根據d = v * t公式計算距離。

+0

這裏有一個提示,該代碼可與任何OBD2閱讀器或通過斷開電瓶車被清除。基本上,你的方法不起作用。 –

+0

@ElliottFrisch感謝您的快速回復。我實際上使用藍牙ELM327這是一個閱讀器,並連接到我的應用程序。我可以發送代碼並獲得結果。但我想知道是否可以通過命令重置(清除代碼)? – Hesam

+1

根據[this](http://www.elmelectronics.com/ELM327/AT_Commands.pdf)是的。它是'Z'。 –

回答

1

榆樹電子是正確的。重置故障碼解決方案雖然是可能的,但也許是不必要的解決方法。

模式04用於重置代碼。發送04將重置MIL(故障指示燈)並重置您想要重置的代碼。

在評論中,克里斯建議使用這個值,而不是自己跟蹤這個值。這樣您就不需要誤用模式04. Th 0131值在65535公里處溢出。但是,當您將車送來進行維護時,他們可以重置此值,具體取決於誰在維修您的車。

來源:Mode 04 - Wikipedia

+0

清除不相關目的的診斷代碼聽起來不是一個好主意 –

+0

的確,讀者,小心!但是,這是他可以使用問題中提到的0131 PID的唯一方式。 –

+1

該值是否快速溢出?否則將原始值除非其他人(如合法的引擎服務)在兩者之間將其清除,否則減法應該工作,但這也會打破這種方法。 –