jssc SerialPort-当读取字节时,我的软件停止运行

时间:2018-08-22 23:56:04

标签: java jssc

我正在通过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);

0 个答案:

没有答案