Вернуться к библиотеке GSM

 

peek()

Описание

Считывает из текста входящего SMS-сообщения байт данных (символ). При этом считываемый байт не удаляется, поэтому при многократном вызове peek(), функция будет возвращать один и тот же символ. Функция peek() является наследником вспомогательного класса Stream.

Синтаксис

SMS.peek()

Параметры

нет

Возвращаемые значения

int - первый байт входящего SMS-сообщения (или -1, если такового нет)

Пример

/*
Получение SMS

 Программа для платы расширения Arduino GSM.
 После запуска ожидает поступления SMS-сообщений
 и выводит текст входящего сообщения через последовательный порт. 

 Схема:
 * GSM-плата расширения

 создано 25 Февраоя 2012
 автор: Javier Zorzano / TD

 Данный пример находится в свободном доступе.
*/

// библиотеки
#include <GSM.h>

// 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);

}

Смотрите также