一种键盘鼠标设备共享方法与流程

文档序号:28916877发布日期:2022-02-16 11:26阅读:179来源:国知局
一种键盘鼠标设备共享方法与流程

1.本发明属于计算机控制技术领域,具体属于一种键盘鼠标设备共享方法。


背景技术:

2.现有进行键盘鼠标设备共享的方法可以分为两类,一是通过硬件方式进行切换,如kvm切换器;二是通过软件方式,比如基于网络通过rdp协议或者vnc协议共享键盘鼠标设备。
3.kvm切换器又被称为多计算机控制器,一台kvm切换器可以控制多台计算机或者服务器,kvm切换器的控制端口主要是用来连接键盘和鼠标的usb端口和显示器的vga端口。使用硬件连接情况下,如果待共享主机数量较大情况下,硬件设计复杂度、设计成本及切换逻辑复杂度会增加,到时可靠性下降。
4.rdp(remote display protocol)协议,适用系统为windows和linux,提供了客户端与服务器之间的远程桌面控制功能。rdp协议分为网络连接层、iso数据层、虚拟通道层、加密解密层、功能数据层。连接过程主要包括,客户端连接服务器、iso数据层建立连接、发送初始协议相关信息,接收加密、解密秘钥、虚拟通道申请、加密形式发送客户端系统信息,同时验证加密协议、平台软件证书验证、各功能建立连接,各功能数据传输,功能实现。
5.vnc(virtual network computing)协议时基于rfb(remote frame buffer)协议进行通信的,是一种屏幕画面分享及远程操作软件,借由网络,可发送键盘与鼠标的动作及即时的屏幕画面。适用系统为windows和linux。vnc连接可以分为4个阶段:握手过程、认证过程、桌面交互和挥手过程。
6.由于rdp协议和vnc协议仅适用于桌面操作系统,所以道系统作为没有图形桌面的嵌入式操作系统而且道系统下的键盘和鼠标事件码值不通用,导致道系统无法使用上述两种协议。


技术实现要素:

7.为了解决现有技术中存在的问题,本发明提供一种键盘鼠标设备共享方法,改变了传统的一对一的控制方式,而采用的一对多的管理方式,有利于节省空间,提高工作效率;在控制系统中设备较多的情况下,通过该方法能与其他设备相连,可同时对本地和远程进行控制。
8.为实现上述目的,本发明提供如下技术方案:
9.一种键盘鼠标设备共享方法,包括以下步骤,
10.步骤1,在道系统中获取键盘鼠标数据;
11.步骤2,将键盘鼠标数据组成网络数据帧发送到中标麒麟操作系统;
12.步骤3,中标麒麟操作系统解析网络数据帧;
13.步骤4,中标麒麟操作系统判断网络数据帧为键盘事件还是鼠标事件,根据事件类型调用对应的数据处理函数进行处理;
14.步骤5,中标麒麟操作系统响应处理后的键盘鼠标事件,进行共享。
15.优选的,步骤1中,道系统中获取键盘鼠标数据具体包括以下过程,
16.启动usb事件获取线程,在道系统bsp包中提供的usb驱动中获取传递给操作系统的键盘鼠标值;将获取到的键值,按照usb事件网络协议将键盘鼠标事件组成网络数据帧并放到发送缓冲区中。
17.进一步的,步骤1中,所述usb事件网络协议中包括数据帧头,键盘鼠标事件标志,按键码值,鼠标移动相对坐标,数据帧校验和。
18.优选的,步骤2中,按照配置文件中的对端的ip和端口号,在道系统中初始化发送网络套接字;启动网络发送线程,将发送缓冲区中的数据帧通过初始化的网络套接字发送到中标麒麟操作系统;中标麒麟操作系统初始化接收网络套接字,启动网络数据帧接收线程,接收网络数据帧并放到接收缓冲区中。
19.优选的,步骤3中,中标麒麟操作系统中启动usb事件解析线程,从接收缓冲区中依次解析usb事件数据包,首先根据数据包中的帧头字段和校验和字段判断该数据帧是否有效,若数据帧无效则丢弃;数据包有效时则执行下一步骤。
20.优选的,步骤4中,如果为键盘事件,则调用键盘事件处理函数,键盘处理函数首先判断键盘事件是组合按键或者单个按键;
21.当键盘事件是组合按键时,调用组合键处理函数,模拟linux组合键处理流程;当键盘事件是单个按键时,调用单个按键处理函数,模拟linux单个按键处理流程;
22.通过专用算法将道系统下的键盘数据转换为linux下的通用键盘码值;将键盘数据组成linux下的鼠标事件结构体并传入操作系统,使中标麒麟操作系统响应键盘事件。
23.优选的,步骤4中,如果为鼠标事件,则调用鼠标事件处理函数,鼠标事件处理函数将数据帧中的鼠标横向纵位置坐标信息组成linux下的鼠标事件结构体传入操作系统,使中标麒麟操作系统响应鼠标事件。
24.与现有技术相比,本发明具有以下有益的技术效果:
25.本发明提供一种键盘鼠标设备共享方法,相比硬件方法实现,降低了整体设备的硬件复杂度,进而降低了故障风险,同时也降低硬件设计成本;传统usb设备共享协议无法在嵌入式系统上应用,本发明通过自定义网络协议及专用算法,解决道系统下的键盘鼠标数据域中标麒麟操作系统间的数据传输与数据通用性问题,实现嵌入式系统与桌面系统间的键盘鼠标设备共享功能;通过软件方式实现国产操作系统下输入设备的共享,可以实现多电脑切换的集中管理,可以节省空间,降低能源消耗,节省硬件成本,避免多余的键盘、鼠标造成的杂乱,使得设备件的管理更加简单方便,提升工作效率。
附图说明
26.图1为本发明一种键盘鼠标设备共享方法流程图。
具体实施方式
27.下面结合具体的实施例对本发明做进一步的详细说明,所述是对本发明的解释而不是限定。
28.本发明一种键盘鼠标设备共享方法,包括以下步骤,
29.步骤1,在道系统中获取键盘鼠标数据;
30.步骤2,将键盘鼠标数据组成网络数据帧发送到中标麒麟操作系统;
31.步骤3,中标麒麟操作系统解析网络数据帧;
32.步骤4,中标麒麟操作系统判断网络数据帧为键盘事件还是鼠标事件,根据事件类型调用对应的数据处理函数进行处理;
33.步骤5,中标麒麟操作系统响应处理后的键盘鼠标事件,进行共享。
34.本发明提供一种键盘鼠标设备共享方法,相比硬件方法实现,降低了整体设备的硬件复杂度,进而降低了故障风险,同时也降低硬件设计成本;传统usb设备共享协议无法在嵌入式系统上应用,本发明通过自定义网络协议及专用算法,解决道系统下的键盘鼠标数据域中标麒麟操作系统间的数据传输与数据通用性问题,实现嵌入式系统与桌面系统间的键盘鼠标设备共享功能;通过软件方式实现国产操作系统下输入设备的共享,可以实现多电脑切换的集中管理,可以节省空间,降低能源消耗,节省硬件成本,避免多余的键盘、鼠标造成的杂乱,使得设备件的管理更加简单方便,提升工作效率。
35.实施例
36.如图1所示,本发明一种键盘鼠标设备共享方法,包括以下过程,
37.步骤1,启动usb事件获取线程,在道系统bsp包中提供的usb驱动中获取传递给操作系统的键盘鼠标值;将获取到的键值,按照自定义usb事件网络协议将键盘鼠标事件组成网络数据帧并放到发送缓冲区中。usb事件网络协议中包括数据帧头,键盘鼠标事件标志,按键码值,鼠标移动相对坐标,数据帧校验和。
38.步骤2,按照配置文件中的对端的ip和端口号,在道系统中初始化发送网络套接字。
39.步骤3,启动网络发送线程,将发送缓冲区中的数据帧通过步骤2中初始化的网络套接字发送到中标麒麟操作系统。
40.步骤4,中标麒麟操作系统初始化接收网络套接字,启动网络数据帧接收线程,接收步骤3中的网络数据帧并放到接收缓冲区中。
41.步骤5,中标麒麟操作系统中启动usb事件解析线程,从接收缓冲区中依次解析usb事件数据包,首先根据数据包中的帧头字段和校验和字段判断该数据帧是否有效,若数据帧无效则丢弃。数据包有效时继续判断该数据包为键盘事件还是鼠标事件,根据事件类型调用对应的数据处理函数。
42.步骤6,如果为键盘事件则调用键盘事件处理函数,键盘处理函数首先判断键盘事件是shift、ctrl、alt等组合按键或者单个按键,然后选择对应的处理函数进行事件模拟,通过专用算法将道系统下的键盘数据数据转换为linux下的通用键盘码值。将数据组成linux下的鼠标事件结构体并传入操作系统,使操作系统响应键盘事件。
43.步骤7,如果为鼠标事件则调用鼠标事件处理函数,鼠标事件处理函数将数据帧中的鼠标横向纵位置坐标信息组成linux下的鼠标事件结构体传入操作系统,使操作系统响应鼠标事件。
44.本发明自定义的网络数据帧格式及协议格式,包含键盘事件和鼠标事件,其中协议中包含ctrl组合键、shift组合键及alt组合键等功能的内容,实现组合键功能,可以更好的模拟用户使用习惯,更方便进行操作。
45.首先在道系统下获取键盘鼠标事件的数据并通过网络发送给中标麒麟操作系统,中标麒麟操作系统接收并解析网络数据帧,判断数据帧合法性后,对键盘事件和鼠标事件分类处理,将不同事件信息组成linux下的事件结构体并上报操作系统,使操作系统响应键盘鼠标事件,
46.中标麒麟系统键盘鼠标事件处理通过特定标志位区分鼠标事件或者键盘事件。针对键盘事件设计专用算法,将传入的嵌入式系统下的键盘键位值转换为linux标准键位值,方便系统处理;并根据不同组合键的标志,设置不同组合键的处理方式。针对鼠标事件,将数据帧中的鼠标横向纵位置坐标信息组成linux下的鼠标事件结构体传入操作系统,使操作系统响应鼠标事件。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1