專利名稱:一種用于ipkvm系統(tǒng)的鼠標(biāo)光標(biāo)同步方法
技術(shù)領(lǐng)域:
本發(fā)明屬于計(jì)算機(jī)技術(shù)領(lǐng)域,涉及計(jì)算機(jī)遠(yuǎn)程管理技術(shù),特別涉及一種IPKVM系統(tǒng)及其鼠標(biāo)光標(biāo)同步方法。
背景技術(shù):
KVM(keyboard,video.mouse)切換器是用一套鍵盤、顯示器、鼠標(biāo)來控制多臺計(jì)算機(jī)的一種切換裝置。IPKVM(KVM over IP)是一種基于IP網(wǎng)絡(luò)的數(shù)字KVM系統(tǒng),是一種計(jì)算機(jī)遠(yuǎn)程管理系統(tǒng),由一個(gè)控制臺通過網(wǎng)絡(luò)實(shí)現(xiàn)對一臺或多臺被控計(jì)算機(jī)的完全控制和管理。鼠標(biāo)是一種計(jì)算機(jī)人機(jī)接口設(shè)備,通過機(jī)械或和光電等方式獲取移動(dòng)的相對位移值,將相對位移發(fā)送至計(jì)算機(jī)系統(tǒng),被控計(jì)算機(jī)根據(jù)這個(gè)相對位移對屏幕上的鼠標(biāo)光標(biāo)做相對移動(dòng)。圖1為普通鼠標(biāo)和被控計(jì)算機(jī)之間的數(shù)據(jù)傳輸過程示意圖。當(dāng)操作者移動(dòng)鼠標(biāo)時(shí),鼠標(biāo)將其在水平和垂直方向的位移dX和dy發(fā)送至被控計(jì)算機(jī),被控計(jì)算機(jī)相應(yīng)地將屏幕上的鼠標(biāo)光標(biāo)在水平和垂直方向移動(dòng)dx和dy?,F(xiàn)有的IPKVM系統(tǒng)由IPKVM控制臺和IPKVM控制器兩部分組成。所述IPKVM控制臺與IPKVM控制器通過IP網(wǎng)絡(luò)相連,IPKVM控制器與被控計(jì)算機(jī)通過視頻線和USB線相連。一方面,所述II3KVM控制器通過視頻接口獲取被控計(jì)算機(jī)屏幕顯示圖像,將獲取的圖像壓縮后通過網(wǎng)絡(luò)傳送至IPKVM控制臺,IPKVM控制臺接收圖像數(shù)據(jù)并進(jìn)行解壓縮后,在控制臺屏幕上將被控計(jì)算機(jī)屏幕顯示圖像顯示出來。另一方面,IPKVM控制臺將本端主控鼠標(biāo)操作信息(光標(biāo)移動(dòng)、按鍵鍵按動(dòng)、滾輪滾動(dòng)等)通過網(wǎng)絡(luò)傳送至IPKVM控制器,IPKVM控制器根據(jù)接收的主控鼠標(biāo)操作信息通過USB接口向被控計(jì)算機(jī)輸出相應(yīng)控制指令。為了顯示被控計(jì)算機(jī)屏幕圖像和獲取控制臺鼠標(biāo)信息,IPKVM控制臺軟件中有一個(gè)KVM會(huì)話區(qū)域,該KVM會(huì)話區(qū)域是這樣一個(gè)邏輯概念它是一個(gè)矩形區(qū)域,該區(qū)域用來繪畫被控計(jì)算機(jī)屏幕圖像,同時(shí)當(dāng)控制臺鼠標(biāo)光標(biāo)位于該區(qū)域時(shí)控制臺軟件可以讀取鼠標(biāo)光標(biāo)在該區(qū)域中所處的位置。KVM會(huì)話區(qū)域不一定完整地在控制臺顯示器上顯示出來,當(dāng)KVM會(huì)話區(qū)域顯示不完整時(shí)可以通過畫面移動(dòng)或縮放等方式來顯示未顯示的部分。上述遠(yuǎn)程控制的過程中,同步IPKVM控制臺與被控計(jì)算機(jī)的鼠標(biāo)光標(biāo),是實(shí)現(xiàn)控制的關(guān)鍵?,F(xiàn)有的IPKVM系統(tǒng)同步鼠標(biāo)光標(biāo)的方法是由IPKVM控制臺獲取當(dāng)前KVM會(huì)話區(qū)域中主控鼠標(biāo)光標(biāo)的位置信息,通過網(wǎng)絡(luò)將鼠標(biāo)光標(biāo)位置發(fā)送到IPKVM控制器,IPKVM控制器將當(dāng)前鼠標(biāo)光標(biāo)位置與前一個(gè)鼠標(biāo)光標(biāo)位置進(jìn)行比較,計(jì)算出鼠標(biāo)移動(dòng)的相對位移值,并將該相對位移值發(fā)送至當(dāng)前選中的被控計(jì)算機(jī)。即當(dāng)IPKVM控制臺的操作者移動(dòng)鼠標(biāo)時(shí),控制臺讀取主控鼠標(biāo)光標(biāo)在被控計(jì)算機(jī)屏幕圖像中的位置χ和y,通過網(wǎng)絡(luò)發(fā)送至IPKVM控制器,IPKVM控制器將當(dāng)前鼠標(biāo)光標(biāo)位置χ和y與前一個(gè)鼠標(biāo)光標(biāo)位置χ’和y’進(jìn)行比較,計(jì)算出鼠標(biāo)移動(dòng)的相對位移值dx和dy,將相對位移值dx和dy發(fā)送至被控計(jì)算機(jī),被控計(jì)算機(jī)接收到IPKVM控制器發(fā)送來的鼠標(biāo)光標(biāo)位移值后,相應(yīng)地將屏幕上的鼠標(biāo)光標(biāo)在水平和垂直方向移動(dòng)dx和dy。圖2為現(xiàn)有IPKVM系統(tǒng)結(jié)構(gòu)圖和鼠標(biāo)數(shù)據(jù)傳輸過程示意
4圖。現(xiàn)有的IPKVM系統(tǒng)在IPKVM控制器與被控計(jì)算機(jī)之間傳送的是鼠標(biāo)光標(biāo)移動(dòng)的位移量。在IPKVM系統(tǒng)的控制臺KVM會(huì)話區(qū)域中有兩個(gè)鼠標(biāo)光標(biāo),一個(gè)是控制臺本身的主控鼠標(biāo)光標(biāo),另一個(gè)是被控計(jì)算機(jī)屏幕圖像中的被控鼠標(biāo)光標(biāo)影像。在正常情況下,這兩個(gè)鼠標(biāo)光標(biāo)是重合的。但是在以下情況下會(huì)造成兩個(gè)鼠標(biāo)光標(biāo)不重合1、被控計(jì)算機(jī)和IPKVM控制臺的鼠標(biāo)光標(biāo)初始位置不一致;2、被控計(jì)算機(jī)鼠標(biāo)被設(shè)置成加速模式,即屏幕上鼠標(biāo)光標(biāo)移動(dòng)的距離與實(shí)際的鼠標(biāo)位移距離不相等,而是一個(gè)倍數(shù)關(guān)系;3、在操作過程中因被控計(jì)算機(jī)重新啟動(dòng),而被控鼠標(biāo)光標(biāo)位置被系統(tǒng)重新默認(rèn);4、被控計(jì)算機(jī)操作系統(tǒng)還未登錄;5、被控計(jì)算機(jī)本地插有一個(gè)本地鼠標(biāo),本地鼠標(biāo)移動(dòng)造成被控計(jì)算機(jī)鼠標(biāo)光標(biāo)位置變化;6、由于網(wǎng)絡(luò)通訊錯(cuò)誤,造成鼠標(biāo)數(shù)據(jù)丟失。針對上述六種情況,現(xiàn)有IPKVM系統(tǒng)提供有一個(gè)手工鼠標(biāo)光標(biāo)同步的功能,即當(dāng)操作者發(fā)現(xiàn)控制臺的主控鼠標(biāo)光標(biāo)與被控計(jì)算機(jī)鼠標(biāo)光標(biāo)影像不能重合時(shí),使用鼠標(biāo)光標(biāo)同步功能進(jìn)行手工同步,使兩個(gè)鼠標(biāo)光標(biāo)重合。但是手工同步的方式必然會(huì)給用戶造成操作上的不方便。另外,被控計(jì)算機(jī)操作系統(tǒng)的鼠標(biāo)屬性設(shè)置也有要求,要求將鼠標(biāo)設(shè)置成非加速模式。因?yàn)椴煌牟僮飨到y(tǒng)鼠標(biāo)屬性設(shè)置方法不一樣,鼠標(biāo)屬性的設(shè)置也會(huì)給用戶帶來麻煩。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種基于在IPKVM控制器與被控計(jì)算機(jī)之間傳送光標(biāo)位置坐標(biāo)的鼠標(biāo)光標(biāo)自動(dòng)同步技術(shù),使用這種鼠標(biāo)光標(biāo)同步技術(shù)可以在不依賴于鼠標(biāo)初始位置、鼠標(biāo)屬性、被控計(jì)算機(jī)登錄和重啟狀態(tài)、被控計(jì)算機(jī)本地鼠標(biāo)、網(wǎng)絡(luò)通訊狀況等因素的情況下直接實(shí)現(xiàn)IPKVM系統(tǒng)控制臺鼠標(biāo)光標(biāo)和被控計(jì)算機(jī)鼠標(biāo)光標(biāo)自動(dòng)同步。為實(shí)現(xiàn)上述目的,本發(fā)明所采用的技術(shù)方案是一種用于IPKVM系統(tǒng)的鼠標(biāo)光標(biāo)同步方法,首先,由IPKVM控制臺獲取當(dāng)前KVM會(huì)話區(qū)域中主控鼠標(biāo)光標(biāo)的位置信息,通過網(wǎng)絡(luò)將鼠標(biāo)光標(biāo)位置信息發(fā)送到IPKVM控制器;然后,由IPKVM控制器將該位置信息以被控計(jì)算機(jī)可識別的方式發(fā)送給被控計(jì)算機(jī);最后,被控計(jì)算機(jī)根據(jù)IPKVM控制器發(fā)送來的位置信息將被控鼠標(biāo)光標(biāo)移動(dòng)至相應(yīng)位置。現(xiàn)有的IPKVM系統(tǒng)在IPKVM控制器與被控計(jì)算機(jī)之間傳送的是鼠標(biāo)光標(biāo)移動(dòng)的位移量,本發(fā)明方法在IPKVM控制器與被控計(jì)算機(jī)之間傳送的是鼠標(biāo)光標(biāo)的位置坐標(biāo),因此,可以有效的保持主控鼠標(biāo)光標(biāo)與被控鼠標(biāo)光標(biāo)的同步,避免因初始位置不同步、被控鼠標(biāo)光標(biāo)位置被重新默認(rèn)或人為移動(dòng)等原因造成的兩者不同步的問題。本發(fā)明所述的IPKVM系統(tǒng)包括IPKVM控制臺和IPKVM控制器組成。IPKVM控制臺、IPKVM控制器和被控計(jì)算機(jī)的連接關(guān)系如圖3所示。所述IPKVM控制器通過一符合USBHID規(guī)范的USB接口模塊向被控計(jì)算機(jī)傳送鼠標(biāo)光標(biāo)的位置信息。為了清楚地說明本發(fā)明所述方法的實(shí)現(xiàn)步驟,需要先說明在后續(xù)說明中用到的三個(gè)坐標(biāo)參照系第一個(gè)是被控計(jì)算機(jī)屏幕坐標(biāo)參照系,它對應(yīng)被控計(jì)算機(jī)屏幕顯示圖像矩形區(qū)域,分辨率是Rx、Ry ;第二個(gè)坐標(biāo)參照系是USB接口模塊坐標(biāo)參照系,它對應(yīng)USB接口模塊虛擬矩形區(qū)域,分辨率是Xm、Ym ;第三個(gè)是IPKVM控制臺坐標(biāo)參照系,它對應(yīng)KVM會(huì)話區(qū)域,即控制臺用于繪畫被控計(jì)算機(jī)屏幕圖像的矩形區(qū)域,分辨率是Rpx、Rpy0
本發(fā)明所述方法的一種具體方法包括如下步驟步驟一,IPKVM控制臺獲取當(dāng)前主控鼠標(biāo)光標(biāo)在當(dāng)前分辨率為Rpx、為Rpy的KVM會(huì)話區(qū)域中的位置坐標(biāo)Xp、Yp ;步驟二,IPKVM控制臺根據(jù)KVM會(huì)話區(qū)域當(dāng)前分辨率Rpx、Rpy和被控計(jì)算機(jī)圖像分辨率Rx、Ry,按公式一和公式二計(jì)算,獲得當(dāng)前主控鼠標(biāo)光標(biāo)在KVM會(huì)話區(qū)域中的位置對應(yīng)被控計(jì)算機(jī)圖像原始分辨率的坐標(biāo)值)(C、YC,然后,將坐標(biāo)值Xe、Yc發(fā)送到IPKVM控制器;Xc = (Xp*Rx)/Rpx (公式一)Yc = (Yp*Ry)/Rpy (公式二)步驟三,IPKVM控制器根據(jù)被控計(jì)算機(jī)屏幕圖像的分辨率Rx、Ry和USB接口模塊X軸最大值Xm、USB接口模塊Y軸最大值%ι,按公式三和公式四計(jì)算,獲得當(dāng)前主控鼠標(biāo)光標(biāo)在USB接口模塊坐標(biāo)參照系中的對應(yīng)坐標(biāo)值Xu、Yu,并將該結(jié)果發(fā)送給被控計(jì)算機(jī);Xu = (Xc*Xm) /Rx (公式三)Yu = (Yc*Ym)/Ry (公式四)步驟四,被控計(jì)算機(jī)接收到IPKVM發(fā)送過來的當(dāng)前主控鼠標(biāo)光標(biāo)相對于USB接口模塊坐標(biāo)參照系的坐標(biāo)值Xu、Yu,根據(jù)被控計(jì)算機(jī)當(dāng)前的屏幕分辨率Rx、Ry, USB接口模塊X軸最大值Xm、USB接口模塊Y軸最大值Ym,按公式五和公式六計(jì)算,獲得被控鼠標(biāo)光標(biāo)在被控計(jì)算機(jī)屏幕上的目標(biāo)坐標(biāo)h Ycc,并將被控計(jì)算機(jī)屏幕上的被控鼠標(biāo)光標(biāo)移動(dòng)到該坐標(biāo)位置。Xcc = (Xu*Rx) /Xm (公式五)Ycc = (Yu*Ry) /Ym (公式六)本發(fā)明所述方法的另一種具體方法包括如下步驟步驟一,IPKVM控制臺獲取當(dāng)前主控鼠標(biāo)光標(biāo)在當(dāng)前分辨率為Rpx、高度為Rpy的KVM會(huì)話區(qū)域中的位置坐標(biāo)Xp、Yp ;步驟二,IPKVM控制臺將步驟一獲得的相對坐標(biāo)值Xp、Yp和KVM會(huì)話區(qū)域的當(dāng)前分辨率Rpx、Rpy發(fā)送到IPKVM控制器;步驟三,IPKVM控制器根據(jù)KVM會(huì)話區(qū)域當(dāng)前分辨率Rpx、Rpy和USB接口模塊的X軸最大值Xm、USB接口模塊Y軸最大值Ym,按公式七和公式八計(jì)算,獲得當(dāng)前主控鼠標(biāo)光標(biāo)在USB接口模塊坐標(biāo)參照系中的對應(yīng)坐標(biāo)值Xu、Yu,并將該結(jié)果發(fā)送給被控計(jì)算機(jī);Xu = (Xp*Xm) /Rpx (公式七)Yu = (Yp*Ym) /Rpy (公式八)步驟四,被控計(jì)算機(jī)接收到IPKVM發(fā)送過來的當(dāng)前主控鼠標(biāo)光標(biāo)相對于USB接口模塊坐標(biāo)參照系的坐標(biāo)值Xu、Yu,根據(jù)被控計(jì)算機(jī)當(dāng)前的屏幕分辨率Rx、Ry, USB接口模塊X軸最大值Xm、USB接口模塊Y軸最大值Ym,按公式五和公式六計(jì)算,獲得被控鼠標(biāo)光標(biāo)在被控計(jì)算機(jī)屏幕上的目標(biāo)坐標(biāo)h Ycc,并將被控計(jì)算機(jī)屏幕上的被控鼠標(biāo)光標(biāo)移動(dòng)到該坐標(biāo)位置。在上述兩種具體方法中,步驟一可以定時(shí)啟動(dòng),也可以由主控鼠標(biāo)動(dòng)作啟動(dòng)。即IPKVM控制臺可以定時(shí)讀取或者由鼠標(biāo)移動(dòng)事件觸發(fā)讀取當(dāng)前KVM會(huì)話區(qū)域中的鼠標(biāo)光標(biāo)位置坐標(biāo)值。還可以混合兩種啟動(dòng)方式,即當(dāng)IPKVM控制臺鼠標(biāo)發(fā)生移動(dòng)時(shí),即時(shí)觸發(fā)讀取動(dòng)作,當(dāng)IPKVM控制臺鼠標(biāo)不發(fā)生移動(dòng)時(shí),定時(shí)觸發(fā)讀取動(dòng)作。定時(shí)觸發(fā)讀取時(shí),每隔一定時(shí)間讀取一次鼠標(biāo)光標(biāo)位置。由鼠標(biāo)移動(dòng)事件觸發(fā)讀取時(shí),當(dāng)IPKVM控制臺連接的鼠標(biāo)發(fā)生移動(dòng)時(shí),IPKVM控制臺讀取KVM會(huì)話區(qū)域中的鼠標(biāo)光標(biāo)位置。定時(shí)啟動(dòng)步驟一的目的是定時(shí)更新鼠標(biāo)位置,即使當(dāng)前鼠標(biāo)光標(biāo)位置在一定時(shí)間段內(nèi)都沒有發(fā)生變化時(shí),也要將當(dāng)前鼠標(biāo)光標(biāo)位置信息定時(shí)發(fā)送給IPKVM控制器,這種做法是為了修正被控計(jì)算機(jī)的鼠標(biāo)光標(biāo)位置。由于某種原因,被控計(jì)算機(jī)的鼠標(biāo)光標(biāo)不在和IPKVM控制臺鼠標(biāo)光標(biāo)相同的位置上,定時(shí)發(fā)送IPKVM控制臺鼠標(biāo)光標(biāo)位置可以使被控計(jì)算機(jī)鼠標(biāo)光標(biāo)位置移到與IPKVM控制臺一致的地方,從而實(shí)現(xiàn)被控計(jì)算機(jī)鼠標(biāo)光標(biāo)和IPKVM控制臺鼠標(biāo)光標(biāo)快速同步。在步驟二中,IPKVM控制臺通過IP網(wǎng)絡(luò)將鼠標(biāo)光標(biāo)位置信息發(fā)送到IPKVM控制器。所述IP網(wǎng)絡(luò)是任何運(yùn)行IP協(xié)議的計(jì)算機(jī)網(wǎng)絡(luò),物理連接方式可以是直連網(wǎng)線,也可以是通過交換機(jī)或路由器建立起來的局域網(wǎng),也可以是互聯(lián)網(wǎng)。在步驟二中,IPKVM控制臺與IPKVM控制器之間傳送信息可采用兩種方式。第一種方式是先將當(dāng)前主控鼠標(biāo)光標(biāo)位置相對于IPKVM控制臺坐標(biāo)參照系的坐標(biāo)Rpx、Rpy轉(zhuǎn)化為相對于被控計(jì)算機(jī)屏幕坐標(biāo)參照系的坐標(biāo))(c、Yc,然后,將相對于被控計(jì)算機(jī)屏幕坐標(biāo)參照系的坐標(biāo)k、Yc傳送給IPKVM控制器。第二種方式是將當(dāng)前主控鼠標(biāo)光標(biāo)位置相對于IPKVM控制臺坐標(biāo)參照系的坐標(biāo)Rpx、Rpy傳送給IPKVM控制器。采用第一種方式時(shí),可以兼容現(xiàn)有的IPKVM系統(tǒng),這是現(xiàn)有的IPKVM系統(tǒng)所采用的控制臺與控制器之間傳送信息的方式。同時(shí),第一種方式可以支持早期的計(jì)算機(jī)操作系統(tǒng)。第二種方式中也可以先將Xp和Rpx同時(shí)放大或縮小若干倍再傳送給IPKVM控制器,或者,先將Yp和Rpy同時(shí)放大或縮小若干倍再傳送給IPKVM控制器,只要Xp Rpx和Yp Rpy這兩個(gè)比例不變,都不會(huì)影響結(jié)果。在步驟三中,IPKVM控制器通過USB接口將信息發(fā)送給被控計(jì)算機(jī),為此,需要在IPKVM控制器中有一個(gè)USB接口模塊。該USB接口模塊是一個(gè)類似于觸摸屏的USB HID設(shè)備,符合USB HID類規(guī)范協(xié)議。步驟三及所述的USB接口模塊是本發(fā)明的關(guān)鍵內(nèi)容。如果步驟二采用第一種方式,在步驟三中,IPKVM控制器根據(jù)被控計(jì)算機(jī)屏幕圖像的分辨率Rx、Ry和USB接口模塊的X軸最大值Xm、USB接口模塊Y軸最大值Ym,按公式三和公式四計(jì)算,獲得當(dāng)前鼠標(biāo)光標(biāo)在USB接口模塊坐標(biāo)參照系中的坐標(biāo)值Xu、Yu,并將坐標(biāo)Xu、Yu發(fā)送給被控計(jì)算機(jī)。如果步驟二采用第二種方式,在步驟三中,IPKVM控制器根據(jù)KVM會(huì)話區(qū)域分辨率Rpx、Rpy和USB接口模塊的X軸最大值Xm、USB接口模塊Y軸最大值Ym,按公式七和公式八計(jì)算,獲得當(dāng)前鼠標(biāo)光標(biāo)在USB接口模塊坐標(biāo)參照系中的坐標(biāo)值Xu、Yu,并將坐標(biāo)XiuYu發(fā)送給被控計(jì)算機(jī)。在上述方法中,步驟四,被控計(jì)算機(jī)接收到IPKVM發(fā)送過來的相對于USB接口模塊坐標(biāo)參照系中的坐標(biāo)值Xu、Yu,根據(jù)被控計(jì)算機(jī)當(dāng)前的屏幕分辨率Rx、Ry、USB接口模塊X軸最大值Xm、USB接口模塊Y軸最大值Ym,按公式五和公式六計(jì)算,獲得被控鼠標(biāo)光標(biāo)在被控計(jì)算機(jī)屏幕上的目標(biāo)坐標(biāo))(cc、Ycc,并將被控計(jì)算機(jī)屏幕上的被控鼠標(biāo)光標(biāo)移動(dòng)到該坐標(biāo)位置。這一步是由被控計(jì)算機(jī)完成的,需要有被控計(jì)算機(jī)操作系統(tǒng)的設(shè)備驅(qū)動(dòng)程序支持,目前,大多數(shù)計(jì)算機(jī)操作系統(tǒng)如WindowsXP、Vista、Win7、Iinux 2. 6及以上版本都能支持這一操作。本發(fā)明所述的USB接口模塊通過USB接口與被控計(jì)算機(jī)相連接并交換數(shù)據(jù),至少用到2個(gè)USB端點(diǎn)。一個(gè)是控制端點(diǎn),必須使用端點(diǎn)0,另一個(gè)是數(shù)據(jù)端點(diǎn),端點(diǎn)號不限。控制端點(diǎn)用于主機(jī)配置USB接口模塊和讀取USB接口模塊狀態(tài)和數(shù)據(jù),使用控制傳輸方式傳送數(shù)據(jù)。數(shù)據(jù)端點(diǎn)用于主機(jī)讀取USB接口模塊數(shù)據(jù),使用中斷傳輸方式傳輸數(shù)據(jù)。本發(fā)明所述的USB接口模塊符合USB HID類規(guī)范協(xié)議。該USB接口模塊以HID報(bào)告的形式向計(jì)算機(jī)傳送數(shù)據(jù),HID報(bào)告的數(shù)據(jù)格式在HID報(bào)告描述符中定義。在計(jì)算機(jī)啟動(dòng)過程中或USB接口模塊插入計(jì)算機(jī)的過程中,USB接口模塊通過HID報(bào)告描述符告知計(jì)算機(jī)此USB設(shè)備的類型、數(shù)據(jù)包結(jié)構(gòu)等相應(yīng)的設(shè)備信息,計(jì)算機(jī)通過設(shè)備的HID報(bào)告描述符識別出設(shè)備,解析數(shù)據(jù)包每位的定義,安裝驅(qū)動(dòng)直至與USB設(shè)備正常通訊。USB接口模塊通過HID報(bào)告描述符告知計(jì)算機(jī)HID報(bào)告的數(shù)據(jù)包結(jié)構(gòu),其中包括鼠標(biāo)每個(gè)按鍵和每個(gè)方向軸坐標(biāo)在HID報(bào)告中的表示方式。HID報(bào)告描述符首先描述設(shè)備所屬的用途頁hage Page,本發(fā)明所述的USB接口模塊屬于是通用桌面用途頁。然后描述用途,本發(fā)明所述的USB接口模塊用途是鼠標(biāo)。然后HID報(bào)告描述符描述數(shù)據(jù)通訊的數(shù)據(jù)包格式,本發(fā)明所述的USB接口模塊的數(shù)據(jù)包中包含4種數(shù)據(jù)。分別是第一種數(shù)據(jù)是鼠標(biāo)按鍵信息,數(shù)據(jù)長度為1字節(jié),其中用一位表示鼠標(biāo)一個(gè)按鍵的狀態(tài),相應(yīng)位為1表示該按鍵按下,0表示則表示該按鍵釋放。1字節(jié)8位可以表示8個(gè)按鍵的狀態(tài),如果按鍵不足8個(gè),未用的數(shù)據(jù)位為填充位,沒有意義。第二種數(shù)據(jù)是滾輪信息,即Z軸信息,表示滾輪向上或向下移動(dòng)的距離,數(shù)據(jù)長度為1字節(jié),它的邏輯最大值為0x7F即+127,邏輯最小值0x81即-127。這個(gè)值用相對值表示,表示的是相對于上一次報(bào)告的Z軸坐標(biāo)的變化值。第三種數(shù)據(jù)是水平方向的的坐標(biāo)值,即X軸坐標(biāo)值,X軸坐標(biāo)值表示的是一個(gè)絕對值,數(shù)據(jù)長度為2字節(jié),小端格式,即低字節(jié)在前,高字節(jié)在后。在HID報(bào)告描述符中描述X 軸坐標(biāo)的取值范圍,最小值是0,最大值可以是大于0和小于65535的任意數(shù)值。第四種數(shù)據(jù)是垂直方向的的坐標(biāo)值,即Y軸坐標(biāo)值,Y軸坐標(biāo)值表示的是一個(gè)絕對值,數(shù)據(jù)長度為2字節(jié),小端格式,即低字節(jié)在前,高字節(jié)在后。在HID報(bào)告描述符中描述Y 軸坐標(biāo)的取值范圍,最小值是0,最大值可以是大于0和小于65535的任意數(shù)值。本發(fā)明所述的USB接口模塊通過數(shù)據(jù)端點(diǎn)向被控計(jì)算機(jī)發(fā)送數(shù)據(jù)包,數(shù)據(jù)傳輸方式是中斷傳輸方式,數(shù)據(jù)長度是6個(gè)字節(jié),數(shù)據(jù)格式定義如下第1字節(jié)是按鍵信息,第2字節(jié)是Z軸信息,第3字節(jié)是X軸坐標(biāo)的低字節(jié),第4字節(jié)是X軸坐標(biāo)的高字節(jié),第5字節(jié)是 Y軸坐標(biāo)的低字節(jié),第6字節(jié)是Y軸坐標(biāo)的高字節(jié)。本發(fā)明所述的USB接口模塊傳送的是絕對坐標(biāo)值,而不是相對位移,這樣不依賴于上一個(gè)鼠標(biāo)光標(biāo)所處的位置。被控計(jì)算機(jī)接收到USB接口模塊傳送過來的相對于USB 接口模塊坐標(biāo)參照系的坐標(biāo)值Xu、Yu,根據(jù)被控計(jì)算機(jī)當(dāng)前的屏幕分辨率、USB接口模塊在 HID描述符中描述的X軸和Y軸最大值,將接收到的坐標(biāo)值按公式五和公式六換算成被控計(jì)算機(jī)屏幕光標(biāo)位置,并將被控計(jì)算機(jī)屏幕上的鼠標(biāo)光標(biāo)移動(dòng)到相應(yīng)位置,這樣就可以被控計(jì)算機(jī)鼠標(biāo)光標(biāo)與控制臺主控鼠標(biāo)光標(biāo)的同步。本發(fā)明所述的USB接口模塊傳送給被控計(jì)算機(jī)的信息是USB接口模塊坐標(biāo)參照系中的坐標(biāo)值Xu、Yu,而不是被控計(jì)算機(jī)屏幕圖像坐標(biāo)參考系中的坐標(biāo)值kc、Ycc,所以,雖然在USB接口模塊的Xu和仇分別用2個(gè)字節(jié)表示,最大值是65535,但是被控計(jì)算機(jī)屏幕上的光標(biāo)位置XCC、YCC并不受Xu和Yu這兩個(gè)坐標(biāo)值的取值范圍限制。從公式五和公式六可以看出,Rx、Ry可以是無限大的,Xcc、Ycc也是可以無限大的。所以,采用本發(fā)明所述的鼠標(biāo)光標(biāo)同步技術(shù)實(shí)現(xiàn)的IPKVM系統(tǒng)所控制的被控計(jì)算機(jī)的屏幕分辨率是沒有限制的。本發(fā)明有益效果采用本發(fā)明提供的鼠標(biāo)光標(biāo)同步技術(shù)實(shí)現(xiàn)的IPKVM系統(tǒng)能夠使 IPKVM控制臺鼠標(biāo)光標(biāo)和被控計(jì)算機(jī)鼠標(biāo)光標(biāo)自動(dòng)同步,即使在被控計(jì)算機(jī)和IPKVM控制臺的鼠標(biāo)光標(biāo)初始位置不一致、被控計(jì)算機(jī)鼠標(biāo)被設(shè)置成加速模式、在操作過程中被控計(jì)算機(jī)重新啟動(dòng)、被控計(jì)算機(jī)操作系統(tǒng)還未登錄、被控計(jì)算機(jī)本地插有一個(gè)本地鼠標(biāo)、網(wǎng)絡(luò)通訊異常造成鼠標(biāo)數(shù)據(jù)丟失等情況下,也能夠使鼠標(biāo)光標(biāo)自動(dòng)同步。本發(fā)明實(shí)現(xiàn)的USB接口模塊符合USB HID類規(guī)范協(xié)議,被大多數(shù)計(jì)算機(jī)操作系統(tǒng)支持,如Windows XP、Vista、Win7、 Iinux 2.6及以上版本。采用本發(fā)明所述的鼠標(biāo)光標(biāo)同步技術(shù)實(shí)現(xiàn)的IPKVM系統(tǒng)所控制的被控計(jì)算機(jī)的屏幕分辨率是沒有限制的。
圖1為普通鼠標(biāo)和計(jì)算機(jī)之間的數(shù)據(jù)傳輸過程示意圖;圖2為現(xiàn)有IPKVM系統(tǒng)結(jié)構(gòu)圖和鼠標(biāo)數(shù)據(jù)傳輸過程示意圖;圖3為應(yīng)用本發(fā)明的同步方法的IPKVM系統(tǒng)的結(jié)構(gòu)圖和鼠標(biāo)數(shù)據(jù)傳輸過程示意圖;圖4為應(yīng)用本發(fā)明的同步方法的IPKVM系統(tǒng)另一種實(shí)施例的結(jié)構(gòu)圖和鼠標(biāo)數(shù)據(jù)傳輸過程示意圖。
具體實(shí)施例方式本發(fā)明的思想在于,在IPKVM系統(tǒng)中,IPKVM控制臺、IPKVM控制器、被控計(jì)算機(jī)之間傳送鼠標(biāo)信息時(shí)都使用鼠標(biāo)光標(biāo)位置坐標(biāo)值,而不是像普通鼠標(biāo)那樣傳送相對位移。為了使在IPKVM控制器能夠向被控計(jì)算機(jī)傳送鼠標(biāo)光標(biāo)位置的坐標(biāo),在IPKVM控制器中設(shè)計(jì)有一個(gè)USB接口模塊,該USB接口模塊是一個(gè)類似于觸摸屏的USB HID設(shè)備,符合USB HID 類規(guī)范協(xié)議。使用這種方法實(shí)現(xiàn)的IPKVM系統(tǒng)能夠使控制臺鼠標(biāo)光標(biāo)和被控計(jì)算機(jī)鼠標(biāo)光標(biāo)自動(dòng)同步,即使在被控計(jì)算機(jī)和控制臺的鼠標(biāo)初始位置不一致、被控計(jì)算機(jī)鼠標(biāo)被設(shè)置成加速模式、在操作過程中被控計(jì)算機(jī)重新啟動(dòng)、被控計(jì)算機(jī)操作系統(tǒng)還未登錄、被控計(jì)算機(jī)本地插有一個(gè)本地鼠標(biāo)、網(wǎng)絡(luò)通訊異常造成鼠標(biāo)數(shù)據(jù)丟失等情況下,也能夠使鼠標(biāo)光標(biāo)自動(dòng)同步。下面例舉兩個(gè)應(yīng)用實(shí)例,來對本發(fā)明的技術(shù)方案做進(jìn)一步說明。參照圖3和圖4,本發(fā)明的同步方法可以應(yīng)用在兩種類似的IPKVM系統(tǒng)中,在這兩種系統(tǒng)均包括IPKVM控制臺和IPKVM控制器。所述IPKVM系統(tǒng)可控制一臺或多臺被控計(jì)算機(jī)。IPKVM控制臺、IPKVM控制器和被控計(jì)算機(jī)的連接關(guān)系如圖3或圖4所示。IPKVM控制臺與IPKVM控制器通過網(wǎng)線直連或通過IP網(wǎng)絡(luò)相連。IPKVM控制器中有一個(gè)USB接口模 ±夬,IPKVM控制器通過該接口模塊與被控計(jì)算機(jī)USB接口相連,用于傳送鼠標(biāo)和鍵盤信號, IPKVM控制器還與被控計(jì)算機(jī)的顯示器接口相連,用于采集被控計(jì)算機(jī)顯示圖像。圖3或圖4所示的實(shí)施例中,其鼠標(biāo)光標(biāo)同步過程包括所述的IPKVM控制臺讀取當(dāng)前KVM會(huì)話區(qū)域中的鼠標(biāo)光標(biāo)位置,將鼠標(biāo)光標(biāo)位置通過IP網(wǎng)絡(luò)發(fā)送到IPKVM控制器。 IPKVM控制器根據(jù)被控計(jì)算機(jī)的屏幕分辨率、USB接口模塊的X軸和Y軸最大值,將從IPKVM
9控制臺接收到的鼠標(biāo)光標(biāo)位置轉(zhuǎn)換成USB接口模塊的X軸和Y軸坐標(biāo)值,并將USB接口模塊的X軸和Y軸坐標(biāo)值發(fā)送給被控計(jì)算機(jī)。被控計(jì)算機(jī)接收到USB接口模塊的X軸和Y軸坐標(biāo)值,根據(jù)被控計(jì)算機(jī)當(dāng)前的屏幕分辨率、USB接口模塊的X軸和Y軸最大值,將接收到的坐標(biāo)值換算成屏幕光標(biāo)位置,并將被控計(jì)算機(jī)屏幕上的鼠標(biāo)光標(biāo)移動(dòng)到相應(yīng)位置。USB接口模塊通過USB接口與被控計(jì)算機(jī)相連接并交換數(shù)據(jù),使用端點(diǎn)0作為控制端點(diǎn),使用端點(diǎn)1作為數(shù)據(jù)端點(diǎn)。控制端點(diǎn)用于主機(jī)配置USB接口模塊和讀取USB接口模塊狀態(tài)和數(shù)據(jù),使用控制傳輸方式傳送數(shù)據(jù)。數(shù)據(jù)端點(diǎn)用于主機(jī)讀取USB接口模塊數(shù)據(jù),使用中斷傳輸方式傳輸數(shù)據(jù)。本發(fā)明所述的USB接口模塊符合USB HID類規(guī)范協(xié)議。該USB接口模塊以HID報(bào)告的形式向計(jì)算機(jī)傳送數(shù)據(jù),HID報(bào)告的數(shù)據(jù)格式在HID報(bào)告描述符中定義。本發(fā)明所述的USB接口模塊實(shí)施例的HID報(bào)告描述符如下
權(quán)利要求
1.一種用于IPKVM系統(tǒng)的鼠標(biāo)光標(biāo)同步方法,首先,由IPKVM控制臺獲取當(dāng)前KVM會(huì)話區(qū)域中主控鼠標(biāo)光標(biāo)的位置信息,通過網(wǎng)絡(luò)將主控鼠標(biāo)光標(biāo)在KVM會(huì)話區(qū)域中的位置信息發(fā)送到IPKVM控制器;然后,由IPKVM控制器將該位置信息以被控計(jì)算機(jī)可識別的方式發(fā)送給被控計(jì)算機(jī);最后,被控計(jì)算機(jī)根據(jù)IPKVM控制器發(fā)送來的位置信息將被控鼠標(biāo)光標(biāo)移動(dòng)至相應(yīng)的目標(biāo)位置。
2.根據(jù)權(quán)利要求1所述的用于IPKVM系統(tǒng)的鼠標(biāo)光標(biāo)同步方法,其特征在于,所述IPKVM控制器內(nèi)包含一個(gè)USB接口模塊,該USB接口模塊符合USB HID規(guī)范,IPKVM控制器通過該USB接口模塊向被控計(jì)算機(jī)傳送主控鼠標(biāo)光標(biāo)位置信息。
3.根據(jù)權(quán)利要求2所述的用于IPKVM系統(tǒng)的鼠標(biāo)光標(biāo)同步方法,其特征在于,實(shí)現(xiàn)該方法一種具體步驟包括步驟一,IPKVM控制臺獲取當(dāng)前主控鼠標(biāo)光標(biāo)在當(dāng)前分辨率為Rpx、Rpy的KVM會(huì)話區(qū)域中的位置坐標(biāo)Xp、Yp ;步驟二,IPKVM控制臺根據(jù)KVM會(huì)話區(qū)域當(dāng)前分辨率Rpx、Rpy和被控計(jì)算機(jī)圖像原始分辨率Rx、Ry,按公式一和公式二計(jì)算,獲得當(dāng)前主控鼠標(biāo)光標(biāo)在KVM會(huì)話區(qū)域中的位置對應(yīng)被控計(jì)算機(jī)圖像原始分辨率的坐標(biāo)值)(C、YC,然后,將坐標(biāo)值Xe、Yc發(fā)送到IPKVM控制器;Xc = (Xp*Rx) /Rpx (公式一)Yc = (Yp*Ry)/Rpy (公式二)步驟三,IPKVM控制器根據(jù)被控計(jì)算機(jī)屏幕圖像的分辨率Rx、Ry和USB接口模塊X軸最大值Xm、USB接口模塊Y軸最大值Ym,按公式三和公式四計(jì)算,獲得當(dāng)前主控鼠標(biāo)光標(biāo)在USB接口模塊坐標(biāo)參照系中的對應(yīng)坐標(biāo)值Xu、Yu,并將Xu、Yu發(fā)送給被控計(jì)算機(jī);Xu = (Xc*Xm) /Rx (公式三)Yu = (Yc*Ym)/Ry (公式四)步驟四,被控計(jì)算機(jī)接收到IPKVM發(fā)送過來的當(dāng)前主控鼠標(biāo)光標(biāo)相對于USB接口模塊坐標(biāo)參照系的坐標(biāo)值Xu、Yu,根據(jù)被控計(jì)算機(jī)當(dāng)前的屏幕分辨率Rx、Ry, USB接口模塊X軸最大值Xm、USB接口模塊Y軸最大值Ym,按公式五和公式六計(jì)算,獲得被控鼠標(biāo)光標(biāo)在被控計(jì)算機(jī)屏幕上的目標(biāo)坐標(biāo)h Ycc,并將被控計(jì)算機(jī)屏幕上的被控鼠標(biāo)光標(biāo)移動(dòng)到該坐標(biāo)位置。Xcc = (Xu*Rx) /Xm (公式五)Ycc = (Yu*Ry) /Ym (公式六)。
4.根據(jù)權(quán)利要求2所述的用于IPKVM系統(tǒng)的鼠標(biāo)光標(biāo)同步方法,其特征在于,實(shí)現(xiàn)該方法另一種具體步驟包括步驟一,IPKVM控制臺獲取當(dāng)前主控鼠標(biāo)光標(biāo)在當(dāng)前分辨率為Rpx、Rpy的KVM會(huì)話區(qū)域中的位置坐標(biāo)Xp、Yp ;步驟二,IPKVM控制臺將步驟一獲得的坐標(biāo)值Xp、Yp和KVM會(huì)話區(qū)域的當(dāng)前分辨率Rpx> Rpy發(fā)送到IPKVM控制器;步驟三,IPKVM控制器根據(jù)KVM會(huì)話區(qū)域當(dāng)前分辨率Rpx、Rpy和USB接口模塊X軸最大值Xm、USB接口模塊Y軸最大值Ym,按公式七和公式八計(jì)算,獲得當(dāng)前主控鼠標(biāo)光標(biāo)在USB接口模塊坐標(biāo)參照系中的對應(yīng)坐標(biāo)值Xu、Yu,并將Xu、Yu發(fā)送給被控計(jì)算機(jī);Xu = (Xp*Xm) /Rpx (公式七)Yu = (Yp*Ym) /Rpy (公式八)步驟四,被控計(jì)算機(jī)接收到IPKVM發(fā)送過來的當(dāng)前主控鼠標(biāo)光標(biāo)相對于USB接口模塊坐標(biāo)參照系的坐標(biāo)值Xu、Yu,根據(jù)被控計(jì)算機(jī)當(dāng)前的屏幕分辨率Rx、Ry, USB接口模塊X軸最大值Xm、USB接口模塊Y軸最大值Ym,按公式五和公式六計(jì)算,獲得被控鼠標(biāo)光標(biāo)在被控計(jì)算機(jī)屏幕上的目標(biāo)坐標(biāo)h Ycc,并將被控計(jì)算機(jī)屏幕上的被控鼠標(biāo)光標(biāo)移動(dòng)到該坐標(biāo)位置。
5.根據(jù)權(quán)利要求3或4所述的用于IPKVM系統(tǒng)的鼠標(biāo)光標(biāo)同步方法,其特征在于,所述USB接口模塊在HID報(bào)告描述符中描述設(shè)備所屬的用途頁為通用桌面用途頁,描述用途為鼠標(biāo)。
6.根據(jù)權(quán)利要求3或4所述的用于IPKVM系統(tǒng)的鼠標(biāo)光標(biāo)同步方法,其特征在于,所述USB接口模塊在HID報(bào)告描述符中描述四種數(shù)據(jù)包格式,分別代表鼠標(biāo)按鍵信息、滾輪Z軸信息、水平方向X軸坐標(biāo)值、垂直方向Y軸坐標(biāo)值。
7.根據(jù)權(quán)利要求3或4所述的用于IPKVM系統(tǒng)的鼠標(biāo)光標(biāo)同步方法,其特征在于,所述USB接口模塊以中斷傳輸方式通過數(shù)據(jù)端點(diǎn)向被控計(jì)算機(jī)發(fā)送數(shù)據(jù)包,數(shù)據(jù)包內(nèi)容包括按鍵信息、X軸坐標(biāo)、Y軸坐標(biāo)、滾輪Z軸信息,其中X軸坐標(biāo)、Y軸坐標(biāo)是坐標(biāo)絕對值,滾輪Z軸信息是變化相對值。
8.根據(jù)權(quán)利要求1所述的用于IPKVM系統(tǒng)的鼠標(biāo)光標(biāo)同步方法,其特征在于,所述IPKVM控制臺定時(shí)讀取當(dāng)前KVM會(huì)話區(qū)域中的主控鼠標(biāo)光標(biāo)位置信息。
9.根據(jù)權(quán)利要求1所述的用于IPKVM系統(tǒng)的鼠標(biāo)光標(biāo)同步方法,其特征在于,所述IPKVM控制臺由鼠標(biāo)移動(dòng)事件觸發(fā)讀取當(dāng)前KVM會(huì)話區(qū)域中的主控鼠標(biāo)光標(biāo)位置信息。
全文摘要
本發(fā)明公開一種用于IPKVM系統(tǒng)的鼠標(biāo)光標(biāo)同步方法。該方法先由IPKVM控制臺獲取當(dāng)前KVM會(huì)話區(qū)域中主控鼠標(biāo)光標(biāo)的位置信息,通過網(wǎng)絡(luò)將主控鼠標(biāo)光標(biāo)位置信息發(fā)送到IPKVM控制器;然后,由IPKVM控制器將該位置信息以被控計(jì)算機(jī)可識別的方式發(fā)送給被控計(jì)算機(jī);最后,被控計(jì)算機(jī)根據(jù)IPKVM控制器發(fā)送來的位置信息將被控鼠標(biāo)光標(biāo)移動(dòng)至相應(yīng)的目標(biāo)位置。本發(fā)明方法在IPKVM控制臺、IPKVM控制器與被控計(jì)算機(jī)之間傳送主控鼠標(biāo)光標(biāo)在被控計(jì)算機(jī)屏幕圖像上的位置,可以有效地保持主控鼠標(biāo)光標(biāo)與被控鼠標(biāo)光標(biāo)的同步,避免因初始位置不同步、被控鼠標(biāo)光標(biāo)位置被重新默認(rèn)或人為移動(dòng)等原因造成的兩者不同步的問題。同步效果好,穩(wěn)定性高。
文檔編號G06F3/14GK102591493SQ201110456238
公開日2012年7月18日 申請日期2011年12月30日 優(yōu)先權(quán)日2011年12月30日
發(fā)明者王龍耀, 趙光明, 鄧可平, 鄒斌, 陳軍輝, 鮑哲 申請人:浙江??悼萍加邢薰?br>