Зависание данных в программе на 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) {
}
}
Может кто сталкивался с такой же проблемой , в чем может быть косяк, никак не пойму. Заранее спасибо!
Жава херня, перепишите на С.
ПС. Вы форумом не ошиблись?