Открывать и закрывать последовательные порты - PullRequest
3 голосов
/ 03 августа 2011

Я пытаюсь подключиться к последовательному порту ... но как только я открываю Serial Port в первый раз.Я не могу открыть его снова, я пытался подать заявку.Вот мой код:

public static void main(String[] args) {
    portList = CommPortIdentifier.getPortIdentifiers();
    while (portList.hasMoreElements()) {
        portId = (CommPortIdentifier) portList.nextElement();
        if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL) {
             if (portId.getName().equals("COM1")) {
                try {
                    serialPort = (SerialPort)
                        portId.open("SimpleWriteApp", 2000);
                } catch (PortInUseException e) {}
                try {
                    outputStream = serialPort.getOutputStream();
                } catch (IOException e) {}
                try {
                    serialPort.setSerialPortParams(9600,
                        SerialPort.DATABITS_8,
                        SerialPort.STOPBITS_1,
                        SerialPort.PARITY_NONE);
                } catch (UnsupportedCommOperationException e) {}
                try {
                    outputStream.write(messageString.getBytes());
                } catch (IOException e) {}
            }
        }
    }
}

Я хочу закрыть этот порт, чтобы использовать его для другой задачи.

Ответы [ 2 ]

4 голосов
/ 03 августа 2011

Согласно java Communication API, вам просто нужно close () ваш объект последовательного порта:

serialPort.close();

Метод close () происходит из суперкласса SerialPort CommPort.

1 голос
/ 21 декабря 2013

serialPort.close ();работает для меня.Будьте осторожны, чтобы не использовать порт снова перед его закрытием, так как файл блокировки записывается в каталог / var / lock Linux.В окнах что-то похожее полагаю.Этот файл должен быть удален перед повторным открытием порта.В противном случае возникнет исключение nullPointerException.Закрытие порта удаляет этот файл.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...