次の問題があります。配列をシリアルポートに送信していますが、次のようになります
byte arr[] = new byte[]{0x18, 0x1B, 0x02, 0x05, 0xFF, 0x01, 0x10,
0x21,0x30, 0x00, 0x00, 0x6A, 0x28, 0x1B,0x03}
ここで問題が発生します。R、G、B の色の 3 つのテキスト フィールドがあります。それらから値を文字列として取得しますが、それらを上記の形式 0xHexValue に変換してバイト配列に入れることはできません。私は多くのアプローチを試みましたが、成功しませんでした。
編集: txtField.getText() を使用して GUI のテキスト フィールドから値を取得した後、例 R 200 、 G 0 、 B 0 を HEX C8 00 00 に変換するのに問題はありませんが、バイトに HEX を挿入できません配列はまだ string であるためです。Byte.parseByte(s) で文字列をバイトに変換しようとすると、いくつかの負の値が表示されます....
EDIT 2 Byte.valueOf(myString) は値 200 で例外を取得します
java.lang.NumberFormatException: 値が範囲外です。値:"200" 基数:10
男:私はあなたの投稿を見て、これに焦点を当てることをお勧めします:例でこの文字列「C8」を適切な形式0xC8でarr []に収まるようにする方法、そしてもちろん文字列ではなくバイトとして...