目前,對于遠程的數(shù)據(jù)傳送,通常采用無線發(fā)射的方式或modem通訊方式,前者由于受到地形、天氣等因素的影響,往往通訊不穩(wěn)定甚至出現(xiàn)通信中斷。相比之下,選用現(xiàn)有的程控電話網(wǎng)作為通訊媒質(zhì)的modem遠程通訊方式則顯得相對的穩(wěn)定可靠,并且成本較低。監(jiān)控主機通過rs-485總線與門禁控制器通訊,每隔一段時間,監(jiān)控主機便發(fā)出查詢命令,查詢命令中包含所要查詢的門禁控制器的地址,所有門禁控制器都能收到查詢命令,但只有地址與查詢命令中所帶的地址一致的門禁控制器才能響應(yīng)此命令。監(jiān)控主機對門禁控制器上傳的數(shù)據(jù)進行處理,判斷是否有告警發(fā)生,通過人機界面顯示門禁上傳的重要數(shù)據(jù)和告警信息。并且將刷卡記錄等重要數(shù)據(jù)存入數(shù)據(jù)庫中相應(yīng)的表單。監(jiān)控主機還可以實現(xiàn)對門禁控制1器的遠程控制,實現(xiàn)遠程開門、修改門禁參數(shù)等功能。
軟件實現(xiàn)監(jiān)控主機的程序采用vc610編寫,數(shù)據(jù)庫采用的是sybase11數(shù)據(jù)庫系統(tǒng)。程序采用windows的多線程技術(shù),監(jiān)控主機有數(shù)據(jù)采集線程和數(shù)據(jù)顯示線程。數(shù)據(jù)采集線程與門禁控制器通訊,接受門禁控制器上傳的數(shù)據(jù),并將數(shù)據(jù)存儲到數(shù)據(jù)庫的相應(yīng)表單中。數(shù)據(jù)顯示線程從表單中獲取數(shù)據(jù),進行相應(yīng)的顯示。串口初始化在windows環(huán)境下使用vc編寫串行通信程序一般采用兩種方法:(1)采用microsoftwin32應(yīng)用程序編程接口(api)提供的串行通信函數(shù),用sdk思路編寫。(2)使用microsoftvc的通信控件(mscomm)。第一種方法使用起來比較復(fù)雜,專業(yè)化程度高;采用mscomm控件編程方便、直觀。因此在設(shè)計串口通信程序時采用第二種方法。mscomm控件提供了兩種控制串行口的方法:即事件驅(qū)動方式和查詢方式,使用事件驅(qū)動方式時,當(dāng)有新的字符到達或端口狀態(tài)改變時,將會觸發(fā)on-comm事件,應(yīng)用程序在捕獲該事件后,通過檢查mscomm控件的commevent屬性,可以響應(yīng)發(fā)生的事件。這種方法程序響應(yīng)及時,可靠性高。因此,本設(shè)計采用這種方法。modem撥號在串口初始化結(jié)束后,開始進行modem的撥號。
實時數(shù)據(jù)采集當(dāng)modem撥號撥通以后,數(shù)據(jù)采集線程開始工作。采集線程采用輪巡的方式,在每個采集周期中,監(jiān)控主機對串口下的所有設(shè)備進行一次數(shù)據(jù)采集,然后開始下一個循環(huán)的采集進程。系統(tǒng)結(jié)構(gòu)顯示監(jiān)控主機通過查詢數(shù)據(jù)庫中的house表單、e-quipment表單和station表單以樹狀控件的方式進行系統(tǒng)結(jié)構(gòu)的顯示(監(jiān)控主機作為根目錄,串口作為子目錄,設(shè)備作為文件,將樹狀控件展開,可以查看系統(tǒng)的整個配置情況,當(dāng)選中某個設(shè)備時,則顯示該設(shè)備對應(yīng)的實時數(shù)據(jù)。實時數(shù)據(jù)顯示監(jiān)控主機通過查詢數(shù)據(jù)庫中signal表單進行實時數(shù)據(jù)顯示,根據(jù)信號的特征標(biāo)志,將信號劃分為不同的類型,在不同的列表中進行顯示。其顯示的內(nèi)容包括門禁的時間、刷卡的卡號及刷卡時間、門開關(guān)狀態(tài)等信息。