Я пишу приложение JavaFX, которое должно взаимодействовать с моим Arduino UNO. Для этого я использую библиотеку jSerialComm.
Просто для тестирования посторонних мест я загрузил в Arduino очень простой набросок, который каждые 2 секунды печатает в Serial слово «Hello»:
void setup() {
//put your setup code here, to run once:
Serial.begin(9600);
}
void loop() {
// put your main code here, to run repeatedly:
delay(2000);
Serial.print("Hello");
}
И в моей сцене JavaFX я читаю входящие данные следующим образом:
public void setDevice(SerialPort device) {
this.device = device;
device.openPort();
device.addDataListener(new SerialPortDataListener() {
@Override
public int getListeningEvents() {
return SerialPort.LISTENING_EVENT_DATA_RECEIVED;
}
@Override
public void serialEvent(SerialPortEvent serialPortEvent) {
if (serialPortEvent.getEventType() == SerialPort.LISTENING_EVENT_DATA_RECEIVED){
byte [] data = serialPortEvent.getReceivedData();
String msg = new String(data);
System.out.println(msg);
}
}
});
}
Я могу читать данные из Arduino, но это происходит странным образом. Как строка отправляется в 2 различных строк. Вот изображение вывода консоли:
![Console Output](https://i.stack.imgur.com/qVG8H.png)
Я что-то не так делаю? Большое спасибо!