我正在使用Raspberry Pi的(id12创新)RFID读取。 使用PI4J java库和它的串行示例,我能够读取一些数据,如(5002CF13C6),我不确定这些数据是什么!它假设得到这个号码(0002948115)。
这是我的代码:
// create an instance of the serial communications class
final Serial serial = SerialFactory.createInstance();
// create and register the serial data listener
serial.addListener(new SerialDataListener() {
@Override
public void dataReceived(SerialDataEvent event) {
//-----------
System.out.print("\n" + event.getData());
//-----------
}
});
try {
// open the default serial port provided on the GPIO header
serial.open("/dev/ttyAMA0", 9600);
// continuous loop to keep the program running until the user terminates the program
for (;;) {
try {
} catch (IllegalStateException ex) {
ex.printStackTrace();
}
try {
// wait 1 second before continuing
Thread.sleep(1000);
} catch (InterruptedException ex) {
Logger.getLogger(Rfid.class.getName()).log(Level.SEVERE, null, ex);
}
}
} catch (SerialPortException ex) {
System.out.println("e: RFID setup failed : " + ex.getMessage());
}
我应该怎么做event.getData()才能读取真实数据?
答案 0 :(得分:1)
event.getData()
,正在返回id12芯片在串口上所说的内容。数据是十六进制数字的10个字符的字符串表示,后跟2个字符的校验和。
行为在id12数据表中指定,可以在谷歌上快速找到,或者在http://dlnmh9ip6v2uc.cloudfront.net/datasheets/Sensors/ID/ID-2LA,%20ID-12LA,%20ID-20LA(2013-4-10).pdf。在链接的PDF中,它是第4页。
如果您想在java中解析这些数据,请提供一些实际读取数据,以及属于该读取数据的相应预期值。