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

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

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

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

Функции:

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

Проверяет, есть ли на SIM-карте SMS-сообщения, которые можно прочесть, а затем возвращает количество символов в сообщении.

Синтаксис

SMS.available()

Параметры

Нет.

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

Количество символов в сообщении. Тип данных  int.

Пример

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

См.также

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

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