Конфликт портов
Всем доброго времени суток! Есть com-порт, который передает иногда данные, и есть программа, которая получает данные с ком-порта и пишет в лог.
Надо в параллельку подключится к ком-порту и получать данные.
Я пробую через JSSC.
SerialPort serialPort = new SerialPort("COM3");
serialPort.openPort();
serialPort.setParams(9600, 8, 1, 0);
boolean flag = true;
while(flag){
System.out.println(serialPort.readString());
}
serialPort.closePort();
Естественно, пробовать на рабочей машине рискованно. На своей пишу в порт
SerialPort serialPort = new SerialPort("COM3");
try {
serialPort.openPort();
serialPort.setParams(9600, 8, 1, 0);
serialPort.writeString("This is a test string");
serialPort.closePort();
}
catch (SerialPortException ex) {
System.out.println(ex);
}
Запускаю, естественно, вначале программу на чтение, а потом - на запись. Вот тут-то и происходит конфликт портов. Вторая программа пишет, что порт занят (занят-то он первой программой). Таким образом, я и на рабочей машине заблокирую порт и "секир мне голова".
Может, кто подскажет, как правильно реализовать параллельное получение данных с ком-порта?
Источник: Stack Overflow на русском