mof1re

Untitled

Oct 30th, 2018
89
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.     do {
  2.       if (!digitalRead(rainsensor) == 1) {
  3.                sendSMS("+37369777175"," RAIN! Check Camera or Close the Roof, bitch!");
  4.       }
  5.  
  6.      
  7.       _response = sendATCommand("AT+CMGL=\"REC UNREAD\",1", true);// Отправляем запрос чтения непрочитанных сообщений
  8.      
  9.       if (_response.indexOf("+CMGL: ") > -1) {                    // Если есть хоть одно, получаем его индекс
  10.         int msgIndex = _response.substring(_response.indexOf("+CMGL: ") + 7, _response.indexOf("\"REC UNREAD\"", _response.indexOf("+CMGL: ")) - 1).toInt();
  11.         int i = 0;                                               // Объявляем счетчик попыток
  12.         do {
  13.           i++;                                                    // Увеличиваем счетчик
  14.           _response = sendATCommand("AT+CMGR=" + (String)msgIndex + ",1", true);  // Пробуем получить текст SMS по индексу
  15.           Serial.println("readsms");
  16.           _response.trim();                                       // Убираем пробелы в начале/конце
  17.           if (_response.endsWith("OK")) {                         // Если ответ заканчивается на "ОК"
  18.             if (!hasmsg) hasmsg = true;                           // Ставим флаг наличия сообщений для удаления
  19.             sendATCommand("AT+CMGR=" + (String)msgIndex, true);   // Делаем сообщение прочитанным
  20.             sendATCommand("\n", true);                            // Перестраховка - вывод новой строки
  21.             parseSMS(_response);                                  // Отправляем текст сообщения на обработку
  22.             Serial.println(_response);
  23.             break;                                                // Выход из do{}
  24.           }
  25.           else {                                                  // Если сообщение не заканчивается на OK
  26.             Serial.println ("Error answer");                      // Какая-то ошибка
  27.             sendATCommand("\n", true);                            // Отправляем новую строку и повторяем попытку
  28.           }
  29.         } while (i < 10);
  30.         break;
  31.       }
  32.       else {
  33.         lastUpdate = millis();                                    // Обнуляем таймер
  34.         if (hasmsg) {
  35.           sendATCommand("AT+CMGDA=\"DEL ALL\"", true);           // Удаляем все сообщения
  36.           hasmsg = false;
  37.         }
  38.         break;
  39.       }
  40.     } while (1);
  41.   }
RAW Paste Data