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

时间:2013-05-25 08:56:34

标签: android bluetooth obd-ii

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

谢谢。

1 个答案:

答案 0 :(得分:7)

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

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

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

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

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

所以基本上,对于速度,你必须发送:

'010D\r'

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

示例:

'410D17'

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

这个维基百科页面提供了一些很好的信息:
OBD-II Parameters