1

我正在为 OBD 开发 android 应用程序。我已经在线程中编写了与 OBD 设备代码的蓝牙连接。该线程适用于某些设备,但处理器非常好的设备有问题。

让我知道如何管理这些设备?

先感谢您。

4

1 回答 1

0

所以如果我说对了,你的代码执行得太快了吗?如果您发送 1 个命令然后什么也没有发送,它可以正常工作吗?

我能想象的唯一问题是您发送命令的速度太快了。您将不得不采取一种巧妙的方式向 OBD 设备发送命令,或者在发送命令后让线程休眠。基本问题是您的设备可以发送多个命令,而 obd-ii 设备没有处理第一个命令,然后一次读取多个命令,这让他感到困惑。

更新:

当您发送命令时,OBD 协议会发送命令,ECU 会根据命令做出响应,然后会响应您。在此期间,OBD-II 设备不遵循任何其他说明。在响应之后,它会查看缓冲区并处理该命令。将其视为一次只能处理 1 个命令的单个线程。

标准,OBD-ii 设备等待的时间是 200 毫秒。然后它会向您发送回复。您可以通过将超时设置得较低来更改此设置。(查看 ELM-327 的 AT 命令),或在命令后添加 1,因此 OBD-II 设备知道当他找到 1 个可能的答案时它应该做出响应。

于 2013-10-21T06:54:14.737 回答