Вернуться к библиотеке GSM

 

endSMS()

Описание

Функция сообщает модему, что SMS-сообщение уже дописано, после чего осуществляет его отправку.

Синтаксис

SMS.endSMS()

Параметры

нет

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

int

В асинхронном режиме функция endSMS() может возвращать следующие значения:

  • 0 - если функция еще выполняется,
  • 1 - если функция успешно выполнена
  • >1 - в случае ошибки.

В синхронном режиме функция возвращает 1 при успешном выполнении, 0 - в случае ошибки.

Пример

#include <GSM.h>

#define PINNUMBER ""

// объявляем экземпляр класса
GSM gsmAccess; // для включения режима отладки добавьте параметр 'true'
GSM_SMS sms;

void setup()
{
  // инициализируем последовательный интерфейс передачи данных
  Serial.begin(9600);

  Serial.println("SMS Messages Sender");

  // состояние соединения
  boolean notConnected = true;

  // запускаем GSM-плату расширения
  // если на вашей SIM-карте установлен PIN-код - укажите его в качестве параметра функции begin()
  while(notConnected)
  {
    if(gsmAccess.begin(PINNUMBER)==GSM_READY)
      notConnected = false;
    else
    {
      Serial.println("Not connected");
      delay(1000);
    }
  }

  Serial.println("GSM initialized");
}

void loop()
{

  Serial.print("Enter a mobile number: ");
  char remoteNumber[20];  // телефонный номер, на который будет отправлено SMS-сообщение
  readSerial(remoteNumber);
  Serial.println(remoteNumber);

  // текст SMS
  Serial.print("Now, enter SMS content: ");
  char txtMsg[200];
  readSerial(txtMsg);
  Serial.println("SENDING");
  Serial.println();
  Serial.println("Message:");
  Serial.println(txtMsg);

  // отправляем сообщение
  sms.beginSMS(remoteNumber);
  sms.print(txtMsg);
  sms.endSMS(); 
  Serial.println("\nCOMPLETE!\n");
}

/*
  функция, считывающая данные, поступающие по последовательному интерфейсу
 */
int readSerial(char result[])
{
  int i = 0;
  while(1)
  {
    while (Serial.available() > 0)
    {
      char inChar = Serial.read();
      if (inChar == '\n')
      {
        result[i] = '\0';
        Serial.flush();
        return 0;
      }
      if(inChar!='\r')
      {
        result[i] = inChar;
        i++;
      }
    }
  }
};

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