- 相關(guān)推薦
基于Visual Basic快速開發(fā)現(xiàn)場(chǎng)電視監(jiān)控系統(tǒng)
基于Visual Basic快速開發(fā)現(xiàn)場(chǎng)電視監(jiān)控系統(tǒng) 中國(guó)科技大學(xué) 鄭豪杰金西 蔣宗洲 合肥華恒網(wǎng)絡(luò)技術(shù)有限技術(shù)公司 黃汪摘要: 本文介紹了一種用Visual Basic快速開發(fā)現(xiàn)場(chǎng)電視實(shí)時(shí)監(jiān)控系統(tǒng)的方法,該方法簡(jiǎn)單方便、成本低廉,具有一定的實(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)控場(chǎng)所得到了廣泛地應(yīng)用。用圖形來實(shí)時(shí)顯示被控對(duì)象(攝像機(jī)、終端設(shè)備等)在操作過程中的狀態(tài),具有清晰明了、形象直觀且可以及時(shí)處理反饋信息。它比數(shù)字儀表包含的信息量大得多,因此使現(xiàn)場(chǎng)監(jiān)控人員的工作方式得到了改進(jìn),效率也由此得到了很大的提高。
現(xiàn)場(chǎng)電視監(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ā)周期較長(zhǎng),開發(fā)難度也偏大。如果利用Visual Basic(VB)來開發(fā)有關(guān)的監(jiān)控系統(tǒng),就能較好地解決上述問題。
1設(shè)計(jì)思路與技術(shù)路線
由于Visual Basic在界面制作上的優(yōu)越性,我們采用Visual Basic來進(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功能簡(jiǎn)介
(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)場(chǎng)電視監(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))長(zhǎng)時(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)場(chǎng)電視監(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ù)庫(kù)存儲(chǔ),而巧妙地選用隨機(jī)文件(*.dat)的方式進(jìn)行存儲(chǔ),可大大提高響應(yīng)的速度。
表1隨機(jī)文件格式表
3.3寫并行端口的程序?qū)崿F(xiàn)
ID域?yàn)?6×4個(gè)攝像機(jī)各自唯一的編號(hào),按編號(hào)控制門電路的接通與斷開。
表2 8bit定位信息取值與通道對(duì)照表
表2中通道列中的A、B、C、D分別對(duì)應(yīng)A、B、C、D四個(gè)通道,高位(HEX)列只要用二進(jìn)制的低六位即可完成控制功能。編寫函數(shù)WriteToPort向并口中寫入8位的二進(jìn)制數(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é)束語(yǔ)
本文介紹的現(xiàn)場(chǎng)電視實(shí)時(shí)監(jiān)控系統(tǒng)由于采用了隨機(jī)文件存儲(chǔ)寫并口的信息,巧妙地解決了VB對(duì)低層硬件讀寫的問題,大大提高了系統(tǒng)運(yùn)行速度。本系統(tǒng)投入使用后,經(jīng)過一段時(shí)間的運(yùn)行測(cè)試和使用,證明其性能穩(wěn)定、運(yùn)行可靠、各項(xiàng)監(jiān)測(cè)精度符合要求,并具有操作簡(jiǎn)單方便的特點(diǎn)。同時(shí),這項(xiàng)技術(shù)可以大大縮短實(shí)時(shí)監(jiān)控程序的開發(fā)周期,減少程序員的工作量,適用于電視臺(tái)
【基于Visual Basic快速開發(fā)現(xiàn)場(chǎng)電視監(jiān)控系統(tǒng)】相關(guān)文章:
基于LonWorks現(xiàn)場(chǎng)總線的機(jī)房監(jiān)控系統(tǒng)03-19
基于Profibus現(xiàn)場(chǎng)總線的煤礦井下膠帶監(jiān)控系統(tǒng)03-18
用Visual Basic 5.0開發(fā)無線通訊數(shù)據(jù)采集應(yīng)用程序03-20
基于PLC的閘門監(jiān)控系統(tǒng)設(shè)計(jì)03-07
基于FIC8120的嵌入式網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)的設(shè)計(jì)與開發(fā)03-07
基于GPRS遠(yuǎn)程電機(jī)監(jiān)控系統(tǒng)的設(shè)計(jì)03-07
基于WebAccess的水情水質(zhì)遠(yuǎn)程監(jiān)控系統(tǒng)03-07