Описание
Метод объекта GSM_SMS считывает из текста входящего SMS-сообщения байт данных (символ). При этом считываемый байт не удаляется, поэтому при многократном вызове peek(), функция будет возвращать один и тот же символ. Метод peek() является наследником вспомогательного класса Stream.
Синтаксис
SMS.peek();
Параметры
SMS - объект класса GSM_SMS.
Возвращаемые значения
int - первый байт входящего SMS-сообщения (или -1, если такового нет).
Пример
/*
Получение SMS
Программа для платы расширения Arduino GSM.
После запуска ожидает поступления SMS-сообщений
и выводит текст входящего сообщения через последовательный порт.
Схема:
* GSM-плата расширения
создано 25 Февраоя 2012
автор: Javier Zorzano / TD
Данный пример находится в свободном доступе.
*/
// подключаем библиотеку
#include <GSM.h>
// PIN-код. Если на вашей SIM-карте установлен PIN-код - укажите его
#define PINNUMBER ""
// объявляем экземпляр класса
GSM gsmAccess; // для включения режима отладки добавьте параметр 'true'
GSM_SMS sms;
char remoteNumber[20]; // буфер для хранения входящего номера телефона
void setup()
{
// инициализируем последовательный интерфейс передачи данных
Serial.begin(9600);
Serial.println("SMS Messages Receiver");
// состояние соединения
boolean notConnected = true;
// запускаем GSM-плату расширения
// если на вашей SIM-карте установлен PIN-код - укажите его в качестве параметра функции begin()
while(notConnected)
{
if(gsmAccess.begin(PINNUMBER)==GSM_READY)
notConnected = false;
else
{
Serial.println("Not connected");
delay(1000);
}
}
Serial.println("GSM initialized");
Serial.println("Waiting for messages");
}
void loop()
{
char c;
// если есть непрочитанные SMS
if (sms.available())
{
Serial.println("Message received from:");
// получаем входящий номер телефона
sms.remoteNumber(remoteNumber, 20);
Serial.println(remoteNumber);
// Ниже просто показан пример удаления сообщений:
// Сообщения, начинающиеся с символа "#", необходимо игнорировать
if(sms.peek()=='#')
{
Serial.println("Discarded SMS");
sms.flush();
}
// побайтово считываем и выводим текст сообщения
while(c=sms.read())
Serial.print(c);
Serial.println("\nEND OF MESSAGE");
// удаляем сообщение из памяти модема
sms.flush();
Serial.println("MESSAGE DELETED");
}
delay(1000);
}
Смотрите также:
Конструктор GSM_SMS
beginSMS()
ready()
endSMS()
available()
remoteNumber()
read()
write()
print()
flush()
Библиотека GSM
Справочник
Материалы взяты с официального сайта проекта Arduino и представлены по лицензии Creative Commons Attribution-ShareAlike 3.0 License.
Источник: http://arduino.cc/en/Reference/GSMSMSPeek |