Прошу помощи с принятии данных по юарт
- Войдите на сайт для отправки комментариев
Пт, 05/07/2019 - 15:04
Всем привет, Нужно принимать данные с ардуино на nodemcu по юарт, данные приходят но я не знаю как их фильтровать. Допустив мне с меги на ноду приходят три значения (в таком формате - -3277066, где -32 температура, 770 давление и 66 влажность), как мне их разделить на три переменные на ноде?
Если не использовать разделители - задача нетривиальна
Или за sscanf() читай
Ошибка invalid conversion from 'char' to 'const char*' [-fpermissive]
Что не так?
Странно, что ошибка только одна. parseint уже отдает int, a не char* - это раз. Указатель объявлен, но на что он указывает... это два.
Странно, что ошибка только одна. parseint уже отдает int, a не char* - это раз. Указатель объявлен, но на что он указывает... это два.
поменял строку 64 на - char str = Serial.read(); , та же ошибка, Не подскажете что исправить?
Ошибка у Вас идеологическая - видимо раньше на PHP писали. Первый аргумент функции sscanf - ASCIIZ строка. Знаете, что такое строка в Си?
Ошибка у Вас идеологическая - видимо раньше на PHP писали. Первый аргумент функции sscanf - ASCIIZ строка. Знаете, что такое строка в Си?
Моя ошибка в том что я вместо программирования, поступил на радиоаппаратостроение, и максимум на чем писал, так это паскаль в 9 классе. Вообщем я полный профан в этой области, поэтому не имею понятия о чем Вы.
Тогда я бы советовал повникать вот в это, а не парсить строки: http://arduino.ru/forum/pesochnitsa-razdel-dlya-novichkov/chtenie-sostoyaniya-porta-v-peremennuyu
Никак.
Никто, никогда и ниоткуда не узнает, что температура это именно две цифры, а не одна, скажем, или не три. Также никто не знает сколько цифр во влажности.
Вым нужно продумать нормальный формат передачи. Тогда и разбирать будет легко.
Никак.
Никто, никогда и ниоткуда не узнает, что температура это именно две цифры, а не одна, скажем, или не три. Также никто не знает сколько цифр во влажности.
Вым нужно продумать нормальный формат передачи. Тогда и разбирать будет легко.
А если без давления, то есть будет два значения по две цифры, не подскажете как это реализивать?
Ошибка у Вас идеологическая - видимо раньше на PHP писали. Первый аргумент функции sscanf - ASCIIZ строка. Знаете, что такое строка в Си?
Моя ошибка в том что я вместо программирования, поступил на радиоаппаратостроение, и максимум на чем писал, так это паскаль в 9 классе. Вообщем я полный профан в этой области, поэтому не имею понятия о чем Вы.
Можешь перевестись, еще не позна. После 2-го курса еще можно. Переводись.
Или ты думаешь, что если ты ник qwerty13rus сменил на противоположный, никто тебя тут не узнает?
Эх спалился, был еще вариант бабой прикинуться, но решил не жестить. А на самом деле просто забыл пароль
А если без давления, то есть будет два значения по две цифры, не подскажете как это реализивать?
тебе намекнули - а ты все равно не понял.
Пишу прямым текстом - не надо слать цифры подряд.
Вот если послать так - |32#770%66$ - то не возникнет никаких сложностей отделить одно от другого
Дак зачем вся эта карусель с парсингом, если можно прямо в байтах забросить?
Дак зачем вся эта карусель с парсингом, если можно прямо в байтах забросить?
да, согласен, как-то уже привык. что новички байты слать не умеют...
ТС - один байт температура. два байта давление, один - влажность. И вообще ничего разделять не надо будет.
А если без давления, то есть будет два значения по две цифры, не подскажете как это реализивать?
Уже подсказал, и не только я, а ещё полфорума
Вам нужно продумать нормальный формат передачи. Тогда и разбирать будет легко.
Спасибо
Дак зачем вся эта карусель с парсингом, если можно прямо в байтах забросить?
Ну, да! А вдруг там 16-тиричное значение придётся "забрасывать"? Тут вот инженер программист был с каким-то ахрененным бэкгроундом, и тот ... трудно это вобчем!
ShadowFlash, Кто эти данные передаёт? Ты сам или чужой прибор? Если сам, так передавай их хоть через запятую и вытаскивая спокойно Serail.parseInt и не пужри всем мозги