Cat hungry.png
Здравствуйте! Собираем деньги на перевод материалов по электронике(https://www.allaboutcircuits.com/education/). Реквизиты указаны здесь.

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

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

Перевод: Максим Кузьмин (Cubewriter)
Перевел 2686 статей для сайта.

Контакты:

Проверка/Оформление/Редактирование: Мякишев Е.А.

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

Функции:

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

Очищает память модема от всех отправленных сообщений после того, как все исходящие символы будут отправлены. Эта функция наследует у класса Stream.

Синтаксис

SMS.flush()

Параметры

Нет.

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

Ничего.

Пример

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

См.также

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

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

  1. GSMSMSFlush