Java を介して Windows シリアル ポートからデータを読み取ろうとしています。私は javax.comm ライブラリを持っており、データを取得できますが、正しいデータは取得できません。ポートをバイト配列に読み取ってテキストに変換すると、一連の文字が表示されますが、実際のテキスト文字列は表示されません。バイト配列を「UTF-8」と「US-ASCII」の両方として指定しようとしました。これから実際のテキストを取得する方法を知っている人はいますか?
これが私のコードです:
while (inputStream.available() > 0) {
int numBytes = inputStream.read(readBuffer);
System.out.println("Reading from " + portId.getName() + ": ");
System.out.println("Read " + numBytes + " bytes");
}
System.out.println(new String(readBuffer));
System.out.println(new String(readBuffer, "UTF-8"));
System.out.println(new String(readBuffer, "US-ASCII"));
最初の 3 行の出力では、コピー アンド ペーストができません (通常の文字ではないためだと思います)。Hex の出力は次のとおりです。
文字列形式で出力する Hollux GPS デバイスから読み取っています。私はC#でそれをやったので、これは確かに知っています。
私が通信に使用している設定は、C# アプリでの作業から正しいことがわかっています。 ボーレート: 9600 データビット: 8 ストップ ビット: 1 パリティ: なし