我正在为OBD开发Android应用程序。 我已经在线程中写了OBD设备代码的蓝牙连接。 这个线程适用于某些设备但是处理器非常好的设备有问题。
让我知道如何管理这些设备?
提前谢谢。
答案 0 :(得分:0)
所以如果我说得对,你的代码执行得太快了?如果你发送1个命令然后什么也不发送,它可以正常工作吗?
我唯一能想到的问题是你发送的命令太快了。您必须巧妙地将命令发送到OBD设备,或者在发送命令后让线程休眠。基本问题是你的设备可以发送多个命令,而obd-ii设备没有先处理它,然后它一次读入多个命令,这让他感到困惑。
更新
发送命令时,OBD协议发送命令,ECU响应命令,答案将响应。在此期间,OBD-II设备不遵循任何其他说明。在respsonse之后,它会查看缓冲区并处理该命令。将它看作一个只能一次处理1个命令的单个线程。
OBD-ii设备等待的标准时间为200 ms。然后它会向您发送回复。您可以通过将超时设置为更低来更改此设置。 (查看ELM-327的AT命令),或者在命令后添加1,这样OBD-II设备就知道它应该在找到1个可能的答案时回复。