Java DataOutputStreamクラスで私の問題の解決策を探しています。DataOutputStreamはシリアルポートに整数全体を書き込んでいません
マイクロコントローラに8ビットのバイナリ値を送信したいのですが、それは新しいアドレスにする必要があります。だから私は、関数DataOutputStream.writeByte(int arg0)を使用しようとしました。私は次のコードでアドレス110
を送信しようとすると
、私はSERIALPORTは、ASCIIコード"1","1","0","LF"
4つのバイトを送信していることを、スコープ上で見ることができますが、私はポート上で01101110
を持っていると思います。私はどこでミスをしたのか分かりますか?
SerialPort serialPort;
DataOutputStream outputStream;
void sendeSerialPort(int adresse)
{
System.out.println("Sende: " + adresse);
if (serialPortGeoeffnet != true)
return;
try {
outputStream.writeByte(adresse);
}
catch (IOException e) {
System.out.println("Error when sending");
}
}
はあなたに
編集ありがとう:これは、スコープに次のようになります。
110 sent as int with outputStream.writeByte(int)
を使用する場合(これは、32ビット符号付き量だから)は、Java 'int'は4バイトであり、テキストや改行として出力し、もしあなたがバイトを送るには 'byte'を渡すべきです。また、おそらく 'BinaryOutputStream'を使用しているはずです –
@ElliottFrischバイナリを書くためにDataOutputStreamを考えていますか? –
@ElliottFrisch 'BinaryOutputStream'とは何ですか? – EJP