Всем привет! С помощью какого оператора С++ контроллер может запомнить номер телефона? Суть в следующем. В данной функции: gprs.readSMS(message, phone, datetime); мы получаем значение (в том числе) номера телефона, от которого приходит СМС-сообщение. Хочу сделать так, чтобы контроллер "запомнил" номер телефона, от которого получит СМС с определенным текстом. Заранее спасибо!
// если пришло новое сообщение if (gprs.ifSMSNow()) { // читаем его gprs.readSMS(message, phone, datetime); // выводим номер, с которого пришло смс Serial.print("From number: "); Serial.println(phone); // выводим дату, когда пришло смс Serial.print("Datetime: "); Serial.println(datetime); // выводим текст сообщения Serial.print("Recieved Message: "); Serial.println(message); Получил я номер телефона и текст СМС, а как запомнить номер телефона, при условии, что сообщение содержало определенный текст?
Если Вы хотите помнить эти номера только на время, пока на ардуино подается питание, то объявляете массив строк достаточно большого размера (но не превышающий размер памяти контроллера!) и записываете значение переменной phone в этот массив. Если Вы хотите собирать базу таких телефонов что бы она была доступна и после перезапуска контроллера, то смотрите в сторону подключения внешней карты памяти, на которую и будете сохранять эти телефоны.
Зачем обязательно карту? - имхо, не самое лучшее решение, так как требует дополнительного железа. Я всегда, когда есть выбор - препочитаю программные средства. Для начала можно сохранять номера в EEPROM - поместится порядка сотни номеров. А еще можно эти номера складывать по GPRS в облако в инете.
EEPROM - решение не масштабируется и при превышении нужного кол-ва номеров придется переписывать программу. GPRS - дополнительное время на проверку существования такого номера в базе, лишний внешний трафик и, в некоторых случаях, лишние расходы. Решение с картой является самодостаточным и автономным. В случае необходимости можно накопленную базу сбрасывать разработчику по любому доступному каналу связи.
EEPROM установить внешний, он больше, надежнее, можно наращивать. Флешка как вариант, но не факт что лучший.
Я хочу, чтобы контроллер "запомнил" номер телефона (телефонов), с которых придет СМС с кодовым словом. Таких номеров будет максимум пять. Я понимаю, что значение номера уже "запомнено" в переменную phone, но при моем раскладе будет "запоминаться" номер любого номера, с которого придет СМС с любым содержанием.
Получается, мне надо объявить глобальную переменную с кодовым словом и при получении СМС с помощью логических операторов производить сравнение переменных?
парсите смс, если нашли кодовое слово - определяетесь с адресом в EEPROM и записываете номер в память