免费无码精品黄av电影,大地中文在线观看免费高清,7777精品伊久久久大香线蕉,制服丝袜快播,成全视频高清免费观看

如何通過物聯網卡實現通信模塊?物聯網卡系統開發原理!

2019-05-14 7286來(lai)源:中(zhong)億(yi)物聯(lian)網 分類: 物(wu)聯網

  在這個萬物互聯的時代下,物聯網卡廣泛的應用在我們生活中的方方面面,從共享經濟、智慧交通、智慧城市、智能穿戴再到智慧農業等等,都能夠看到物聯網卡的身影,今天中億物聯網要來跟各位分享和討論下物聯網卡通信模塊的開發知識,講解在物聯網系統源碼中通信模塊是怎么實現的以及開發原理,本文以中國移動CMPP協議為例進行步驟講解,下面讓我們一起來深入了解下吧。


如何通過物聯網卡實現通信模塊?物聯網卡系統開發原理!


  在這個萬物(wu)互(hu)聯(lian)的(de)(de)時代(dai),物(wu)聯(lian)網應(ying)用以(yi)及(ji)深入(ru)到(dao)(dao)我們生活(huo)的(de)(de)方方面(mian)面(mian),大到(dao)(dao)智(zhi)慧(hui)城市、智(zhi)能交通,小到(dao)(dao)行(xing)車記錄儀,各種穿(chuan)戴設備,智(zhi)能家居(ju),都(dou)有物(wu)聯(lian)網應(ying)用的(de)(de)身(shen)影,讓我們感(gan)受到(dao)(dao)生活(huo)品質和(he)檔次的(de)(de)提升。

  那么作為程序員的(de)我們,物(wu)聯網通信到底如何做(zuo)呢(ni)? 

  本系(xi)列文章即將帶您一起走進(jin)物(wu)聯網(wang)系(xi)統開(kai)(kai)發的世界。也希望同行一起分享和討論物(wu)聯網(wang)相關知識和開(kai)(kai)發經驗。

  首先(xian)看一下物聯網系統的整體架(jia)構,

  本篇將講解(jie)物聯(lian)網系(xi)統中的(de)通信模塊實現原理及相(xiang)關內容

  物聯網數據卡系統源碼——通信模塊(kuai)
 
  1.通(tong)信模塊的功能

  系(xi)統發送指令(ling)信(xin)息到(dao)物聯網(wang)卡(ka),物聯網(wang)卡(ka)接收到(dao)指令(ling)后做(zuo)相(xiang)應邏輯處理,并返回信(xin)息給系(xi)統。

  2.通信模塊實現的原理

  一(yi)般是通過運營商(shang)(移動、聯通、電(dian)信)提供的短(duan)信網關(guan)通信協議,來給物聯網數據(ju)卡發送信息。

  三大運營商使用的協議(yi)不同,分別(bie)是(shi):中(zhong)國移(yi)動CMPP協議(yi)、聯(lian)通SGIP協議(yi)、電信SMGP協議(yi)。

  具體的(de)協(xie)議介紹這里(li)就不展開(kai)了,參考閱讀:協(xie)議介紹

  3.使用中國移動CMPP協議(yi)實現物聯網通信模塊

  物聯(lian)網(wang)卡選(xuan)任何一家運營(ying)商合(he)作(zuo)都沒有(you)關系(但(dan)個人經驗(yan),移動(dong)的信(xin)號是最好的。根據自己情況選(xuan)擇)

  移動使用的(de)(de)是CMPP協議,此協議2001年出了(le)(le)CMPP2.0版,之后(hou)持續(xu)升級(ji)過CMPP2.1,到2002年出了(le)(le)CMPP3.0版之后(hou)就(jiu)未升級(ji)過,一直很穩定(ding),能滿(man)足各種應用需求(qiu)。CMPP3.0擴(kuo)展手機號為(wei)32位,增加了(le)(le)號碼類型和linkid等字段(duan),做物(wu)聯網卡(ka)當然(ran)選擇支(zhi)持擴(kuo)展更多且最穩定(ding)的(de)(de)CMPP3.0版本。

  下面(mian)介紹一款程序(xu)(xu),此程序(xu)(xu)為中國移動CMPP協議程序(xu)(xu)接口(kou),適合(he)在(zai)中國移動申(shen)請了短信發送端口(kou)的公司使用。

  本(ben)程(cheng)序功(gong)能包括:

  1、支持(chi)Cmpp2.0、3.0協議(yi);

  2、支持一般的短(duan)(duan)信發(fa)送、上行短(duan)(duan)信接收(shou)、狀(zhuang)態(tai)報告;

  3、支持長短信(xin),包括下發長短信(xin)、上行(xing)接(jie)收長短信(xin);

  4、支持(chi)Ms Sql數據庫(ku)、MySql數據庫(ku);

  5、支持普(pu)通手機號和物聯網(wang)卡;

  6、集成(cheng)了郵件群(qun)發功能(neng);

  7、支持擴展號;比如你的發送號碼(ma)是1008622,可(ke)以擴展成100862201、100862202等(deng)

  程序(xu)(xu)適用于Cmpp3.0、Cmpp2.0協議(yi),可用.Net任何(he)版本(ben)編譯。短(duan)信(xin)Win服(fu)務程序(xu)(xu)+MsSql/MySql數據(ju)庫(ku)源(yuan)碼,直接配置(zhi)好win服(fu)務并啟動,自己只需往數據(ju)庫(ku)里面寫(xie)入數據(ju)就可以發(fa)送短(duan)信(xin),接收的(de)短(duan)信(xin)保存在另一張(zhang)表中,讀取即可收到(dao)上行(xing)短(duan)信(xin)。

  4.設(she)計原則

  軟(ruan)件設計的基本原則是“高內聚,低(di)耦合”,本模塊遵循此原則。

  此類涉及通訊的應用中,短信通信部(bu)分(fen)本身是可以(yi)不(bu)帶任何(he)業務邏輯的,即只負責短信收發(fa)這一單一功能,所以(yi)可以(yi)設計成獨立(li)模塊與其他業務處理模塊分(fen)開,實現(xian)松耦合,獨立(li)分(fen)布式(shi)部(bu)署(shu)。

  短信(xin)(xin)通(tong)訊模(mo)塊(kuai)從數(shu)據(ju)庫(ku)讀取待發送(song)短信(xin)(xin)數(shu)據(ju),然后放入緩存隊列進行多線(xian)程發送(song),這樣其他模(mo)塊(kuai)只需要往數(shu)據(ju)庫(ku)插入數(shu)據(ju),就可以發送(song)短信(xin)(xin),從而實現了跨語(yu)言和跨平臺(tai)。不管業務系統使用JAVA、PHP、C#、Python或者其他語(yu)言,也不管業務系統是在Windows還是在Linux系統部署,只要可以遠程訪(fang)問(wen)數(shu)據(ju)庫(ku),就可以使用短信(xin)(xin)通(tong)訊模(mo)塊(kuai)的(de)短信(xin)(xin)收(shou)發功能。

  通信模塊每天的發送量比較大,每時每刻(ke)都在持(chi)續運行,這就必須能(neng)實現獨立部署,提高性能(neng),同時也不影(ying)響(xiang)其他業務(wu)功能(neng)的性能(neng)。

  5.程(cheng)序(xu)實現

  程序(xu)設計(ji)(ji)成(cheng)(cheng)一個Windows服務(wu)的(de)形式,可(ke)(ke)以安(an)全的(de)駐存在系統(tong)中穩定(ding)運行,防止(zhi)人為因數關閉程序(xu)。同時設計(ji)(ji)成(cheng)(cheng)支持Sql Server和MySql兩(liang)種數據庫,且可(ke)(ke)以通過修改配置(zhi)項來(lai)實時切換。

  根據功能不(bu)同又可以細分成(cheng)專門負責實(shi)現(xian)CMPP協(xie)議格式,與移動網關通(tong)信的模(mo)塊,和專門讀取數據庫(ku)數據,處理發送任務的Windows服務模(mo)塊。

如何通過物聯網卡實現通信模塊?物聯網卡系統開發原理!

  上圖(tu)代(dai)(dai)碼(ma)為短信win服(fu)務代(dai)(dai)碼(ma)截圖(tu),相關代(dai)(dai)碼(ma)模塊(kuai)解釋:

  Xiaoy.SMS項目:為短信(xin)組件源碼,負責(ze)實現(xian)CMPP協(xie)議并與短信(xin)網(wang)關通信(xin).

  SMSWinService項目: 短信(xin)(xin)服(fu)務源(yuan)碼,負責讀取數據庫待(dai)發短信(xin)(xin)并發送以及上行短信(xin)(xin)的接收,當然還(huan)包括windows服(fu)務的安裝等(deng)功能.

  SMSTest項(xiang)目:短(duan)信測試程序源碼,Windows桌面(mian)程序,用于短(duan)信調試.

如何通過物聯網卡實現通信模塊?物聯網卡系統開發原理!

  上(shang)圖為短(duan)信(xin)調(diao)試小程序截圖。短(duan)信(xin)程序開發好(hao)之后,聯(lian)調(diao)是(shi)一個(ge)(ge)繁(fan)瑣的(de)工作,因為協議參(can)數就有(you)(you)(you)幾十(shi)個(ge)(ge),任何一個(ge)(ge)參(can)數填寫錯(cuo)誤都有(you)(you)(you)可能導致短(duan)信(xin)發送不成(cheng)功,這就需要有(you)(you)(you)一款(kuan)調(diao)試工具來幫忙了,有(you)(you)(you)時候(hou)不是(shi)你(ni)的(de)程序編碼有(you)(you)(you)問題,而是(shi)移動運營商(shang)那邊沒幫你(ni)配(pei)置好(hao),或者你(ni)填的(de)參(can)數輸入錯(cuo)誤,造(zao)成(cheng)了發送失敗。遇到這種情況,可以通(tong)過發送后返(fan)回(hui)的(de)狀態(見上(shang)圖中紅色日志(zhi))來判斷是(shi)哪里的(de)問題。
  
  短信發送流程(cheng)如下:

  第一步:程序發送(song)Submit包(bao)(bao)到網(wang)關,網(wang)關會返回SubmitResp包(bao)(bao),根據包(bao)(bao)中的(de)(de)Result的(de)(de)值(zhi)來判斷是(shi)否發送(song)成功。

  result=0代(dai)表(biao)發送成功,其(qi)他(ta)代(dai)表(biao)失敗(bai),失敗(bai)的原因(yin)可(ke)以查詢返回碼的意義:返回碼說明

  這時候(hou)只是發送到了網(wang)(wang)關,至于網(wang)(wang)關是否(fou)成功發送到用戶手機或物聯網(wang)(wang)卡,尚(shang)不知道。比如用戶手機關機,或物聯網(wang)(wang)卡未(wei)插入設備中則收不到短(duan)信。

  第二步:當短信網(wang)關成功發送(song)短信到用戶手機卡或(huo)物聯網(wang)卡上時,會返回(hui)狀(zhuang)態報告給SP端(即本程序)。

  如果狀態報告中的(de)結果是DELIVRD,則證明信息已經成功發送到物聯網卡,并成功接收到。

  也就是說,當第一(yi)步(bu)result=0的時候,基本SP的發(fa)送任務完(wan)成(cheng)了,如果收(shou)不到也是卡的問(wen)題(欠(qian)費、關機、未(wei)插卡等)。

  第二步是更精確(que)的知道卡是否收到信息,但有可能一兩天才會返(fan)回。要接收狀態(tai)報告,需要在提交Submit包的時(shi)候把“RegisteredDelivery”字段設為(wei)1。

如何通過物聯網卡實現通信模塊?物聯網卡系統開發原理!

  中億物聯網(//fuhuasuye.cn/)在本文(wen)中主(zhu)要(yao)(yao)講(jiang)解(jie)了物聯網卡、通信模(mo)塊以及物聯網系統開發(fa)的(de)(de)原理,通過CMPP協(xie)議(yi)模(mo)塊的(de)(de)開發(fa)實(shi)踐進行(xing)(xing)講(jiang)解(jie),目前運營(ying)商物聯網卡的(de)(de)短信協(xie)議(yi)主(zhu)要(yao)(yao)分為(wei)中國移動(dong)CMPP協(xie)議(yi)、聯通SGIP協(xie)議(yi)、電信SMGP協(xie)議(yi),在配(pei)置好(hao)后我們能夠(gou)通過網關返回(hui)的(de)(de)SubmitResp包值進行(xing)(xing)確認是(shi)否發(fa)送成(cheng)功,result=0為(wei)成(cheng)功,其余則為(wei)失(shi)敗,失(shi)敗的(de)(de)具體(ti)原因需(xu)要(yao)(yao)根據返回(hui)碼進行(xing)(xing)查詢(xun)。