問題タブ [obd-ii]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - BluetoothChat-to-ELM327 分割応答メッセージ
Android BluetoothChat の例を使用して、ELM327 OBDII Bluetooth ドングルと通信しようとしています。問題なくデバイスに接続でき、BluetoothChat から ODBII デバイスへのメッセージはデバイスで正しく送受信されているようです。
ただし、OBDII デバイスからの応答メッセージは、多くの場合、複数のメッセージに分割されたり、スクランブルされたり、文字が欠落したりします。
たとえば、ati
期待される完全な応答を受け取るには、コマンドを
3 回試行する必要があります。
Me: ati
OBDII: a
OBDII: 327
OBDII: 327
OBDII: 327 v1.5 >
Me: ati
OBDII: 1
OBDII: 1
OBDII: 1.5 >v
OBDII: 1.5 >
Me: ati
OBDII: ELM327 v1.5 >
同様に、送信010c
は 3 つの 16 進数ペアを含む 1 行の応答をトリガーする必要があります。代わりに、通常は (常にではありませんが) 次のような結果が得られます。
Me: 010c
OBDII:
OBDII: 4
OBDII: 3C
OBDII: 3
OBDII: 3C C
OBDII: 3C
OBDII:
OBDII:
OBDII: >
いくつかの異なるボー レートと異なる OBDII プロトコルを試しましたが、デフォルト設定からの変更は問題を悪化させるだけのようです。応答メッセージの処理に問題はありますか? 応答メッセージが分割されるのはなぜですか? Bluetooth ドングルは Torque などの利用可能なアプリで正常に動作するため、デバイスの誤動作はないと思います。
私が使用しているコードは、BluetoothChat プロジェクト (ソースはこちら) とほぼ同じです。Bluetooth デバイスの UUID のみを変更し、発信メッセージにキャリッジ リターンを追加しました (この StackOverflow questionに従って)。
変更 1 (BluetoothChatService.java 内):
変更 2 (BluetoothChat.java 内):
java - Java (Android) の IOException: トランスポート エンドポイントが接続されていません
この質問への回答からコピーされた(そして、Samsung GalaxyタブのUUID関連の問題のためにわずかに変更された)私のAndroidアプリケーションでは、Bluetooth経由でOBDデバイスに正常に接続しました。
次に、(sendData() によって行われる) コマンドを送信しようとすると、タイトルからの例外 (トランスポート エンドポイントが接続されていません) がスローされ、何も送信されません。
コンピューターに接続すると (コードの唯一の違いはハードウェア アドレスです)、問題なくコマンドを送信できます (もちろん、コンピューターは OBD デバイスではないため、応答はありません)。したがって、必要なすべての権限を取得したと思いますし、UUID アドレスも問題ありません。
EDIT1 : Komunikacija.apk をタブレットに再度インストールしました。いくつかのコメントを追加しただけで、2 つの新しい問題が発生しました。
- openBT() の mmSocket.connect() が失敗する (最後のトースト "5" の後、長時間何も起こらない)
- Bluetooth がオフになっている場合、アプリケーションは bluetoot をオンにする要求を表示しますが、「残念ながら停止します」。
EDIT2:
私は再び車に行き、Samsung のスマートフォンとタブレットでアプリをテストしました。結果:
- タブレット:
- 初めてアプリケーションを実行したとき、EDIT1 に記載されている接続が正常に行われませんでした。
- 次の試行はすべて成功しましたが、IOException がスローされました。
- 初めてSENDボタンを押したとき、例外.getMessage()はピアによって接続リセットを返しました
- 次回は毎回、トランスポートエンドポイントが接続されていませんというメッセージが表示されました
- phone : 最初の試行で既に接続に成功しました。他はすべて同じでした
EDIT3:OBDデバイスEML327が少なくとも問題の一部であることがわかりました. さて、問題は
これら 2 つの OBD デバイスの動作がまったく異なるのはなぜですか? また、OBD327 を使用している場合に発生するエラーを修正するにはどうすればよいですか?
EDIT4 : 以前はこれが重要だとは思いませんでしたが、EML327 からの唯一の応答は AT+BRSF=24 でした。グーグルで調べた後、答えを見つけました。
私の MainActivity.java:
android - NO DATAを与えるAndroid OBD距離移動コマンド
Android アプリケーションを Bluetooth OBD デバイスに接続しました。現在、車速、rpm、周囲温度などのコマンドを実行すると、望ましい適切な応答が得られますが、距離コマンド (0131\r) を押すと、再びデータなしの応答が得られます。これを解決するのを手伝ってください。
android - Windows 8.1 での Bluetooth 経由の Android デバイスとの OBDsim 接続
私はこのトピックについて昨日から取り組んできました。obd-iiスキャナーに関するAndroidアプリケーションを開発したいと考えています。GithubやGoogle Codesには多くのオープンソース プロジェクトがあります。車やodb-iiチップなしでこのアプリケーションを開発するには、obd-iiシミュレーターを見つける必要があります。
OBDSim がサンプル データを作成し、アプリケーションによって送信される要求に応答することがわかりました。多くの問題に遭遇し、多くのドキュメントやブログ投稿を読んでこれらの問題を解決しました。しかし、私には最後の 1 つの問題があり、あなたの助けが必要です。
OBDsim の新しいバージョンは、com0com を使用して Bluetooth 接続用の Windows をサポートします。com0com をインストールすると署名の問題が発生し、関連する Windows 機能を無効にすることでこの問題を解決しました。また、Bluetooth の受信ポートを COM4 に設定しました。これまでのところ、すべてが良好です。その後、com0com を使用して仮想ポートを作成したいと考えています。インストール時にすでに1つのペアが作成されています。それらは CNCA0 と CNCB0 です。このペアの 2 番目のポートを CNCB0 から COM4 に変更しようとしているだけです。しかし、ウィンドウはCOM4が既に使用されているというエラーを出します。それでも、CNCB0 の代わりに COM4 を完了して割り当てます。その後、obdsim.exe を実行すると、次のようなログの作成が開始されます。
この間、Android アプリケーションを起動し、ライブ データの開始ボタンを押しました。Bluetooth接続エラーについてAndroid携帯でエラーが発生しました-読み取りに失敗しました。ソケットが閉じているか、タイムアウトしている可能性があります。これは 1 つのシナリオです。
2 番目のシナリオでは、ブレーク com0com を削除し、OBDsim を COM4 に直接接続します。そして、obdsim.exe を再度実行します。また、前のシナリオと同じ出力があります。Androidアプリケーションの出力を開始すると、このように変化します。
また、アプリケーションに変更が見られません。
問題が何であるか、または私が間違えた、または忘れた何かを知っている場合は、私またはあなたの助けを待っています.
ありがとう。
android - Android OBD-II 走行距離 (PID31)
一部のコードが Android アプリケーションで OBD から消去されたため、移動距離を読み取ろうとしています。
RPM と燃料 % を機能させることができましたが、移動距離は予想よりも長くなっています。
私がどこで間違ったのか知っている人はいますか?
web-applications - OBD II を使用して Web アプリを構築できますか
車のメトリックを表示し、ユーザーが車のパフォーマンスを向上させるのに役立つ Web アプリケーションを作成しようとしています。基本的なグーグルで調べた後、OBDについて知りました。OBD を使用する Android アプリについて見てきましたが、OBD を Web アプリと一緒に使用できるというものに出くわしました。Web アプリで OBD を使用できるかどうか教えてください。
Web アプリで OBD を使用する方法についてのヘルプは大歓迎です。
前もって感謝します。