web-dev-qa-db-ja.com

ANDROID Elm327 / OBD2プロトコル

AndroidからElm327/OBD2プロトコル(WIFI診断の問題)にコマンドを送信しようとしています。APIまたはライブラリを次の場所からダウンロードしました: https://github.com/pires/ Android-obd-reader このAPIにドキュメントがないという問題。データを交換するためのコマンドとプロトコルについてサポートが必要です。ありがとうございます。

9
toto

本当に知りたいことは何ですか?

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

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

その他のリンク:

ATコマンド
OBD-IIコマンド

14
Eric Smekens

このライブラリを使用する場合は、ソースコードをダウンロードする必要があります。ソースコードは一目瞭然です。サンプルアプリケーションのソースコードもあります。サンプルアプリケーションを実行しようとしましたが、うまくいきませんでした。しかし、私はソースコードを調べたところ、それが私のアプリケーションに役立ちました。

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

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

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

お役に立てば幸いです。

3
bplpu