• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于GSM的學(xué)生成績發(fā)布系統(tǒng)的設(shè)計

      2014-10-21 14:56:52李育陽
      科技視界 2014年36期

      李育陽

      【摘 要】為了快速、低成本地實現(xiàn)成績信息發(fā)布,本文設(shè)計了一套基于PC機、GSM硬件設(shè)備的短消息成績發(fā)布系統(tǒng),在實際使用中,節(jié)約了大量人力、物力。

      【關(guān)鍵詞】GSM;PDU;AT;成績發(fā)布

      0 引言

      在獨立學(xué)院中,為了進一步“以學(xué)生為本”,做好服務(wù),常需要將成績通知其家長,特別是學(xué)業(yè)預(yù)警等信息更需要及時通知到家長,以期學(xué)校與家長共同努力督促學(xué)生順利完成學(xué)業(yè)。現(xiàn)在各學(xué)院基本上都是采用Web網(wǎng)上查詢成績和通過郵寄信件通告家長。Web 查詢的優(yōu)勢是速度快,成本低,省時省力,但缺陷也很明顯,就是受控于硬件和網(wǎng)絡(luò),這在一些條件較差地區(qū)基本上很難實現(xiàn),也不能體現(xiàn)服務(wù)的主動性;而郵寄信件存在著成本過高、耗費人力較多等缺點。隨著通信技術(shù)的發(fā)展和手機的普及,使用短信服務(wù)(Short Message Service, SMS)發(fā)布成績信息具有了實現(xiàn)的環(huán)境條件。

      實現(xiàn)短消息通訊的途徑主要有:通過移動網(wǎng)關(guān)(短信中心SMSC)發(fā)送短消息,到相關(guān)電信部門申請網(wǎng)關(guān),不需要附加的硬件,適天大型的網(wǎng)絡(luò)通訊公司;利用計算機通過AT指令集控制GSM硬件設(shè)備(手機或短信貓GSM Modem)發(fā)送短消息,適合于中小項目應(yīng)用;通過服務(wù)提供商SP接入進行短信發(fā)送,對網(wǎng)站及網(wǎng)絡(luò)的依賴性較強,較少應(yīng)用于項目開發(fā)。對于學(xué)生成績發(fā)布,具有簡單、靈活,對外界依賴很小的計算機控制GSM設(shè)備發(fā)送短消息的方式最為適合。

      1 系統(tǒng)框架

      系統(tǒng)主要由短消息發(fā)送服務(wù)器、短消息發(fā)送設(shè)備(手機或GSM Modem)組成。其中短消息發(fā)送服務(wù)器與成績管理數(shù)據(jù)庫服務(wù)器通過網(wǎng)絡(luò)或數(shù)據(jù)文件達到共享數(shù)據(jù)的目的,例如EXCEL、DBF等數(shù)據(jù)文件,這樣使成績發(fā)布系統(tǒng)具有良好的獨立性和擴充性。

      在此系統(tǒng)中,短消息發(fā)送設(shè)備通過RS232、RS485或USB連接線與短消息發(fā)送服務(wù)器的串口相聯(lián),短消息發(fā)送服務(wù)器將從成績管理數(shù)據(jù)庫中獲得的成績數(shù)據(jù)進行組合、打包生成適合短消息發(fā)送設(shè)備發(fā)送的PDU數(shù)據(jù)包,通過AT指令集寫入串口緩存,由短消息發(fā)送設(shè)備通過GSM網(wǎng)絡(luò)將該PDU數(shù)據(jù)包發(fā)送出去,通過收到消息的家長或?qū)W生的手機進行解碼顯示。具體如圖1所示。

      圖1 基于SMS的學(xué)生成績發(fā)布系統(tǒng)框架

      2 中文短消息的發(fā)送原理

      2.1 PDU編碼

      發(fā)送短信息有Block 模式、PDU(Protocol Data Unit)模式Text文本模式,后兩種基于AT指令集。Block模式因其必須基于制造商提供的驅(qū)動進行開發(fā),Text 模式只適于發(fā)送英文信息,可以使用任何字符集的PDU模式最適合成績發(fā)布。

      PDU串表面上是一串ASCII碼,由0-9、A-F這些數(shù)字和字母組成。它們是8位字節(jié)的十六進制數(shù),或者BCD碼十進制數(shù)。PDU串不僅包含可顯示的消息本身,還包含很多其他信息,如SMS服務(wù)中心號碼、目標(biāo)號碼、回復(fù)號碼、編碼方式和服務(wù)時間等。發(fā)送和接收的PDU串結(jié)構(gòu)是不完全相同的[1-2]。下面僅以發(fā)送信息編碼來舉例說明:SMSC號碼是+8613800280500,對方號碼是13989191641,消息內(nèi)容是“Hello!”。從手機發(fā)出的PDU串可以是:08 91 68 31 08 20 08 F0 11 00 0D 91 68 31 89 19 19 46 F1 00 00 00 06 C8 32 9B FD 0E 01,對照規(guī)范,以上數(shù)據(jù)信息的含義見表1。

      表1 PDU串?dāng)?shù)據(jù)信息說明

      2.2 AT指令

      AT指令是ETSI規(guī)范的、用于在電腦上對連接在串口上的手機進行操作控制的控制命令集合。用戶可以通過AT指令進行呼叫、短信、電話本、數(shù)據(jù)業(yè)務(wù)、傳真等方面的控制。其格式一般以“AT”開頭,命令后面加上“=”和執(zhí)行參數(shù)表示執(zhí)行某種操作,如果后綴為“?”即構(gòu)成讀取命令,用于列舉出當(dāng)前設(shè)置,例如“at+csca?”則獲得當(dāng)前短消息中心號碼。本系統(tǒng)中用到的主要命令見表2所示[3]:

      表2 常用AT指令

      3 系統(tǒng)實現(xiàn)

      因系統(tǒng)內(nèi)的成績數(shù)據(jù)不需要存儲歷史數(shù)據(jù),數(shù)據(jù)量較小,所以數(shù)據(jù)庫使用ACCESS,系統(tǒng)可以不依賴網(wǎng)絡(luò),具有良好的獨立性。終端開發(fā)工具使用面向?qū)ο蟮目梢暬_發(fā)工具Delphi。對于串口通信,Delphi可以使用第三方控件Spcomm來完成。Spcomm控件具有豐富的與串口通信密切相關(guān)的屬性及事件,提供了對串口的各種操作,且編程簡單、通用性強、可移植性好。

      在Delphi7.0中安裝Spcomm串口通信控件的方法為:選擇Delphi7.0的“Component”菜單,點擊“Install Component...”菜單項,然后在彈出的Into existing package屬性頁中Unit file name輸人框中選擇Spcomm.pas文件,單擊兩次 “OK”按鈕后,就可以將Spcomm控件安裝到Delphi7.0的System組件頁上。

      Spcomm控件具有以下基本屬性、方法、事件:①CommName屬性,計算機串口端口號的名字;②Parity屬性:奇偶校驗位信息;③BaudRate:設(shè)定支持串口通信用的波特率;④SendDataEmpty屬性:表示發(fā)送緩存是否為空;⑤StartComm方法:用來打開通信串口,開始通信;⑥StopComm方法:用來停止通信串行口的所有進程,關(guān)閉串口;⑦WriteCommData(pDataToWrite:PChar;dwSizeofDataToWrite:Word)方法是帶有布爾型返回值的函數(shù),該函數(shù)通過一個寫線程向串行口輸出緩沖區(qū)發(fā)送數(shù)據(jù);⑧OnReceiveData(Buffer:Pointer;BufferLength:Word) 事件:當(dāng)輸入緩沖區(qū)收到數(shù)據(jù)時,該事件被觸發(fā),從而對串口收到的數(shù)據(jù)進行處理。

      基于GSM的學(xué)生成績發(fā)布系統(tǒng)框圖如圖2所示,其中利用Spcomm串口控件通過短消息實現(xiàn)成績發(fā)布的主要源代碼:

      procedure SendScore;

      var

      SendScore,StrScore : String;

      begin

      comScore.StartComm ;//打開串口

      comScore.writecommdata(pchar('AT'+#13#10),length('AT'));

      comScore.writecommdata(pchar('at+csca?'+#13#10),length(' at+csca?'));//獲取短消息中心號

      comScore.writecommdata(pchar(' at+csms=1'+#13#10),length(' at+csms=1'));//選擇短消息業(yè)務(wù)

      comScore.writecommdata(pchar(' at+cmgf=0'+#13#10),length(' at+cmgf=0'));//選擇短消息使用PDU模式

      ……

      SendScore:=PduScore(StrScore);{將成績字符串StrScore經(jīng)過PDU編碼,例如短信中心號為:13800280500,成績?yōu)楦叩葦?shù)學(xué):88;政治:90.,發(fā)送給移動電話13989191641,則返回SendScore”0891683108200505F011000B813189191946190008A91C9AD87B4965705B66003A00380038003B653F6CBB003A00390030002E”,長度為42}

      ……

      comScore.writecommdata(pchar('at+cmgs=42'+#13#10),length(' at+cmgs=42'));//

      comScore.writecommdata(pchar(#62+SendScore+#26),length(SendScore)+2);//具體短消息內(nèi)容以>命令開始,結(jié)束以Ctrl+Z結(jié)束

      ……

      End;

      4 總結(jié)

      目前,該系統(tǒng)在期末成績發(fā)布工作中已成功使用,平均每小時可以發(fā)布600名學(xué)生成績信息,達到了很好的效果。與郵寄信件相比,節(jié)省了人力、物力,實現(xiàn)了無紙辦公,同時獲得了Web網(wǎng)絡(luò)發(fā)布的及時與快捷的優(yōu)點,也為學(xué)院樹立了良好的服務(wù)形象。

      【參考文獻】

      [1]龔建偉.Visual C++/Turbo C串口通信編程實踐[M].北京:電子工業(yè)出版社,2004,10:266-286.

      [2]雷勇.PDU分析與手機短信控件開發(fā)[J].電力系統(tǒng)通信,2004,24(12):23-261.

      [3]Siemens Corporation.AT Command Set Siemens Engines Version 03.10[S].2002.

      [責(zé)任編輯:楊玉潔]

      图们市| 聂荣县| 岳阳市| 云南省| 桐乡市| 磐石市| 邵武市| 额济纳旗| 襄樊市| 永登县| 石棉县| 莱芜市| 汶上县| 庆阳市| 沛县| 阳城县| 泽州县| 土默特右旗| 淳化县| 左云县| 那曲县| 房产| 沙雅县| 潞西市| 达州市| 大宁县| 文化| 都安| 阿坝县| 珠海市| 淄博市| 丹巴县| 永新县| 漳平市| 肥城市| 阿拉善盟| 天镇县| 松潘县| 长兴县| 平塘县| 梅河口市|