当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Arduino MKRGSM - sms.remoteNumber()用法及代码示例


说明

从传入的 SMS 消息中检索电话号码并将其存储在命名数组中。

用法


SMS.remoteNumber(number, size)


参数

number:char 数组,一个命名数组,将保存发送者的数字 size:int,数组的大小

返回

int 在异步模式下,remoteNumber() 如果最后一条命令仍在执行,则返回 0,如果成功则返回 1,如果有错误,则返回 >1。在同步模式下,如果执行成功则返回 1,否则返回 0。

示例

#include <MKRGSM.h>

// PIN Number
#define PINNUMBER ""

// initialize the library instance
GSM gsmAccess; // include a 'true' parameter for debug enabled
GSM_SMS sms;

char remoteNumber[20];  // Holds the emitting number

void setup()
{
  // initialize serial communications
  Serial.begin(9600);

  Serial.println("SMS Messages Receiver");

  // connection state
  boolean notConnected = true;

  // Start GSM shield
  // If your SIM has PIN, pass it as a parameter of begin() in quotes
  while(notConnected)
  {
    if(gsmAccess.begin(PINNUMBER)==GSM_READY)
      notConnected = false;
    else
    {
      Serial.println("Not connected");
      delay(1000);
    }
  }

  Serial.println("GSM initialized");
  Serial.println("Waiting for messages");
}

void loop()
{
  char c;

  // If there are any SMSs available()  
  if (sms.available())
  {
    Serial.println("Message received from:");

    // Get remote number
    sms.remoteNumber(remoteNumber, 20);
    Serial.println(remoteNumber);

    // This is just an example of message disposal    
    // Messages starting with # should be discarded
    if(sms.peek()=='#')
    {
      Serial.println("Discarded SMS");
      sms.flush();
    }

    // Read message bytes and print them
    while(c=sms.read())
      Serial.print(c);

    Serial.println("\nEND OF MESSAGE");

    // delete message from modem memory
    sms.flush();
    Serial.println("MESSAGE DELETED");
  }

  delay(1000);

}

相关用法


注:本文由纯净天空筛选整理自arduino.cc大神的英文原创作品 MKRGSM - sms.remoteNumber()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。