基于Visual Basic快速開發(fā)現(xiàn)場電視監(jiān)控系統(tǒng)
摘要:本文介紹了一種用VisualBasic快速開發(fā)現(xiàn)場電視實(shí)時(shí)監(jiān)控系統(tǒng)的方法,該方法簡單方便、成本低廉,具有一定的實(shí)用價(jià)值。實(shí)時(shí)監(jiān)控系統(tǒng)投入使用可有效地提高電視臺(tái)或交通部門的工作效率。關(guān)鍵詞:VB電視監(jiān)控系統(tǒng)ActiveX
隨著電視監(jiān)視器材、計(jì)算機(jī)技術(shù)的日益發(fā)展,圖形監(jiān)視系統(tǒng)在電視系統(tǒng)或監(jiān)控場所得到了廣泛地應(yīng)用。用圖形來實(shí)時(shí)顯示被控對(duì)象(攝像機(jī)、終端設(shè)備等)在操作過程中的狀態(tài),具有清晰明了、形象直觀且可以及時(shí)處理反饋信息。它比數(shù)字儀表包含的信息量大得多,因此使現(xiàn)場監(jiān)控人員的工作方式得到了改進(jìn),效率也由此得到了很大的提高。
現(xiàn)場電視監(jiān)控系統(tǒng)由實(shí)時(shí)控制系統(tǒng)、監(jiān)視系統(tǒng)及管理信息系統(tǒng)組成。實(shí)時(shí)控制系統(tǒng)完成實(shí)時(shí)數(shù)據(jù)采集處理、存儲(chǔ)、反饋的功能;監(jiān)視系統(tǒng)完成對(duì)各個(gè)監(jiān)控點(diǎn)的全天候的監(jiān)視,能在多操作控制點(diǎn)上自動(dòng)或手動(dòng)切換多路圖像,能遙控前端設(shè)備,能使攝像鏡頭自動(dòng)對(duì)焦等;管理信息系統(tǒng)完成各類所需信息的采集、接收、傳輸、加工、處理,是整個(gè)系統(tǒng)的控制核心。
目前的圖形實(shí)時(shí)監(jiān)控軟件通常用VC或VC++開發(fā),它對(duì)軟件開發(fā)人員要求很高,而且開發(fā)周期較長,開發(fā)難度也偏大。如果利用VisualBasic(VB)來開發(fā)有關(guān)的監(jiān)控系統(tǒng),就能較好地解決上述問題。
1設(shè)計(jì)思路與技術(shù)路線
由于VisualBasic在界面制作上的優(yōu)越性,我們采用VisualBasic來進(jìn)行系統(tǒng)的快速開發(fā)。本系統(tǒng)必須對(duì)硬件進(jìn)行實(shí)時(shí)監(jiān)視控制,從而實(shí)現(xiàn)監(jiān)控功能。要利用VB來開發(fā)就必須先解決VB不能直接訪問低層硬件的問題,也就是要提出用VB訪問低層硬件的解決方案。我們?yōu)楸鞠到y(tǒng)確定了下列設(shè)計(jì)方案:讓VB去調(diào)用DLL文件,再讓DLL去調(diào)用VxD文件,通過VxD文件實(shí)現(xiàn)對(duì)低層硬件的實(shí)時(shí)控制,再通過寫并行端口實(shí)現(xiàn)硬件電路的切換。這樣,即克服了VB不能直接訪問低層硬件缺點(diǎn),又發(fā)揮了VB在界面和開發(fā)速度上的優(yōu)點(diǎn)。本系統(tǒng)主控模塊如圖1所示。主控模塊是監(jiān)視中心的主界面,它分為手動(dòng)模塊、自動(dòng)模塊、退出模塊三個(gè)子模塊。手動(dòng)子模塊又分為鍵盤控制和鼠標(biāo)控制,主要為了監(jiān)控中心人員靈活的手動(dòng)控制各個(gè)監(jiān)控點(diǎn);自動(dòng)子模塊又分為打開通道、增加一項(xiàng)、設(shè)置時(shí)間、更改名稱、刪除一項(xiàng)、關(guān)閉通道,主要為了監(jiān)控中心人員方便的自動(dòng)控制各個(gè)監(jiān)控點(diǎn),遙控遠(yuǎn)端設(shè)備。
圖1系統(tǒng)結(jié)構(gòu)圖
2功能簡介
(1)監(jiān)控硬件是通過寫計(jì)算機(jī)的并行端口來實(shí)現(xiàn),VB通過調(diào)用DLL向并行端口寫入8bit的定位信息,本系統(tǒng)采用四個(gè)通道并行監(jiān)控控制點(diǎn),各通道互不影響。由后端硬件電路根據(jù)這8bit的定位信息判斷哪個(gè)端口的哪個(gè)攝像機(jī)(監(jiān)控點(diǎn))被選中,現(xiàn)場電視監(jiān)控系統(tǒng)服務(wù)器接通被選中的攝像機(jī)所對(duì)應(yīng)的門電路。同時(shí)在監(jiān)控中心實(shí)時(shí)的反映出來。
(2)系統(tǒng)提供了手動(dòng)控制和自動(dòng)控制二種方式。
、僮詣(dòng)控制:實(shí)現(xiàn)對(duì)各個(gè)攝像機(jī)(監(jiān)控點(diǎn))的循環(huán)監(jiān)控。對(duì)正在監(jiān)控?cái)z像機(jī)(監(jiān)控點(diǎn))進(jìn)行計(jì)時(shí),達(dá)到此攝像機(jī)(監(jiān)控點(diǎn))預(yù)定時(shí)間時(shí),去調(diào)用自動(dòng)切換子程序完成切換功能,從而使系統(tǒng)按照監(jiān)控中心人員預(yù)先設(shè)定的監(jiān)控順序自動(dòng)循環(huán)切換。監(jiān)控中心人員可選擇監(jiān)控的攝像機(jī)序列,在自動(dòng)監(jiān)控狀態(tài)下加載后,可以動(dòng)態(tài)的增加、刪除攝像機(jī),改變播出時(shí)間和順序。
、谑謩(dòng)控制:實(shí)現(xiàn)對(duì)各個(gè)攝像機(jī)(監(jiān)控點(diǎn))的手動(dòng)監(jiān)控。由于工作需要,有時(shí)需要固定在某個(gè)攝像機(jī)(監(jiān)控點(diǎn))長時(shí)間不間斷地監(jiān)控,本系統(tǒng)提供了手動(dòng)控制很好的滿足了這個(gè)需要。當(dāng)系統(tǒng)處于手動(dòng)狀態(tài)時(shí),監(jiān)控中心人員可以通過主窗口的手動(dòng)按鈕,或使用鍵盤數(shù)字鍵選擇哪個(gè)通道監(jiān)控哪一臺(tái)攝像機(jī)。選中后,該通道就固定監(jiān)控此攝像機(jī)(監(jiān)控點(diǎn)),直到手動(dòng)選擇另一個(gè)攝像機(jī)(監(jiān)控點(diǎn))時(shí),才調(diào)用手動(dòng)切換子程序完成切換功能。
(3)系統(tǒng)界面采用VB6.0中的Listview控件,此控件具有SmallIcon、LargeIcon、List、Report四種顯示方式,從而達(dá)到用戶界面友好的效果。圖2是在Report顯示方式下的監(jiān)控中心主界面。
圖2現(xiàn)場電視監(jiān)控系統(tǒng)
3.系統(tǒng)的實(shí)現(xiàn)
3.1VB訪問低層硬件的實(shí)現(xiàn)
支持低層硬件訪問的DLL文件和ActiveX控件,通過它們可讀寫存儲(chǔ)器單元、端口,甚至控制硬件中斷。本系統(tǒng)利用DLL實(shí)現(xiàn)訪問低層,詳見圖3所示。
圖4低層硬件訪問示意圖
3.2系統(tǒng)中對(duì)播放序列存儲(chǔ)的實(shí)現(xiàn)
由于本系統(tǒng)涉及的攝像機(jī)為16臺(tái),數(shù)量不算太多,可不采用數(shù)據(jù)庫存儲(chǔ),而巧妙地選用隨機(jī)文件(*.dat)的方式進(jìn)行存儲(chǔ),可大大提高響應(yīng)的速度。
表1隨機(jī)文件格式表
域名
用途
長度(Byte)
Name
存儲(chǔ)攝像機(jī)名稱
10
ID
存儲(chǔ)攝像機(jī)編號(hào)(唯一)
2
Time
存儲(chǔ)攝像機(jī)播放時(shí)間
5
3.3寫并行端口的程序?qū)崿F(xiàn)
ID域?yàn)?6×4個(gè)攝像機(jī)各自唯一的編號(hào),按編號(hào)控制門電路的接通與斷開。
表28bit定位信息取值與通道對(duì)照表
通道
高位(HEX)
低位(HEX)
A
0
0---A
B
1
0---A
C
2
0---A
D
3
0---A
表2中通道列中的A、B、C、D分別對(duì)應(yīng)A、B、C、D四個(gè)通道,高位(HEX)列只要用二進(jìn)制的低六位即可完成控制功能。編寫函數(shù)WriteToPort向并口中寫入8位的二進(jìn)制數(shù),部分關(guān)鍵源程序如下:
PublicSubWriteToPort(AddrAsString,ValPortAsString)'CWAsCheckBox)
DimNomwAsInteger,DatWAsInteger
'IfCW.Value=CheckedThen
'Nomw=HexToInt(Addr.Text)
Nomw=HexToInt(Addr)
DatW=HexToInt(ValPort)
'Writeonebytetotheport
CallSetPortByte(HW32,Nomw,DatW)
'EndIf
EndSub
4.結(jié)束語
本文介紹的現(xiàn)場電視實(shí)時(shí)監(jiān)控系統(tǒng)由于采用了隨機(jī)文件存儲(chǔ)寫并口的信息,巧妙地解決了VB對(duì)低層硬件讀寫的問題,大大提高了系統(tǒng)運(yùn)行速度。本系統(tǒng)投入使用后,經(jīng)過一段時(shí)間的運(yùn)行測試和使用,證明其性能穩(wěn)定、運(yùn)行可靠、各項(xiàng)監(jiān)測精度符合要求,并具有操作簡單方便的特點(diǎn)。同時(shí),這項(xiàng)技術(shù)可以大大縮短實(shí)時(shí)監(jiān)控程序的開發(fā)周期,減少程序員的工作量,適用于電視臺(tái)節(jié)目的實(shí)時(shí)監(jiān)控和交通路口的實(shí)時(shí)監(jiān)控。
參考文獻(xiàn)
1.Microsoft公司著,希望圖書創(chuàng)造室譯.VisualBasic6.0組件工具指南.北京:北京希望電子出版社,1999
2.Microsoft公司著,希望圖書創(chuàng)造室譯.VisualBasic6.0中文版程序員指南.北京:北京希望電子出版社,1998
【基于Visual Basic快速開發(fā)現(xiàn)場電視監(jiān)控系統(tǒng)】相關(guān)文章:
基于Visual Basic快速開發(fā)現(xiàn)場電視監(jiān)控系統(tǒng)08-06
Visual Basic 6.0 下快速制作安裝程序技巧08-06
基于Profibus現(xiàn)場總線的煤礦井下膠帶監(jiān)控系統(tǒng)08-06
Visual Basic中如何實(shí)現(xiàn)動(dòng)態(tài)報(bào)表08-06
用Visual Basic 5.0開發(fā)無線通訊數(shù)據(jù)采集應(yīng)用程序08-06
用Visual Basic 5.0開發(fā)無線通訊數(shù)據(jù)采集應(yīng)用程序08-06
用Visual Basic 5.0開發(fā)無線通訊數(shù)據(jù)采集應(yīng)用程序08-06