Некорректный прием данных через COM-порт

342
08 августа 2017, 14:20

Есть плата Adruino Uno. С нее через Serial передаю в COM-порт данные( if(Serial.available()) => delay(100) => Serial.write("Hello, World!")), которые считывает Java программа. Код прилагаю.
Проблема: программа читает из порта некорректно. Например, шлю "Hello, World!" - приходит "lo, World!", "orld!", "orld!ld!" и прочее. Буду благодарен за указание на стезю праведную. Аминь.

import jssc.SerialPort;
import jssc.SerialPortException;
import jssc.SerialPortList;
public class Main {
    public static void main(String[] args) {
//        Метод getPortNames() возвращает массив строк. Элементы массива уже отсортированы.
/*        Получение имён последовательных портов*/
        System.out.println("Port searching...");
        System.out.println("Find ports: ");
        String[] portNames = SerialPortList.getPortNames();
        for(int i = 0; i < portNames.length; i++){
            System.out.println(portNames[i]);
        }
        //В конструктор класса передаём имя порта с которым мы будем работать
        SerialPort serialPort = new SerialPort("COM3");
        //Открываем порт
        try {
            serialPort.openPort();
            //Выставляем параметры. Можно использовать и такую строку serialPort.setParams(9600, 8, 1, 0);
            serialPort.setParams(SerialPort.BAUDRATE_9600,
                    SerialPort.DATABITS_8,
                    SerialPort.STOPBITS_1,
                    SerialPort.PARITY_NONE);
            //Записываем данные в порт
           serialPort.writeString("Test");
//            Лучше использовать его совместно с интерфейсом SerialPortEventListener.
            System.out.println("Getting answer from device...");
            String buffer = serialPort.readString();
            System.out.println(buffer);
            //Закрываем порт
            serialPort.closePort();
        } catch (SerialPortException e) {
            e.printStackTrace();
        }
    }
}
READ ALSO
Как не потерять кэширование 1-го уровня Hibernate?

Как не потерять кэширование 1-го уровня Hibernate?

Кэш 1-го уровня у Hibernate храниться в сессии, и с ее закрытием теряются и все данные которые в нем былиВстает вопрос: как задизайнить свой DAO слой...

276
Не работает taglib в jsp страницах

Не работает taglib в jsp страницах

Добрый вечер! Использую java 14, Tomcat 4

337
Как связывать таблицы в Hibernate?

Как связывать таблицы в Hibernate?

Добрый день, в очередной раз попал в тупик и не знаю как быть, помогите плиззз есть две таблицы, использую spring и hibernate

306
Обработка EditText и передача в БД

Обработка EditText и передача в БД

Подскажите, как я могу считать данные с EditText и прогнать их через метод в другом классе?

295