【发布时间】:2013-05-25 08:56:33
【问题描述】:
我是 android 新手,我想开发一个蓝牙应用程序来从 OBDII 设备检索参数。我已经下载了示例蓝牙聊天应用程序并对其进行了配置。问题是我需要发送到 OBDII 设备以接收参数的方式和信息是什么?我应该如何在应用程序端处理它们?
谢谢。
【问题讨论】:
我是 android 新手,我想开发一个蓝牙应用程序来从 OBDII 设备检索参数。我已经下载了示例蓝牙聊天应用程序并对其进行了配置。问题是我需要发送到 OBDII 设备以接收参数的方式和信息是什么?我应该如何在应用程序端处理它们?
谢谢。
【问题讨论】:
你的问题不是很具体,但我会给你一些指导。
首先,使用现有的 OBD-II 阅读器应用程序测试您的汽车是否真的可以工作。
您拥有的 ELM327 蓝牙连接器(我假设它是 ELM327)将 ASCII 命令转换为电压。所以你所要做的就是发送一些 ASCII 命令,然后你会得到 ASCII 值。
OBD 协议知道几种模式和参数,但我将解释获取实时数据。那是模式1。
模式 1 发送
这有点简单。
模式 1 是“01”。
在该部分之后,您必须发送一个参数 ID。 0C 代表 RPM,0D 代表速度。 (查看下面的链接)。
在每个命令之后,您必须发送回车。 (CR = '\r')
所以基本上,为了速度,你必须发送:
'010D\r'
接收方式一
您将从模式 1 查询中得到的答案以“41”开头。
之后返回参数 ID,然后返回值。
该值大部分时间为十六进制。您必须进行一些转换才能读取人类可读的值。有关详细信息,请参阅链接,因为还提供了要转换的公式。
例子:
'410D17'
所以 17 是您当前速度的十六进制值。 17 到十进制是 23,所以你以 23 公里/小时的速度行驶。
这个维基百科页面有一些很好的信息:
OBD-II Parameters
【讨论】: