曾藝 陳衍毅
1 引言(Introduction)
中等職業(yè)學校相當于高中階段的教育,與高等院校相比,學生年齡小,自我管理能力差,因此,學校為了與學生之間的交流更加緊密,利用好手機的短信收發(fā)功能,使之成為學校與學生之間溝通的紐帶已成為學校思考的問題[1]。
本文針對此種情況,提出了一種基于TC35i模塊的GPRS Modem與PC機相結(jié)合的解決方案。其核心是通過在數(shù)據(jù)庫管理系統(tǒng)中提取學生信息,然后將短信內(nèi)容與學生信息相結(jié)合,利用上位機的程序?qū)⑵滢D(zhuǎn)換為AT指令發(fā)送到GPRS Modem,通過GPRS Modem發(fā)送到學生的手機上。
2 系統(tǒng)設計(System design)
2.1 系統(tǒng)框架設計
本文設計的中職學校短信通主要由三個模塊組成。第一個模塊式基于TC35i的GPRS Modem,該模塊主要負責發(fā)送短信。第二個模塊是PC機,負責從數(shù)據(jù)庫中提取學生信息以及處理相關的業(yè)務邏輯并與通過串口通訊,將短信內(nèi)容與學生的基本信息相接合,轉(zhuǎn)換為AT指令傳給GPRS Modem。第三個模塊是數(shù)據(jù)庫,用以保存學生的基本信息。系統(tǒng)框架設計如圖1所示。
圖1 系統(tǒng)框架圖
Fig.1 System frame diagram
2.2 TC35i模塊
TC35i新版西門子工業(yè)GSM模塊是一個支持中文短信息的工業(yè)級GSM模塊,工作在EGSM900和GSM1800雙頻段,電源范圍為直流3.3~4.8V ,電流消耗休眠狀態(tài)為3.5mA,空閑狀態(tài)為25mA,發(fā)射狀態(tài)為300mA(平均),2.5A峰值;可傳輸語音和數(shù)據(jù)信號,通過接口連接器和天線連接器分別連接SIM卡讀卡器和天線。SIM電壓為3V/1.8V,TC35i的數(shù)據(jù)接口(CMOS電平)通過AT命令可雙向傳輸指令和數(shù)據(jù),可選波特率為300b/s~115kb/s,自動波特率為1.2kb/s~115kb/s。它支持Text和PDU格式的SMS,可通過AT命令或關斷信號實現(xiàn)重啟和故障恢復。對于本系統(tǒng)中涉及的GPRS Modem,內(nèi)部已經(jīng)包含了TC35i模塊,工作時只需將GSM的手機卡插入到GPRS Modem中并外接一個+5V的電源即可,與PC機之間采用USB口進行通訊[2]。
2.3 C#開發(fā)的上位機程序
C#是微軟公司發(fā)布的一種面向?qū)ο蟮摹⑦\行于.NET Framework之上的高級程序設計語言。C#是一種安全的、穩(wěn)定的、簡單的、優(yōu)雅的,由C和C++衍生出來的面向?qū)ο蟮木幊陶Z言,在繼承C和C++強大功能的同時去掉了一些它們的復雜特性。C#綜合了VB簡單的可視化操作和C++的高運行效率,以其強大的操作能力、優(yōu)雅的語法風格、創(chuàng)新的語言特性和便捷的面向組件編程的支持成為.NET開發(fā)的首選語言。C#是面向?qū)ο蟮木幊陶Z言。它使得程序員可以快速地編寫各種基于MICROSOFT .NET平臺的應用程序,MICROSOFT .NET提供了一系列的工具和服務來最大限度地開發(fā)利用計算與通訊領域[3]。因此,本系統(tǒng)利用C#開發(fā)了基于桌面的短信發(fā)送軟件。
上位機程序主要包括四個模塊。SMSLib模塊用于處理GPRS Modem和上位機的通訊以及短信編碼和相關指令的邏輯處理。Model模塊用于描述實體類,主要描述數(shù)據(jù)表與實體類之間的映射關系[4]。DAL模塊是數(shù)據(jù)處理模塊,實現(xiàn)了上位機與數(shù)據(jù)庫之間進行數(shù)據(jù)交換的功能。BLL模塊是業(yè)務邏輯處理模塊,用于處理程序的業(yè)務邏輯,例如,提取數(shù)據(jù)并轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu)等。同時負責銜接以上三個模塊。
2.4 SQL Server數(shù)據(jù)庫
本系統(tǒng)采用SQL Server 2000數(shù)據(jù)庫管理系統(tǒng)作為數(shù)據(jù)庫的載體。SQL Server 2000是Microsoft公司推出的SQL Server數(shù)據(jù)庫管理系統(tǒng),該版本繼承了SQL Server 7.0版本的優(yōu)點,同時又增加了許多更先進的功能。具有使用方便,可伸縮性好與相關軟件集成程度高等優(yōu)點[5]。
3 重點和難點(The emphasis and difficulties)
3.1 上位機與GPRS的通訊
因為本系統(tǒng)使用C#語言進開發(fā),而原本GPRS Modem所帶的開發(fā)包是由VC 6.0開發(fā)的動態(tài)鏈接庫SMS.dll。為了能夠在.net環(huán)境下使用該包,則必須通過使用C#的DllImport屬性二次封裝SMS.dll,進而重新建立一個SMSLib.dll。例如重新定義一個SMS連接函數(shù)。
[DllImport("sms.dll", EntryPoint = "Sms_Connection")]
public static extern uint Sms_Connection(string CopyRight, uint Com_Port, uint Com_BaudRate, out string Mobile_Type, out string CopyRightToCOM);
同時,利用Adapter模式和單例模式對原有的函數(shù)庫進行了二次封裝。利用Adapter模式可以使用戶通過一個統(tǒng)一的接口去調(diào)用與發(fā)送短信相關的函數(shù),而無須考慮指令轉(zhuǎn)換的細節(jié);單例模式使用戶在調(diào)用SMSLib時可以保證在同一時刻只有一個對象被調(diào)用,防止在計算機內(nèi)存中創(chuàng)建多個對象的情況,提高了程序的穩(wěn)定性并節(jié)約了內(nèi)存開銷。
3.2 上位機與數(shù)據(jù)庫之間的數(shù)據(jù)交換
數(shù)據(jù)庫中的客戶表保存的是學生資料,上位機中的程序有一個Student類與學生表對應。本文利用微軟封裝的Sqlhelper類對數(shù)據(jù)庫中的學生表進行訪問,使之能夠與學生類進行對應,進而顯示在程序中。學生表的字段見表1。
表1 學生表
Tab.1 Students table
除此之外,還需要與之關聯(lián)的專業(yè)表、年級表、班級表,如圖2所示。
圖2 數(shù)據(jù)庫表結(jié)構(gòu)圖
Fig.2 The database table structure diagram
3.3 短信發(fā)送過程中程序假死的解決辦法
因為GPRS Modem的處理速度和上位機的處理速度之間的差距,使得GPRS Modem在發(fā)送短信的同時,PC機的程序?qū)恢钡却?,進而造成計算機死機的假象。為了使計算機能夠在GPRS Modem發(fā)送短信的同時即不會造成死機的假象也能夠觀察短信發(fā)送的進度,本系統(tǒng)采用了異步多線程的方式進行短信發(fā)送。在用戶單擊“發(fā)送”按鈕后,系統(tǒng)將開辟一個新的異步線程,用于發(fā)送短信,進度條顯示發(fā)送的進度。通過該方法不僅提高了計算機的使用效率,而且更好地增強了軟件的客戶體驗程度。
4 結(jié)論(Conclusion)
本文設計的中職院校短信通系統(tǒng)由三部分構(gòu)成,分別是GPRS Modem、上位機模塊和數(shù)據(jù)庫。其中,上位機模塊采用分層結(jié)構(gòu)設計,各層之間的通訊透明度較高。該系統(tǒng)具有易操作,維護簡單,易于擴展等優(yōu)點??梢噪S時將學籍管理系統(tǒng)的學生信息導入到本系統(tǒng),并通過該系統(tǒng)對學生發(fā)送短信。本系統(tǒng)對加強學生管理,增進師生溝通方面有一定的幫助。
除此之外,本系統(tǒng)是桌面應用程序,后期將擴展該為B/S模式的網(wǎng)頁應用程序也是期待改進的方面。
參考文獻(References)
[1] 楊博,裘雪紅,劉春紅.基于C#語言的SMS應用[J].電腦與信息 技術,2004,(3):29-32.
[2] 李冉冉.基于Oracle的短信平臺的實現(xiàn)及應用[J].微計算機信息,2010,(27):83-85.
[3] 韓超.基于短信的客戶管理系統(tǒng)的設計與實現(xiàn)[J].電腦學習,
2006,(6):11-12.
[4] 劉韻,等.基于Web服務的煤礦安全管理短信平臺的設計[J].
煤礦安全,2010,(7):100-102.
[5] Brad Maiani James Still,等著.康博,譯.Visual C#.NET編程經(jīng)典.北京:清華大學出版社,2002.
作者簡介:
曾 藝(1980-),女,碩士,講師.研究領域:軟件工程、電子商務教學.
陳衍毅(1972-),男,本科,講師.研究領域:計算機、電子商務教學.