Зависание данных в программе на Java
- Войдите на сайт для отправки комментариев
Доброе время суток! Столкнулся с проблемой, есть прога на Java, принимает , отображает , данные с arduino uno.
Все бы хорошо, но через промежуток времени ( нет зависимости, может 20 мн, может 40 мин, а может и через 5 мин.) , зависают данные. Друина сама не висит, передача идет а отображения нет, зависшие цифры. После отключения соединения и подключения , все снова работает , до следующего зависания. Библиотека используется Jssc 2.8.0 , использовал сначала 2.7.0 результат был тот же. Если использовать библиотеку RXTX , то зависаний нет, но там свои заморочки, она мне не подходит, и с ней сильно грузится проц.
Вот код непосредственно связанный с настройками com порта :
String baudRate = baudrate.getSelectedItem().toString(); Integer baudget = Integer.parseInt(baudRate); if (conButton.isSelected()) { try { serialport.openPort(); serialport.setParams(baudget, 8, 1, 0); serialport.setDTR(false); serialport.setRTS(false); icon.setIcon(iconYes); status.setForeground(Color.blue); status.setText("Connected to " + serialport.getPortName()); icon.setVisible(true); } catch (SerialPortException ex) { conButton.setSelected(false); status.setForeground(Color.RED); status.setText("Cannot connect"); } } else { try { serialport.closePort(); status.setForeground(Color.darkGray); status.setText("Disconnected : " + !serialport.isOpened()); icon.setIcon(iconNO); } catch (SerialPortException ex) { status.setForeground(Color.RED); status.setText("Port Cannot be closed"); } } try { serialport.addEventListener(new SerialPortEventListener() { @Override public void serialEvent(SerialPortEvent e) { if (e.isRXCHAR() && e.getEventValue() > 0) { try { String receivedData = serialport.readString(); String[] sensor = receivedData.split(";"); jTextField1.setText(sensor[0]); jTextField2.setText(sensor[1]); jTextField3.setText(sensor[2]); } catch (Exception exp) { status.setText("Cannot receive data "); } } } }); } catch (SerialPortException ex) { } }
Может кто сталкивался с такой же проблемой , в чем может быть косяк, никак не пойму. Заранее спасибо!
Жава херня, перепишите на С.
ПС. Вы форумом не ошиблись?