Функція hangCall()

Документація

Клас GSMVoiceCall

hangCall()

Завершити здійснений дзвінок або припинити вхідні дзвінки. Залежно від режиму модема (синхронний або асинхронний) метод поверне різні значення, деталі нижче.

Синтаксис
voice.hangCall()

Параметри
нема

Повертає
int
В асинхронному режимі hangCall() повертає 0, якщо остання команда досі виконується, 1, якщо успіх, >1 у випадку помилки. У синхронному режимі повертає 1, якщо дзвінок завершено, 0, якщо ні.

Приклад
// бібліотеки
#include <GSM.h>

// PIN-номер
#define PINNUMBER ""

// ініціалізувати приклад бібліотеки
GSM gsmAccess; // включити параметр істини для активації налагодження
GSMVoiceCall vcs;


char numtel[20];           // буфер для вхідного дзвінка

void setup()
{
  // ініціалізувати послідовні зв’язки
  Serial.begin(9600);
  Serial.println("Отримати голосовий дзвінок");

  // стан підключення
  boolean notConnected = true;

   // Розпочати роботу GSM-шилда
  // Якщо SIM має PIN, передайте його як параметр begin () у лапках
  while(notConnected)
  {
    if(gsmAccess.begin(PINNUMBER)==GSM_READY)
      notConnected = false;
    else
    {
      Serial.println("Не підключено");
      delay(1000);
    }
  }

  // Переконатися, що модем правильно отримує сповіщення про вхідні події 
  vcs.hangCall();

  Serial.println("Очікування дзвінка");
}

void loop()
{
  // Перевірити статус голосового дзвінка
  switch (vcs.getvoiceCallStatus()) 
  {
    case IDLE_CALL: // Нічого не відбувається

      break;

    case CALLING: // Цього не має статися, так як ми не здійснюємо дзвінок

      Serial.println("Виклик");
      break;

    case RECEIVINGCALL: // Так! Хтось дзвонить нам

      Serial.println("Отримання дзвінка");

      // Отримати номер абонента
      vcs.retrieveCallingNumber(numtel, 20);

      // Надрукувати номер абонента
      Serial.print("Номер:");
      Serial.println(numtel);

      // Відповісти на дзвінок, здійснити дзвінок
      vcs.answerCall();         
      break;

    case TALKING:  // В такому випадку дзвінок буде здійснено

      Serial.println("Розмова. Ввести рядок для переривання.");
      while(Serial.read()!='\n')
        delay(100);
      vcs.hangCall();
      Serial.println("Повісити. Очікування дзвінка.");      
      break;
  }
  delay(1000);
}

Повернутись до головної

Коментарі 0

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.