〔摘 要〕無線情報(bào)服務(wù)系統(tǒng)的重要支撐技術(shù)是計(jì)算機(jī)手機(jī)短信收發(fā)技術(shù),本文提出了基于ActivX控件及GSM Modem的快捷技術(shù)解決方案,給出了相應(yīng)的短信收發(fā)程序?qū)嵗?/p>
〔關(guān)鍵詞〕短信;ActiveX;GSM Modem
〔中圖分類號(hào)〕TP311.52 〔文獻(xiàn)標(biāo)識(shí)碼〕A 〔文章編號(hào)〕1008-0821(2009)07-0014-03
Research on Technology of Developing Wireless Intelligence Services SystemLi Yong Song Jing Xing Yue
(Commercial College,Mianyang Normal University,Mianyang 621000,China)
〔Abstract〕This paper analyzed the solutions of developing the wireless query system of library and information,introduced the technology of developing the wireless query system of library and information based on ActivX Control and GSM modem.Finally,it presented the example to realize the program.
〔Key words〕short messages;ActiveX;GSM Modem
手機(jī)短信服務(wù)自推出以來,因其發(fā)送方便、溝通即時(shí)、覆蓋范圍廣、信息到達(dá)率高、使用成本低、點(diǎn)對(duì)點(diǎn)通信等優(yōu)點(diǎn),日益成為人們?nèi)粘I钪衅毡椴捎玫耐ㄐ欧绞?,并廣泛應(yīng)用到氣象、股市、系統(tǒng)監(jiān)測等眾多領(lǐng)域。圖書情報(bào)機(jī)構(gòu)也可借助手機(jī)短信建立無線情報(bào)服務(wù)系統(tǒng),推出諸如:書目查詢、在借情況查詢、新書通報(bào)、到期提醒、預(yù)約預(yù)借到書通知、催還通知等無線情報(bào)服務(wù),不但能提高情報(bào)信息利用率,又能方便情報(bào)用戶、實(shí)現(xiàn)主動(dòng)及時(shí)服務(wù),提升工作效率,甚至可以作為增值服務(wù)來源,提高圖書情報(bào)機(jī)構(gòu)的經(jīng)濟(jì)效益和社會(huì)效益,提升圖書情報(bào)機(jī)構(gòu)服務(wù)品牌?;谑謾C(jī)短信的無線情報(bào)服務(wù)系統(tǒng)必須做到及時(shí)互動(dòng),當(dāng)系統(tǒng)收到讀者發(fā)來的短信,能智能分析短信內(nèi)容,在情報(bào)數(shù)據(jù)庫中檢索出相應(yīng)信息,并以短信形式發(fā)送到情報(bào)用戶手機(jī)。該系統(tǒng)的核心支撐技術(shù)是計(jì)算機(jī)手機(jī)短信收發(fā)技術(shù),本文將詳細(xì)解析該技術(shù),并給出完整程序?qū)嵗?/p>
1 計(jì)算機(jī)的手機(jī)短信收發(fā)技術(shù)解析
目前在計(jì)算機(jī)上實(shí)現(xiàn)手機(jī)短信收發(fā)的方案主要有3種:
方案1:專線接入電信運(yùn)營商的短信網(wǎng)關(guān)。此方案不需硬件投入,但需要到電信運(yùn)營商申請(qǐng)短信網(wǎng)關(guān)接口,這對(duì)一般的圖書情報(bào)機(jī)構(gòu)不太現(xiàn)實(shí)。
方案2:利用短信服務(wù)網(wǎng)站實(shí)現(xiàn)短信收發(fā),其系統(tǒng)架構(gòu)如圖1所示。比如新浪、網(wǎng)易都提供這項(xiàng)服務(wù)。此方案實(shí)現(xiàn)起來較簡單,也不需要投入多少資源,但是對(duì)于提供服務(wù)的網(wǎng)站依賴性太強(qiáng),而且由于這些服務(wù)商同時(shí)向許多客戶提供服務(wù),經(jīng)常會(huì)出現(xiàn)短信通道擁擠的情況,無法滿足無線情報(bào)服務(wù)系統(tǒng)及時(shí)互動(dòng)的要求。
圖1 短信收發(fā)方案2示意圖
方案3:基于GSM MODEM在計(jì)算機(jī)上收發(fā)短信。只需購置1個(gè)GSM MODEM或內(nèi)置GSM MODEM的手機(jī)(比如西門子3508手機(jī)),用相應(yīng)的數(shù)據(jù)線連接到計(jì)算機(jī),然后再編寫相應(yīng)的軟件系統(tǒng)即可,其系統(tǒng)架構(gòu)如圖2所示。
圖2 短信收發(fā)方案3示意圖
筆者認(rèn)為,第三種方案只需很少的硬件投入,即可構(gòu)建既不受制于電信運(yùn)營商,也不依賴于短信服務(wù)網(wǎng)站、完全自我控制、不存在短信擁擠的獨(dú)立短信系統(tǒng),是性價(jià)比最高的短信應(yīng)用解決方案,而且1臺(tái)電腦有2個(gè)串口和多個(gè)USB口(可用相應(yīng)的數(shù)據(jù)線驅(qū)動(dòng)程序模擬成串口),可以連接多個(gè)GSM MODEM,短信系統(tǒng)的靈活性和可擴(kuò)展性得到很好的保障。方案3非常適合圖書情報(bào)機(jī)構(gòu)建立經(jīng)濟(jì)實(shí)用、靈活快捷的無線情報(bào)服務(wù)系統(tǒng)。
2 無線情報(bào)服務(wù)系統(tǒng)支撐技術(shù)的具體實(shí)現(xiàn)
相關(guān)研究文獻(xiàn)均是以短信AT指令+PDU編碼+串口編程來實(shí)現(xiàn)方案3所示的手機(jī)短信收發(fā),開發(fā)難度高、周期長、系統(tǒng)維護(hù)困難。筆者從事計(jì)算機(jī)短信系統(tǒng)開發(fā)多年,將AT指令、PDU編碼和串口編程細(xì)節(jié)封裝為ActiveX控件——SmsControl.ocx(下載地址:http:∥jgx.mnu.cn/xjdxw/SmsControl.ocx),該控件適用于所有面向?qū)ο缶幊陶Z言,只需簡單調(diào)用SmsControl短信控件的方法和事件就可以完整實(shí)現(xiàn)所有短信收發(fā)功能,使開發(fā)者可以避開短信收發(fā)底層細(xì)節(jié),集中精力完善無線情報(bào)服務(wù)系統(tǒng)的具體應(yīng)用功能,從而大幅度降低開發(fā)難度、提高開發(fā)效率,實(shí)現(xiàn)無線情報(bào)服務(wù)系統(tǒng)的快捷構(gòu)建。
2.1 控件屬性
(1)nCommPort:串口號(hào)屬性,取值為1,2,3等整數(shù),編程時(shí)必須設(shè)置成手機(jī)所連接的串口號(hào)。
(2)nBaudRate:串口波特率屬性,取值為2400,9600,19200,38400等整數(shù),西門子手機(jī)應(yīng)設(shè)置為19200,其它具體手機(jī)可參見手機(jī)說明書或自行測試。
(3)strMSCA:短信中心號(hào)碼,類型為字符串,必須在此輸入手機(jī)運(yùn)營商的短信中心號(hào)碼,移動(dòng)手機(jī)卡必須輸入中國移動(dòng)短信中心號(hào)碼,聯(lián)通手機(jī)卡必須輸入中國聯(lián)通短信中心號(hào)碼,默認(rèn)設(shè)置的是四川綿陽移動(dòng)短信中心的號(hào)碼:+8613800816500,通過咨詢客服電話就可獲得當(dāng)?shù)厥謾C(jī)運(yùn)營商的短信中心號(hào)碼。
2.2 控件方法
(1)short OpenComm()
功能:打開串口,并且檢測該串口是否連接了手機(jī)設(shè)備(手機(jī)或GSM MODEM)。
返回值:0——串口打開成功;
1——串口不存在或存在但已經(jīng)被別的程序占用;
2——串口沒有接符合要求的手機(jī);
注意事項(xiàng):調(diào)用該方法之前必須正確設(shè)置串口號(hào)、波特率、短信中心號(hào)碼屬性。
(2)long SendMSG(LPCTSTR phonenumber,LPCTSTR msg):
功能:發(fā)送短信。
參數(shù)說明:phonenumber——字符串指針,其值應(yīng)為對(duì)方手機(jī)號(hào)碼;
msg——字符串指針,其值為要發(fā)的短信內(nèi)容;
返回值:大于0——成功發(fā)出短信;
小于等于0——短信發(fā)送失敗;
注意事項(xiàng):參數(shù)msg最多為70個(gè)漢字,每個(gè)英文字符(無論全角半角)均算1個(gè)漢字。
(3)short ReadMsgForVB(BSTR*pbstrMSCA,BSTR*pbstrOA,STR*pbstrMSG,BSTR*pbstrTIMESTAMP)
功能:讀取手機(jī)卡收到的短信,用于VB、VFP等語言。
參數(shù)說明:pbstrMSCA——對(duì)方短信中心號(hào)碼;
pbstrOA——對(duì)方發(fā)信號(hào)碼;
pbstrMSG——收到的短信內(nèi)容;
pbstrTIMESTAMP——時(shí)間郵戳:(年年月月日日時(shí)時(shí)分分秒秒××)格式的字符串?!痢帘硎緯r(shí)區(qū),一般情況下可以不管。
返回值:等于0——成功讀到短信;
小于0——沒有讀到短信;
2.3 控件事件
OnRcvNewMsg——收到新短信事件,每次收到新短信時(shí)觸發(fā)該事件。可以在事件代碼中調(diào)用收短信方法ReadMsgForVB()來讀取收到的短信。
3 基于控件和GSM Modem的短信收發(fā)程序?qū)嵗?/p>
下面以Visual Foxpro 7.0為例,演示SmsControl短信控件的應(yīng)用。
首先將SmsControl.ocx控件添加到表單控件工具箱里。操作步聚是:依次點(diǎn)擊菜單欄“工具”→“選項(xiàng)”→“控件”→“瀏覽”,正確添加后的界面如圖3所示:
圖3 SmsControl控件添加成功界面添加成功后,點(diǎn)擊表單控件工具箱的“”查看類按鈕,再點(diǎn)“ActiveX控件”,就會(huì)看到“”控件工具按鈕,這就是SmsControl短信控件,利用這個(gè)按鈕繪制成如圖4所示的表單:圖4 短信收發(fā)表單
接下來,在Form1的Init事件里寫入如下代碼,實(shí)現(xiàn)在表單創(chuàng)建時(shí)打開與手機(jī)相連的串口:
ThisForm.MySms.NCommPort=3 設(shè)置手機(jī)連接的串口號(hào)
ThisForm.MySms.StrMSCA=′+8613800816500′ 設(shè)置短信中心號(hào)碼
ThisForm.MySms.NbaudRate=19200 設(shè)置串口波特率
Flag=ThisForm.MySms.OpenComm() 打開設(shè)置的串口
IF Flag=0
MESSAGEBOX(′短信發(fā)送設(shè)備連接成功!′)
ELSE
MESSAGEBOX(′連接短信發(fā)送設(shè)備失敗,不能收發(fā)短信!′)
ENDIF
在“發(fā)送短信\"按鈕的click事件里寫入如下代碼,實(shí)現(xiàn)短信發(fā)送的功能:
sxsj=ThisForm.Text1.Value 取得收信手機(jī)號(hào)碼
dxlr=ALLTRIM(ThisForm.Edit1.Value) 取得發(fā)送的短信內(nèi)容
Flag=ThisForm.MySms.SendMSG(sxsj,dxlr) 調(diào)用SmsControl控件的發(fā)送短信方法
IF Flag>0 短信發(fā)送成功時(shí)返回值大于0
MESSAGEBOX(′向【′+sxsj+′】成功發(fā)送短信!′)
ELSE 短信發(fā)送失敗時(shí)返回值小于等于0
MESSAGEBOX(′向【′+sxsj+′】發(fā)送短信失敗!′)
ENDIF
在SmsControl短信控件MySms的OnRcvNewMsg事件里寫入如下代碼,實(shí)現(xiàn)接收短信功能:
Flag=ThisForm.MySms.ReadMsgForVB(@msca,@fxh,@dxlr,@fxsj)
*msca-對(duì)方短信中心號(hào)碼;fxh-對(duì)方發(fā)信號(hào)碼;dxlr-短信內(nèi)容;fxsj-對(duì)方發(fā)信時(shí)間
IF Flag=0 返回值為0,表示成功讀出收到的短信
ThisForm.Edit2.Value=′收到來自【′+fxh+′】的短信,短信內(nèi)容為【′+fxlr+′】′
ENDIF
現(xiàn)在,只要把GSM MODEM連接到電腦的COM3口上,運(yùn)行這個(gè)表單,就可以實(shí)現(xiàn)計(jì)算機(jī)的手機(jī)短信收發(fā)了。只要利用數(shù)據(jù)庫檢索技術(shù),在這個(gè)程序手機(jī)短信收發(fā)功能基礎(chǔ)上加入情報(bào)服務(wù)模塊,就可以快捷構(gòu)建出無線情報(bào)服務(wù)系統(tǒng)。
4 技術(shù)展望
毫無疑問,基于GSM Modem的無線情報(bào)服務(wù)系統(tǒng)將為圖書情報(bào)機(jī)構(gòu)的用戶帶來優(yōu)良的無線情報(bào)服務(wù)體驗(yàn),但是還存在一定的局限:短信只支持文本,無法傳輸圖像或音頻信息,短信長度受限,每條短信不能超過140個(gè)字節(jié),對(duì)長信息需要拆分成多條短信多次發(fā)送。這些局限可望在短信的演進(jìn)技術(shù)MMS—(Multimedia Messaging Service)多媒體信息服務(wù)中得到解決,目前逐漸流行的手機(jī)“彩信”即屬于MMS。MMS支持圖像、卡通、交互式視頻等多媒體信息,可以把文本、聲音、圖像、視頻等集成在一起,從而實(shí)現(xiàn)更加豐富多彩的多媒體無線情報(bào)服務(wù)系統(tǒng)。
參考文獻(xiàn)
[1]張君,高福祥,謝鋼鋒,等.短消息業(yè)務(wù)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用,2003,(6):262-264.
[2]宣彩平,王皓,鄒國良.利用GSM無線模塊發(fā)送短消息[J].計(jì)算機(jī)應(yīng)用,2004,(5):148-150.
[3]李壽林,張鷹,李秀萍.利用GSM無線模塊收發(fā)短消息[J].計(jì)算機(jī)與數(shù)字工程,2005,(7):79-81.
[4]陳冬林,譚云蘭.基于GSM短消息的編碼方法及其編程實(shí)現(xiàn)[J].計(jì)算機(jī)與現(xiàn)代化,2006,(3):115-117.
[5]王澤賢.手機(jī)短消息在圖書館的應(yīng)用及其實(shí)現(xiàn)的關(guān)鍵技術(shù)[J].現(xiàn)代情報(bào),2004,(8):198-200.