Обработчик сообщений
- Войдите на сайт для отправки комментариев
Втр, 05/06/2018 - 15:18
Делаю сигнализацию на ардуино и столкнулся с проблемой :не знаю как обрабатывать сообщения.
работаю с модулем iot-ga6 или a6 mini.При получении сообщения он в монитор порта кидает вот это:
+CIEV: "MESSAGE",1
+CMT: "+3754457xxxxx",,"2018/06/05,14:11:54+03"
Text
по задумке обработчик должен сначала проверять номер телефона с которого пришло смс потом брать text и засовывать его в переменную.
прошу помочь сам еще новичок в программировании .
http://arduino.ru/Reference
А код Ваш где? Где Вы пытаетесь " сначала проверять номер телефона с которого пришло смс потом брать text и засовывать его в переменную"? Показывайте!
Только, чтобы потом не ругаться, сразу читайте - Вставка программного кода в тему/комментарий
Raze, чтобы не было напрасных ожиданий - если "прошу помочь" означает "напишите мне код или хотя бы основную часть" - то не рассчитывайте, тут так не принято
в ветке ПРоекты этих сигнализаций несколько - выбирайте на любой вкус.
если по практике: то перед отправкой команды, обнуляете некие переменные сигнализирующие о том какая часть ответа пришла, и когда все переменные будут например 1 значит все пришло и можно дальше что то делать
например так:
byte findRespParts() { // find response parts in response buf byte countresp = 0, countgood = 0; if (resp1[0] > 0) { // exist response 1 ++countresp; if (strPos(resp_buf, resp1) >= 0) { flresp1 = 1; // found response 1 } if (resp2[0] > 0) { // exist response 2 ++countresp; if (strPos(resp_buf, resp2 ) >= 0) { flresp2 = 1; // found response 2 } if (resp3[0] > 0) { // exist response 3 ++countresp; if (strPos(resp_buf, resp3) >= 0) { flresp3 = 1; // found response 3 } } } } if (flresp1 == 1) { ++countgood; } if (flresp2 == 1) { ++countgood; } if (flresp3 == 1) { ++countgood; // calculate good response } if ((countresp > 0) && (countresp == countgood)) return 1; else return 0; }