0

Bluetooth 経由で ELM327 デバイスに接続しようとしています。私が使用しているライブラリ:

https://github.com/eltonvs/java-obd-api

Bluetooth 接続の確立は正常に機能し、デバイスをリセットできます。

BluetoothDevice device = bluetoothAdapter.getRemoteDevice(deviceAddress);
UUID uuid = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB");
final BluetoothSocket socket;
try {
     socket = device.createInsecureRfcommSocketToServiceRecord(uuid);
     socket.connect();

     Log.d("xx", "1. Reset");
     ObdResetCommand obdResetCommand = new ObdResetCommand();
     obdResetCommand.run(socket.getInputStream(), socket.getOutputStream());
     System.out.println(obdResetCommand.getFormattedResult());

     Log.d("xx", "2. Echo Off");
     EchoOffCommand echoOffCommand = new EchoOffCommand();
     echoOffCommand.run(socket.getInputStream(), socket.getOutputStream());
     System.out.println(echoOffCommand.getFormattedResult());

     Log.d("xx", "3. LineFeed Off");
     LineFeedOffCommand lineFeedOffCommand = new LineFeedOffCommand();
     lineFeedOffCommand.run(socket.getInputStream(), socket.getOutputStream());
     System.out.println(lineFeedOffCommand.getFormattedResult());
}

出力:

D/xx: 1. リセット
I/System.out: ELM327v1.5
D/xx: 2. エコー オフ
I/System.out: OK
D/xx: 3. ラインフィード オフ I/System.out: OK

機能していない部分は、プロトコルを選択して電圧値を読み取ることです。

SelectProtocolCommand selectProtocolCommand = new SelectProtocolCommand(ObdProtocols.AUTO);
try {
   selectProtocolCommand.run(socket.getInputStream(), socket.getOutputStream());
} catch (IOException | InterruptedException e) {
    e.printStackTrace();
}

    ModuleVoltageCommand moduleVoltageCommand = new ModuleVoltageCommand();
    try {
        moduleVoltageCommand.run(socket.getInputStream(), socket.getOutputStream());
    } catch (IOException | InterruptedException e) {
        e.printStackTrace();
    }

私が観察したのは、プロトコルの選択が出力なしで非常に迅速に終了したことです。プロトコル選択部分を「torque lite」などの他のアプリと比較すると、これにははるかに時間がかかり、ELM327 デバイスでライトが点滅しますが、コードを実行するときはそうではありません。

ModuleVoltageCommand は次のようにクラッシュします。

br.ufrn.imd.obd.exceptions.UnableToConnectException: 制御モジュール電源 [01 42] の実行中にエラーが発生しました。応答: ...UNABLETOCONNECT

ドングルが他のアプリで動作していることを確認したので、これは私のコードの問題であるに違いありません。

私は何を間違っていますか?

4

1 に答える 1