2014-10-29 137 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英里。将需要找到一种解析方式作为一个双。我在千里之外的问题是交错共享变量的并发问题。