<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          關 閉

          新聞中心

          EEPW首頁 > 安全與國防 > 設計應用 > 利用Java實現(xiàn)對云臺和鏡頭的遠程控制

          利用Java實現(xiàn)對云臺和鏡頭的遠程控制

          作者: 時間:2008-03-11 來源:網(wǎng)絡 收藏
          和ServerSocket類分別用于客戶機和服務器中,分別創(chuàng)建獨立的Socket,將2個Socket進行連接,實現(xiàn)連接后,就可以通過Socket進行通信[6]。
          在本系統(tǒng)中,服務器端起一線程進行監(jiān)聽,一旦收到客戶端對服務器的指定端口發(fā)出的請求,即根據(jù)客戶端傳來的指令來控制。客戶端通過發(fā)送字符串與服務器端匹配控制命令。如控制向上,則客戶端:
          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 " ) ) {
          . . . . . .
          ??實現(xiàn)向上操作
          }
          用戶只需在界面中點擊"上"、"下"、"左"、"右"等命令按鈕,系統(tǒng)即向服務器發(fā)送命令。
          2、控制沖突的解決
          當有多個客戶端同時登陸并控制,或服務器端和客戶端同時控制云臺,便會發(fā)生控制沖突。解決控制沖突的策略是設置控制狀態(tài)??蛻舳藢υ婆_或的控制是通過服務器端進行的。 客戶端若要發(fā)送云臺或控制命令,必須首先向服務器端發(fā)送控制申請命令,服務器在接收到客戶端控制申請命令后,就會檢查控制狀態(tài)。
          (1)當沒有控制申請的時候控制狀態(tài)為空,服務器接受控制申請;當云臺和鏡頭正在被控制,控制狀態(tài)為忙,申請控制需要等待,服務器將通知正在控制的用戶。
          (2)正在控制的用戶若在15min內無控制操作,服務器端自動解除控制,若要繼續(xù)控制則要重新申請。
          (3)若申請控制的是服務器端,服務器會告知正在操作的客戶端將在1min內退出。
          四、實現(xiàn)方法
          根據(jù)Pelco-D協(xié)議,對云臺和鏡頭的控制,實質是通過串口對輸入一個包含七位數(shù)據(jù)碼的數(shù)組,通過所輸入的數(shù)據(jù)碼對云臺及鏡頭進行控制建立好協(xié)議的主體,就可以建立一個控制窗口界面,實現(xiàn)各種控制功能,使用戶在客戶端方便地進行監(jiān)控。如要建立云臺上、下、左、右的控制,則在界面中建立4個控制按鈕并分別實現(xiàn)對應的消息。
          以下是實現(xiàn)控制云臺向左轉動的程序:
          public stat ic vo id main (St ring[ ] args)
          {
          PelcoD pelcoD= new PelcoD ();
          addressin= 0x01;
          speeding= 0x20;
          //獲得數(shù)據(jù)碼流
          byte [ ] messagesend= pelcoD. CameraT ilt (addressin,
          PelcoD. Pan. L eft. getV alue () , speedin);
            t ry{
          //寫入數(shù)據(jù)碼流
          out. w rite (messagesend, 0, 7);
          }catch ( IO Excep t ion e)
          {. . . . . . }
          catch (N ullPo interExcep t ion e)
          {. . . . . . }
          //關閉串口
          serialPo rt. clo se ();
          }
          發(fā)送數(shù)據(jù)碼流的例子:
          如第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。
          五、結束語
          本系統(tǒng)利用串口通信,實現(xiàn)了對云臺和鏡頭的控制。軟件具有工作于多種操作系統(tǒng)的性能,用戶可隨時隨地通過IP網(wǎng)控制監(jiān)控現(xiàn)場,使監(jiān)控網(wǎng)絡的互通成為現(xiàn)實,為現(xiàn)代視頻監(jiān)控提供一種可行方案。


          上一頁 1 2 下一頁

          關鍵詞: Java 云臺 鏡頭 解碼器

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();