Advertisement
mof1re

Untitled

Oct 30th, 2018
129
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.55 KB | None | 0 0
  1.   _response = sendATCommand("AT+CMGL=\"REC UNREAD\",1", true);// Отправляем запрос чтения непрочитанных сообщений
  2.      
  3.       if (_response.indexOf("+CMGL: ") > -1) {                    // Если есть хоть одно, получаем его индекс
  4.         int msgIndex = _response.substring(_response.indexOf("+CMGL: ") + 7, _response.indexOf("\"REC UNREAD\"", _response.indexOf("+CMGL: ")) - 1).toInt();
  5.         int i = 0;                                               // Объявляем счетчик попыток
  6.         do {
  7.           i++;                                                    // Увеличиваем счетчик
  8.           _response = sendATCommand("AT+CMGR=" + (String)msgIndex + ",1", true);  // Пробуем получить текст SMS по индексу
  9.           Serial.println("readsms");
  10.           _response.trim();                                       // Убираем пробелы в начале/конце
  11.           if (_response.endsWith("OK")) {                         // Если ответ заканчивается на "ОК"
  12.             if (!hasmsg) hasmsg = true;                           // Ставим флаг наличия сообщений для удаления
  13.             sendATCommand("AT+CMGR=" + (String)msgIndex, true);   // Делаем сообщение прочитанным
  14.             sendATCommand("\n", true);                            // Перестраховка - вывод новой строки
  15.             parseSMS(_response);                                  // Отправляем текст сообщения на обработку
  16.             Serial.println(_response);
  17.             break;                                                // Выход из do{}
  18.           }
  19.           else {                                                  // Если сообщение не заканчивается на OK
  20.             Serial.println ("Error answer");                      // Какая-то ошибка
  21.             sendATCommand("\n", true);                            // Отправляем новую строку и повторяем попытку
  22.           }
  23.         } while (i < 10);
  24.         break;
  25.       }
  26.       else {
  27.         lastUpdate = millis();                                    // Обнуляем таймер
  28.         if (hasmsg) {
  29.           sendATCommand("AT+CMGDA=\"DEL ALL\"", true);           // Удаляем все сообщения
  30.           hasmsg = false;
  31.         }
  32.         break;
  33.       }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement