Оператор if для char
- Войдите на сайт для отправки комментариев
Сб, 28/03/2020 - 23:18
Здравствуйте, уважаемые форумчане. Возник вопрос касательно оператора if.
Недавно начал изучать программирование, поэтому не судите строго.
Использую Arduino Mega 2560. Подключил к нему через аппаратный UART GSM модуль sim800.
Отправляю последовательность АТ-команд. Но АТ-команды не всегда срабатывают, иногда приходит ответ ERROR. Так вот хотелось бы организовать условие при котором будет так, если ответ ОК то переходи к следующей команде, если ERROR то отправь повторно данную команду. Но как сделать пока не понимаю.
вот кусочек кода:
#define gsm Serial2 void setup() { gsm.println("AT+CIPMUX=0"); delay(2000); printSerialData(); } void printSerialData() { while(gsm.available()!=0) Serial.write(gsm.read()); }
А попробуйте пока без GSM и иных космических технологий - просто сравнить две строки.
Я так понял, что нужно считать буфер uart, затем сохранить в отдельный массив. Затем сделать сравнение. Верно?
Я так понял, что нужно считать буфер uart, затем сохранить в отдельный массив. Затем сделать сравнение. Верно?
Вам сказали
Вы понимаете, чем это отличается от "задайте ещё один вопрос нихрена не делая самостоятельно"?
Я уже понял как нужно делать сравнение двух строк, но мне же нужно дальше разобрать свою задачу.
Ну, если понял, так где скетч?
Ну вот, например
Теперь складывайте байты из Serial в ASCIIZ строку и сравнивайте с заданным образцом.
вот про складывание байтов из Serial можно, пожалуйста, чуть по-подробнее. Пример какой-нибудь.
Переходим к следующему: массивы и строки. Пробуйте заполнить один массив символами из другого и, затем, сравнить их. Базовый код - в посте #6.
Если я не ошибаюсь, то за копирование отвечает команда strcpy, следовательно код должен быть таким.
Верно?
Можно и так, в целом, но я бы советовал побайтово копировать. Ибо из сериала валится именно так - байт за байтом, целой строки там может не быть на момент анализа первого символа.
"побайтово копировать" - вот эта мысль интересна. Это должен быть какой-то цикл или же есть отдельная команда?
Вам нужно в массив B помещать байты из сериала по мере их прихода. Один за другим. Попробуйте обоими способами перенести их из массива A и сразу поймете, который из них бессмысленный.
Вот прям чувствую, что тебе Садман, нужно зверушку какую-нить завести. Котенка лучше, он хоть на ковер ссать не станет. Но тут - к чему душа лежит. Честное слово - усилия будут продуктивнее и положительных эмоций больше.
Или ты курсы по программированию для альтернативных детей открыть собираешься и скилл поднимаешь?