2013-02-27 86 views

回答

13

你真的想知道什么?

对于ELM327,协议相当简单。您只需发送一个ASCII码的PID,然后您将收到一个ASCII码答案。它基于投票。所以你会收到1个请求的答案。只要你不发送,你就不会收到。

对于转换和发送的命令,请检查我提供的链接。

一些更多的链接:

AT Commands
OBD-II Commands

+0

更新了AT命令链接。 https://www.sparkfun.com/datasheets/Widgets/ELM327_AT_Commands.pdf – 2016-08-09 06:58:00

+1

按照建议编辑完成的答案。 – 2016-08-09 09:33:56

3

如果你想使用这个库,你应该下载的源代码。源代码是不言自明的。还有一个示例应用程序的源代码。我试图运行示例应用程序,但它对我无效。但是,我看了一下源代码,它帮助了我的应用程序。

在这个库中,你会发现已经实现并易于使用的主查询。我只在ObdResetCommand类中发现错误。这个类实现了超类ObdCommand和它覆盖readResult方法是这样的:

@Override 
public void readResult(InputStream in) throws IOException { 
    // do nothing 
    return; 
} 

要使其工作,你应该为了使用超类中的一个消除这种压倒一切的方法。如果不这样做,则不会读取响应,并会在以下命令中读取响应,以便每个响应都会延迟一个查询。

我希望它有帮助。

+0

可以请你看看这个问题http://stackoverflow.com/questions/18528792/unable-to-send-atz-command-to-elm-327-after-establishing-connection-with-elm327 – 2013-09-11 05:15:09