0

私は Java 通信ライブラリを使用して、シリアル ポートへの単純な読み取り/書き込みを実行しようとしています。ポートに正常に書き込み、入力ストリームからの戻り入力をキャッチできますが、入力ストリームから読み取ると、1 バイトしか読み取ることができません (11 が返される必要があることがわかっている場合)。

Putty を使用してポートに正常に書き込むことができ、そこで正しい戻り文字列を受け取っています。私はJava、バッファ、およびシリアルI/Oにかなり慣れていないので、データがInputStreamに返される方法について明らかな構文または理解があると思います。誰かが私を助けることができますか?ありがとう!

    case SerialPortEvent.DATA_AVAILABLE:
        System.out.println("Data available..");
        byte[] readBuffer = new byte[11];
        try {
            System.out.println("We trying here.");
            while (inputStream.available() > 0) {
                int numBytes = inputStream.read(readBuffer, 1, 11);
                System.out.println("Number of bytes read:" + numBytes);

            }

            System.out.println(new String(readBuffer));

        } catch (IOException e) {System.out.println(e);}
        break;
    } 

このコードは次の出力を返します。

Data available..
We trying here.
Number of bytes read:1
U
4

1 に答える 1