趙銘琥

目前,各類文電收發系統廣泛的應用于政府及企業,用于傳遞文電信息,但因無法做到人員全日值守,造成文電信息處理的遲滯,本監控提醒系統能在文電系統接收到文電后,利用GSM的短信業務,以發送提示短信的方式,及時準確的提醒工作人員處理文電,有效的解決了信息處理的遲滯,本系統的應用對全日值守接收文電的崗位有著重大意義。
系統由兩部分組成,即運行于計算機終端的文電監控軟件和外接于計算機的短信收發模塊。文電監控軟件有效的檢測監控文電系統的文電的接收情況,并向短信收發模塊發送控制指令,短信收發模塊在收到的控制指令后,對其解析并完成提示短信的發送。下面分別介紹文電監控軟件和短信收到模塊的設計。
1 文電監控軟件的設計
文電監控軟件通過監控檢測文電系統收到文電后播放的提示音文件的調用情況,來判斷文電系統是否收到文電。軟件整體分為界面和后臺兩個部分。界面部分采用傳統形式的MFC程序進行開發,后臺采用模塊的方式進行開發,其結構如圖1所示。
界面部分為UI模塊,主要負責界面的展示和用戶的配置。后臺部分主要分為輪訓模塊、文件檢測模塊、串口發送模塊、Sqlite數據庫模塊、配置文件模塊六個模塊。輪詢模塊主要負責定時發送消息給文件檢測模塊;文件檢測模塊主要負責檢測文件是否被調用,并調用串口發送模塊向短信收發模塊發出控制指令。
界面模塊:界面部分可以采取QT、MFC以及網頁等多種方式進行開發。QT的優勢:優秀的跨平臺特色,面向對象,豐富的API,并支持2D/3D圖形渲染及OpenGL,開發文檔豐富,同時還支持XML。
MFC的優勢:開發簡單,使用方便。網頁的優勢:跨操作系統,界面美觀。因QT和網頁開發相對復雜且涉及專業知識較多,根據系統實際需要選用相對簡單易用的MFC進行文電監控軟件的開發。考慮到后續軟件界面切換的需求,將所有后臺部分封裝在不同的動態庫中,界面部分單獨制作成一個可執行文件。
輪詢模塊:輪詢模塊作為后臺部分的重要模塊,負責發送定時消息給文件檢測模塊讓其進行文件檢測操作。從技術層面有多種方式可供選擇,如通過ACE中反應器的定時器,boost的asio庫以及MFC的setTimer來實現。對比之下,ACE中的反應器高效,但ACE庫太過龐大,而MFC中的setTimer因軟件設計考慮,需將界面部分獨立出來,為了后續能實現快速與網頁或QT的切換,軟件采用boost的asio來實現輪詢的控制。
文件檢測模塊:文件檢測模塊主要負責檢測作戰值勤系統提示音文件是否被占用。軟件采用獲取文件句柄的方式來判斷提示音文件是否被占用,當提示音文件被占用時,調用fopen是無法得到文件句柄,根據文件句柄是否為空來判斷當前要檢測的提示音文件的占用情況。
軟件將其封裝成一個函數,當消息觸發時,調用此函數判斷結果,從而判斷被檢測文件的占用情況,并觸發串口發送模塊發送控制命令。
串口發送模塊:串口發送模塊是軟件和硬件的交互模塊,軟件采用boost asio的serial port來實現,并將boost asio serial_port度封裝成一個類庫,使用程序后期的維護和開發。
數據庫模塊:數據庫模塊用以存儲文電監控軟件觸發告警信息,軟件采用Sqlite的本地存儲方式來解決,通過c++庫中CppSqlite來操作Sqlite,使用事務的方式提高插入速度,并采用ACE的讀寫鎖來保護數據的安全,防止多線程操作數據庫時出現錯誤。
因SQLite具有跨平臺、操作簡便等特點,軟件數據庫模塊使用Navicat for SQLite軟件,完成數據庫的開發。
配置文件模塊:Libxml2是C語言下的一個XML的程序庫,能夠簡單方便的對XML文件內容做各類操作,并且支持XPATH查詢,為了后續軟件的維護和管理便利,選擇使用libxml2的庫來操作XML,軟件將用戶配置信息保存在XML文件中,可以在軟件啟動時自動讀取配置信息,免去了重復軟件配置的工作。
2 短信收發模塊的設計
短信收發模塊的功能是實現短信的發送,主要由主控制器C8051F930單片機、SIM900A模塊、電平轉換電路、AT24C02存儲芯片、電源電路等組成。
SIM900A:目前工程上廣為應用的短信模塊有兩種,分別是以SIMCOM公司生產的SIM900A芯片為核心的模塊和以西門子公司生產的TC35芯片為核心的模塊。對兩款芯片配套設計相應的外圍電路,即可以實現短信收發功能,使用簡單方便,但因TC35芯片的供貨量較小,考慮到提示系統后期的推廣應用、擴大生產,本系統選用SIM900A芯片。
單片機:模塊設計中單片機的選用,降低了PC機直接與短信模塊進行通信時上位機軟件的開發難度,通過RX、TX引腳可方便實現其與短信模塊的通信,利用豐富的應用例程,靈活簡便實現了各種控制需求。C8051F930單片機由CPU進行主控,含有24個全雙工的I/O口,包含一個擴展的中斷系統,支持多個中斷源,每個中斷源有兩個優先級,64Kb的ISP FLASH用于程序存儲,CIP-51 8051控制器核是芯片的核心部件,它控制著指令程序在整個芯片中的良好運行。
串口通信電路:計算機的通信分為兩種,一種為并行一種為串行。并行的特點是速度快、效率高,但所用的線數多、可靠距離短,不適合遠距離傳輸的應用。而串行通信只需一根線就能快速穩定的通信,而且成本低,在以單片機作為主控器的控制電路中,因其占用引腳資源少,所以本提示系統的短信收發模塊均采用串口異步通訊方式,在滿足通信需求的情況下方便配置使用。
為了實現計算機與單片機之間的正常通信,必須將其CMOS電平轉換為TTL電平,系統采用MAX3232芯片來完成兩種電平之間的轉換。
存儲電路:本提示系統需要存儲值班員手機號碼以及相應短信內容,為緩解單片機存儲空間的有限,須為系統連接存儲設備,這里選用ATMEL公司推出的兩線行的控制芯片AT24C02,存儲容量為2K,用以滿足系統存儲需要,實現讀寫功能。
電源電路:由于整個系統工作電流要求較高,所以采用開關類型的電源芯片進行穩壓供電,輸入電壓DC+為12V,經過穩壓后為系統提供輸出+5V的穩定電壓,再通過穩壓電路將5V轉成3.3V的系統工作電壓,為單片機、SIM900A、EEPROM等電路模塊進行供電。
狀態指示燈電路:為了系統在后期的使用維護中方便可靠,需要通過一定的標識來判斷系統的工作狀態,有必要為系統設置指示燈電路,而SIM900A芯片自身提供了指示燈接口,即時顯示當前SIM卡的信號狀態。電路設計采用灌電流的方式,LED一端接VCC,另一端通過電阻接至芯片引腳完成對單片機和SIM900A兩個核心芯片的狀態監控。
單片機控制程序設計:當模塊開機后,單片機進行初始化控制操作,完成SIM900A、SIM卡、串口等設備的初始化,并等待SIM900A模塊進行正常工作狀態,當收到SIM900A正常工作的(下轉第201頁)(上接第78頁)信息后,單片機進入循環掃描狀態,即循環掃描觸發端口是否有控制命令收到,如果收到觸發命令,即控制GSM模塊,將預先設定好的短信內容,發送到指定工作人員手機上。
將設計完成的單片機控制程序寫單片機,即可以完成整個短信收發模塊的設計。
在實際操作應用中,我們通過文電監控軟件,設置監控文電系統收到文電后播放的提示音文件,當收到文電后,文電系統調用提示音提示時,文電監控軟件即可監控到來電信息,并向預告設置好的手機號碼發送提示短信,通知工作人員來處理文電。
[責任編輯:劉展]