女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于Java平臺的視頻監控系統實現對云臺和鏡頭的遠程控制

電子設計 ? 來源:郭婷 ? 作者:電子設計 ? 2019-08-27 08:05 ? 次閱讀

結合我國實際情況和未來的發展趨勢, 開發出基于Java視頻監控系統,實現對云臺和鏡頭的遠程控制。系統包括RS-232/RS-485 的轉換,解碼器和云臺、鏡頭以及它們與計算機串口的硬件連接,通過Pelco-D協議,采用Java的擴展類庫comm.Jar庫進行串口通信

隨著銀行、賓館、交通要道等大型場所和小區管理的發展,安全成為至關重要的問題。在此情形下,高性能的數碼監控系統成為各應用部門所關心的熱點。對于數碼監控系統來說,其主要功能是將監控現場的場景轉換成視頻信號傳遞給計算機進行處理。為了加大監控范圍,提高控制效率,一方面可以增加攝像機的數目,另一方面也可以在監控系統中配置具有云臺和鏡頭調節功能的高性能攝像機,以便在視頻信號的采集過程中,可以通過服務器端或客戶端對攝像機的攝像角度和鏡頭實施控制。另外,在科技飛速發展的今天,各種犯罪手段也層出不窮,通過網絡對監控現場的云臺及鏡頭進行控制和調節,并進行記錄,對于警方破案尤為重要。

現在的許多視頻監控系統是采用VC開發,而基于Java開發的遠程監控系統并不多見。由于Java的平臺無關性和天生完整的網絡支持,Java在網絡通信中得到廣泛應用。本系統開發出基于Java的視頻監控系統,通過串行通信及Pelco-D協議,實現對云臺與鏡頭的遠程控制。憑著Java跨平臺的優點,基于Java開發的視頻監控系統有望移植到手機平臺。

一、系統設計

遠程視頻監控系統結構如圖1所示。

1、RS-232/RS-485轉換器

計算機的COM口采用的是RS-232 通信方式,本系統所采用的云臺解碼器的通訊接口為RS-485,因此需在計算機COM口接一個RS-232/RS-485轉換器。RS-232-C(又稱EIA RS-232-C)接口是目前最常用的一種串行通訊接口,是在1970年由美國電子工業協會(EIA)聯合貝爾系統、調制解調器廠家及計算機終端生產廠家共同制定的用于串行通訊的標準。 RS-485由RS-232發展而來,彌補了RS-232的不足。 RS-232是點對點的通信,不能實現多機之間相互通信,而RS-485就可以實現多機通信。另外,RS-232的最大傳輸距離為15m,而R-2485則可達1.2km。轉換器可使計算機與云臺解碼器之間構成點到點、點到多點的遠程多機通信網絡,實現多機應答通信。

基于Java平臺的視頻監控系統實現對云臺和鏡頭的遠程控制

2、解碼器

本系統采用智能解碼器,具有較強抗干擾、低功耗、防死機和強驅動力等優點,能自動識別國內大多數常用協議,包括特殊協議,如科力矩陣協議、EE矩陣協議和曼碼矩陣協議等。在云臺解碼器中,通過跳線設置波特率、特殊協議及云臺地址,由串口與服務器端計算機進行通信。解碼器的主要作用是:通過串口接收服務器端計算機的控制碼,并對此控制碼進行地址和命令解析,將解析的命令轉換成相應的能夠驅動云臺轉動的控制電壓,再傳遞給云臺以控制云臺的轉動、攝像機鏡頭的調節及停止操作。

3、云臺和鏡頭

云臺由攝像頭支架和驅動器組成。驅動器的作用是通過步進電機來驅動攝像頭支架的轉動,從而帶動攝像頭的轉動。 一個高性能攝像機云臺可以使支架向多個方向(上、下、左、右、左上、左下、右上和右下等)轉動,并可以調節攝像頭的焦距、光圈、景深等。通過解碼器以及解碼器的控制協議,可以對云臺和鏡頭進行控制。

4、解碼器的控制協議

(1)Pelco-D協議

由于所采用的解碼器可識別大多數常用協議,本系統選用了Pelco-D作為控制協議。Pelco-D協議一般用于矩陣和其他設備之間的通信。PTZ在安防監控中是“pan/t ilt/zoom ”的簡寫, 代表云臺全方位(上、下、左、右)移動及鏡頭變倍和變焦控制。以普通監控控制PTZ為例,一般采用多芯連線,控制器以開關觸點控制云臺、鏡頭各個方向的連接供電,以達到云臺移動、鏡頭變倍的目的。協議分為一般PTZ命令及擴展命令。一般PTZ命令的格式為一個含7個元素的message數組,每個元素就是一個字節(byte),byte1,byte 2,。..,byte7分別對應同步字、地址碼、命令字1、命令字2、數據1、數據2和校驗碼。每個字節不同的位(bit)設置分別代表不同的控制命令。同步字通常都是FF;地址碼是指與矩陣通信的那臺設備的邏輯地址,可以在設備中設置;命令字1和命令字2的bit0,bit1,。..,bit7的不同設置分別對應鏡頭和云臺的不同操作;數據1表示鏡頭左右平移的速度,數值從$00(停止)到$3F(高速),另外還有一個值是$FF,表示最高速;數據2表示鏡頭上下移動的速度,數值從$00(停止)到$3F(最高速);校驗碼是指byte2到byte6這5個數的和(若超過255,則除以256,然后取余數)。

擴展命令是由byte3至byte6這4個字節分別對應協議中定義的各個控制指令, 例如預設、清屏、自動對焦等。

(2)用Java實現Pelco-D協議

PelcoD. java對命令字1、命令字2、數據1和數據2的定義:

//command1

p rivate final byte FocusN ear = 0x01;

p rivate final byte IrisOpen = 0x02;

p rivate final byte IrisClo se = 0x04;

p rivate final byte CameraO nO ff = 0x08;

p rivate final byte A utoM anualScan = 0x10;

p rivate final sho rt Sense = 0x80;

//command2

p rivate final stat ic byte PanR igh t = 0x02;

p rivate final stat ic byte PanL eft = 0x04;

p rivate final stat ic byte T iltU p = 0x08;

p rivate final stat ic byte T iltDow n = 0x10;

p rivate final byte ZoomTele = 0x20;

p rivate final byte ZoomW ide = 0x40;

p rivate final byte FocusFar = 0x80;

//data1

p rivate final byte PanSpeedM in = 0x00;

p rivate final byte PanSpeedM ax = 0xFF;

//data2

p rivate final byte T iltSpeedM in = 0x00;

p rivate final byte T iltSpeedM ax = 0x14;

以左右轉動為例,寫Pan 的類:

public enum Pan{

R igh t ( (byte) 0x02),

L eft ( (byte) 0x04);

p rivate byte value;

p rivate Pan (byte intV alue) {

value= intV alue;

}

public byte getV alue () {

return value;

}

}

控制云臺轉動,設定云臺轉動速度:

public byte [ ] CameraPan (byte deviceA ddress, byte act ion,

byte speed)

{

if (speed< = PanSpeedM in)

Speed = PanSpeedM in;

if (speed< PanSpeedM ax)

speed = PanSpeedM ax;

return M essage. GetM essage ( deviceA ddress, ( byte )

0x00, act ion, (byte) speed, (byte) 0x00) ;

}

向串口傳遞數組:

public stat ic byte [ ] GetM essage (byte address, byte

command1, byte command2, byte data1, byte data2)

{

A ddress = address;

Data1= data1;

Data2= data2;

Command1= command1;

Command2= command2;

CheckSum= (byte) (STX&A ddress&Command1&

Command2&Data1&Data2);

return new byte [ ] {STX, A ddress, Command1, Com2

mand2, Data1,Data2, CheckSum};

二、Java串口編程

Sun的J2SE中并沒有直接提供串行通信協議的開發包,而是以獨立的jar包形式發布在java.sun. com網站上,即comm. jar,稱之為Java com-m un ication API,它是J2SE的標準擴展。comm.jar分別提供了對常用的RS-232串行端口和IEEE1284并行端口通訊的支持。

下載了comm.jar開發包后,與之一起的還有2個重要的文件:win32com.dll和javax.comm.Prop-ert iesL comm. jar提供了通訊用的java API,win32com. dll提供了供comm. jar調用的本地驅動接口,而javax. comm. p ropert ies是這個驅動的類配置文件首先將comm. jar復制到\\lib\\ex t目錄,再將w in32com. dll復制到JDK 的\\b in目錄下,然后將javax.comm.p ropert ies復制到\\lib目錄。

1、打開串口

使用串口前必先打開串口:

try{

portId = CommPort Ident ifier. getPort Identifier(“COM 1” );

serialPort=(SerialPort)port Id. open (“My app”, 60);

}catch (Port InU seExcep t ion e)

{。 . 。 . 。 . }

catch (NoSuchPo rtExcep t ion e)

{。 . 。 . 。 . }

2、設定參數

設定串口的物理參數:波特率、數據長度、數據

的停止位長度和數據校驗類型L根據Pelco2D協議設置波特率為4 800 b it/s,1位起始位和1位停止位,8位數據位,無校驗:

t ry{

serialPo rt. setSerialPo rtParam s(2400,

SerialPo rt. DA TAB ITS- 8,

SerialPo rt. STO PB ITS- 1,

SerialPo rt. PAR ITY- NON E);

}catch (U nsuppo rtedCommOperat ionExcep t ion e)

{。 . 。 . 。 . }

三、網絡控制

1、Socket通信

采用Socket(套接字)通信。Socket是實現客戶機與服務器進行通信的一種機制,它是2臺計算機進行通信的端口。在Java程序中,可以將Socket類和ServerSocket類分別用于客戶機和服務器中,分別創建獨立的Socket,將2個Socket進行連接,實現連接后,就可以通過Socket進行通信。

在本系統中,服務器端起一線程進行監聽,一旦收到客戶端對服務器的指定端口發出的請求,即根據客戶端傳來的指令來控制云臺和鏡頭。客戶端通過發送字符串與服務器端匹配控制命令。如控制云臺向上,則客戶端:

public vo id up () {

t ry{

Socket mysocket= new Socket ( InetA ddress. getLocal2

Ho st () , 5678);

mysocket. getO utputSt ream ( )。 w rite ( “ up ”。 getBytes

() );

mysocket. clo se ();

}catch ( IO Excep t ion e) {

e. p rintStackT race ();

}

}

服務器端:

if (command. equals (“up ” ) ) {

。 . 。 . 。 .

??實現向上操作

}

用戶只需在界面中點擊“上”、“下”、“左”、“右”等命令按鈕,系統即向服務器發送命令。

2、控制沖突的解決

當有多個客戶端同時登陸并控制云臺,或服務器端和客戶端同時控制云臺,便會發生控制沖突。解決控制沖突的策略是設置控制狀態。客戶端對云臺或鏡頭的控制是通過服務器端進行的。 客戶端若要發送云臺或鏡頭控制命令,必須首先向服務器端發送控制申請命令,服務器在接收到客戶端控制申請命令后,就會檢查控制狀態。

(1)當沒有控制申請的時候控制狀態為空,服務器接受控制申請;當云臺和鏡頭正在被控制,控制狀態為忙,申請控制需要等待,服務器將通知正在控制的用戶。

(2)正在控制的用戶若在15min內無控制操作,服務器端自動解除控制,若要繼續控制則要重新申請。

(3)若申請控制的是服務器端,服務器會告知正在操作的客戶端將在1min內退出。

四、實現方法

根據Pelco-D協議,對云臺和鏡頭的控制,實質是通過串口對解碼器輸入一個包含七位數據碼的數組,解碼器通過所輸入的數據碼對云臺及鏡頭進行控制建立好協議的主體,就可以建立一個控制窗口界面,實現各種控制功能,使用戶在客戶端方便地進行監控。如要建立云臺上、下、左、右的控制,則在界面中建立4個控制按鈕并分別實現對應的消息。

以下是實現控制云臺向左轉動的程序:

public stat ic vo id main (St ring[ ] args)

{

PelcoD pelcoD= new PelcoD ();

addressin= 0x01;

speeding= 0x20;

//獲得數據碼流

byte [ ] messagesend= pelcoD. CameraT ilt (addressin,

PelcoD. Pan. L eft. getV alue () , speedin);

t ry{

//寫入數據碼流

out. w rite (messagesend, 0, 7);

}catch ( IO Excep t ion e)

{。 . 。 . 。 . }

catch (N ullPo interExcep t ion e)

{。 . 。 . 。 . }

//關閉串口

serialPo rt. clo se ();

}

發送數據碼流的例子:

如第1 個云臺, 開啟攝像機: FF, 01, 88, 00, 00,

00, 89;

第2 個云臺, 關閉攝像機: FF, 02, 08, 00, 00,

00, 09;

第2 個云臺, 以最大速度的一半左轉: FF, 02,

00, 04, 00, 20, 26;

第2 個云臺, 停止: FF, 02, 00, 00, 00, 00, 02;

第10 個云臺,開啟攝像機,焦距拉遠,左轉:

FF, 0A , 88, 90, 00, 40, 62。

五、結束語

本系統利用Java串口通信,實現了對云臺和鏡頭的控制。軟件具有工作于多種操作系統的性能,用戶可隨時隨地通過IP網控制監控現場,使監控網絡的互通成為現實,為現代視頻監控提供一種可行方案。


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 轉換器
    +關注

    關注

    27

    文章

    8941

    瀏覽量

    150706
  • 視頻監控
    +關注

    關注

    17

    文章

    1720

    瀏覽量

    65816
  • JAVA
    +關注

    關注

    20

    文章

    2984

    瀏覽量

    106841
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    運營級遠程網絡實時視頻監控平臺

    、計算機控制等多種技術,為終端用戶提供實時視頻、音頻和各種報警信號的遠程采集、傳輸、儲存、處理等新型業務。該業務系統的核心是通過一個應用廣泛的實時
    發表于 02-03 10:29

    Flash 編碼技術,輕松實現平臺遠程監控

    攝像機,視頻服務器或者DVR,完成鏡頭控制視頻信號的采集,數字化,編碼和傳輸。有些可以通
    發表于 05-25 09:12

    智易申請】特種監控程控制

    申請理由:目前在使用8位單片機的情況下,監控的速率范圍已無再提升的空間,公司也在準備往32位單片機升級項目描述:石油鉆井平臺設備運行現場監控
    發表于 08-19 08:37

    泵站遠程監控系統

    遠程監控泵站,實現泵站無人值守。系統組成泵站遠程監控系統
    發表于 02-15 16:34

    基于機智IoT開發平臺的溫室番茄遠程監控系統

    使用Wi-Fi和平臺技術實現了溫室番茄環境生長參數的遠程監控系統,用戶可使用手機APP終端和機
    發表于 05-18 17:36

    如何利用IP網絡實現遠程視頻監控系統

    本文介紹的遠程監控系統,可利用現有IP網絡實現遠程監控控制
    發表于 06-07 06:20

    一種APP和微信遠程組態監控達PLC的方案分享

    一種APP和微信遠程監控達PLC的方案前言:達PLC是一款國產優秀的可編程控制器,廣泛應于工業控制
    發表于 07-02 07:45

    如何實現機房環境動力遠程實時監控

    機房監控工業路由器,機房監控系統的無線通信終端,實現機房環境動力遠程實時監控,對接現場設備及
    發表于 02-16 07:36

    使用OneNET平臺遠程控制風扇的方法

    聯網的平臺實現控制開發板上面的燈。暑假期間,參加競賽之余,實現云端控制繼電器,進而
    發表于 02-21 06:12

    基于嵌入式插件技術的遠程控制系統

    控制功能是嵌入式視頻服務器的重要功能模塊,本文介紹了基于Internet 的遠程控制技術,結合嵌入式插件技術,設計并
    發表于 08-06 10:50 ?31次下載

    利用Java實現遠程控制

    介紹了遠程控制的原理,詳細地敘述了利用Java 實現遠程控制軟件的程序設計方法和要點,并給出了要點的具體實現方法。
    發表于 09-03 09:36 ?37次下載

    基于JMF遠程視頻監控系統的設計與實現

    視頻監控系統是當前的一個研究熱點。為了實現一個跨平臺,低成本,低時延的視頻
    發表于 12-31 15:21 ?27次下載

    基于Internet的遠程控制系統

    基于局域網的控制系統已應用得非常廣泛,但是真正基于Internet的遠程控制系統還面臨諸多挑戰,如跨平臺性、實時性和安全性等。本文以一個Java實現
    發表于 07-14 15:42 ?14次下載

    智能電表遠程控制系統

     智能電表遠程控制系統是指基于服務平臺和物聯網技術,對智能電表進行遠程監控控制
    發表于 04-07 15:27 ?7811次閱讀

    遠程監控平臺,讓你的數據無處可藏!

    遠程監控平臺,讓你的數據無處可藏! 平臺遠程
    的頭像 發表于 01-05 17:00 ?827次閱讀