Обработчик сообщений

Raze
Offline
Зарегистрирован: 05.06.2018
Делаю сигнализацию на ардуино и столкнулся с проблемой :не знаю как обрабатывать сообщения.
 
 работаю с модулем iot-ga6 или a6 mini.При получении сообщения он в монитор порта кидает вот это:
 
+CIEV: "MESSAGE",1
 
+CMT: "+3754457xxxxx",,"2018/06/05,14:11:54+03"
Text
по задумке обработчик должен сначала проверять номер телефона с которого пришло смс потом брать text и засовывать его в переменную.
прошу помочь сам еще новичок в программировании .
 
ToRcH2565
Offline
Зарегистрирован: 16.05.2015
ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

А код Ваш где? Где Вы пытаетесь " сначала проверять номер телефона с которого пришло смс потом брать text и засовывать его в переменную"? Показывайте!

Только, чтобы потом не ругаться, сразу читайте - Вставка программного кода в тему/комментарий

b707
Offline
Зарегистрирован: 26.05.2017

Raze пишет:

прошу помочь сам еще новичок в программировании .
 

Raze, чтобы не было напрасных ожиданий - если "прошу помочь" означает "напишите мне код или хотя бы основную часть" - то не рассчитывайте, тут так не принято

andycat
andycat аватар
Offline
Зарегистрирован: 07.09.2017

Raze пишет:

Делаю сигнализацию на ардуино и столкнулся с проблемой :не знаю как обрабатывать сообщения.
 
 работаю с модулем iot-ga6 или a6 mini.При получении сообщения он в монитор порта кидает вот это:
 
+CIEV: "MESSAGE",1
 
+CMT: "+3754457xxxxx",,"2018/06/05,14:11:54+03"
Text
по задумке обработчик должен сначала проверять номер телефона с которого пришло смс потом брать text и засовывать его в переменную.
прошу помочь сам еще новичок в программировании .
 

в ветке ПРоекты этих сигнализаций несколько - выбирайте на любой вкус.

если по практике: то перед отправкой команды, обнуляете некие переменные сигнализирующие о том какая часть ответа пришла, и когда все переменные будут например 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;
}