問題タブ [elm327]
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.
can-bus - ELM327でCANメッセージ受信中のフロー制御メッセージ
Windows で動作し、ELM327 デバイスと通信するソフトウェアを作成しようとしています。最初のバージョンを作成し、SMART ForTwo (SMART 451) 車両に乗り込み、インストルメント クラスターに接続することができました (送信 CAN ID は 782、受信 CAN ID は 783)。ただし、フロー制御には大きな問題があります。ログは次のとおりです。
TX: ATI RX: ELM327 v1.5a
TX: ATE0 RX: ATE0 OK
TX: ATSP6 RX: OK
TX: ATH1 受信: OK
TX: ATL1 受信: OK
TX: ATCFC1 受信: OK
TX: ATFCSM0 RX: OK
TX: ATAL RX: OK
TX: ATSH782 RX: OK
TX: ATCRA783 RX: ?
TX: ATST64 RX: OK
TX: 1092 RX: 783 02 1A 87
TX: 1A87 RX: 783 10 16 5A 87 05 6E 00 08
別のツールを使用したところ、ELM327 デバイスがフロー制御フレームをすぐに送信することがわかりました。次のようになります。
891.438 782 02 1A 87
891.444 783 10 16 5A 87 05 6E 00 08
891.444 782 30 00 00 00 00 00 00 00
ご覧のとおり、フロー制御フレームは、他のデバイスから送信される最初のフレームと同時に送信されます。「Flow Control」フレームの受信に問題があると確信しています。ELM327 のドキュメントを調べましたが、フロー制御フレームを遅らせる方法に関する情報は見つかりませんでした。リクエスト「1A 87」を正しく送信し、レスポンスを受信するにはどうすればよいですか?
android - BluetoothSerial cordova プラグイン エコー書き込み
BluetoothSerial を使用して Android フォンを ELM327 OBD ドングルに接続しています。Bluetooth チャット アプリを使用して、PID コマンド コード (010C、0105 など) の送信時に適切なデータが返されることを確認しました。
ただし、bluetoothSerial プラグインはドングルを見つけて接続するのにうまく機能しているように見えますが、bluetoothSerial.write を使用してコマンド コードをドングルに送信すると、同じコマンド コードが bluetoothSerial.subscribeRawData から返されます。これらが返信のサイズと一致するかどうかを確認するために bluetoothSerial.available を使用してみましたが、そうです。
このような既知の問題を見つけることができなかったので、他の誰かがこれに遭遇したかどうか、またはなぜそれが起こっているのか知っているかどうか疑問に思っていました.
obd-ii - elm327 インターフェイスを使用して、車の缶バスに接続できますか?
数か月前に購入した bluetooth elm327 デバイスをいじっていて、vin、rpm、速度などの標準的な obd 情報を取得できます。AT MA コマンドを使用して自分の can バスをスニッフィングしようとしましたが、応答がないので、can ネットワークが obd2 インターフェイスから切り離されていると思います。can ネットワークにアクセスできる可能性はありますか? または、そのために別のデバイスが必要になる可能性がありますか? たぶん、この情報が役立ちます:私は2011年のシュコダを持っています。
android - ELM327 と通信する Android アプリでデータを解析する方法
ELM327 を使用して、11 ビット ヘッダーを持つ CAN を実行している CAN バスからデータを取得しています USB OTG ケーブル経由で ELM を接続して Android デバイスに接続し、FTDI d2xx.jar を使用してデバイスに接続しています ATMA コマンドを発行するときデータを取得します データは 3601122334455667788 361112233445566778899 36211223445566778899 の形式の連続ストリームになります。これは決して終了しません 現時点では、バッファから 64 バイト長でデータを読み取っています。 361112233445566778899 必要な値を取得できますが、最終的にはデータが失われます この連続するデータ ストリームを解析するより良い方法は何ですか? 私はこのプログラミングが初めてで、少し苦労しています。
c# - 必要なバイトの読み込み
文字列から最後の 2 バイトだけを読み取ることは可能ですか? たとえば、ストリーム ソケットから 41 0C 34 を受け取りましたが、必要なのは 34 だけです。これを行うにはどうすればよいでしょうか。これが私のコードです:
注: 10 進数値に変換する必要があり、それを数式に実装する必要があるため、必要なのは 34 だけです。ありがとう :)
python - OBD2 Python を使用した拡張パラメーターの読み取り (例: インジェクターのパルス幅)
瞬間的な燃料消費量をキャプチャするプロジェクトに取り組んでおり、インジェクタのパルス幅を使用したいと考えています。Bluetooth OBDリーダーに接続されたパラメーターを取得するためにpyserialを使用しています。
たとえば、速度を取得するには、次のように入力します。
他の標準 OBD2 パラメータを呼び出すには、4 桁のコードの後に \r を入力します。これは、RPMなどでも機能しました...
ただし、コード 125A の GMC 車両から燃料インジェクタのパルス幅が必要ですが、「12 5A \r」と入力してもデータが得られません。拡張パラメーターの一部であり、正しく入力していないためと思われます。
誰かがこのパラメータを取得する方法を理解するのを手伝ってくれますか? このパラメーターの論理値を取得できる Windows GUI ソフトウェアと比較しているため、私のトラックで使用できることはわかっています。
前もって感謝します。
obd-ii - OBD II からどのような情報を取得できますか?
から以下の情報を取得できOBD II
ますELM 327 adapter
。
- RPM
- 車速
- エンジン負荷
- 冷却水温度
他に何が得られるか知りたいですOBD II
。