2013-02-27 13 views
9

私はANDROIDからELM327/OBD2プロトコル(WIFI診断の問題)にコマンドを送信しようとしています。 私はAPIまたはライブラリをhttps://github.com/pires/android-obd-reader からダウンロードしました。このAPIには何らの問題もありません。 データを交換するためのコマンドとプロトコルについて助けが必要です。 ありがとう!ANDROID ELM327/OBD2プロトコル

答えて

13

何を本当に知りたいですか?

ELM327では、プロトコルはかなり簡単です。 ASCIIでPIDを送信するだけで、ASCII形式の回答が得られます。ポーリングに基づいています。 1回のリクエストに対して1回の回答を受け取ります。あなたが送っていない限り、あなたは受け取っていません。

変換するコマンドと送信するコマンドについては、私が提供したリンクを確認してください。

いくつかのより多くのリンク:

AT Commands
OBD-II Commands

+0

ATコマンドリンクが更新されました。 https://www.sparkfun.com/datasheets/Widgets/ELM327_AT_Commands.pdf –

+1

編集したとおりに回答を編集します。 –

3

あなたはこのライブラリを使用する場合は、ソースコードをダウンロードしてください。ソースコードは自明です。サンプルアプリケーションのソースコードもあります。サンプルアプリケーションを実行しようとしましたが、それは私のためには機能しませんでした。しかし、私はソースコードを見て、それは私のアプリケーションのために私を助けた。

このライブラリには、すでに実装されていて使いやすいメインクエリがあります。 ObdResetCommandクラスでのみエラーが見つかりました。このクラスは、ObdCommandスーパークラスを実装し、それがこのようにreadResultメソッドをオーバーライド:

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

それを動作させるためには、スーパークラス1を使用するために、このオーバーライドメソッドを削除する必要があります。そうしないと、応答は読み取られず、次のコマンドで読み取られるため、すべての応答が1つのクエリで遅延されます。

私はそれが役に立ちそうです。

+0

この質問をご覧ください。http://stackoverflow.com/questions/18528792/unable-to-send-atz-command-to-elm-327-after-establishing-connection-with-elm327 –