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

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

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

Контакты:

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

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

Функции:

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

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

Синтаксис

voice.voiceCall()

Параметры

number – массив символов. Номер, на который будет совершен звонок

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

В асинхронном режиме: если последняя команда еще выполняется – «0», если успешно выполнена – «1», если ошибка – меньше «1». 
В синхронном режиме: если связь установлена – «1», если нет – «0». Тип данных – int.

Пример

  1. #include <GSM.h>
  2.  
  3. // PIN-код:
  4. #define PINNUMBER ""
  5.  
  6. // инициализируем экземпляр библиотеки:
  7. GSM gsmAccess; // чтобы включить режим отладки, в скобочках нужно поставить параметр «true»
  8. GSMVoiceCall vcs;
  9.  
  10. String remoteNumber = "";  // номер, на который будем звонить
  11. char charbuffer[20];
  12.  
  13. void setup()
  14. {
  15.  
  16.   // инициализируем последовательную коммуникацию:
  17.   Serial.begin(9600); 
  18.  
  19.   Serial.println("Make Voice Call");  //  "Голосовой звонок на другой номер"
  20.  
  21.   // состояние соединения:
  22.   boolean notConnected = true;
  23.  
  24.   // запускаем GSM-модуль; если у SIM-карты есть PIN-код,
  25.   // вписываем его в скобочки функции begin():
  26.   while(notConnected)
  27.   {
  28.     if(gsmAccess.begin(PINNUMBER)==GSM_READY)
  29.       notConnected = false;
  30.     else
  31.     {
  32.       Serial.println("Not connected");  //  "Соединение не удалось"
  33.       delay(1000);
  34.     }
  35.   }
  36.  
  37.   Serial.println("GSM initialized.");  //  "GSM инициализирован"
  38.   Serial.println("Enter phone number to call.");  //  "Введите номер для звонка."
  39.  
  40. }
  41.  
  42. void loop()
  43. {
  44.  
  45.   // добавляем все входящие символы в строку:
  46.   while (Serial.available() > 0)
  47.   {
  48.     char inChar = Serial.read();
  49.     // если встретили символ новой строки, это значит, что пора делать звонок:
  50.     if (inChar == '\n')
  51.     {
  52.       // убеждаемся, что номер не слишком длинный:
  53.       if (remoteNumber.length() < 20)
  54.       {
  55.         // информируем пользователя о факте звонка:
  56.         Serial.print("Calling to : ");  //  "Звонок на : "
  57.         Serial.println(remoteNumber);
  58.         Serial.println();
  59.  
  60.         // звоним по номеру:
  61.         remoteNumber.toCharArray(charbuffer, 20);
  62.  
  63.  
  64.         // проверяем, взяли ли на том конце трубку:
  65.         if(vcs.voiceCall(charbuffer))
  66.         {
  67.           Serial.println("Call Established. Enter line to end");    //  "Связь установлена. Введите Enter, чтобы завершить звонок"
  68.           // ждем, не нажмет ли пользователь Enter:
  69.           while(Serial.read() !='\n' && (vcs.getvoiceCallStatus()==TALKING));          
  70.           // и кладем трубку:
  71.           vcs.hangCall();
  72.         }
  73.         Serial.println("Call Finished");    //  "Звонок завершен"
  74.         remoteNumber="";
  75.         Serial.println("Enter phone number to call.");    //  "Введите номер для звонка"
  76.       } 
  77.       else
  78.       {
  79.         Serial.println("That's too long for a phone number. I'm forgetting it");  //  "Слишком длинный номер. Я такой не запомню"
  80.         remoteNumber = "";
  81.       }
  82.     } 
  83.     else
  84.     {
  85.       // добавляем последний символ к отправляемому сообщению:
  86.       if(inChar!='\r')
  87.         remoteNumber += inChar;
  88.     }
  89.   } 
  90. }

См.также

  1. getVoiceCallStatus()
  2. ready()
  3. voiceCall()
  4. answerCall()
  5. hangCall()
  6. retrieveCallingNumber()

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

  1. Arduino - voiceCall()