• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 關(guān) 閉

    新聞中心

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

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

    作者: 時間:2008-03-11 來源:網(wǎng)絡(luò) 收藏
    和ServerSocket類分別用于客戶機和服務(wù)器中,分別創(chuàng)建獨立的Socket,將2個Socket進行連接,實現(xiàn)連接后,就可以通過Socket進行通信[6]。
    在本系統(tǒng)中,服務(wù)器端起一線程進行監(jiān)聽,一旦收到客戶端對服務(wù)器的指定端口發(fā)出的請求,即根據(jù)客戶端傳來的指令來控制。客戶端通過發(fā)送字符串與服務(wù)器端匹配控制命令。如控制向上,則客戶端:
    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 ();
    }
    }
    服務(wù)器端:
    if (command. equals ("up " ) ) {
    . . . . . .
    ??實現(xiàn)向上操作
    }
    用戶只需在界面中點擊"上"、"下"、"左"、"右"等命令按鈕,系統(tǒng)即向服務(wù)器發(fā)送命令。
    2、控制沖突的解決
    當有多個客戶端同時登陸并控制,或服務(wù)器端和客戶端同時控制云臺,便會發(fā)生控制沖突。解決控制沖突的策略是設(shè)置控制狀態(tài)。客戶端對云臺或的控制是通過服務(wù)器端進行的。 客戶端若要發(fā)送云臺或控制命令,必須首先向服務(wù)器端發(fā)送控制申請命令,服務(wù)器在接收到客戶端控制申請命令后,就會檢查控制狀態(tài)。
    (1)當沒有控制申請的時候控制狀態(tài)為空,服務(wù)器接受控制申請;當云臺和鏡頭正在被控制,控制狀態(tài)為忙,申請控制需要等待,服務(wù)器將通知正在控制的用戶。
    (2)正在控制的用戶若在15min內(nèi)無控制操作,服務(wù)器端自動解除控制,若要繼續(xù)控制則要重新申請。
    (3)若申請控制的是服務(wù)器端,服務(wù)器會告知正在操作的客戶端將在1min內(nèi)退出。
    四、實現(xiàn)方法
    根據(jù)Pelco-D協(xié)議,對云臺和鏡頭的控制,實質(zhì)是通過串口對輸入一個包含七位數(shù)據(jù)碼的數(shù)組,通過所輸入的數(shù)據(jù)碼對云臺及鏡頭進行控制建立好協(xié)議的主體,就可以建立一個控制窗口界面,實現(xiàn)各種控制功能,使用戶在客戶端方便地進行監(jiān)控。如要建立云臺上、下、左、右的控制,則在界面中建立4個控制按鈕并分別實現(xiàn)對應的消息。
    以下是實現(xiàn)控制云臺向左轉(zhuǎ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)
    {. . . . . . }
    //關(guān)閉串口
    serialPo rt. clo se ();
    }
    發(fā)送數(shù)據(jù)碼流的例子:
    如第1 個云臺, 開啟攝像機: FF, 01, 88, 00, 00,
    00, 89;
    第2 個云臺, 關(guān)閉攝像機: FF, 02, 08, 00, 00,
    00, 09;
    第2 個云臺, 以最大速度的一半左轉(zhuǎn): FF, 02,
    00, 04, 00, 20, 26;
    第2 個云臺, 停止: FF, 02, 00, 00, 00, 00, 02;
    第10 個云臺,開啟攝像機,焦距拉遠,左轉(zhuǎn):
    FF, 0A , 88, 90, 00, 40, 62。
    五、結(jié)束語
    本系統(tǒng)利用串口通信,實現(xiàn)了對云臺和鏡頭的控制。軟件具有工作于多種操作系統(tǒng)的性能,用戶可隨時隨地通過IP網(wǎng)控制監(jiān)控現(xiàn)場,使監(jiān)控網(wǎng)絡(luò)的互通成為現(xiàn)實,為現(xiàn)代視頻監(jiān)控提供一種可行方案。


    上一頁 1 2 下一頁

    關(guān)鍵詞: Java 云臺 鏡頭 解碼器

    評論


    相關(guān)推薦

    技術(shù)專區(qū)

    關(guān)閉
    主站蜘蛛池模板: 安西县| 龙门县| 乌拉特后旗| 冀州市| 秭归县| 古交市| 乌海市| 当雄县| 保德县| 云浮市| 正定县| 垣曲县| 利辛县| 绥棱县| 南皮县| 沭阳县| 金昌市| 独山县| 瓦房店市| 张掖市| 梧州市| 兴安盟| 舞钢市| 琼中| 清水河县| 岳池县| 瓦房店市| 正镶白旗| 应城市| 南汇区| 吉水县| 大城县| 七台河市| 大化| 安龙县| 扎兰屯市| 黑河市| 彭泽县| 得荣县| 同仁县| 扬中市|