我正在使用树莓派与RFID阅读器进行通信,我使用PI4J库接收字符串数据,但阅读器输出十六进制。到目前为止,我已使用以下方法将字符串数据转换为十六进制格式:
import org.apache.commons.codec.binary.Hex;
将十六进制分成两组我用过的组:
java.util.Arrays.toString
所以整个代码:
// create and register the serial data listener
serial.addListener(new SerialDataListener() {
@Override
public void dataReceived(SerialDataEvent event) {
String str = event.getData(); //create string of data received
//change string to hex representation && split into groups of two
System.out.println(java.util.Arrays.toString(Hex.encodeHexString(str.getBytes()).split("(?<=\\G..)")));
}
});
我目前正在使用运行高级串行端口终端的旧电脑向Rasberry pi发送命令,模拟将从RFID阅读器接收的内容。我发送给pi并希望显示的代码是
'A0 03 82 00 DB'
但是pi显示
'[c2,a0,03,c2,82,00,c3,9b]'
大多数数据都存在,但是分裂/缺少一些十六进制。 我将收到另一个代码示例:
'e0 10 82 00 01 00 00 00 02 04 09 02 64 12 34 57 e9 92'
显示为:
[c3,a0,10,c2,82,00,01,00,00,00,02,04,09,02,64,12,34,57,c3,a9,c2,92]
这次丢失了第一个字节(e0),但收到了最后一个字节(92)。有人会对发生的事情有任何建议吗?或者如何解决这个问题?
提前致谢!