同时发送更多OBD PID

时间:2013-12-17 10:08:38

标签: android bluetooth android-bluetooth

我正在使用OBD2系统编写Android应用程序,我想同时向OBD PID蓝牙适配器发送多个ELM327

示例:

010C/r
010D/r

这可能吗?我已经尝试过了,我只是得到了一个HEX响应,每当我尝试它时都会改变它的长度。所以我无法解释它。

目前我正在使用计时器通过使用正常工作的计时器每隔1.5秒将rpm的“010C”发送到一个线程。但我不能以超过1.5秒的更快间隔发送请求。

rpmTimer = new Timer();
rpmTimer.scheduleAtFixedRate(new TimerTask() {
   public void run () {
      connectedThread.write("010C\r".getBytes());
   }
}, 500, 1500);

那么有没有人设法同时发送两个或更多的pid?

2 个答案:

答案 0 :(得分:0)

我曾在OBD工作过一段时间,并遇到过类似的问题。据我所知,你不能同时发送多个PID。我通过创建一个PID队列来解决它,当我从前一个响应时,一个接一个地发送它们,并且在速度或类似情况下预测下一个值应该是多少。

不幸的是我再也无法访问存储库了,所以我无法确切地告诉你我是如何解决它的。

答案 1 :(得分:0)

试试010C0D\r 一次查询最多可以请求六个PID。