【发布时间】:2013-02-27 16:42:03
【问题描述】:
我正在尝试从 ANDROID 向 ELM327/OBD2 协议发送命令(WIFI 诊断故障)。 我从以下位置下载了一个 api 或库:https://github.com/pires/android-obd-reader 这个api没有任何文档的问题。 我们需要有关交换数据的命令和协议的帮助。 谢谢!
【问题讨论】:
我正在尝试从 ANDROID 向 ELM327/OBD2 协议发送命令(WIFI 诊断故障)。 我从以下位置下载了一个 api 或库:https://github.com/pires/android-obd-reader 这个api没有任何文档的问题。 我们需要有关交换数据的命令和协议的帮助。 谢谢!
【问题讨论】:
你真正想知道什么?
使用 ELM327,协议相当简单。您只需以 ASCII 格式发送 PID,您将收到 ASCII 格式的答复。它基于民意调查。因此,您将收到 1 个请求的 1 个答案。只要你不发送,你就不会收到。
关于转换和发送什么命令,请查看我提供的链接。
更多链接:
【讨论】:
如果你想使用这个库,你应该下载源代码。源代码是不言自明的。还有一个示例应用程序的源代码。我尝试运行示例应用程序,但它对我不起作用。但是,我查看了源代码,它对我的应用程序有所帮助。
在这个库中,您会发现已经实现且易于使用的主要查询。我只在 ObdResetCommand 类上发现了一个错误。该类实现了超类 ObdCommand 并以这种方式覆盖了 readResult 方法:
@Override
public void readResult(InputStream in) throws IOException {
// do nothing
return;
}
要使其工作,您应该删除此覆盖方法以使用超类之一。如果您不这样做,则不会读取响应,它将在以下命令中读取,因此,每个响应都会延迟一个查询。
希望对你有帮助。
【讨论】: