CN102591493B - 一种用于ipkvm系统的鼠标光标同步方法 - Google Patents
一种用于ipkvm系统的鼠标光标同步方法 Download PDFInfo
- Publication number
- CN102591493B CN102591493B CN201110456238.1A CN201110456238A CN102591493B CN 102591493 B CN102591493 B CN 102591493B CN 201110456238 A CN201110456238 A CN 201110456238A CN 102591493 B CN102591493 B CN 102591493B
- Authority
- CN
- China
- Prior art keywords
- ipkvm
- mouse
- cursor
- interface module
- usb interface
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- User Interface Of Digital Computer (AREA)
- Controls And Circuits For Display Device (AREA)
Abstract
本发明公开一种用于IPKVM系统的鼠标光标同步方法。该方法先由IPKVM控制台获取当前KVM会话区域中主控鼠标光标的位置信息,通过网络将主控鼠标光标位置信息发送到IPKVM控制器;然后,由IPKVM控制器将该位置信息以被控计算机可识别的方式发送给被控计算机;最后,被控计算机根据IPKVM控制器发送来的位置信息将被控鼠标光标移动至相应的目标位置。本发明方法在IPKVM控制台、IPKVM控制器与被控计算机之间传送主控鼠标光标在被控计算机屏幕图像上的位置,可以有效地保持主控鼠标光标与被控鼠标光标的同步,避免因初始位置不同步、被控鼠标光标位置被重新默认或人为移动等原因造成的两者不同步的问题。同步效果好,稳定性高。
Description
技术领域
本发明属于计算机技术领域,涉及计算机远程管理技术,特别涉及一种IPKVM系统及其鼠标光标同步方法。
背景技术
KVM(keyboard、video、mouse)切换器是用一套键盘、显示器、鼠标来控制多台计算机的一种切换装置。IPKVM(KVM over IP)是一种基于IP网络的数字KVM系统,是一种计算机远程管理系统,由一个控制台通过网络实现对一台或多台被控计算机的完全控制和管理。
鼠标是一种计算机人机接口设备,通过机械或和光电等方式获取移动的相对位移值,将相对位移发送至计算机系统,被控计算机根据这个相对位移对屏幕上的鼠标光标做相对移动。图1为普通鼠标和被控计算机之间的数据传输过程示意图。当操作者移动鼠标时,鼠标将其在水平和垂直方向的位移dx和dy发送至被控计算机,被控计算机相应地将屏幕上的鼠标光标在水平和垂直方向移动dx和dy。
现有的IPKVM系统由IPKVM控制台和IPKVM控制器两部分组成。所述IPKVM控制台与IPKVM控制器通过IP网络相连,IPKVM控制器与被控计算机通过视频线和USB线相连。一方面,所述IPKVM控制器通过视频接口获取被控计算机屏幕显示图像,将获取的图像压缩后通过网络传送至IPKVM控制台,IPKVM控制台接收图像数据并进行解压缩后,在控制台屏幕上将被控计算机屏幕显示图像显示出来。另一方面,IPKVM控制台将本端主控鼠标操作信息(光标移动、按键键按动、滚轮滚动等)通过网络传送至IPKVM控制器,IPKVM控制器根据接收的主控鼠标操作信息通过USB接口向被控计算机输出相应控制指令。为了显示被控计算机屏幕图像和获取控制台鼠标信息,IPKVM控制台软件中有一个KVM会话区域,该KVM会话区域是这样一个逻辑概念:它是一个矩形区域,该区域用来绘画被控计算机屏幕图像,同时当控制台鼠标光标位于该区域时控制台软件可以读取鼠标光标在该区域中所处的位置。KVM会话区域不一定完整地在控制台显示器上显示出来,当KVM会话区域显示不完整时可以通过画面移动或缩放等方式来显示未显示的部分。
上述远程控制的过程中,同步IPKVM控制台与被控计算机的鼠标光标,是实现控制的关键。现有的IPKVM系统同步鼠标光标的方法是:由IPKVM控制台获取当前KVM会话区域中主控鼠标光标的位置信息,通过网络将鼠标光标位置发送到IPKVM控制器,IPKVM控制器将当前鼠标光标位置与前一个鼠标光标位置进行比较,计算出鼠标移动的相对位移值,并将该相对位移值发送至当前选中的被控计算机。即当IPKVM控制台的操作者移动鼠标时,控制台读取主控鼠标光标在被控计算机屏幕图像中的位置x和y,通过网络发送至IPKVM控制器,IPKVM控制器将当前鼠标光标位置x和y与前一个鼠标光标位置x’和y’进行比较,计算出鼠标移动的相对位移值dx和dy,将相对位移值dx和dy发送至被控计算机,被控计算机接收到IPKVM控制器发送来的鼠标光标位移值后,相应地将屏幕上的鼠标光标在水平和垂直方向移动dx和dy。图2为现有IPKVM系统结构图和鼠标数据传输过程示意图。
现有的IPKVM系统在IPKVM控制器与被控计算机之间传送的是鼠标光标移动的位移量。
在IPKVM系统的控制台KVM会话区域中有两个鼠标光标,一个是控制台本身的主控鼠标光标,另一个是被控计算机屏幕图像中的被控鼠标光标影像。在正常情况下,这两个鼠标光标是重合的。但是在以下情况下会造成两个鼠标光标不重合:1、被控计算机和IPKVM控制台的鼠标光标初始位置不一致;2、被控计算机鼠标被设置成加速模式,即屏幕上鼠标光标移动的距离与实际的鼠标位移距离不相等,而是一个倍数关系;3、在操作过程中因被控计算机重新启动,而被控鼠标光标位置被系统重新默认;4、被控计算机操作系统还未登录;5、被控计算机本地插有一个本地鼠标,本地鼠标移动造成被控计算机鼠标光标位置变化;6、由于网络通讯错误,造成鼠标数据丢失。针对上述六种情况,现有IPKVM系统提供有一个手工鼠标光标同步的功能,即当操作者发现控制台的主控鼠标光标与被控计算机鼠标光标影像不能重合时,使用鼠标光标同步功能进行手工同步,使两个鼠标光标重合。但是手工同步的方式必然会给用户造成操作上的不方便。另外,被控计算机操作系统的鼠标属性设置也有要求,要求将鼠标设置成非加速模式。因为不同的操作系统鼠标属性设置方法不一样,鼠标属性的设置也会给用户带来麻烦。
发明内容
本发明的目的在于提供一种基于在IPKVM控制器与被控计算机之间传送光标位置坐标的鼠标光标自动同步技术,使用这种鼠标光标同步技术可以在不依赖于鼠标初始位置、鼠标属性、被控计算机登录和重启状态、被控计算机本地鼠标、网络通讯状况等因素的情况下直接实现IPKVM系统控制台鼠标光标和被控计算机鼠标光标自动同步。
为实现上述目的,本发明所采用的技术方案是:一种用于IPKVM系统的鼠标光标同步方法,首先,由IPKVM控制台获取当前KVM会话区域中主控鼠标光标的位置信息,通过网络将鼠标光标位置信息发送到IPKVM控制器;然后,由IPKVM控制器将该位置信息以被控计算机可识别的方式发送给被控计算机;最后,被控计算机根据IPKVM控制器发送来的位置信息将被控鼠标光标移动至相应位置。
现有的IPKVM系统在IPKVM控制器与被控计算机之间传送的是鼠标光标移动的位移量,本发明方法在IPKVM控制器与被控计算机之间传送的是鼠标光标的位置坐标,因此,可以有效的保持主控鼠标光标与被控鼠标光标的同步,避免因初始位置不同步、被控鼠标光标位置被重新默认或人为移动等原因造成的两者不同步的问题。
本发明所述的IPKVM系统包括:IPKVM控制台和IPKVM控制器组成。IPKVM控制台、IPKVM控制器和被控计算机的连接关系如图3所示。所述IPKVM控制器通过一符合USB HID规范的USB接口模块向被控计算机传送鼠标光标的位置信息。
为了清楚地说明本发明所述方法的实现步骤,需要先说明在后续说明中用到的三个坐标参照系:第一个是被控计算机屏幕坐标参照系,它对应被控计算机屏幕显示图像矩形区域,分辨率是Rx、Ry;第二个坐标参照系是USB接口模块坐标参照系,它对应USB接口模块虚拟矩形区域,分辨率是Xm、Ym;第三个是IPKVM控制台坐标参照系,它对应KVM会话区域,即控制台用于绘画被控计算机屏幕图像的矩形区域,分辨率是Rpx、Rpy。
本发明所述方法的一种具体方法包括如下步骤:
步骤一,IPKVM控制台获取当前主控鼠标光标在当前分辨率为Rpx、为Rpy的KVM会话区域中的位置坐标Xp、Yp;
步骤二,IPKVM控制台根据KVM会话区域当前分辨率Rpx、Rpy和被控计算机图像分辨率Rx、Ry,按公式一和公式二计算,获得当前主控鼠标光标在KVM会话区域中的位置对应被控计算机图像原始分辨率的坐标值Xc、Yc,然后,将坐标值Xc、Yc发送到IPKVM控制器;
Xc=(Xp*Rx)/Rpx (公式一)
Yc=(Yp*Ry)/Rpy (公式二)
步骤三,IPKVM控制器根据被控计算机屏幕图像的分辨率Rx、Ry和USB接口模块X轴最大值Xm、USB接口模块Y轴最大值Ym,按公式三和公式四计算,获得当前主控鼠标光标在USB接口模块坐标参照系中的对应坐标值Xu、Yu,并将该结果发送给被控计算机;
Xu=(Xc*Xm)/Rx (公式三)
Yu=(Yc*Ym)/Ry (公式四)
步骤四,被控计算机接收到IPKVM发送过来的当前主控鼠标光标相对于USB接口模块坐标参照系的坐标值Xu、Yu,根据被控计算机当前的屏幕分辨率Rx、Ry,USB接口模块X轴最大值Xm、USB接口模块Y轴最大值Ym,按公式五和公式六计算,获得被控鼠标光标在被控计算机屏幕上的目标坐标Xcc、Ycc,并将被控计算机屏幕上的被控鼠标光标移动到该坐标位置。
Xcc=(Xu*Rx)/Xm (公式五)
Ycc=(Yu*Ry)/Ym (公式六)
本发明所述方法的另一种具体方法包括如下步骤:
步骤一,IPKVM控制台获取当前主控鼠标光标在当前分辨率为Rpx、高度为Rpy的KVM会话区域中的位置坐标Xp、Yp;
步骤二,IPKVM控制台将步骤一获得的相对坐标值Xp、Yp和KVM会话区域的当前分辨率Rpx、Rpy发送到IPKVM控制器;
步骤三,IPKVM控制器根据KVM会话区域当前分辨率Rpx、Rpy和USB接口模块的X轴最大值Xm、USB接口模块Y轴最大值Ym,按公式七和公式八计算,获得当前主控鼠标光标在USB接口模块坐标参照系中的对应坐标值Xu、Yu,并将该结果发送给被控计算机;
Xu=(Xp*Xm)/Rpx (公式七)
Yu=(Yp*Ym)/Rpy (公式八)
步骤四,被控计算机接收到IPKVM发送过来的当前主控鼠标光标相对于USB接口模块坐标参照系的坐标值Xu、Yu,根据被控计算机当前的屏幕分辨率Rx、Ry,USB接口模块X轴最大值Xm、USB接口模块Y轴最大值Ym,按公式五和公式六计算,获得被控鼠标光标在被控计算机屏幕上的目标坐标Xcc、Ycc,并将被控计算机屏幕上的被控鼠标光标移动到该坐标位置。
在上述两种具体方法中,步骤一可以定时启动,也可以由主控鼠标动作启动。即IPKVM控制台可以定时读取或者由鼠标移动事件触发读取当前KVM会话区域中的鼠标光标位置坐标值。还可以混合两种启动方式,即当IPKVM控制台鼠标发生移动时,即时触发读取动作,当IPKVM控制台鼠标不发生移动时,定时触发读取动作。定时触发读取时,每隔一定时间读取一次鼠标光标位置。由鼠标移动事件触发读取时,当IPKVM控制台连接的鼠标发生移动时,IPKVM控制台读取KVM会话区域中的鼠标光标位置。定时启动步骤一的目的是定时更新鼠标位置,即使当前鼠标光标位置在一定时间段内都没有发生变化时,也要将当前鼠标光标位置信息定时发送给IPKVM控制器,这种做法是为了修正被控计算机的鼠标光标位置。由于某种原因,被控计算机的鼠标光标不在和IPKVM控制台鼠标光标相同的位置上,定时发送IPKVM控制台鼠标光标位置可以使被控计算机鼠标光标位置移到与IPKVM控制台一致的地方,从而实现被控计算机鼠标光标和IPKVM控制台鼠标光标快速同步。
在步骤二中,IPKVM控制台通过IP网络将鼠标光标位置信息发送到IPKVM控制器。所述IP网络是任何运行IP协议的计算机网络,物理连接方式可以是直连网线,也可以是通过交换机或路由器建立起来的局域网,也可以是互联网。
在步骤二中,IPKVM控制台与IPKVM控制器之间传送信息可采用两种方式。第一种方式是先将当前主控鼠标光标位置相对于IPKVM控制台坐标参照系的坐标Rpx、Rpy转化为相对于被控计算机屏幕坐标参照系的坐标Xc、Yc,然后,将相对于被控计算机屏幕坐标参照系的坐标Xc、Yc传送给IPKVM控制器。第二种方式是将当前主控鼠标光标位置相对于IPKVM控制台坐标参照系的坐标Rpx、Rpy传送给IPKVM控制器。采用第一种方式时,可以兼容现有的IPKVM系统,这是现有的IPKVM系统所采用的控制台与控制器之间传送信息的方式。同时,第一种方式可以支持早期的计算机操作系统。第二种方式中也可以先将Xp和Rpx同时放大或缩小若干倍再传送给IPKVM控制器,或者,先将Yp和Rpy同时放大或缩小若干倍再传送给IPKVM控制器,只要Xp∶Rpx和Yp∶Rpy这两个比例不变,都不会影响结果。
在步骤三中,IPKVM控制器通过USB接口将信息发送给被控计算机,为此,需要在IPKVM控制器中有一个USB接口模块。该USB接口模块是一个类似于触摸屏的USB HID设备,符合USB HID类规范协议。步骤三及所述的USB接口模块是本发明的关键内容。
如果步骤二采用第一种方式,在步骤三中,IPKVM控制器根据被控计算机屏幕图像的分辨率Rx、Ry和USB接口模块的X轴最大值Xm、USB接口模块Y轴最大值Ym,按公式三和公式四计算,获得当前鼠标光标在USB接口模块坐标参照系中的坐标值Xu、Yu,并将坐标Xu、Yu发送给被控计算机。
如果步骤二采用第二种方式,在步骤三中,IPKVM控制器根据KVM会话区域分辨率Rpx、Rpy和USB接口模块的X轴最大值Xm、USB接口模块Y轴最大值Ym,按公式七和公式八计算,获得当前鼠标光标在USB接口模块坐标参照系中的坐标值Xu、Yu,并将坐标Xu、Yu发送给被控计算机。
在上述方法中,步骤四,被控计算机接收到IPKVM发送过来的相对于USB接口模块坐标参照系中的坐标值Xu、Yu,根据被控计算机当前的屏幕分辨率Rx、Ry、USB接口模块X轴最大值Xm、USB接口模块Y轴最大值Ym,按公式五和公式六计算,获得被控鼠标光标在被控计算机屏幕上的目标坐标Xcc、Ycc,并将被控计算机屏幕上的被控鼠标光标移动到该坐标位置。这一步是由被控计算机完成的,需要有被控计算机操作系统的设备驱动程序支持,目前,大多数计算机操作系统如WindowsXP、Vista、Win7、Iinux 2.6及以上版本都能支持这一操作。
本发明所述的USB接口模块通过USB接口与被控计算机相连接并交换数据,至少用到2个USB端点。一个是控制端点,必须使用端点0,另一个是数据端点,端点号不限。控制端点用于主机配置USB接口模块和读取USB接口模块状态和数据,使用控制传输方式传送数据。数据端点用于主机读取USB接口模块数据,使用中断传输方式传输数据。
本发明所述的USB接口模块符合USB HID类规范协议。该USB接口模块以HID报告的形式向计算机传送数据,HID报告的数据格式在HID报告描述符中定义。在计算机启动过程中或USB接口模块插入计算机的过程中,USB接口模块通过HID报告描述符告知计算机此USB设备的类型、数据包结构等相应的设备信息,计算机通过设备的HID报告描述符识别出设备,解析数据包每位的定义,安装驱动直至与USB设备正常通讯。USB接口模块通过HID报告描述符告知计算机HID报告的数据包结构,其中包括鼠标每个按键和每个方向轴坐标在HID报告中的表示方式。
HID报告描述符首先描述设备所属的用途页Usage Page,本发明所述的USB接口模块属于是通用桌面用途页。然后描述用途,本发明所述的USB接口模块用途是鼠标。然后HID报告描述符描述数据通讯的数据包格式,本发明所述的USB接口模块的数据包中包含4种数据。分别是:
第一种数据是鼠标按键信息,数据长度为1字节,其中用一位表示鼠标一个按键的状态,相应位为1表示该按键按下,0表示则表示该按键释放。1字节8位可以表示8个按键的状态,如果按键不足8个,未用的数据位为填充位,没有意义。
第二种数据是滚轮信息,即Z轴信息,表示滚轮向上或向下移动的距离,数据长度为1字节,它的逻辑最大值为0x7F即+127,逻辑最小值0x81即-127。这个值用相对值表示,表示的是相对于上一次报告的Z轴坐标的变化值。
第三种数据是水平方向的的坐标值,即X轴坐标值,X轴坐标值表示的是一个绝对值,数据长度为2字节,小端格式,即低字节在前,高字节在后。在HID报告描述符中描述X轴坐标的取值范围,最小值是0,最大值可以是大于0和小于65535的任意数值。
第四种数据是垂直方向的的坐标值,即Y轴坐标值,Y轴坐标值表示的是一个绝对值,数据长度为2字节,小端格式,即低字节在前,高字节在后。在HID报告描述符中描述Y轴坐标的取值范围,最小值是0,最大值可以是大于0和小于65535的任意数值。
本发明所述的USB接口模块通过数据端点向被控计算机发送数据包,数据传输方式是中断传输方式,数据长度是6个字节,数据格式定义如下:第1字节是按键信息,第2字节是Z轴信息,第3字节是X轴坐标的低字节,第4字节是X轴坐标的高字节,第5字节是Y轴坐标的低字节,第6字节是Y轴坐标的高字节。
本发明所述的USB接口模块传送的是绝对坐标值,而不是相对位移,这样不依赖于上一个鼠标光标所处的位置。被控计算机接收到USB接口模块传送过来的相对于USB接口模块坐标参照系的坐标值Xu、Yu,根据被控计算机当前的屏幕分辨率、USB接口模块在HID描述符中描述的X轴和Y轴最大值,将接收到的坐标值按公式五和公式六换算成被控计算机屏幕光标位置,并将被控计算机屏幕上的鼠标光标移动到相应位置,这样就可以被控计算机鼠标光标与控制台主控鼠标光标的同步。
本发明所述的USB接口模块传送给被控计算机的信息是USB接口模块坐标参照系中的坐标值Xu、Yu,而不是被控计算机屏幕图像坐标参考系中的坐标值Xcc、Ycc,所以,虽然在USB接口模块的Xu和Yu分别用2个字节表示,最大值是65535,但是被控计算机屏幕上的光标位置Xcc、Ycc并不受Xu和Yu这两个坐标值的取值范围限制。从公式五和公式六可以看出,Rx、Ry可以是无限大的,Xcc、Ycc也是可以无限大的。所以,采用本发明所述的鼠标光标同步技术实现的IPKVM系统所控制的被控计算机的屏幕分辨率是没有限制的。
本发明有益效果:采用本发明提供的鼠标光标同步技术实现的IPKVM系统能够使IPKVM控制台鼠标光标和被控计算机鼠标光标自动同步,即使在被控计算机和IPKVM控制台的鼠标光标初始位置不一致、被控计算机鼠标被设置成加速模式、在操作过程中被控计算机重新启动、被控计算机操作系统还未登录、被控计算机本地插有一个本地鼠标、网络通讯异常造成鼠标数据丢失等情况下,也能够使鼠标光标自动同步。本发明实现的USB接口模块符合USB HID类规范协议,被大多数计算机操作系统支持,如Windows XP、Vista、Win7、Iinux 2.6及以上版本。采用本发明所述的鼠标光标同步技术实现的IPKVM系统所控制的被控计算机的屏幕分辨率是没有限制的。
附图说明
图1为普通鼠标和计算机之间的数据传输过程示意图;
图2为现有IPKVM系统结构图和鼠标数据传输过程示意图;
图3为应用本发明的同步方法的IPKVM系统的结构图和鼠标数据传输过程示意图;
图4为应用本发明的同步方法的IPKVM系统另一种实施例的结构图和鼠标数据传输过程示意图。
具体实施方式
本发明的思想在于,在IPKVM系统中,IPKVM控制台、IPKVM控制器、被控计算机之间传送鼠标信息时都使用鼠标光标位置坐标值,而不是像普通鼠标那样传送相对位移。为了使在IPKVM控制器能够向被控计算机传送鼠标光标位置的坐标,在IPKVM控制器中设计有一个USB接口模块,该USB接口模块是一个类似于触摸屏的USB HID设备,符合USB HID类规范协议。使用这种方法实现的IPKVM系统能够使控制台鼠标光标和被控计算机鼠标光标自动同步,即使在被控计算机和控制台的鼠标初始位置不一致、被控计算机鼠标被设置成加速模式、在操作过程中被控计算机重新启动、被控计算机操作系统还未登录、被控计算机本地插有一个本地鼠标、网络通讯异常造成鼠标数据丢失等情况下,也能够使鼠标光标自动同步。下面例举两个应用实例,来对本发明的技术方案做进一步说明。
参照图3和图4,本发明的同步方法可以应用在两种类似的IPKVM系统中,在这两种系统均包括:IPKVM控制台和IPKVM控制器。所述IPKVM系统可控制一台或多台被控计算机。IPKVM控制台、IPKVM控制器和被控计算机的连接关系如图3或图4所示。IPKVM控制台与IPKVM控制器通过网线直连或通过IP网络相连。IPKVM控制器中有一个USB接口模块,IPKVM控制器通过该接口模块与被控计算机USB接口相连,用于传送鼠标和键盘信号,IPKVM控制器还与被控计算机的显示器接口相连,用于采集被控计算机显示图像。
图3或图4所示的实施例中,其鼠标光标同步过程包括:所述的IPKVM控制台读取当前KVM会话区域中的鼠标光标位置,将鼠标光标位置通过IP网络发送到IPKVM控制器。IPKVM控制器根据被控计算机的屏幕分辨率、USB接口模块的X轴和Y轴最大值,将从IPKVM控制台接收到的鼠标光标位置转换成USB接口模块的X轴和Y轴坐标值,并将USB接口模块的X轴和Y轴坐标值发送给被控计算机。被控计算机接收到USB接口模块的X轴和Y轴坐标值,根据被控计算机当前的屏幕分辨率、USB接口模块的X轴和Y轴最大值,将接收到的坐标值换算成屏幕光标位置,并将被控计算机屏幕上的鼠标光标移动到相应位置。
USB接口模块通过USB接口与被控计算机相连接并交换数据,使用端点0作为控制端点,使用端点1作为数据端点。控制端点用于主机配置USB接口模块和读取USB接口模块状态和数据,使用控制传输方式传送数据。数据端点用于主机读取USB接口模块数据,使用中断传输方式传输数据。
本发明所述的USB接口模块符合USB HID类规范协议。该USB接口模块以HID报告的形式向计算机传送数据,HID报告的数据格式在HID报告描述符中定义。
本发明所述的USB接口模块实施例的HID报告描述符如下:
下面结合实施例详细描述USB接口模块的USB HID报告描述符。
HID报告描述符第1行表示,HID_UsagePage的值为0x01,告诉计算机该USB接口模块是通用桌面的设备。
HID报告描述符第2行表示,HID_Usage值0x02,表示此设备的类型为鼠标。
HID报告描述符第3行表示,HID_Collection是一个集合定义的开始,此行与第37行相对应,HID报告描述符第37行表示,HID_EndCollection是一个集合定义的结束。
HID报告描述符第4行表示,HID_Usage值0x02,表示此设备的类型为鼠标。
HID报告描述符第5行表示,HID_Collection是一个集合定义的开始,此行与第36行相对应,HID报告描述符第36行表示,HID_EndCollection是一个集合定义的结束。
HID报告描述符第6-13行定义鼠标按键数据格式,HID_UsagePage值为0x09告诉计算机数据包的定义就是鼠标的按键,它的最小值HID_UsageMin是1,最大值HID_UsageMax是3即1表示左键、2表示右键、3表示是中键,HID_ReportCount值0x03表示上述的按键总共有3个,而且通过HID_ReportSize值0x01可以每个按键都占用一个字位,相应的1表示有按键0则表示没有按键,HID_Input是说明此信息是通过数据包输入到计算机。
HID报告描述符第14-16行说明鼠标按键数据格式之后的有5个填充位,用于补足一个字节的数据。
HID报告描述符第17-26行定义输入数据包第二个字节是鼠标滚轮信息。HID_Usage 0x38表示这个字节定义的是滚轮信息,从HID_ReportCount和HID_ReportSize得知,滚轮信息共占用一个字节8个位,它的逻辑最大值为0x7F即+127,逻辑最小值0x81即-127。
HID报告描述符第27-35行定义X轴和Y轴数据格式,HID_Usage 0x30表示以下定义X轴信息,HID_Usage 0x31表示以下定义Y轴信息,此处因为X和Y轴的定义是一样的,所以可以合并定义,也可以分开定义。X轴和Y轴输入数据包各占2个字节,用绝对值坐标表示,最大值是2047,最小值是0。
本发明所述的USB接口模块通过数据端点向被控计算机发送数据包,数据传输方式是中断传输方式,数据长度是6个字节,数据格式定义如下:第1字节是按键信息,第2字节是Z轴信息,第3字节是X轴坐标的低字节,第4字节是X轴坐标的高字节,第5字节是Y轴坐标的低字节,第6字节是Y轴坐标的高字节。第1字节存放鼠标按键信息,只使用低3位,高5位为填充位。低3位定义如下:bit0(最低位)为左键,bit1为右键,bit2为中键,按下时对应的位值为1,释放时对应的位值为0。
本发明实施例实现了IPKVM系统准确快速同步的效果。在被控计算机和IPKVM控制台的鼠标初始位置不一致、被控计算机鼠标被设置成加速模式、在操作过程中被控计算机重新启动、被控计算机操作系统还未登录、被控计算机本地插有一个本地鼠标、网络通讯异常造成鼠标数据丢失、USB数据包丢失等情况下,都能做到鼠标光标自动同步。
需要注意的是,本发明所示的实施例仅仅是为了更好地说明本发明,而不是对本发明的限制。对于本领域的普通技术人员来说,可以根据本发明的技术思想和技术方案作出各种变形和替代,但是这些都没有超出本发明的范围。
Claims (8)
1.一种用于IPKVM系统的鼠标光标同步方法,其特征在于,具体步骤包括:
步骤一,IPKVM控制台获取当前主控鼠标光标在当前分辨率为Rpx、Rpy的KVM会话区域中的位置坐标Xp、Yp;
步骤二,IPKVM控制台根据KVM会话区域当前分辨率Rpx、Rpy和被控计算机图像原始分辨率Rx、Ry,按公式一和公式二计算,获得当前主控鼠标光标在KVM会话区域中的位置对应被控计算机图像原始分辨率的坐标值Xc、Yc,然后,将坐标值Xc、Yc发送到IPKVM控制器;所述IPKVM控制器包含一个USB接口模块,该USB接口模块符合USB HID规范;
Xc=(Xp*Rx)/Rpx (公式一)
Yc=(Yp*Ry)/Rpy (公式二)
步骤三,IPKVM控制器根据被控计算机屏幕图像的分辨率Rx、Ry和USB接口模块X轴最大值Xm、USB接口模块Y轴最大值Ym,按公式三和公式四计算,获得当前主控鼠标光标在USB接口模块坐标参照系中的对应坐标值Xu、Yu,并将Xu、Yu发送给被控计算机;
Xu=(Xc*Xm)/Rx (公式三)
Yu=(Yc*Ym)/Ry (公式四)
步骤四,被控计算机接收到IPKVM发送过来的当前主控鼠标光标相对于USB接口模块坐标参照系的坐标值Xu、Yu,根据被控计算机当前的屏幕分辨率Rx、Ry,USB接口模块X轴最大值Xm、USB接口模块Y轴最大值Ym,按公式五和公式六计算,获得被控鼠标光标在被控计算机屏幕上的目标坐标Xcc、Ycc,并将被
Xcc=(Xu*Rx)/Xm (公式五)
Ycc=(Yu*Ry)/Ym (公式六)
控计算机屏幕上的被控鼠标光标移动到目标坐标Xcc、Ycc位置。
2.根据权利要求1所述的用于IPKVM系统的鼠标光标同步方法,其特征在于,所述USB接口模块在HID报告描述符中描述设备所属的用途页为通用桌面用途页,描述用途为鼠标。
3.根据权利要求1所述的用于IPKVM系统的鼠标光标同步方法,其特征在于,所述USB接口模块在HID报告描述符中描述四种数据包格式,分别代表鼠标按键信息、滚轮Z轴信息、水平方向X轴坐标值、垂直方向Y轴坐标值。
4.根据权利要求1所述的用于IPKVM系统的鼠标光标同步方法,其特征在于,所述USB接口模块以中断传输方式通过数据端点向被控计算机发送数据包,数据包内容包括按键信息、X轴坐标、Y轴坐标、滚轮Z轴信息,其中X轴坐标、Y轴坐标是坐标绝对值,滚轮Z轴信息是变化相对值。
5.一种用于IPKVM系统的鼠标光标同步方法,其特征在于,实现该方法另一种具体步骤包括:
步骤一,IPKVM控制台获取当前主控鼠标光标在当前分辨率为Rpx、Rpy的KVM会话区域中的位置坐标Xp、Yp;
步骤二,IPKVM控制台将步骤一获得的坐标值Xp、Yp和KVM会话区域的当前分辨率Rpx、Rpy发送到IPKVM控制器;所述IPKVM控制器包含一个USB接口模块,该USB接口模块符合USB HID规范;
步骤三,IPKVM控制器根据KVM会话区域当前分辨率Rpx、Rpy和USB接口模块X轴最大值Xm、USB接口模块Y轴最大值Ym,按公式七和公式八计算,获得当前主控鼠标光标在USB接口模块坐标参照系中的对应坐标值Xu、Yu,并将Xu、Yu发送给被控计算机;
Xu=(Xp*Xm)/Rpx (公式七)
Yu=(Yp*Ym)/Rpy (公式八)
步骤四,被控计算机接收到IPKVM发送过来的当前主控鼠标光标相对于USB接口模块坐标参照系的坐标值Xu、Yu,根据被控计算机当前的屏幕分辨率Rx、Ry,USB接口模块X轴最大值Xm、USB接口模块Y轴最大值Ym,按公式五和公式六计算,获得被控鼠标光标在被控计算机屏幕上的目标坐标Xcc、Ycc,并将被
Xcc=(Xu*Rx)/Xm (公式五)
Ycc=(Yu*Ry)/Ym (公式六)
控计算机屏幕上的被控鼠标光标移动到目标坐标Xcc、Ycc位置。
6.根据权利要求5所述的用于IPKVM系统的鼠标光标同步方法,其特征在于,所述USB接口模块在HID报告描述符中描述设备所属的用途页为通用桌面用途页,描述用途为鼠标。
7.根据权利要求5所述的用于IPKVM系统的鼠标光标同步方法,其特征在于,所述USB接口模块在HID报告描述符中描述四种数据包格式,分别代表鼠标按键信息、滚轮Z轴信息、水平方向X轴坐标值、垂直方向Y轴坐标值。
8.根据权利要求5所述的用于IPKVM系统的鼠标光标同步方法,其特征在于,所述USB接口模块以中断传输方式通过数据端点向被控计算机发送数据包,数据包内容包括按键信息、X轴坐标、Y轴坐标、滚轮Z轴信息,其中X轴坐标、Y轴坐标是坐标绝对值,滚轮Z轴信息是变化相对值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110456238.1A CN102591493B (zh) | 2011-12-30 | 2011-12-30 | 一种用于ipkvm系统的鼠标光标同步方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110456238.1A CN102591493B (zh) | 2011-12-30 | 2011-12-30 | 一种用于ipkvm系统的鼠标光标同步方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102591493A CN102591493A (zh) | 2012-07-18 |
CN102591493B true CN102591493B (zh) | 2014-12-24 |
Family
ID=46480284
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110456238.1A Active CN102591493B (zh) | 2011-12-30 | 2011-12-30 | 一种用于ipkvm系统的鼠标光标同步方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102591493B (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104067202B (zh) * | 2012-12-31 | 2016-12-28 | 华为技术有限公司 | 鼠标同步的方法、装置和系统 |
CN103220339B (zh) * | 2013-03-27 | 2016-01-13 | 北京奇虎科技有限公司 | 远程操作中的光标轨迹显示方法、装置和系统 |
JP6280435B2 (ja) * | 2014-04-28 | 2018-02-14 | 富士通コンポーネント株式会社 | プログラム、中継装置及び情報処理装置 |
CN105338261B (zh) * | 2015-11-02 | 2018-09-25 | 天脉聚源(北京)教育科技有限公司 | 一种传输图片相关信息的方法及装置 |
CN105681398A (zh) * | 2015-12-30 | 2016-06-15 | 广东威创视讯科技股份有限公司 | 一种kvm远程控制的方法、编码盒及系统 |
CN105469772A (zh) * | 2015-12-30 | 2016-04-06 | 广东威创视讯科技股份有限公司 | 一种远程kvm控制方法、远程kvm控制端及系统 |
CN106095123A (zh) * | 2016-06-17 | 2016-11-09 | 山东超越数控电子有限公司 | 一种kvm一体机虚拟多路usb键鼠设备的方法 |
CN107783669B (zh) * | 2016-08-23 | 2021-04-16 | 群光电子股份有限公司 | 光标产生系统、方法及计算机程序产品 |
CN107817905A (zh) * | 2017-11-01 | 2018-03-20 | 威创集团股份有限公司 | 定位标识切换方法、装置及系统 |
CN108710480A (zh) * | 2018-04-18 | 2018-10-26 | 东莞职业技术学院 | 一种文档共享和文档控制的方法和系统 |
CN109032376A (zh) * | 2018-07-09 | 2018-12-18 | 江苏沁恒股份有限公司 | 一种利用一套键盘鼠标同时控制多台电脑的装置及方法 |
CN109491568B (zh) * | 2018-12-28 | 2021-09-28 | 深圳开立生物医疗科技股份有限公司 | 鼠标事件处理方法、装置、设备及计算机可读存储介质 |
CN112804559A (zh) * | 2020-12-08 | 2021-05-14 | 中国船舶重工集团公司第七0九研究所 | 视频画面与键鼠同步的传输方法及系统 |
TWI775258B (zh) | 2020-12-29 | 2022-08-21 | 宏碁股份有限公司 | 偵測異常裝置操作的方法及電子裝置 |
CN113849073B (zh) * | 2021-08-25 | 2024-09-17 | 中国船舶重工集团公司第七0九研究所 | 一种面向远程操控的鼠标与回传画面的同步方法及系统 |
CN114721529B (zh) * | 2022-03-30 | 2022-11-29 | 四川交子纪元数字信息技术有限公司 | 基于人工智能的软件兼容控制方法、系统及云平台 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101673146A (zh) * | 2008-09-10 | 2010-03-17 | 宏正自动科技股份有限公司 | 使用触摸屏的键盘-屏幕-滑鼠切换器 |
CN101685354A (zh) * | 2008-09-26 | 2010-03-31 | 宏正自动科技股份有限公司 | 校准远程计算机光标对客户端计算机鼠标反应的方法及系统 |
CN101968681A (zh) * | 2010-10-12 | 2011-02-09 | 浪潮电子信息产业股份有限公司 | 一种显示窗口尺寸可调的KVM over IP方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5008007B2 (ja) * | 2007-11-21 | 2012-08-22 | 富士通コンポーネント株式会社 | 情報処理装置、遠隔システム、プログラム及びコンピュータ読み取り可能な記録媒体 |
-
2011
- 2011-12-30 CN CN201110456238.1A patent/CN102591493B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101673146A (zh) * | 2008-09-10 | 2010-03-17 | 宏正自动科技股份有限公司 | 使用触摸屏的键盘-屏幕-滑鼠切换器 |
CN101685354A (zh) * | 2008-09-26 | 2010-03-31 | 宏正自动科技股份有限公司 | 校准远程计算机光标对客户端计算机鼠标反应的方法及系统 |
CN101968681A (zh) * | 2010-10-12 | 2011-02-09 | 浪潮电子信息产业股份有限公司 | 一种显示窗口尺寸可调的KVM over IP方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102591493A (zh) | 2012-07-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102591493B (zh) | 一种用于ipkvm系统的鼠标光标同步方法 | |
US9723352B2 (en) | User interface interaction system and method for handheld device and TV set | |
CN104618793B (zh) | 一种信息处理方法及电子设备 | |
CN107071551B (zh) | 应用于智能电视系统中的多屏互动屏幕响应方法 | |
CN109002269B (zh) | 一种单键鼠控制多终端的方法、客户端及系统 | |
CN101059726A (zh) | 控制多台计算机的键盘-屏幕-鼠标切换系统及其方法 | |
US20200341631A1 (en) | Electronic whiteboard, method for image processing in electronic whiteboard, and recording medium containing computer program of electronic whiteboard | |
CN103365549A (zh) | 输入装置、显示系统及输入方法 | |
EP4318238A1 (en) | Image sharing methods and apparatuses, and electronic device | |
US20120235924A1 (en) | Display systems, methods, and apparatus | |
CN105183269A (zh) | 自动辨识游标所在屏幕的方法 | |
US9785265B2 (en) | Real-time remote control system for semiconductor automation equipment | |
CN113448462A (zh) | 个人输入装置的驱动方法 | |
CN212624021U (zh) | 一种多主机多网络共享显示器的切换系统 | |
CN111273804A (zh) | 触控转发装置、触摸显示设备及控制方法 | |
US20190250810A1 (en) | Image processing apparatus, screen handling method, and computer program | |
WO2022184029A1 (zh) | 拼贴画显示系统及其数据处理方法 | |
CN114025227A (zh) | 一种电子设备及控制方法 | |
CN103186248A (zh) | 远程管理系统及其远程管理方法 | |
CN114237531A (zh) | 一种远程投屏的控制方法及系统 | |
CN112764643A (zh) | 一种远程操控多屏计算机的方法、系统、设备及存储介质 | |
CN103188543A (zh) | 遥控方法及装置 | |
CN103577135A (zh) | 电脑控制系统 | |
CN105278901A (zh) | 远程管理方法 | |
CN112114762A (zh) | 一种控制屏幕显示的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |