我正在通过USB端口的模块读取Wiegand卡代码。我向我添加了一个事件侦听器,当我通过卡时,它可以完美运行,但是在读取数据后,软件将停止运行并卡住,但是如果再次通过卡,则事件将再次运行并再次卡住。
这是事件监听器:
serialPort.addEventListener(event -> {
if (event.isRXCHAR() && event.getEventValue() > 0) {
Platform.runLater(() -> {
try {
String caractere;
do {
caractere = new String(serialPort.readBytes(1));
}while(!caractere.equals("#"));
String str = new String(serialPort.readBytes(16));
System.out.println(str);
cartaoIdListener.set(str);
} catch (SerialPortException ex) {
System.out.println("Error in receiving string from COM-port: " + ex);
}
});
}
}, SerialPort.MASK_RXCHAR);
这些是设置:
serialPort.openPort();
serialPort.setParams(SerialPort.BAUDRATE_9600,
SerialPort.DATABITS_8,
SerialPort.STOPBITS_1,
SerialPort.PARITY_NONE);
serialPort.setFlowControlMode(SerialPort.FLOWCONTROL_RTSCTS_IN |
SerialPort.FLOWCONTROL_RTSCTS_OUT);