Разбор ответа из serial по переменным
- Войдите на сайт для отправки комментариев
Втр, 01/03/2016 - 23:01
Всем Привет!
Имеется связка Arduino+LCD+ESP8266. Через UDP связка подключена к компьютеру, через которую идет передача данных с помощью AT команд. Данные от Ардуино в компьютер приходят и обрабатываются нормально в среде LabView засчёт фильтра, а вот от компьютера в Ардуино приходят в таком вот виде: +IPD,9:Dannye Ap
Естественно, отображается на LCD точно также. Вопрос - как разобрать ответ и отобразить данные на LCD без лишнего мусора? Я так понимаю, надо играться с парсингом, но из имеющихся примеров с буффером и sscanf у меня ничего не вышло - тупо не возвращает ничего...
Помогите написать, если это возможно. Запутался уже...
То, что я написал, ниже.
void loop() { while (Serial.available() > 0) lcd.clear(); lcd.setCursor(0, 0); String data_in = Serial.readString(); data_in.toCharArray(buffer,7); data_lcd=strtok(buffer,":"); Serial.println (data_lcd); lcd.write( data_lcd );
Работающая версия, которая выдает всю строчку вместе с мусором...
А служебные символы за тебя Пушкин вычищать будет? А данные на валидность проверять?
google://CRLF
https://www.arduino.cc/en/Reference/StringTrim
Позвольте. При чем тут эти пустые символы? Речь то сейчас о другом.
как-то так, проверять вживую лень.
Позвольте. При чем тут эти пустые символы? Речь то сейчас о другом.
Говно прилетело в порт, говно из буфера прочитал, говно на дисплей вывел. Причем тут говно?
#76
как-то так, проверять вживую лень.
Блин, точно же! забыл про substring! Спасибо!
хоть работает?
Да что-то не очень. Немного изменил код, но инфу всё-равно не выводит... Выводит тупо пустые строки на дисплей, а в приемнике UDP пишет просто пустоту.
R[192.168.1.41:10010]:
Измененный код ниже. Строчка, которую посылаю - S[192.168.1.41:10010]: mod1.start.2321111
Нахрена каст в 11?
Что за дикое сравнение в 13?
\n = 13 = 0xD
\r = 10 = 0xA