日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【物联网智能网关-03】GPRS模块中文短信收发

發布時間:2023/12/31 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【物联网智能网关-03】GPRS模块中文短信收发 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在去年年初,就已經推出V1.0.0的GPRS庫,不過在這個版本上只是實現了西文短信收發和字符串方式的GPRS數據通信,功能還相對不完善(參見我以前的博文《GPRS通信實現》)。最近升級的版本,對以上功能進行了大幅度的升級改進,比如支持PDU方式收發短信(支持中文)、彩信發送、二進制方式 GPRS數據收發、短信按類型提取、短信刪除和短信事件通知等等功能。

考慮到功能比較多,我們分三篇文章來介紹最新的GPRS庫的功能,這一篇我們先介紹和短信收發相關的內容。

庫函數中和短信收發相關的方法如下:

(1)設置短消息中心地址

聲明:int SetCenterNum (sring CenterNum)

參數:CenterNum–? 短消息中心地址

返回:操作返回值

????? 0 –? 發送成功

????? -1 -? 設置失敗

說明:短消息中心地址。聯通和移動不同地區,號碼都不同,一般情況下,不需要專門設置

(2)發送短信(PDU方式)

聲明:int SendMessage (sring phone,string msg)

參數:phone –? 電話號碼

msg –? 要發送的字符串

返回:操作返回值

????? 0 – 發送成功

????? -1 – 字符長度為0或大于70個字節

????? -2 – 設置短消息格式失敗

- 3 –發送短信失敗

說明:發送短信。支持中文字符發送。

(3)讀取短信

聲明:int ReceiveMessage(out GsmMessage[] msgs,MessageType msgType)

參數:msgs –? 信息集合,每一項都包括,短信發送的電話,發送時間和內容

????? msgType –? 消息類型:未讀消息,已讀消息,未發消息,已發消息,全部消息

返回:返回指定類型的短信字符串集合。

說明:接收短信。目前支持中英文短信接收。

(4)刪除短信

聲明:int DeleteMessage ()

參數:無

返回:操作返回值

????? 0 –? 刪除0個消息

????? -1 –? 設置PDU模式失敗

????? >0 –? 刪除的短消息個數

說明:刪除全部的短消息。

?

除了方法外,還有一個短信收到事件,具體聲明如下:

(1)短信收到通知

聲明:SMSMessageReceivedEventHandler MessageReceived

參數:object sender – GPRS類的實例

說明:短信接收通知

?

為了便于說明庫的使用,我們設定一個場景,來進行相關代碼的功能演示。?

場景是這樣設定的:

(1)、程序不斷采集溫濕度數據,一旦超出預先設置好的范圍,就會短信通知報警。

(2)、手機發送短信,控制繼電器,可以遠程打開和關閉加濕器。

具體代碼如下(其中溫濕度采集部分,詳情請參見:通過AD采集獲取溫濕度):

(1)、GPRS模塊初始化相關代碼

int ret = 0;

gprs = new GPRS("COM3", 115200, GPRS.GprsType.SIM300_V6_x);

//打開GPRS模塊

if ((ret = gprs.Open()) != 0)

{

??? Debug.Print("Open Failed:" + ret.ToString());

??? gprs.Close();

??? screen.DrawText("打開GPRS模塊失敗", font, Colors.Red, 20, 60);

??? screen.Flush();

??? return;

}

Debug.Print("Open OK");

screen.DrawText("打開GPRS模塊成功", font, Colors.Green, 20, 60);

screen.Flush();

?

//判斷是否在線,超時時間10s

if ((ret = gprs.IsOnline(10000)) != 0)

{

??? Debug.Print("AT Failed:" + ret.ToString());

??? gprs.Close();

??? screen.DrawText("GPRS模塊不在線", font, Colors.Red, 20, 100);

??? screen.Flush();

??? return;

}

Debug.Print("AT OK");

screen.DrawText("GPRS模塊在線", font, Colors.Green, 20, 100);

screen.Flush();

?

//GPRS模塊初始化

if ((ret = gprs.Initialize()) != 0)

{

??? Debug.Print("Initialize Failed:" + ret.ToString());

??? gprs.Close();

??? return;

}

Debug.Print("Initialize OK");

screen.DrawText("GPRS初始化成功", font, Colors.Green, 20, 140);

screen.Flush();

?

//顯示信號強度

//Debug.Print("Signal:" + gprs.Signal.ToString());?????

?gprs.MessageReceived += new SMSMessageReceivedEventHandler(gprs_MessageReceived);

(2)、GPRS模塊短信接收并控制部分

static void gprs_MessageReceived(object sender)

{

??? int ret = 0;

??? GsmMessage[] msgs = null;

?

??? //讀未讀的短消息

??? if ((ret = gprs.ReceiveMessage(out msgs, GPRS.MessageType.REC_UnRead)) < 0)

??? {

??????? Debug.Print("ReceiveMessage Failed:" + ret.ToString());

??? }

??? else

?? ?{

??????? if (ret > 0)

??????? {

??????????? foreach (GsmMessage msg in msgs)

??????????? {

??????????????? Debug.Print(msg.ToString());

??????????? }

??????????? //gprs.SendMessage(msgs[0].phone, msgs[0].ToString());

?

??????????? switch (msgs[0].message)

??????????? {

??????????????? case "開":

??????????????????? opSwitch.Write(true);

??????????????????? State = true;

??????????????????? break;

??????????????? case "關":

??????????????????? opSwitch.Write(false);

??????????????????? State = false;

??????? ????????????break;

??????????? }

??????? }

??? }

??? //刪除短消息

??? //gprs.DeleteMessage();

}

(3)濕度報警相關代碼

//濕度報警

if (H > 60 && !AlarmFlag)

{

??? //發送報警短信(實際應用時,請填入實際的電話號)

??? gprs.SendMessage("158XXXXXXX", "當前濕度:" + H.ToString("F2"));

??? AlarmFlag = true;

}

if (AlarmFlag && H < 50)

{

??? AlarmFlag = false;

}

實際運行效果圖:

??

說明:硬件平臺采用最新的紫藤207系統;GPRS模塊采用Sim300 V6.02版本的模塊;繼電器模塊采用5V驅動,可控制220V 10A的電器,一般家用小功率電器可以直接使用;溫濕度模塊采用了相對低價的AD接口的模塊。

?

下一篇博文,將介紹GPRS模塊是如何發送彩信的,敬請期待。

?

本文源碼:http://www.sky-walker.com.cn/MFRelease/Sample/YF_GPSR01.rar

類庫下載:http://www.sky-walker.com.cn/MFRelease/library/v42/YFSoft.Hardware.GPRS.rar

MF簡介:http://blog.csdn.net/yefanqiu/article/details/5711770

MF資料:http://www.sky-walker.com.cn/News.asp?Id=25

轉載于:https://blog.51cto.com/yfsoft/882120

總結

以上是生活随笔為你收集整理的【物联网智能网关-03】GPRS模块中文短信收发的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。