Java: исключение последовательного порта - порт занят

У меня есть счетчик счетов, подключенный к ПК через ком-порт. Я пытаюсь отправить данные в средство проверки счетов и получить выходные данные (средство проверки счетов связывается по протоколу ccnet), вот мой код -

public static void main(String[] args) throws SerialPortException {

    String s[]=SerialPortList.getPortNames();
    for (String x :s){
       System.out.print(x);
       SerialPort serialPort=new SerialPort(x);
    }

    try {
        SerialPort serialPort=new SerialPort("COM4");
        serialPort.openPort();
        serialPort.setParams(9600, 8, 1, SerialPort.PARITY_NONE);
        serialPort.writeString("RESET");
        serialPort.setEventsMask(SerialPort.MASK_RXCHAR);
        serialPort.addEventListener(new list());

        System.out.println(serialPort.readBytes(5));
    } catch (SerialPortException sex){
    System.out.print(sex);
    }

слушатель события последовательного порта:

private  static class list implements SerialPortEventListener{

    @Override
    public void serialEvent(SerialPortEvent spe) {
        if (spe.isRXCHAR()&&spe.getEventValue()>0){
        try {

            String data =s erialPort.readString(spe.getEventValue());
        } catch (SerialPortException ex) {
        Logger.getLogger(Terminal.class.getName()).log(Level.SEVERE, null, ex);
        }
        }       
}

Таким образом, я получаю, что исключительный порт последовательного порта занят, как я могу это исправить?

1 ответ

В основном это происходит в 2 ситуациях: 1- Вы назначили неправильный порт, который может быть другим устройством, вы можете проверить его через менеджер устройств. 2- Вы открыли его ранее с другим программным обеспечением или, возможно, ваш предыдущий прогон кода все еще использует его, и вы не прекратили его. Я вижу в вашем коде, что вы сначала перечислили все свои com-порты, но вы не получаете от этого пользы, это кажется излишним. Я рекомендую вам удалить все строки в своей части try своего кода и просто оставить строку openport и сделать это для других строк, чтобы увидеть, какая строка дает исключение.

Другие вопросы по тегам