如何请求OBD参数并接收它们

Suc*_*ith 3 android bluetooth obd-ii

我是android的新手,我想开发一个蓝牙应用程序来从OBDII设备中检索参数.我已经下载了示例蓝牙聊天应用程序并对其进行了配置.问题是我需要发送到OBDII设备以便接收参数的消息的方式和内容是什么?我应该如何在应用程序端处理它们?

谢谢.

Eri*_*ens 7

你的问题不是很具体,但我会给你一些指导.

首先,如果您的汽车确实有效,请使用现有的OBD-II读卡器应用程序进行测试.

您拥有的ELM327蓝牙连接器(我假设它是ELM327)将ASCII命令转换为电压.所以你要做的就是发送一些ASCII命令,然后你得到ASCII值.

OBD协议知道几种模式和参数,但我会解释获取实时数据.这是模式1.

模式1发送
这有点简单.模式1是'01'.在那部分之后,你必须用它发送一个参数ID.0C表示RPM,0D表示速度.(查看下面的链接).在每个命令之后你必须发送回车.(CR ='\ r')

所以基本上,为了速度,你必须发送:

'010D\r'
Run Code Online (Sandbox Code Playgroud)

接收模式1
您将从模式1查询中获得的答案以"41"开头.之后返回参数ID,然后返回值.该值大部分时间为十六进制.您将不得不进行一些转换以读取人类可读的值.有关更多信息,请参阅链接,因为也提供了要转换的公式.

例:

'410D17'
Run Code Online (Sandbox Code Playgroud)

所以17是你当前十六进制速度的值.17到十进制是23,所以你以23公里/小时的速度行驶.

这个维基百科页面有一些很好的信息:
OBD-II参数