1 引言
在任何系統(tǒng)中,準(zhǔn)確的獲得實(shí)時(shí)信息并且安全可靠的傳輸是至關(guān)重要的,而信息發(fā)送傳輸?shù)氖侄螀s是多種多樣的。在無人值班或少人值班控制系統(tǒng)中,如防洪排澇的值班人員準(zhǔn)確的獲得水位和雨量信息,物業(yè)管理人員獲得用戶的報(bào)警信息等都至關(guān)重要,實(shí)時(shí)信息的獲取是相關(guān)人員獲得系統(tǒng)當(dāng)前狀態(tài)的唯一途徑。那么怎么樣將采集的到的實(shí)時(shí)信息第一時(shí)間發(fā)送到用戶的手中呢?手機(jī)短信息技術(shù)就是一種不錯(cuò)的選擇手段。
當(dāng)要傳輸實(shí)時(shí)信息時(shí),上位機(jī)自動(dòng)撥號(hào),撥動(dòng)相應(yīng)的手機(jī),或發(fā)送實(shí)時(shí)短信息,以提醒有關(guān)人員注意。本系統(tǒng)中短信息啟動(dòng)程序是使用c++builder用軟件編程嵌入at指令實(shí)現(xiàn)的,下面主要介紹短信息的發(fā)送。
2 手機(jī)短信息(sms)
手機(jī)短信息是目前隨著手機(jī)用戶的普及而發(fā)展起來的一項(xiàng)新技術(shù),它的特點(diǎn)是價(jià)格低廉,操作方便,但是其一個(gè)明顯的缺點(diǎn)就是不能判斷接受方是否接收到短信息、短消息是否有遲延。即便如此,我們還是選擇了短消息這個(gè)功能,是因?yàn)楫?dāng)前還很少出現(xiàn)短消息丟失或者短消息遲延很長時(shí)間的現(xiàn)象,至少在發(fā)送端和接收端為同一網(wǎng)絡(luò)時(shí)(如同為中國聯(lián)通或者同為中國移動(dòng))這種現(xiàn)象是一般不會(huì)發(fā)生的,就是說短信息技術(shù)作為一種輔助的信息傳輸手段還是非常合適的。
圖1 手機(jī)短信發(fā)送示意圖
圖1表示出手機(jī)短信發(fā)送示意圖。pc通過手機(jī)發(fā)送短消息分為三種模式:bolck模式、text模式和pdu模式。使用block模式需要手機(jī)生產(chǎn)廠家提供驅(qū)動(dòng)支持,現(xiàn)在還沒有發(fā)現(xiàn)哪個(gè)廠家公布支持這種短信發(fā)送模式,下面只介紹pdu模式。
(1) 設(shè)備條件
必須具備以下條件:手機(jī),手機(jī)驅(qū)動(dòng)程序,手機(jī)連接pc機(jī)的線纜。本文以nokia手機(jī)為例進(jìn)行介紹。
(2) 安裝
·第一步:將手機(jī)和pc機(jī)通過線纜連接好。注意連接線纜時(shí),手機(jī)和pc機(jī)必須至少有一個(gè)設(shè)備處于關(guān)機(jī)狀態(tài);拆除時(shí),也要注意;
·第二步:安裝手機(jī)驅(qū)動(dòng)程序。在使用nokia的情況下,nokia提供datasuite 2.0 windows98、windows2000、windowsnt驅(qū)動(dòng)程序。啟動(dòng)setup,按照安裝提示進(jìn)行安裝。在安裝過程中,檢測手機(jī)設(shè)備時(shí),手機(jī)顯示“附件已接通”,否則需要卸載,然后重新裝載;
·第三步:通過控制面板查看手機(jī)安裝的com端口號(hào),以備調(diào)試時(shí)使用。
3 pdu模式的短信息通信
3.1 gsm at指令簡介
90年代初,at命令僅被用于modem操作。由于沒有控制移動(dòng)電話文本消息的先例,因此開發(fā)了一種叫sms block mode的協(xié)議,通過終端設(shè)備(te)或電腦來完全控制sms。幾年后,主要的移動(dòng)電話生產(chǎn)廠商諾基亞、愛立信、摩托羅拉和hp共同為gsm研制了一整套at命令,其中包含對sms的控制。at命令在此基礎(chǔ)上演化并被加入gsm 07.05標(biāo)準(zhǔn),以及之后的gsm 07.07標(biāo)準(zhǔn)。到現(xiàn)在,pdu已取代block mode,后者逐漸淡出,我們采用的就是基于at命令的pdu mode,它是發(fā)送或接收手機(jī)sms消息的一種方法,消息正文經(jīng)過十六進(jìn)制編碼后進(jìn)行傳送。
3.2 短信息的發(fā)送過程
結(jié)合本系統(tǒng),我們只介紹pdu模式的發(fā)送方式,這正是開發(fā)中文短信息的關(guān)鍵,因?yàn)橹挥型ㄟ^這種方式才可以發(fā)送中文短信。
(1) 正確連接手機(jī)與電腦,安裝驅(qū)動(dòng)程序(具體過程省略)
(2) 打開“超級(jí)終端”,輸入“at”如果返回“ok”,則說明手機(jī)與電腦連接正常,否則返回第一步。
(3) 發(fā)送協(xié)議
發(fā)送協(xié)議如下:
例如短信息中心號(hào)碼為 深圳 +8613800270500 ,對方手機(jī)號(hào)碼為+8613612345678,要發(fā)送的信息為“中”。
3.3發(fā)送信息為“中”的算法步驟
(1) 地址部分,用字符串a(chǎn)ddr表示
a) 短信中心號(hào)碼去掉+號(hào),看看長度是否為偶數(shù),如果不是,最后添加f
即addr=“+8613800270500”=>addr=“8613800270500f”
b) 將奇數(shù)位和偶數(shù)位交換。
=> addr =“683108200705f0”
c) 將短信息中心號(hào)碼前面加上字符91(91是國際化的意思),
=> addr=“91683108200705f0”
d) 算出addr長度,結(jié)果除2,格式化成2位的16進(jìn)制字符串,16/2=8=>“08”,=>addr= “0891683108200705f0”
(2) 手機(jī)號(hào)碼部分,用字符串phone
a) 將手機(jī)號(hào)碼去掉“+”號(hào),看看長度是否為偶數(shù),如果不是,最后添加f
即 phone =“+8613612345678”=> phone = “8613612345678f”
b) 將手機(jī)號(hào)碼奇數(shù)位和偶數(shù)位交換。
=> phone =“683116325476f8”
(3) 短信息部分,用字符串msg表示
a)轉(zhuǎn)字符串轉(zhuǎn)換為unicode代碼,例如“中”的unicode代碼為4e2d,
b)將msg長度除2,保留兩位16進(jìn)制數(shù),即4e2d = 4/2 =>“02”,再加上msg=>msg=“024e2d”
(4) 組合
a) 手機(jī)號(hào)碼前加上字符串11000d91,這是一些固定pdu代碼,可以參考相關(guān)pdu格式說明
即 phone =“11000d91”+ phone
=> 11000d91683116325476f8
b) 手機(jī)號(hào)碼后加上000800和剛才的短信息內(nèi)容
即 phone=phone +“000800”+ msg
即11000d91683116325476f8 + 000800 + 024e2d
=>phone= 11000d91683116325476f8000800024e2d
c) phone長度除以2,格式化成2位的十進(jìn)制數(shù)
即 11000d91683116325476f8000800024e2d => 36位/2 =>18
(5) 所以要發(fā)送的內(nèi)容為
at+cmgs=18<回車,ascii為13>, addr+phone+<︿z>+換行回車<13和10>
即at+cmgs=18 <回車>
>0891683108200705f011000d91683116325476f8000800024e2d︿z換行回車
在無人值班控制系統(tǒng)中,此程序安裝在控制機(jī)上,已將所有可能發(fā)生的信息全部寫到此短信息應(yīng)程序中,針對不同的信息發(fā)送不同的內(nèi)容,當(dāng)整個(gè)系統(tǒng)有信息需要發(fā)送時(shí),此短信息程序根據(jù)觸發(fā)信息的的不同發(fā)送不同的短信息,此時(shí)運(yùn)行人員根據(jù)短信息的類型判斷報(bào)警類型。嚴(yán)重報(bào)警時(shí)保護(hù)會(huì)動(dòng)作。在有短信息發(fā)送時(shí)此程序才會(huì)被啟動(dòng),發(fā)送完立即退出。
4 結(jié)束語
基于gsm的短信息發(fā)送技術(shù)已經(jīng)成功應(yīng)用于無人、少人值班系的控制系統(tǒng)中,證明此種基于gsm的短信息發(fā)送技術(shù)技術(shù)是可靠的,更是可行的。
參考文獻(xiàn)
[3] [美]kent reisdorph等. c++builder 4 技術(shù)內(nèi)幕[m].北京:人民郵電出版社,1998.
作者簡介
胡海濤(1973-) 2003年武漢大學(xué)碩士畢業(yè),現(xiàn)主要從事工業(yè)控制和電氣自動(dòng)化方面的管理及研究工作。