1

我正在通过 USB 端口通过模块读取韦根卡代码。我给我添加了一个事件监听器,当我通过我的卡时它运行完美,但是在读取数据后我的软件停止运行并卡住,但如果再次通过我的卡,事件再次运行并再次卡住。

这是事件监听器:

        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);
4

0 回答 0