侯洪莉 付東旭 楊曉玲 陳耿
摘要:雖然大多數(shù)企事業(yè)單位建立了內(nèi)部管理信息系統(tǒng)或電子郵件系統(tǒng),基本實現(xiàn)了內(nèi)部信息及時交流。但是,員工不會一直關(guān)注內(nèi)部信息系統(tǒng)的通知,以及在外出途中、參加會議等特殊情況下,無法使用內(nèi)部管理系統(tǒng)時,一些內(nèi)部信息無法及時傳達。在該文中提出了一個基于短信的通知發(fā)送軟件,采用SIM800C通信模塊,能單次或批量生成并發(fā)送短信息,具有較好的即時性和保密性。該軟件使用C#開發(fā),實現(xiàn)軟件控制SIM800C模塊按要求發(fā)送短信,能預(yù)約發(fā)送時間,并記錄發(fā)送狀態(tài),支持對發(fā)送失敗的信息進行延時重發(fā)。該軟件具有方便、實惠等特點,能滿足各種中小企業(yè)發(fā)布重要信息的需求。
關(guān)鍵詞:SIM800C;短信;串口;AT指令
中圖分類號:TP311.1? ? ? 文獻標識碼:A
文章編號:1009-3044(2021)02-0042-03
Abstract: Although most enterprises and institutions have established their internal MIS or e-mail system, basically realizing the timely exchange of internal information, employees will not always pay attention to the messages in the internal MIS. Some internal information cannot be delivered in time when employees are unable to use the internal MIS in special circumstances such as on the way out and attending meetings. A software for delivering SMS, which uses SIM800C communication module to delivering message one-by-one or in batch, is proposed in this article, and it has the advantage of timeliness and reliability. The software is developed with C#. It manipulates SIM800C module to send short messages according to the requirements, and it records the sending time and the sending status. It can deliver the failed messages by delayed retransmission. The software is convenient and affordable, which can meet the needs of various small and medium-sized enterprises to release important information.
Key words: SIM800C; SMS; serial port; AT instructions
1 背景
目前,很多的中小型企業(yè)單位都有自己的管理系統(tǒng)或電子郵件系統(tǒng),用于內(nèi)部傳達通知信息、對外聯(lián)絡(luò)客戶,但是存在信息發(fā)送不一定能及時被查閱的問題。員工可能因為出差或參加會議等特殊情況,無法隨時隨地登錄內(nèi)部管理系統(tǒng)進行聯(lián)絡(luò),而電話通知效率較低,存在干擾正常工作的問題,不適合作為通知傳達的手段。為解決這些問題,在本文中提出一個基于SIM800C的短信發(fā)送軟件,可以為客戶提供方便、穩(wěn)定、可靠、安全的短信服務(wù),較低的成本也減輕了中小企業(yè)的資金壓力,具有較強的實用性。
此前,王會東在保密宣教短信平臺的設(shè)計與實現(xiàn)中,針對保密工作的實際需求,解決企事業(yè)單位保守國家秘密的宣傳教育等做了研究[1],在.NET平臺上通過串口控制GSM Modem實現(xiàn)短信發(fā)送控制功能,滿足了保密宣教工作的需求。呂延崗提出了一種基于GSM短信貓的串口通信的軟、硬件系統(tǒng)總體結(jié)構(gòu)[2]。受到前人思路的啟發(fā)并針對中小型企事業(yè)單位的實際需要,本文完成了“消息通”短信發(fā)送軟件的設(shè)計與實現(xiàn),可按需求向客戶和公司員工發(fā)送通知短信,進一步實現(xiàn)了通過預(yù)定模板生成批量投送短信和發(fā)送失敗的短信再次發(fā)送等功能。
2 需求分析
短信作為一種信息傳遞方式以其即時、廉價等突出優(yōu)點,引起了各行各業(yè)的普遍關(guān)注和重視。若依托現(xiàn)有的信息系統(tǒng)搭建短信平臺可以有效地解決信息傳達難的問題,對接收者的正常工作幾乎不會產(chǎn)生干擾,且不與互聯(lián)網(wǎng)直接連接,具有較好的安全性和私密性。
本系統(tǒng)開發(fā)的是一個面向中小型企業(yè)單位的業(yè)務(wù)管理系統(tǒng)。項目主要由兩大部分組成:1)后端管理子系統(tǒng)和數(shù)據(jù)庫;2)短信發(fā)送子系統(tǒng)。
后端管理子系統(tǒng)要滿足如下技術(shù)要求:
1)方便的用戶組織機構(gòu)信息管理,維護整個機構(gòu)的員工通信資料;
2)短信模板管理:維護短信模版,生成不同的短信模版,以便生成具體的短信;
3)短信生成管理:選擇需要接收短信的人員,選擇短信模版,自動生成具體的短信,并把短信寫入數(shù)據(jù)庫中,等待發(fā)送,數(shù)據(jù)庫使用MySQL關(guān)系數(shù)據(jù)庫系統(tǒng);
4)按時間區(qū)間、發(fā)送部門統(tǒng)計短信發(fā)送量,以便統(tǒng)計工作量等需要。
短信發(fā)送子系統(tǒng)需要滿足如下要求:
1)利用C#串口編程技術(shù)與短信硬件模塊進行通信,實現(xiàn)短信發(fā)送,更新短信數(shù)據(jù)狀態(tài);
2)利用異步委托技術(shù)來實現(xiàn)異步短信連續(xù)發(fā)送,以提高短信發(fā)送效率;
3)使用SIM800C模板和AT指令來實現(xiàn)短信的發(fā)送。
該系統(tǒng)主要是為了滿足公司與員工、客戶之間方便且準確的信息交流需求而設(shè)計,主要的用戶為系統(tǒng)運維人員,主要功能模塊整理如圖1所示。
3 系統(tǒng)設(shè)計
系統(tǒng)的基本業(yè)務(wù)流程包括:根據(jù)工作需要,從組織機構(gòu)列表中選擇需要投送信息的人員,并選擇合適的短信模板填寫通知信息,生成短信信息保存在主機數(shù)據(jù)庫中,然后通過AT指令控制通信模塊將短信文本發(fā)送給目標用戶并返回發(fā)送結(jié)果。主機前端軟件可以查閱短信投送的狀態(tài)和統(tǒng)計結(jié)果等,并可進一步提供短信服務(wù)接口與其他業(yè)務(wù)系統(tǒng)進行交互。
根據(jù)業(yè)務(wù)流程分析,我們得到系統(tǒng)總體結(jié)構(gòu)如圖2所示。
3.1 硬件模塊
SIM800C是一款四頻GSM/GPRS模塊,為城堡孔封裝。其性能穩(wěn)定,外觀小巧,性價比高,能滿足客戶的多種需求,工作頻率為GSM/GPRS850/900/1800/1900MHz,可以低功耗實現(xiàn)語音、SMS和數(shù)據(jù)信息的傳輸。
3.2 常用AT指令
AT指令是應(yīng)用于終端設(shè)備與PC端之間的連接與通信的指令。每個AT命令行中只能包含一條AT指令;對于AT指令的發(fā)送,除AT兩個字符外,最多可以接收1056個字符的長度(包括最后的空字符)。系統(tǒng)所使用的重要指令如表1所示[3-5]。
3.3 SIM800C短信發(fā)送控制流程
主機控制SIM800C模塊發(fā)送短信的主要流程為:1)通過串口發(fā)送AT指令,完成同步,SIM800C反饋OK信息;2)主機發(fā)送指令設(shè)置PDU格式;3)設(shè)置中文短信模式;4)發(fā)送目標手機號和短信正文,并通知通信模塊發(fā)送,主機進入監(jiān)聽反饋狀態(tài);5)成功發(fā)送短信后,SIM800C會反饋發(fā)送結(jié)果給主機,主機從數(shù)據(jù)庫中讀取新的短信繼續(xù)發(fā)送。整個發(fā)送控制流程如圖3所示。
3.4 數(shù)據(jù)庫設(shè)計
本系統(tǒng)采用了關(guān)系型數(shù)據(jù)庫存儲所需數(shù)據(jù),設(shè)計遵循第三范式要求,能夠充分保證數(shù)據(jù)的完整性和一致性,為系統(tǒng)所需的增、刪、改、查等功能提供了規(guī)范的數(shù)據(jù)持久化保存保證。本系統(tǒng)的總體E-R模型如圖4所示。
4 系統(tǒng)實現(xiàn)
4.1 組織機構(gòu)和人員管理
利用TreeView控件來實現(xiàn)組織機構(gòu)的管理和維護,能很好地反映組織機構(gòu)的層級關(guān)系,并且能快速查找到需要的組織機構(gòu)。組織機構(gòu)樹的節(jié)點顯示組織機構(gòu)名,節(jié)點的Value綁定組織機構(gòu)的編碼,利用TreeView控件的AfterSelect事件能夠提取到選擇的組織機構(gòu)的編碼,以便進行與當(dāng)前組織機構(gòu)相關(guān)的人員搜索等。
該組織機構(gòu)下的人員利用一個DataGridView控件來實現(xiàn),獲取選中的樹結(jié)點,使用TreeView的AfterSelect事件提取出節(jié)點的名字,再根據(jù)這個關(guān)鍵字數(shù)據(jù)庫里查詢數(shù)據(jù),將結(jié)果添加到DataGridView控件中。組織機構(gòu)和人員管理的實現(xiàn)效果結(jié)果如圖5所示。
根據(jù)工作需要,運維人員可以對內(nèi)部機構(gòu)和人員進行增加、編輯、刪除等維護操作,包括調(diào)整崗位和手機號碼修訂等。
當(dāng)員工離職或客戶終止業(yè)務(wù)后,可以進行人員刪除:選中要刪除的人員,右鍵選擇刪除即可。
4.2 基于模板批量生成待投送短信
本系統(tǒng)設(shè)計了兩種信息發(fā)布模板(會議模板和一般通知模板)供系統(tǒng)運維人員進行選擇,并利用TabView控件的響應(yīng)來控制模板的切換。根據(jù)會議通知信息的準確性需求,會議模板在通知模塊的基礎(chǔ)上增加了時間和地點,通過占位符設(shè)置填寫的信息,點擊確定按鈕時信息將被拼接成一個完整的字符串通過Insert操作插入數(shù)據(jù)庫的發(fā)送表中?;谀0迳啥绦诺牟僮魅鐖D7所示。
4.3 SIM800C通信模塊的啟動控制
系統(tǒng)能夠根據(jù)需要隨時啟動或停止SIM800C通信模塊。用戶首先需要打開連接SIM800C模塊的串口以便主機發(fā)送控制信息和短信信息、接收通信模塊反饋信息,打開串口的左邊下拉框可以對串口進行選擇,也可以使用軟件自動讀出所占用的串口,然后點擊啟動發(fā)送即可。停止發(fā)送按鈕和掛起線程按鈕可以終止正在進行的操作。
5 結(jié)束語
本文闡述了一個基于SIM800C的短信投送系統(tǒng)的設(shè)計與實現(xiàn)的主要方法。該系統(tǒng)通過軟、硬件的相互結(jié)合實現(xiàn)逐條或批量的短信發(fā)送,減少人力資源的浪費。同時,該系統(tǒng)利用SMS進行信息投送,避免了信息與互聯(lián)網(wǎng)的交互,保證了信息的安全性和私密性;接收者可以隨時隨地接收信息,保證了信息的及時性。經(jīng)過試用,該系統(tǒng)能夠進行高效率且低成本的信息交互,可以滿足中小企業(yè)對信息傳達的需求,具有較高的實用價值。
參考文獻:
[1] 王會東.保密宣教短信平臺的設(shè)計與實現(xiàn)[J].電子技術(shù)與軟件工程,2017(14):64-65.
[2] 呂延崗,任曉鵬,張紅瑞,等.集成GSM短消息的網(wǎng)絡(luò)交互平臺設(shè)計[J].河北省科學(xué)院學(xué)報,2012,29(1):15-18,27.
[3] 翟順,王衛(wèi)紅,張衎,等.基于SIM900A的物聯(lián)網(wǎng)短信報警系統(tǒng)[J].現(xiàn)代電子技術(shù),2012,35(5):86-89.
[4] 朱伶俐,沈碧波.基于SIM900A的高速公路遠程報警系統(tǒng)設(shè)計[J].通化師范學(xué)院學(xué)報,2015,36(4):4-6,36.
[5] 張慶力,劉姜偉,張鑫.基于SIM900A模塊的短信收發(fā)系統(tǒng)設(shè)計[J].電子世界,2016(8):152-153.
[6] 劉馬飛.C#串口高效可靠的接收方案設(shè)計[J].物聯(lián)網(wǎng)技術(shù),2018,8(8):23-25.
【通聯(lián)編輯:謝媛媛】