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

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

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

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

Функции:

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

Возвращает количество байтов, доступных для считывания (то есть количество данных, которые были записаны клиентом на сервер, к которому он подключен).

Функция available() наследует у класса Stream.

Синтаксис

client.available()

Параметры

Нет.

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

Количество байтов, доступных для считывания.

Пример

  1 /*
  2   Веб-клиент
  3 
  4  Этот скетч при помощи GSM-модуля подключается к вебсайту. Если
  5  точнее, он загружает URL «http://arduino.cc» и отображает его 
  6  через монитор порта. 
  7 
  8  Цепь:
  9  * GSM-модуль, подключенный к Arduino
 10  * SIM-карта с активным тарифным планом
 11 
 12  Создан 8 марта 2012 года Томом Иго (Tom Igoe)
 13 
 14  http://arduino.cc/en/Tutorial/GSMExamplesWebClient
 15 
 16  */
 17 
 18 // библиотеки:
 19 #include <GSM.h>
 20 
 21 // PIN-код:
 22 #define PINNUMBER ""
 23 
 24 // Данные об APN:
 25 #define GPRS_APN       "GPRS_APN" // замените на свой APN
 26 #define GPRS_LOGIN     "login"    // замените на свой логин к APN
 27 #define GPRS_PASSWORD  "password" // замените на свой пароль к APN
 28 
 29 // инициализируем экземпляр библиотеки:
 30 GSMClient client;
 31 GPRS gprs;
 32 GSM gsmAccess; 
 33 
 34 // URL, путь и порт (к примеру, «arduino.cc»):
 35 char server[] = "arduino.cc";
 36 char path[] = "/";
 37 int port = 80; // порт 80 – это дефолтный порт для HTTP
 38 
 39 void setup()
 40 {
 41   // инициализируем последовательную коммуникацию:
 42   Serial.begin(9600);
 43   Serial.println("Starting Arduino web client.");  //  "Запуск веб-клиента Arduino."
 44   // состояние соединения:
 45   boolean notConnected = true;
 46 
 47   // запустив модем функцией GSM.begin(),
 48   // подключаем модуль к GPRS-сети при помощи APN, логина и пароля:
 49   while(notConnected)
 50   {
 51     if((gsmAccess.begin(PINNUMBER)==GSM_READY) &
 52         (gprs.attachGPRS(GPRS_APN, GPRS_LOGIN, GPRS_PASSWORD)==GPRS_READY))
 53       notConnected = false;
 54     else
 55     {
 56       Serial.println("Not connected");  //  "Соединение не удалось"
 57       delay(1000);
 58     }
 59   }
 60 
 61   Serial.println("connecting...");  //  "подключение..."
 62 
 63   // если подключение прошло успешно, сообщаем через монитор порта:
 64   if (client.connect(server, port))
 65   {
 66     Serial.println("connected");  //  "соединение установлено"
 67     // делаем HTTP-запрос:
 68     client.print("GET ");
 69     client.print(path);
 70     client.println(" HTTP/1.0");
 71     client.println();
 72   } 
 73   else
 74   {
 75     // если подключиться к серверу не удалось:
 76     Serial.println("connection failed");  //  "Соединение не удалось"
 77   }
 78 }
 79 
 80 void loop()
 81 {
 82   // если у сервера есть какие-нибудь байты для считывания, 
 83   // считываем их и показываем через монитор порта:
 84   if (client.available())
 85   {
 86     char c = client.read();
 87     Serial.print(c);
 88   }
 89 
 90   // если сервер отключился, останавливаем работу клиента:
 91   if (!client.available() && !client.connected())
 92   {
 93     Serial.println();
 94     Serial.println("disconnecting.");  //  "отключение."
 95     client.stop();
 96 
 97     // вечно ничего не делаем:
 98     for(;;)
 99       ;
100   }
101 }
102 <syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS">

См.также

  1. ready()
  2. connect()
  3. beginWrite()
  4. write()
  5. endWrite()
  6. connected()
  7. read()
  8. available()
  9. peek()
  10. flush()
  11. stop()

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