remoteNumber()
描述
取得簡訊發送端的電話號碼。
語法
SMS.remoteNumber(number, size)
參數
number:用來存放電話號碼的字元陣列
size:字元陣列(number)的大小
回傳
int:在非同步模式中回傳 0 表示最後呼叫的指令仍然在執行中,回傳 1 表示取得簡訊發送端的電話號碼成功,而回傳大於 1 的值代表有錯誤發生;在同步模式中回傳 1 表示取得簡訊發送端的電話號碼成功,回傳 0 表示取得簡訊發送端的電話號碼失敗
範例
#include <GSM.h>
// PIN 碼
#define PINNUMBER ""
// 初始化 GSM 函式庫
GSM gsmAccess;
GSM_SMS sms;
// 用來存放電話號碼的字元陣列
char remoteNumber[20];
void setup()
{
// 初始化 Serial
Serial.begin(9600);
Serial.println("SMS Messages Receiver");
// 連線狀態
boolean notConnected = true;
// 啟動 Arduino GSM shield,如果你的 SIM 卡有 PIN 碼,請當作 begin() 的參數
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 (sms.available())
{
Serial.println("Message received from:");
// 取得傳送簡訊的電話號碼
sms.remoteNumber(remoteNumber, 20);
Serial.println(remoteNumber);
// 這是一個刪除簡訊的範例,在這裡把開頭為 # 的簡訊刪除
if(sms.peek()=='#')
{
Serial.println("Discarded SMS");
sms.flush();
}
// 讀取簡訊內容並輸出到序列埠監控視窗
while(c=sms.read())
Serial.print(c);
Serial.println("\nEND OF MESSAGE");
// 刪除簡訊
sms.flush();
Serial.println("MESSAGE DELETED");
}
delay(1000);
}
See also
- GSM_SMS
- beginSMS()
- ready()
- endSMS()
- available()
- read()
- write()
- print()
- peek()
- flush()
The text of the 86Duino reference is a modification of the Arduino reference, and is licensed under a Creative Commons Attribution-ShareAlike 3.0 License. Code samples in the reference are released into the public domain.
