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

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

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

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

Возвращает данные о том, подключен ли клиент или нет. Клиент считается подключенным, даже если соединение было закрыто, но непрочитанные данные еще есть.

Синтаксис

client.connected()

Параметры

Нет.

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

Если клиент подключен  true, если нет  false. Тип данных  boolean.

Пример

/*
  Веб-клиент

 Этот скетч при помощи GSM-модуля подключается к вебсайту. Если
 точнее, он загружает URL «http://arduino.cc» и отображает его 
 через монитор порта. 

 Цепь:
 * GSM-модуль, подключенный к Arduino
 * SIM-карта с активным тарифным планом

 Создан 8 марта 2012 года Томом Иго (Tom Igoe)

 http://arduino.cc/en/Tutorial/GSMExamplesWebClient

 */

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

// PIN-код:
#define PINNUMBER ""

// Данные об APN:
#define GPRS_APN       "GPRS_APN" // замените на свой APN
#define GPRS_LOGIN     "login"    // замените на свой логин к APN
#define GPRS_PASSWORD  "password" // замените на свой пароль к APN

// инициализируем экземпляр библиотеки:
GSMClient client;
GPRS gprs;
GSM gsmAccess; 

// URL, путь и порт (к примеру, «arduino.cc»):
char server[] = "arduino.cc";
char path[] = "/";
int port = 80; // порт 80 – это дефолтный порт для HTTP

void setup()
{
  // инициализируем последовательную коммуникацию:
  Serial.begin(9600);
  Serial.println("Starting Arduino web client.");  //  "Запуск веб-клиента Arduino."
  // состояние соединения:
  boolean notConnected = true;

  // запустив модем функцией GSM.begin(),
  // подключаем модуль к GPRS-сети при помощи APN, логина и пароля:
  while(notConnected)
  {
    if((gsmAccess.begin(PINNUMBER)==GSM_READY) &
        (gprs.attachGPRS(GPRS_APN, GPRS_LOGIN, GPRS_PASSWORD)==GPRS_READY))
      notConnected = false;
    else
    {
      Serial.println("Not connected");  //  "Соединение не удалось"
      delay(1000);
    }
  }

  Serial.println("connecting...");  //  "подключение..."

  // если подключение прошло успешно, сообщаем через монитор порта:
  if (client.connect(server, port))
  {
    Serial.println("connected");  //  "соединение установлено"
    // делаем HTTP-запрос:
    client.print("GET ");
    client.print(path);
    client.println(" HTTP/1.0");
    client.println();
  } 
  else
  {
    // если подключиться к серверу не удалось:
    Serial.println("connection failed");  //  "Соединение не удалось"
  }
}

void loop()
{
  // если у сервера есть какие-нибудь байты для считывания, 
  // считываем их и показываем через монитор порта:
  if (client.available())
  {
    char c = client.read();
    Serial.print(c);
  }

  // если сервер отключился, останавливаем работу клиента:
  if (!client.available() && !client.connected())
  {
    Serial.println();
    Serial.println("disconnecting.");  //  "отключение."
    client.stop();

    // вечно ничего не делаем: 
    for(;;)
      ;
  }
}

См.также

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

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