吳晨光
(上海元路信息系統科技有限公司,上海 200030)
集中控制系統在攝像聯動中的應用
吳晨光
(上海元路信息系統科技有限公司,上海 200030)
隨著計算機技術的發展,集中控制系統在會議系統中的使用越來越普遍,現在已經成為會議系統中的標準配置。集中控制系統提供了強大且方便的編程平臺,使得原本復雜的會議系統設備的管理與使用變得輕松而高效。本文將介紹集中控制系統如何實現對數字會議系統的管理和攝像聯動控制。
數字會議系統 集中控制系統 攝像聯動
隨著數字化技術的發展,集中控制系統和數字會議及攝像聯動系統已經成為現代化、智能化會議系統中不可缺少的系統之一,特別是在較大型的會議系統中顯的尤為重要。
在數字會議誕生之前,要構建話筒數量達到上百支的系統是相當困難的,且使用和維護也極其復雜。有了數字會議系統不僅可以輕松構建幾百支話筒的系統,就算幾千支話筒的系統也可以輕松實現。數字會議系統除了可以用手拉手的方式輕松實現話筒的擴展、話筒及發言的管理,還可以實現投票表決、同聲傳譯、攝像聯動等功能。但是數字會議系統的攝像聯動往往只能自成系統,必須選用指定的攝像機,只給實際使用帶來了很大的麻煩。
在數字會議系統中最著名的,國內使用量也是最大的BOSCH就是這樣。它要實現攝像聯動必須使用BOSCH的矩陣、控制鍵盤、非高清的快速球機。而目前會議室中使用較多的是SONY的攝像機,且越來越多的用戶開始使用高清的攝像機,因此利用CRESTRON集中控制系統作為橋梁來實現BOSCH數字會議室與SONY高清攝像機之間的攝像聯動具有一定的實際意義。
LBB4187/00是BOSCH公司的一個開放式接口模塊,通過此模塊用戶可以自行編程來控制和管理BOSCH的DCN數字會議系統,實現會議主機和會議話筒狀態的實時顯示與控制、表決以及攝像聯動等功能;
LBB4187/00并不是一個硬件的設備,其實他只是一個軟件的許可號。用戶可以通過這個許可號以及要安裝這個許可號的主機的序列號到BOSCH網站注冊生成一個可激活開放式接口協議的新的許可號,再通過專用的軟件激活該協議。
在集中控制主機與DCN會議系統主機之間的通訊是通過專用的數據包來實現,其具體的定義格式為:數據包頭+消息+校驗。
數據包頭由3個字節組成,其具體的說明如下:
Escape:為Escape鍵,其值為0x1B;

表1

表2
Headertype:為數據包頭的類型,其具體的取值與含意如下:
‘$’表示帶有消息數據的包;
‘@’表示不帶消息數據的ACK包;
‘#’表示不帶消息數據的NAK包;
‘?”表示為heartbeat包;
Sequence:表示包的序號
消息是集中控制主機與DCN會議主機之間通訊的真正有效率數據。
消息類型與DCN會議主機之間通訊的消息類型有以下三類;
MDSM_REMOTEPROCEDURE_REQ
MDSM_REMOTEPROCEDURE_RSP
MDSM_NOTIFY
它們分別表示請求、響應、通告;
數據長度:表示緊跟其后要傳輸數據的長度;
數據:表示此條消息所包含的命令數據。
所有數據包都要以校驗字節結束,為了保正數據頭的唯一性增加了一個修正字節,其具體的計算過程如下:
(1)將修正字節的值設為0x00;(2)將數據包頭、完整的消息以及修正字節相加;(3)將第二步計算的結果用256求余并按位取反;(4)檢查第三步的結果是否等于0xC8,如果等于將修正字節改為0x13跳到第二步重新計算。
目前在會議室中使用最為廣泛的攝像機為SONY的攝像機,其采用的通訊協議為SONY VISCA協議,目前也有很多其它品牌的攝像機兼容SONY VISCA協議。VISCA協議的通訊也是以數據包為其本的通訊單位。在數據包的第一個字節是包頭,它包含了發送方或接收方的地址,中間為命令和數據,最后以0xFF結束。
SONY的會議用攝像機大多都是只有6個硬件預置位,而在實際應用中6個預置位是遠遠不夠的,在一般的會議室中通常少的需要十幾個,多的需要幾十個甚至上百個預置位,因此需要采用軟件的方法來實現。在VISCA協議中我們發現關于攝像機鏡頭遠近的縮放以及上下左右位置的移動有直接位置指令,這為用軟件實現預置位提供了必要的條件。
通常情況下攝像機的聚焦、光圈、白平衡等都是自動的,因此我們只要通過命令實現縮放和上下左右位置就可以實現預位的功能。以下我們以SONY EVI-HD1高清攝像機為例為介紹這兩條指令。
在EVI-HD1的通訊協議中CAM_Zoom命令下能找到一個Direct指令,其格式如下:
0x8x 0x01 0x04 0x07 0x0p 0x0q 0x0r 0x0s 0xFF
在以上指令中0x8x為包頭,0xFF為包的結尾,中間的為命令和數據。其中0x8x中的x為地址,其取范圍為1~7,0x0p 0x0q 0x0r 0x0s中的“pqrs”組成在一起為16進制表示的一個2字節的數,即:0xpqrs。
在EVI-HD1的通訊協議中Pan-tiltDrive命令下能找到一個AbsolutePosition指令,其格式如下:
0x8x 0x01 0x06 0x02 0xVV 0xWW 0x0Y 0x0Y 0x0Y 0x0Y 0x0Z 0x0Z 0x0Z 0x0Z 0xFF
以上指令中包頭與結尾與攝像機縮放指令是相同的,在數據中0xVV表示水平移動速度、0xWW表示垂直移動速度、0x0Y 0x0Y 0x0Y 0x0Y表示水平位置、0x0Z 0x0Z 0x0Z 0x0Z表示垂直位置。
針對于DCN主機和攝像機我們采用了兩個SIMPL+模塊來實現,兩個模塊之間能過一個模擬量為實現攝像聯動的功能。由于篇幅的限制本文件只對兩個模塊的實現思路做簡單介紹。
首先我們需要定義模塊的輸入和輸出接口,主要的接口變量定義如表1:
對于數字量輸入我們可以采用PUSH事件來完成對應事件的處理,對于字符串輸入我們采用CHANGE事件,在CHANGE事件中對接收到的數據進行處理,并調用相應的命令處理函數完成狀態的輸出。
其中模擬量cam_Pos等于0時表示調用全景位,大于0的數表示相應的預置位。預置位的生成規則是:
(1)當有新的話筒打開時,當前的預置位號設為當前的話筒號;
(2)當有話筒關閉時,查找發言列表中是否有主席機,如有將當前的預置位設為主席機的話筒號;如無主席機,則將當前預置位設為發言列表中列在第一位的話筒號;
(3)如發言列表為空,個輸出全景位。
在VISCA協議的實現中主要注意的是用于保存水平、垂直、放大縮小等預置位信息的數組要定義成SIGNED_LONG_INTEGER,并且在SIMPL+模塊預定義中加入#DEFAULT_NONVOLATILE,這樣預置位信息將會被保存在非易失性存儲器中。其主要接口變量的定義如表2:
對于數字量輸入我們采用PUSH事件完成對應的事件處理,對于預置位調用的模擬量我們采用CHANGE事件,在CHANGE事件中根據事先存儲的預置位信息生成預置位命令,并輸出給字符串輸出變量。
集中控制系統在會議系統中的應用,使得現代化會議系統的管理和使用越來越方便、高效,整個會議系統的集成代程度越來越高。依托集中控制系統所提供的靈活的、高效的編程平臺我們可以實現一些以前無法實現的功能,使我們的會議系統也越來越智能化。
[1]《DCN Next Generation Open Interface Release 2.1》,2005年09月.