2014-10-29 138 views
0

我想讀取一段代碼從OBD中清除的Android應用程序的行駛距離。Android OBD-II行駛距離(PID31)

我已經設法使轉速和燃油%工作,但行駛的距離比我所期望的要高。

case 49: //PID(31): Distance Travelled(A*256)+B 
    Double miles = (((valueA*256)+valueB)*0.62137; 
    String displayDistance = String.valueOf("Miles: " + miles);  

任何人都知道我出錯了嗎?

+0

高出多少?這裏沒有足夠的信息。 – 323go 2014-10-29 16:37:35

+0

對不起,我不能讓我的電腦無線上網,所以從我的手機做到這一點!這輛車坐在大約5千里處,但該應用程序的讀數爲7811.24227英里。也使它吐出ValueA = 49和ValueB = 27. – user3010383 2014-10-29 16:44:11

+0

我想嘗試另一輛車,爲了安全起見。這不是總里程數,而是自DTC清除0x31以來的里程數。但是,仍然看起來很高。 – 323go 2014-10-29 16:57:39

回答

0

我發現代碼是正確的,但不是100%準確的,因爲我將字節解析爲一個int,因此計算結果超出了大約7英里。將需要找到一種解析方式作爲一個雙。我在千里之外的問題是交錯共享變量的併發問題。