• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于C/S模式的遠程云臺控制系統(tǒng)設計與實現

      2014-09-18 07:12:34張夢娜于鴻洋
      電視技術 2014年13期
      關鍵詞:云臺服務器端命令

      張夢娜,于鴻洋

      (電子科技大學電子科學技術研究院,四川成都 611731)

      近年來,社會不斷進步,人們生活水平不斷提高,人們對于隱私保護的觀念逐漸增強,視頻監(jiān)控系統(tǒng)在教育、銀行、交通、醫(yī)療等各行各業(yè)有著廣泛的應用。而視頻監(jiān)控系統(tǒng)的核心就是云臺控制[1]。傳統(tǒng)的云臺控制是通過手動摁下云臺上相應的按鈕而進行的,這對監(jiān)控人員的地理位置有很大的限制,帶來了許多不便之處,故通過網絡遠程控制云臺逐漸成為視頻監(jiān)控的一種新趨勢。網絡控制云臺由于受到網絡本身的一些約束可能導致發(fā)送命令延時或錯誤。綜合以上優(yōu)劣,本文提出了一種基于C/S模式的遠程云臺控制系統(tǒng)的設計方案,對于其中的網絡延時或者發(fā)送命令錯誤都有相應的處理。同時加入了客戶端的權限控制,使得云臺控制更加高效實用。

      1 系統(tǒng)的總體設計

      本系統(tǒng)設計的是一種基于客戶端/服務器(C/S)模式的遠程云臺控制系統(tǒng)。監(jiān)控設備采用的是云臺攝像頭一體機(內置解碼器,支持協(xié)議為PELCO-D/P自適應)。服務器通過網絡可以與多種平臺(windows,linux,ios,andriod)的客戶端交互,并可以通過權限的判定有選擇性地讓權限高的客戶端擁有云臺控制的優(yōu)先權??蛻舳耸紫韧ㄟ^SOCKET通信與服務器建立連接,再根據自定義的協(xié)議向服務器發(fā)送云臺控制命令。當客戶端連接上服務器之后,服務器首先判定此客戶端是否具有控制權限。若有則將客戶端命令轉化為相應的云臺控制命令,再通過串口向云臺發(fā)送指令;若無則斷開連接。發(fā)送的指令通過一體機內的內置解碼器解釋最終控制云臺全方位轉動以及聚焦縮放。云臺控制系統(tǒng)框圖[2]如圖1所示。

      圖1 云臺控制系統(tǒng)框圖

      2 云臺的控制設計

      2.1 球機的撥碼開關設置

      取下球機外罩,可以看到內置解碼器電路板上有兩組撥碼開關。其中一組有4位,前兩位是控制協(xié)議開關,后兩位是波特率開關。另外一組有8位,是地址撥碼開關。撥碼開關撥到“ON”表示“1”,撥到“OFF”表示“0”。由于本系統(tǒng)采用PELCO-D協(xié)議,波特率為2 400 Baud,故根據產品說明書將第一組撥碼開關設置為0000,第二組撥碼開關設置為00000001(即地址為16進制01H)。

      2.2 PELCO-D 協(xié)議的數據編碼[3-6]

      數據格式包括1位起始位、8位數據、1位停止位,無效驗位。波特率為2 400 Baud。命令格式如圖2所示。

      圖2 命令格式

      該協(xié)議中所有數值都為十六進制數;同步字節(jié)始終為FFH;地址碼為攝像機的邏輯地址號,地址范圍00H~FFH,可以在設備中設置;指令碼表示不同的動作;數據碼1,2分別表示水平、垂直方向速度(00~3FH),FFH表示“turbo”速度;校驗碼 =MOD[(Byte2+Byte3+Byte4+Byte5+Byte6)/100H]。

      命令字1和命令字2設置如表1所示。

      表1 命令字設置

      例如,欲控制云臺向左旋轉,可發(fā)送一串16進制碼FF010004FF0004。

      2.3 云臺控制基本代碼框架

      首先打開串口,串口對應的設備文件名為“/dev/ttyS0”,參數O_RDWR表示可讀可寫,即

      然后設置串口屬性,SetSpeed函數設置波特率為2 400 Baud,SetParity函數設置數據格式為8位數據,1位停止位,無校驗位,即

      接下來輸入命令碼,保存在字符串strCommOut中,即CheckSum函數用來計算校驗碼。

      最后向串口發(fā)送命令,即

      3 客戶端與服務器端的交互設計

      3.1 客戶端與服務器的交互協(xié)議

      為了方便交互,自定義了一組5位的0/1字符串作為客戶端發(fā)送的命令。0/1字符串是一種非常簡單的組合,而固定長度的字符串在網絡通信中能夠通過一定的機制保證收發(fā)完整。因為read()和write()函數每一次接收和發(fā)送數據長度不能確定。故在本系統(tǒng)的設計中,通過函數recv()和send()來收發(fā)數據。設置兩個函數的最大接收字節(jié)數和最大發(fā)送字節(jié)數MAXSIZE為5,并且將函數的第4個參數設置為MSG_WAITALL,這樣可以保證每次接收和發(fā)送的數據長度到達5時才返回,由此收發(fā)的數據長度得到了保證。而收發(fā)的數據內容正確與否則采用錯誤重傳機制,即如果客戶端發(fā)送的命令不在自定義的協(xié)議范圍內,則服務器端返回消息告知客戶端命令發(fā)送不正確,請重新發(fā)送命令。

      而在服務器端為了便于識別其含義,宏定義一組字母字符串來代表0/1字符串(如:#define ACTION_BEGIN“11111”),以增加程序的可讀性。表2所示為具體的交互協(xié)議。

      表2 客戶端與服務器交互協(xié)議

      3.2 客戶端與服務器的交互流程

      客戶端與服務器的交互具體分為三大模塊:SOCKET通信模塊、身份驗證模塊和命令處理模塊。

      3.2.1 SOCKET通信模塊

      通信流程分為客戶端和服務器端,使用TCP協(xié)議進行通信。首先是服務器端建立套接字socket(),綁定地址和端口bind(),然后監(jiān)聽端口listen(),阻塞直到有客戶端連接??蛻舳艘惨⑻捉幼謘ocket(),然后主動發(fā)起連接connect(),服務器端則接受連接accept()。最后客戶端和服務器端經過TCP的“3次握手”建立連接,此時就可以相互通信發(fā)送和接收數據了。如果某一方調用close()主動關閉連接,則接下來會經歷TCP的“4次握手”釋放連接。

      3.2.2 身份驗證模塊

      首先服務器端不斷地接受不同客戶端的連接請求并將它們置于連接隊列,然后再進行身份驗證。此前需要預先進行權限等級的設置,本系統(tǒng)的設計中用戶PRIOR具有最高權限(唯一),其他注冊用戶具有相同的權限。定義一個標志位flag,當flag為2時表明此時最高權限的用戶在控制云臺,當flag為1時表明此時一般權限的用戶在控制云臺,當flag為0時表明沒有用戶在控制云臺。flag的初始值置為0。當服務器端與客戶端建立了連接之后,首先讀取客戶端的信息(用戶名和密碼),然后在數據庫中查詢有無此用戶。若無,則向此客戶端發(fā)送信息“You have no permission and can not control!”并斷開連接;若是一般用戶,如果此時flag為0則直接給予控制權限并將flag置1,如果flag不為0則主動斷開連接;若是PRIOR用戶,如果此時flag為0則直接給予控制權限并將flag置2,如果flag為1則剝奪正在控制云臺的用戶的權限,強制斷開連接,將控制權限交給PRIOR用戶,并將flag置2。身份驗證流程如圖3所示。

      3.2.3 命令處理模塊

      如果當前客戶端得到控制云臺的權限,則通過與服務器事先協(xié)商好的交互協(xié)議向服務器發(fā)送命令。若服務給予了用戶控制權限后,則創(chuàng)建一個子進程fork()來處理控制命令,將客戶端的命令轉化為對應的云臺控制命令,再向串口寫命令,從而控制云臺全方位轉動。在控制過程中,開始時客戶端必須要向服務發(fā)送控制碼11111(宏定義ACTION_BEGIN,表明開始控制云臺),控制結束后客戶端必須要向服務器發(fā)送控制碼00000(宏定義ACTION_END,表明結束控制云臺)。此模塊中同時設定了超時機制,若超過5 min客戶端未向服務器端發(fā)送任何命令,服務器端就強制斷開連接。命令處理流程如圖4所示。

      圖3 身份驗證流程

      圖4 命令處理流程

      4 系統(tǒng)測試

      本系統(tǒng)設計的是一種基于客戶端/服務器(C/S)模式的遠程云臺控制系統(tǒng)。監(jiān)控設備選擇的是保千里迷你紅外高速球(云臺和攝像頭一體機,內置解碼器[7-8],支持協(xié)議為PELCO-D/P自適應,10倍光學變焦,可設置預置點,帶紅外夜視功能)。服務器配置fedora14操作系統(tǒng),客戶端是基于ios平臺開發(fā)的。服務器端連接RS-232規(guī)格的串口線,中間通過RS-232/RS-485轉換器連接到云臺RS-485規(guī)格的串口線上。服務器與客戶端通過網絡進行通信。

      圖5所示為云臺控制演示系統(tǒng)。其中左邊為客戶端設計的云臺控制界面(ios手機版)。右上方為服務器端控制界面,當與客戶端連接之后,會顯示客戶端的IP地址,然后顯示開始控制消息,接著打印客戶端發(fā)送的控制指令,最后顯示結束控制消息。右下方為客戶端的反饋界面,開始和結束控制都會收到服務器端發(fā)送的相應的提示消息。圖6為客戶端控制云臺的幾個監(jiān)控畫面。其中包括了原監(jiān)控畫面、視頻放大畫面、視頻縮小畫面、菜單欄畫面、云臺下轉畫面、云臺上轉畫面、系統(tǒng)重啟畫面、云臺右轉畫面、云臺左轉畫面。

      圖5 云臺控制演示系統(tǒng)(截圖)

      圖6 監(jiān)控畫面(截圖)

      經過多次測試,本系統(tǒng)運行穩(wěn)定可靠,能夠精確控制云臺全方位轉動、聚焦和縮放。同時還可以進入菜單欄調整各項參數,功能全面,操作簡單,方便實用。

      5 系統(tǒng)應用

      本文介紹的云臺控制系統(tǒng)主要應用于視頻監(jiān)控系統(tǒng)中,基于教研室自擬項目“基于智能視音頻的LED大屏控制與遠程監(jiān)視”,致力于開發(fā)一套完備的集人臉、手勢識別、視頻監(jiān)控、云臺遠程控制為一體的解決方案。其中,云臺控制不僅可供客戶端進行遠程控制,還可與人臉識別系統(tǒng)配合,通過人臉定位調整云臺的方向并進行適當放大,以達到更好的識別效果。目前,蘋果客戶端的云臺控制APP已在蘋果應用商店上架。

      如今,市場上商用的云臺控制系統(tǒng)都集成于視頻采集卡中,主要用于PC端,為了追求系統(tǒng)的穩(wěn)定,支持的操作系統(tǒng)一般是Windows XP系統(tǒng)。而如今隨著智能手機的普遍應用,特別是安卓系統(tǒng)和蘋果系統(tǒng)得到廣大用戶的喜愛與推廣,手機軟件的開發(fā)應用將掀起一股新的互聯(lián)網IT革命熱潮,民用的云臺控制系統(tǒng)更具潛力,具有布局范圍廣、控制方便、操作人性化、開放互動等優(yōu)點。

      6 結束語

      本文主要介紹了一種新的基于客戶端/服務器(C/S)模式的遠程云臺控制系統(tǒng)。云臺與客戶端通過串口通信進行控制,客戶端與服務器通過網絡通信交互。本系統(tǒng)還加入了客戶端身份驗證模塊,給與客戶群不同的權限,使云臺控制變得更加有效而準確。系統(tǒng)測試表明,客戶端能夠準確控制云臺全方位轉動并且還實現了聚焦、放縮、掃描,轉到預置位,進入菜單等多種功能。此云臺控制系統(tǒng)具有較好的應用價值和市場前景。

      :

      [1]尚青青,朱秀昌.高清視頻監(jiān)控中心的設計與實現[J].電視技術,2013,37(11):186-187.

      [2]王鋼,李博,魏民,等.帶有云臺信息反饋的視頻監(jiān)控系統(tǒng)軟件的開發(fā)設計[J].安防科技,2008(12):29-32.

      [3]吳力普,王文白.一種智能云臺控制操作鍵盤設計[J].北方工業(yè)大學學報,2011,23(3):46-50.

      [4]吳力普,吳濤,張月魁.一種帶反饋應答功能的云臺鏡頭控制器設計[J].安防科技,2011(3):18-20.

      [5]楊軼龍,徐馳,翁麗娜,等.基于閉環(huán)控制的云臺通信協(xié)議設計[J].安防科技,2011(11):18-20.

      [6]權立偉,石江宏,薛財鋒.IP視頻監(jiān)控系統(tǒng)中云臺控制模塊的設計與實現[J].電子技術應用,2006(11):86-88.

      [7]雷偉軍,朱曦,劉長明.基于Visual C++云臺控制系統(tǒng)關鍵技術與算法[J].西安文理學院學報:自然科學版,2008,11(3):76-79.

      [8]戴鈞,戴國駿.閉路監(jiān)視系統(tǒng)中云臺鏡頭控制的原理及實現[J].杭州電子工業(yè)學院學報,2001,21(1):59-62.

      猜你喜歡
      云臺服務器端命令
      云上之家——萬科·郡西云臺
      現代裝飾(2022年6期)2022-12-17 01:10:30
      龍門山·臥云臺
      現代裝飾(2022年6期)2022-12-17 01:09:42
      只聽主人的命令
      幫我買云臺
      基于STM32的無線FPV云臺設計
      電子制作(2019年23期)2019-02-23 13:21:16
      移防命令下達后
      淺析異步通信層的架構在ASP.NET 程序中的應用
      成功(2018年10期)2018-03-26 02:56:14
      這是人民的命令
      在Windows中安裝OpenVPN
      藍色命令
      古丈县| 黑龙江省| 田东县| 明溪县| 文成县| 绥棱县| 祁连县| 扎囊县| 南郑县| 西宁市| 同江市| 娄底市| 通化市| 西林县| 博野县| 清水河县| 巴里| 金沙县| 四会市| 新余市| 吴忠市| 洮南市| 竹溪县| 通许县| 来宾市| 沐川县| 土默特左旗| 德惠市| 百色市| 崇礼县| 长宁县| 丹巴县| 陆丰市| 伊春市| 陆河县| 永吉县| 五峰| 华亭县| 来宾市| 西盟| 罗江县|