私はAndroidが初めてで、OBDIIデバイスからパラメーターを取得するBluetoothアプリを開発しようと考えました。サンプルの Bluetooth チャット アプリケーションをダウンロードして構成しました。問題は、パラメータを受信するために OBDII デバイスに送信する必要があるメッセージとは何ですか? また、アプリケーション側でそれらをどのように処理すればよいですか?
ありがとうございました。
質問はあまり具体的ではありませんが、いくつかのガイドラインを示します。
まず、既存の OBD-II リーダー アプリケーションを使用して、車が実際に動作するかどうかをテストします。
あなたが持っているELM327-bluetooth-connector(ELM327だと思います)は、ASCIIコマンドを電圧に変換します。したがって、ASCII コマンドを送信するだけで、ASCII 値が返されます。
OBD プロトコルはいくつかのモードとパラメータを知っていますが、リアルタイム データを取得するために説明します。それがモード1です。
モード 1 送信
これはこれで簡単です。モード 1 は「01」です。その部分の後、パラメーター ID を一緒に送信する必要があります。0C は RPM、0D は速度です。(下のリンクを見てください)。そして、各コマンドの後、キャリッジ リターンを送信する必要があります。(CR = '\r')
したがって、基本的に、速度を上げるために、次のものを送信する必要があります。
'010D\r'
モード 1 の受信 モード 1
のクエリから返される応答は、'41' で始まります。その後、パラメーター ID が返され、次に値が返されます。ほとんどの場合、値は 16 進数です。人間が読める値を読み取るには、何らかの変換を行う必要があります。詳細については、変換する数式も提供されているので、リンクを参照してください。
例:
'410D17'
したがって、17 は現在の速度を 16 進数で表した値です。17 を 10 進数にすると 23 になるので、時速 23 km で運転していることになります。
このウィキペディアのページには、それに関するいくつかの良い情報があります:
OBD-II パラメータ