Java. Чтение с COM-порта

Рейтинг: 2Ответов: 1Опубликовано: 20.02.2015

Есть большие промышленные весы, данные с них приходят на компьютер на com-порт. На компьютере крутится программа, которая получает данные с com-порта и пишет в лог.

Необходимо параллельно подключиться к этому порту, получать данные и пересылать на определенный адрес. Использую библиотеку jssc.

SerialPort serialPort = new SerialPort("COM1"); //объявляем  
serialPort.openPort(); //открываем  
serialPort.setParams(9600, 8, 1, 0);// задаем параметры  
String from_port = serialPort.readString(); // читаем

и вот тут скрипт ждет, пока данные поступят на вход. Поступили,отправили.

serialPort.closePort(); // закрыли

В результате мы получили данные и скрипт завершился. А мне-то надо дальше слушать com-порт...

Я наверно не догадываюсь о каком-то простом решении... Ну не while (true) {} же использовать)

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

Ответы

▲ 4

Ну не while (true) {} же использовать)

используйте что то вида

need_stop = true;
while (serialPort.IsOpen && !need_stop) {
   //..
}

need_stop - это специальное булевое поле, которое может быть выставлено в false, если нужно завершить работу с портом (к примеру, пользователь решил закрыть программу).