吳晨光
(上海元路信息系統(tǒng)科技有限公司,上海 200030)
集中控制系統(tǒng)在攝像聯(lián)動(dòng)中的應(yīng)用
吳晨光
(上海元路信息系統(tǒng)科技有限公司,上海 200030)
隨著計(jì)算機(jī)技術(shù)的發(fā)展,集中控制系統(tǒng)在會(huì)議系統(tǒng)中的使用越來越普遍,現(xiàn)在已經(jīng)成為會(huì)議系統(tǒng)中的標(biāo)準(zhǔn)配置。集中控制系統(tǒng)提供了強(qiáng)大且方便的編程平臺(tái),使得原本復(fù)雜的會(huì)議系統(tǒng)設(shè)備的管理與使用變得輕松而高效。本文將介紹集中控制系統(tǒng)如何實(shí)現(xiàn)對(duì)數(shù)字會(huì)議系統(tǒng)的管理和攝像聯(lián)動(dòng)控制。
數(shù)字會(huì)議系統(tǒng) 集中控制系統(tǒng) 攝像聯(lián)動(dòng)
隨著數(shù)字化技術(shù)的發(fā)展,集中控制系統(tǒng)和數(shù)字會(huì)議及攝像聯(lián)動(dòng)系統(tǒng)已經(jīng)成為現(xiàn)代化、智能化會(huì)議系統(tǒng)中不可缺少的系統(tǒng)之一,特別是在較大型的會(huì)議系統(tǒng)中顯的尤為重要。
在數(shù)字會(huì)議誕生之前,要構(gòu)建話筒數(shù)量達(dá)到上百支的系統(tǒng)是相當(dāng)困難的,且使用和維護(hù)也極其復(fù)雜。有了數(shù)字會(huì)議系統(tǒng)不僅可以輕松構(gòu)建幾百支話筒的系統(tǒng),就算幾千支話筒的系統(tǒng)也可以輕松實(shí)現(xiàn)。數(shù)字會(huì)議系統(tǒng)除了可以用手拉手的方式輕松實(shí)現(xiàn)話筒的擴(kuò)展、話筒及發(fā)言的管理,還可以實(shí)現(xiàn)投票表決、同聲傳譯、攝像聯(lián)動(dòng)等功能。但是數(shù)字會(huì)議系統(tǒng)的攝像聯(lián)動(dòng)往往只能自成系統(tǒng),必須選用指定的攝像機(jī),只給實(shí)際使用帶來了很大的麻煩。
在數(shù)字會(huì)議系統(tǒng)中最著名的,國(guó)內(nèi)使用量也是最大的BOSCH就是這樣。它要實(shí)現(xiàn)攝像聯(lián)動(dòng)必須使用BOSCH的矩陣、控制鍵盤、非高清的快速球機(jī)。而目前會(huì)議室中使用較多的是SONY的攝像機(jī),且越來越多的用戶開始使用高清的攝像機(jī),因此利用CRESTRON集中控制系統(tǒng)作為橋梁來實(shí)現(xiàn)BOSCH數(shù)字會(huì)議室與SONY高清攝像機(jī)之間的攝像聯(lián)動(dòng)具有一定的實(shí)際意義。
LBB4187/00是BOSCH公司的一個(gè)開放式接口模塊,通過此模塊用戶可以自行編程來控制和管理BOSCH的DCN數(shù)字會(huì)議系統(tǒng),實(shí)現(xiàn)會(huì)議主機(jī)和會(huì)議話筒狀態(tài)的實(shí)時(shí)顯示與控制、表決以及攝像聯(lián)動(dòng)等功能;
LBB4187/00并不是一個(gè)硬件的設(shè)備,其實(shí)他只是一個(gè)軟件的許可號(hào)。用戶可以通過這個(gè)許可號(hào)以及要安裝這個(gè)許可號(hào)的主機(jī)的序列號(hào)到BOSCH網(wǎng)站注冊(cè)生成一個(gè)可激活開放式接口協(xié)議的新的許可號(hào),再通過專用的軟件激活該協(xié)議。
在集中控制主機(jī)與DCN會(huì)議系統(tǒng)主機(jī)之間的通訊是通過專用的數(shù)據(jù)包來實(shí)現(xiàn),其具體的定義格式為:數(shù)據(jù)包頭+消息+校驗(yàn)。
數(shù)據(jù)包頭由3個(gè)字節(jié)組成,其具體的說明如下:
Escape:為Escape鍵,其值為0x1B;
表1
表2
Headertype:為數(shù)據(jù)包頭的類型,其具體的取值與含意如下:
‘$’表示帶有消息數(shù)據(jù)的包;
‘@’表示不帶消息數(shù)據(jù)的ACK包;
‘#’表示不帶消息數(shù)據(jù)的NAK包;
‘?”表示為heartbeat包;
Sequence:表示包的序號(hào)
消息是集中控制主機(jī)與DCN會(huì)議主機(jī)之間通訊的真正有效率數(shù)據(jù)。
消息類型與DCN會(huì)議主機(jī)之間通訊的消息類型有以下三類;
MDSM_REMOTEPROCEDURE_REQ
MDSM_REMOTEPROCEDURE_RSP
MDSM_NOTIFY
它們分別表示請(qǐng)求、響應(yīng)、通告;
數(shù)據(jù)長(zhǎng)度:表示緊跟其后要傳輸數(shù)據(jù)的長(zhǎng)度;
數(shù)據(jù):表示此條消息所包含的命令數(shù)據(jù)。
所有數(shù)據(jù)包都要以校驗(yàn)字節(jié)結(jié)束,為了保正數(shù)據(jù)頭的唯一性增加了一個(gè)修正字節(jié),其具體的計(jì)算過程如下:
(1)將修正字節(jié)的值設(shè)為0x00;(2)將數(shù)據(jù)包頭、完整的消息以及修正字節(jié)相加;(3)將第二步計(jì)算的結(jié)果用256求余并按位取反;(4)檢查第三步的結(jié)果是否等于0xC8,如果等于將修正字節(jié)改為0x13跳到第二步重新計(jì)算。
目前在會(huì)議室中使用最為廣泛的攝像機(jī)為SONY的攝像機(jī),其采用的通訊協(xié)議為SONY VISCA協(xié)議,目前也有很多其它品牌的攝像機(jī)兼容SONY VISCA協(xié)議。VISCA協(xié)議的通訊也是以數(shù)據(jù)包為其本的通訊單位。在數(shù)據(jù)包的第一個(gè)字節(jié)是包頭,它包含了發(fā)送方或接收方的地址,中間為命令和數(shù)據(jù),最后以0xFF結(jié)束。
SONY的會(huì)議用攝像機(jī)大多都是只有6個(gè)硬件預(yù)置位,而在實(shí)際應(yīng)用中6個(gè)預(yù)置位是遠(yuǎn)遠(yuǎn)不夠的,在一般的會(huì)議室中通常少的需要十幾個(gè),多的需要幾十個(gè)甚至上百個(gè)預(yù)置位,因此需要采用軟件的方法來實(shí)現(xiàn)。在VISCA協(xié)議中我們發(fā)現(xiàn)關(guān)于攝像機(jī)鏡頭遠(yuǎn)近的縮放以及上下左右位置的移動(dòng)有直接位置指令,這為用軟件實(shí)現(xiàn)預(yù)置位提供了必要的條件。
通常情況下攝像機(jī)的聚焦、光圈、白平衡等都是自動(dòng)的,因此我們只要通過命令實(shí)現(xiàn)縮放和上下左右位置就可以實(shí)現(xiàn)預(yù)位的功能。以下我們以SONY EVI-HD1高清攝像機(jī)為例為介紹這兩條指令。
在EVI-HD1的通訊協(xié)議中CAM_Zoom命令下能找到一個(gè)Direct指令,其格式如下:
0x8x 0x01 0x04 0x07 0x0p 0x0q 0x0r 0x0s 0xFF
在以上指令中0x8x為包頭,0xFF為包的結(jié)尾,中間的為命令和數(shù)據(jù)。其中0x8x中的x為地址,其取范圍為1~7,0x0p 0x0q 0x0r 0x0s中的“pqrs”組成在一起為16進(jìn)制表示的一個(gè)2字節(jié)的數(shù),即:0xpqrs。
在EVI-HD1的通訊協(xié)議中Pan-tiltDrive命令下能找到一個(gè)AbsolutePosition指令,其格式如下:
0x8x 0x01 0x06 0x02 0xVV 0xWW 0x0Y 0x0Y 0x0Y 0x0Y 0x0Z 0x0Z 0x0Z 0x0Z 0xFF
以上指令中包頭與結(jié)尾與攝像機(jī)縮放指令是相同的,在數(shù)據(jù)中0xVV表示水平移動(dòng)速度、0xWW表示垂直移動(dòng)速度、0x0Y 0x0Y 0x0Y 0x0Y表示水平位置、0x0Z 0x0Z 0x0Z 0x0Z表示垂直位置。
針對(duì)于DCN主機(jī)和攝像機(jī)我們采用了兩個(gè)SIMPL+模塊來實(shí)現(xiàn),兩個(gè)模塊之間能過一個(gè)模擬量為實(shí)現(xiàn)攝像聯(lián)動(dòng)的功能。由于篇幅的限制本文件只對(duì)兩個(gè)模塊的實(shí)現(xiàn)思路做簡(jiǎn)單介紹。
首先我們需要定義模塊的輸入和輸出接口,主要的接口變量定義如表1:
對(duì)于數(shù)字量輸入我們可以采用PUSH事件來完成對(duì)應(yīng)事件的處理,對(duì)于字符串輸入我們采用CHANGE事件,在CHANGE事件中對(duì)接收到的數(shù)據(jù)進(jìn)行處理,并調(diào)用相應(yīng)的命令處理函數(shù)完成狀態(tài)的輸出。
其中模擬量cam_Pos等于0時(shí)表示調(diào)用全景位,大于0的數(shù)表示相應(yīng)的預(yù)置位。預(yù)置位的生成規(guī)則是:
(1)當(dāng)有新的話筒打開時(shí),當(dāng)前的預(yù)置位號(hào)設(shè)為當(dāng)前的話筒號(hào);
(2)當(dāng)有話筒關(guān)閉時(shí),查找發(fā)言列表中是否有主席機(jī),如有將當(dāng)前的預(yù)置位設(shè)為主席機(jī)的話筒號(hào);如無主席機(jī),則將當(dāng)前預(yù)置位設(shè)為發(fā)言列表中列在第一位的話筒號(hào);
(3)如發(fā)言列表為空,個(gè)輸出全景位。
在VISCA協(xié)議的實(shí)現(xiàn)中主要注意的是用于保存水平、垂直、放大縮小等預(yù)置位信息的數(shù)組要定義成SIGNED_LONG_INTEGER,并且在SIMPL+模塊預(yù)定義中加入#DEFAULT_NONVOLATILE,這樣預(yù)置位信息將會(huì)被保存在非易失性存儲(chǔ)器中。其主要接口變量的定義如表2:
對(duì)于數(shù)字量輸入我們采用PUSH事件完成對(duì)應(yīng)的事件處理,對(duì)于預(yù)置位調(diào)用的模擬量我們采用CHANGE事件,在CHANGE事件中根據(jù)事先存儲(chǔ)的預(yù)置位信息生成預(yù)置位命令,并輸出給字符串輸出變量。
集中控制系統(tǒng)在會(huì)議系統(tǒng)中的應(yīng)用,使得現(xiàn)代化會(huì)議系統(tǒng)的管理和使用越來越方便、高效,整個(gè)會(huì)議系統(tǒng)的集成代程度越來越高。依托集中控制系統(tǒng)所提供的靈活的、高效的編程平臺(tái)我們可以實(shí)現(xiàn)一些以前無法實(shí)現(xiàn)的功能,使我們的會(huì)議系統(tǒng)也越來越智能化。
[1]《DCN Next Generation Open Interface Release 2.1》,2005年09月.