Приветствую Вас ГостьСреда, 08.01.2025, 11:57

AVR & ARDUINO




Каталог статей

Главная » Статьи » Справочник

Метод GSMVoiceCall retrieveCallingNumber()

Описание

Метод объекта GSMVoiceCall извлекает номер звонящего абонента и сохраняет его в буфер.

Синтаксис

voice.retrieveCallingNumber(number, size);

Параметры

voice - объект класса GSMVoiceCall.

number - массив символов (буфер) для хранения входящего номера.

size - размер массива.

Возвращаемые значения

int - В асинхронном режиме функция retrieveCallingNumber() может возвращать следующие значения: 0 - если последняя вызванная команда еще выполняется, 1 - если последняя команда успешно выполнена и >1 - в случае ошибки. В синхронном режиме функция возвращает 1 в случае успешного получения номера, 0 - в случае ошибки.

Пример

// подключаем библиотеку
#include <GSM.h>

// PIN-код. Если на вашей SIM-карте установлен PIN-код - укажите его
#define PINNUMBER ""

// объявляем экземпляр класса
GSM gsmAccess; // для включения режима отладки добавьте параметр 'true'
GSMVoiceCall vcs;
 
 
char numtel[20]; // буфер для хранения входящего номера телефона
 
void setup()
{
 // инициализируем последовательный интерфейс передачи данных
 Serial.begin(9600);
 Serial.println("Receive Voice Call");
 
 // состояние соединения
 boolean notConnected = true;
 
 // запускаем GSM-плату расширения
 // если на вашей SIM-карте установлен PIN-код - укажите его в качестве параметра функции begin()
 while(notConnected)
 {
 if(gsmAccess.begin(PINNUMBER)==GSM_READY)
 notConnected = false;
 else
 {
 Serial.println("Not connected");
 delay(1000);
 }
 }
 
 
 vcs.hangCall(); // позволяет гарантировать правильную обработку модемом входящих событий
 
 Serial.println("Waiting Call");
}
 
void loop()
{
 // проверяем статус голосового вызова
 switch (vcs.getvoiceCallStatus())
 {
 case IDLE_CALL: // если ничего не произошло
 
 break;
 
 case CALLING: // этот участок будет пропущен, поскольку мы не совершаем звонков
 
 Serial.println("CALLING");
 break;
 
 case RECEIVINGCALL: // Да! Кто-то звонит нам
 
 Serial.println("RECEIVING CALL");
 
 // извлекаем номер звонящего абонента
 vcs.retrieveCallingNumber(numtel, 20);
 
 // выводим входящий номер
 Serial.print("Number:");
 Serial.println(numtel);
 
 // отвечаем на звонок, принимая вызов
 vcs.answerCall(); 
 break;
 
 case TALKING: // в случае ответа на вызов
 
 Serial.println("TALKING. Enter line to interrupt.");
 while(Serial.read()!='\n')
 delay(100);
 vcs.hangCall();
 Serial.println("HANG. Waiting Call."); 
 break;
 }
 delay(1000);
}

Смотрите также:

Конструктор GSMVoiceCall

getVoiceCallStatus()

ready()

voiceCall()

answerCall()

hangCall()


Библиотека GSM

Справочник

Материалы взяты с официального сайта проекта Arduino и представлены по лицензии Creative Commons Attribution-ShareAlike 3.0 License.



Источник: http://arduino.cc/en/Reference/GSMVCSRetrieveCallingNumber
Категория: Справочник | Добавил: magi (02.03.2015)
Просмотров: 548 | Теги: библиотека, GPRS, gsm, arduino | Рейтинг: 0.0/0
Всего комментариев: 0
avatar
Поиск
Вход на сайт
На правах рекламы

Мы переезжаем на сайт Arduino по-русски