У меня небольшая проблема, чтобы преобразовать шестнадцатеричное значение в правильное значение символа.
Поэтому я запустил проволочную акулу и каждый раз ловил шестнадцатеричное значение. Значение было этим (в wireshark необработанные данные).
00383700177a0102081c42000000000000018fffffff7f030201000a080000000000000000184802000007080444544235508001000002080104
Так что теперь я пытаюсь отправить ту же команду на устройство. Я использовал этот код для преобразования гекса в ascii
String hex4 = "00383700177a0102081c42000000000000018FFFFFFF7F030201000a080000000000000000184802000007080444544235508001000002080104";
StringBuilder output4 = new StringBuilder();
for (int i =0; i< hex4.length(); i +=2){
String str4 = hex4.substring(i, i+2);
System.out.println(str4);
output4.append((char)Integer.parseInt(str4, 16));
}
bw3.write(output4.toString());
log.info(output4.toString());
bw3.flush();
Но проблема сейчас в том, что ... когда я ловлю свои отправленные данные в Wireshark, я получаю это:
00383700177a0102081c4200000000000001c28fc3bfc3bfc3bf7f030201000a08000000000000000018480200000708044454423550c2800100
В некоторых случаях мой код отправляет неверные данные 8f и ff ..
Можете ли вы помочь мне решить проблему?
Спасибо !