Arduino:Библиотеки/GSM/Класс GSM SMS/remoteNumber()

Материал из Онлайн справочника
Перейти к навигации Перейти к поиску

Перевод: Максим Кузьмин (Cubewriter) Контакты:</br>* Skype: cubewriter</br>* E-mail: cubewriter@gmail.com</br>* Максим Кузьмин на freelance.ru
Проверка/Оформление/Редактирование: Мякишев Е.А.

Библиотека GSM
(Обсуждение Arduino:Библиотеки/GSM#disqus_thread)

Функции:

Функция remoteNumber()[1]

Получает информацию о телефонном номере, от которого пришло SMS, и сохраняет ее в именованном массиве.

Синтаксис

SMS.remoteNumber(number, size)

Параметры

number  именованный массив, в котором будет храниться информация о номере отправителя (массив символов)
size  размер массива. Тип данных  int

Что возвращает

В асинхронном режиме: если последняя команда еще выполняется  «0», если успешно выполнена  «1», если ошибка  меньше «1». В синхронном режиме: если успешно выполнена  «1», если нет  «0». Тип данных  int.

Пример

 1 #include <GSM.h>
 2 
 3 // PIN-код:
 4 #define PINNUMBER ""
 5 
 6 // инициализируем экземпляр библиотеки:
 7 GSM gsmAccess; // чтобы включить режим отладки, в скобочках нужно поставить параметр «true»
 8 GSM_SMS sms;
 9 
10 char remoteNumber[20];  // массив для хранения исходящего номера
11 
12 void setup() 
13 {
14   // инициализируем последовательную коммуникацию:
15   Serial.begin(9600); 
16 
17   Serial.println("SMS Messages Receiver");  //  "Получатель SMS-сообщений"
18 
19   // состояние соединения:
20   boolean notConnected = true;
21 
22   // запускаем GSM-модуль; если у SIM-карты есть PIN-код,
23   // вписываем его в скобочки функции begin():
24   while(notConnected)
25   {
26     if(gsmAccess.begin(PINNUMBER)==GSM_READY)
27       notConnected = false;
28     else
29     {
30       Serial.println("Not connected");  //  "Соединение не удалось"
31       delay(1000);
32     }
33   }
34 
35   Serial.println("GSM initialized");  //  "GSM инициализирован"
36   Serial.println("Waiting for messages");  //  "Ожидание сообщений"
37 }
38 
39 void loop() 
40 {
41   char c;
42 
43   // проверяем, есть ли SMS, которые можно прочесть: 
44   if (sms.available())
45   {
46     Serial.println("Message received from:");  //  "Сообщение получено от: "
47 
48     // извлекаем исходящий номер:
49     sms.remoteNumber(remoteNumber, 20);
50     Serial.println(remoteNumber);
51 
52     // это пример того, как можно отклонить пришедшее SMS; 
53     // в данном случае будут отклонены все SMS, начинающиеся с «#»:
54     if(sms.peek()=='#')
55     {
56       Serial.println("Discarded SMS");  //  "Сообщение отклонено"
57       sms.flush();
58     }
59 
60     // считываем байты сообщения и выводим их на монитор порта:
61     while(c=sms.read())
62       Serial.print(c);
63 
64     Serial.println("\nEND OF MESSAGE");  //  "\nКОНЕЦ СООБЩЕНИЯ "
65 
66     // удаляем сообщение из памяти модема:
67     sms.flush();
68     Serial.println("MESSAGE DELETED");  //  "СООБЩЕНИЕ УДАЛЕНО"
69   }
70 
71   delay(1000);
72 
73 }

См.также

  1. beginSMS()
  2. ready()
  3. endSMS()
  4. available()
  5. remoteNumber()
  6. read()
  7. write()
  8. print()
  9. peek()
  10. flush()

Внешние ссылки