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