CN110688052B - 人机交互设备枚举处理方法、装置及人机交互设备 - Google Patents
人机交互设备枚举处理方法、装置及人机交互设备 Download PDFInfo
- Publication number
- CN110688052B CN110688052B CN201910919942.2A CN201910919942A CN110688052B CN 110688052 B CN110688052 B CN 110688052B CN 201910919942 A CN201910919942 A CN 201910919942A CN 110688052 B CN110688052 B CN 110688052B
- Authority
- CN
- China
- Prior art keywords
- descriptor
- hid
- host
- sub
- operating system
- 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
- 230000003993 interaction Effects 0.000 title claims abstract description 53
- 238000003672 processing method Methods 0.000 title claims abstract description 17
- 238000000034 method Methods 0.000 claims abstract description 60
- 230000004044 response Effects 0.000 claims description 27
- 238000012545 processing Methods 0.000 claims description 21
- 238000004590 computer program Methods 0.000 claims description 10
- 230000004048 modification Effects 0.000 claims description 3
- 238000012986 modification Methods 0.000 claims description 3
- 230000008569 process Effects 0.000 description 31
- 238000010586 diagram Methods 0.000 description 15
- 238000004891 communication Methods 0.000 description 8
- 238000000115 helium ionisation detection Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 3
- 235000019800 disodium phosphate Nutrition 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0487—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
- G06F3/0488—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本申请实施例提供一种人机交互设备枚举处理方法、装置及人机交互设备,所述方法包括:人机交互设备HID识别主机的操作系统类型;若所述主机的操作系统类型与所述HID生成的初始报告描述符不匹配,则所述HID将所述初始报告描述符中第一子描述符的值修改为无效值,得到修改后的报告描述符,所述第一子描述符为所述主机的操作系统不支持的事件对应的描述符;所述HID向所述主机发送所述修改后的报告描述符。该方法能够极大节省HID被识别的时长,进而极大提升用户的使用体验。
Description
技术领域
本申请实施例涉及计算机技术,尤其涉及一种人机交互设备枚举处理方法、装置及人机交互设备。
背景技术
人机交互设备(Human Interface Device,简称HID)是指直接与人交互的设备,是一种通用串行总线(Universal Serial Bus,简称USB)设备。HID可以同台式电脑、笔记电脑等设备连接,以帮助用户更方便、快捷地使用这些设备。在USB系统中,与USB设备连接的设备被称为USB主机。HID例如可以包括:键盘、鼠标、游戏杆等。多点触摸HID是一类重要的USB-HID设备,多点触摸HID可以为触摸笔、触摸框等。多点触摸HID可能接入到运行不同操作系统的主机上,不同操作系统对于多点触摸HID的支持程度可能不同。示例性的,Windows操作系统和安卓操作系统均能够支持单点触摸(mouse)和多点触摸(touch),而运行于苹果Macintosh系列电脑上的Mac操作系统仅支持单点触摸(mouse)。因此,对于同一个多点触摸HID而言,需要进行适配处理以保证在运行不同操作系统的主机上均可正常使用。
现有技术中,多点触摸HID通过枚举过程使得主机识别并使用该多点触摸HID。根据多点触摸HID的报告描述符的协议规范,可以将mouse描述符和touch描述符默认存储在一个连续地址区域。在枚举过程中,多点触摸HID将该连续地址区域的信息同时报告给主机。如果多点触摸HID在枚举期间连接到主机后,检测到主机运行的操作系统与多点触摸HID默认存储的报告描述符不匹配,则多点触摸HID会断开与主机的连接,选择新的匹配的报告描述符,重新与主机连接,并重新执行枚举过程向主机发送报告描述符,进而实现多点触摸HID被主机识别和使用。
但是,现有技术的方法可能导致多点触摸HID的枚举过程耗时过长,进而导致多点触摸HID被识别的时间过长,影响用户体验。
发明内容
本申请实施例提供一种人机交互设备枚举处理方法、装置及人机交互设备,所述技术方案如下。
本申请实施例第一方面提供一种人机交互设备枚举处理方法,所述方法包括:
人机交互设备HID识别主机的操作系统类型;
若所述主机的操作系统类型与所述HID生成的初始报告描述符不匹配,则所述HID将所述初始报告描述符中第一子描述符的值修改为无效值,得到修改后的报告描述符,所述第一子描述符为所述主机的操作系统不支持的事件对应的描述符;
所述HID向所述主机发送所述修改后的报告描述符。
进一步的,所述HID向所述主机发送所述修改后的报告描述符之前,还包括:
所述HID接收所述主机发送的第一请求信息,所述第一请求信息用于请求获取HID描述符;
所述HID根据所述第一请求信息,向所述主机发送第一响应信息,所述第一响应信息用于指示所述初始报告描述符的长度,所述初始报告描述符的长度为所述第一子描述符的长度与第二子描述符的长度之和,所述第二子描述符为所述主机的操作系统支持的事件对应的描述符。
进一步的,所述HID向所述主机发送所述修改后的报告描述符,包括:
所述HID接收所述主机发送的第二请求信息,所述第二请求信息用于请求获取报告描述符;
所述HID根据所述第二请求信息,向所述主机发送第二响应信息,所述第二响应信息中包括所述修改后的报告描述符。
进一步的,所述HID识别主机的操作系统类型之前,还包括:
所述HID生成所述初始报告描述符以及所述初始报告符的长度,所述初始报告描述符中包括所述第一子描述符和所述第二子描述符,所述第一子描述符的值和所述第二子描述符的值均为有效值。
进一步的,还包括:
若所述主机的操作系统类型与所述HID生成的初始报告描述符匹配,则所述HID向所述主机发送所述初始报告描述符。
进一步的,所述第一子描述符为多点触摸事件对应的描述符,所述第二子描述符为单点触摸事件对应的描述符。
进一步的,所述HID为多点触摸HID。
本申请实施例第二方面提供一种人机交互设备枚举处理装置,所述装置包括:
识别模块,用于识别主机的操作系统类型;
修改模块,用于在所述主机的操作系统类型与人机交互设备HID生成的初始报告描述符不匹配时,将所述初始报告描述符中第一子描述符的值修改为无效值,得到修改后的报告描述符,所述第一子描述符为所述主机的操作系统不支持的事件对应的描述符;
发送模块,用于向所述主机发送所述修改后的报告描述符。
进一步的,所述装置还包括:
接收模块,用于接收所述主机发送的第一请求信息,所述第一请求信息用于请求获取HID描述符;
所述发送模块还用于:根据所述第一请求信息,向所述主机发送第一响应信息,所述第一响应信息用于指示所述初始报告描述符的长度,所述初始报告描述符的长度为所述第一子描述符的长度与第二子描述符的长度之和,所述第二子描述符为所述主机的操作系统支持的事件对应的描述符。
进一步的,所述接收模块还用于:
接收所述主机发送的第二请求信息,所述第二请求信息用于请求获取报告描述符;
所述发送模块具体用于:根据所述第二请求信息,向所述主机发送第二响应信息,所述第二响应信息中包括所述修改后的报告描述符。
进一步的,所述装置还包括:
生成模块,用于生成所述初始报告描述符以及所述初始报告符的长度,所述初始报告描述符中包括所述第一子描述符和所述第二子描述符,所述第一子描述符的值和所述第二子描述符的值均为有效值。
进一步的,所述发送模块还用于:
在所述主机的操作系统类型与HID生成的初始报告描述符匹配时,向所述主机发送所述初始报告描述符。
进一步的,所述第一子描述符为多点触摸事件对应的描述符,所述第二子描述符为单点触摸事件对应的描述符。
进一步的,所述HID为多点触摸HID。
本申请实施例第三方面提供一种人机交互设备,包括:
存储器,用于存储程序指令;
处理器,用于调用并执行所述存储器中的程序指令,执行上述第一方面所述的方法步骤。
本申请实施例第四方面提供一种可读存储介质,所述可读存储介质中存储有计算机程序,所述计算机程序用于执行上述第一方面所述的方法。
本申请实施例所提供的人机交互设备枚举处理方法、装置及人机交互设备,HID在识别出主机的操作系统类型与报告描述符不匹配时,仅将初始报告描述符中操作系统不支持事件对应描述符的值修改为无效值,并向主机发送修改后的报告描述符,而不需要执行断开连接以及重新连接等过程,因此,不增加HID与主机的交互步骤,因此,能够极大节省HID被识别的时长,进而极大提升用户的使用体验。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的人机交互设备枚举处理方法的示例性系统架构图;
图2为现有技术中的HID枚举流程示意图;
图3为本申请实施例提供的人机交互设备枚举处理方法的流程示意图;
图4为HID的各种描述符之间的关系示意图;
图5为本申请实施例提供的人机交互设备枚举处理方法的流程示意图;
图6为本申请实施例提供的人机交互设备枚举处理方法的流程示意图;
图7为本申请实施例提供的人机交互设备枚举处理方法的交互流程图;
图8为本申请实施例提供的一种人机交互设备枚举处理装置的模块结构图;
图9为本申请实施例提供的一种人机交互设备枚举处理装置的模块结构图;
图10为本申请实施例提供的一种人机交互设备枚举处理装置的模块结构图;
图11为本发明实施例提供的一种人机交互设备1100的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本申请实施例提供的人机交互设备枚举处理方法的示例性系统架构图,如图1所示,该方法可以应用在USB系统中,USB系统采用阶梯式星形拓扑结构。一个USB系统中包括一个主机,主机内设置一个根集线器,该根集线器提供了主机上的初始附属点。该根集线器可以连接USB设备(例如图1中所示的游戏杆),也可以再连接集线器,以扩展出更多的USB接口,供更多的USB设备与主机连接。在USB1.1协议中集线器的层数最多可以为5层,在USB2.0协议中集线器的层数最多可以为7层。图1示出了三层。如图1所示例,主机可以连接的USB设备可以为游戏杆、扫描仪、鼠标、触摸笔等。本申请实施例主要应用于与USB主机连接的HID,如前所述,HID是直接与人交互的一种USB设备。HID可以包括单点触摸HID和多点触摸HID,单点触摸HID可以包括鼠标等,多点触摸HID可以包括触摸笔、触摸框等,这些HID支持多点触摸。本申请实施例的技术方案可以应用于上述两种HID。当多点触摸HID连接到操作系统为Mac的主机时,仅支持单点触摸。
为便于描述,本申请实施例中将USB主机统称为主机。
HID插入主机之后,执行HID的枚举过程,枚举过程是指HID与主机之间进行信息交互,以使得主机可以获知HID属于哪种类型的设备,以及如何与HID通信,进而使得主机根据这些信息加载适合于HID的驱动程序以进行HID与主机的通信。本申请实施例的技术方案应用在上述所述的枚举过程中。
图2为现有技术中的HID枚举流程示意图,如图2所示,现有技术的枚举过程包括:
S201、HID与主机进行其他枚举信息的交互。
在HID与主机连接之后,HID与主机进行其他枚举信息的交互。具体的交互过程在下述实施例中说明。
S202、HID识别主机的操作系统类型。
HID根据上述的其他枚举信息可以识别出主机的操作系统类型。
S203、HID识别出主机的操作系统类型与HID生成的报告描述符不匹配,则HID自行断开与主机的连接。
S204、HID根据主机的操作系统类型,选择匹配的报告描述符。
S205、HID设置报告描述符的长度。
上述步骤S204和S205中,如果主机的操作系统支持多点触摸(例如Windows操作系统和安卓操作系统,图1中简称为windows/android os),则HID选择单点描述符和多点描述符,单点描述符和多点描述符默认存储在一个连续地址区域。单点描述符为单点触摸事件对应的描述符,多点描述符为多点触摸事件对应的描述符。单点符描述例如可以为鼠标(mouse)描述符,多点描述符例如可以为触摸(touch)描述符。相应的,HID设置的报告描述符的长度为单点描述符的长度与多点描述符的长度之和。如果主机的操作系统不支持多点触摸(例如MAC操作系统,图1中简称为MAC os),则HID选择单点描述符。相应的,HID设置的报告描述符的长度为单点描述符的长度。
S206、HID重新连接主机,并与主机进行其他枚举信息的交互。
S207、主机向HID请求HID描述符。
S208、HID将上述步骤S205中设置的报告描述符的长度发送给主机。
S209、主机向HID请求报告描述符。
S210、HID将上述步骤S204中选择的报告描述符发送给主机。
在上述过程中,HID识别出主机的操作系统类型与当前默认选择的报告描述符不匹配时,会自行断开连接,选择匹配的报告描述符,并重新执行枚举过程向主机发送报告描述符。由于在上述枚举过程中需要断开并重新进行枚举过程,因此,会导致HID被识别的时间过长,影响用户体验。
本申请实施例的技术方案,旨在解决上述问题。
图3为本申请实施例提供的人机交互设备枚举处理方法的流程示意图,该方法的执行主体为上述的HID,如图3所示,该方法包括:
S301、HID识别主机的操作系统类型。
HID在枚举过程中,向主机发送多种描述符,以使主机根据这些描述符获知HID的设备类型、通信方式等。图4为HID的各种描述符之间的关系示意图,如图4所示,HID的描述符包括设备描述符、配置描述符、接口描述符、端点描述符、字符串描述符以及HID描述符,HID描述符中包括报告描述符以及物理描述符。设备描述符中定义了HID的配置数,每种配置的配置描述符定义了该配置的接口数,每个接口的接口描述符定义了接口的端点数,每个端点具有各自的端点描述符。
可选的,HID可以在连接到主机后,通过其他枚举过程识别出主机的操作系统类型。其中,该其他枚举过程可以指涉及上述图4中所示的描述符中除报告描述外的描述符的枚举过程。示例性的,通过涉及设备描述符、配置描述符、接口描述符的枚举过程,HID可以识别出主机的操作系统类型。
S302、若主机的操作系统类型与HID生成的初始报告描述符不匹配,则HID将该初始报告描述符中第一子描述符的值修改为无效值,得到修改后的报告描述符。该第一子描述符为主机的操作系统不支持的事件对应的描述符。
可选的,HID可以在进行枚举之前生成初始报告描述符以及初始报告描述符的长度。
可选的,HID生成的初始报告描述符可以包括单点描述符和/或多点描述符。如前文所述,单点描述符为单点触摸事件对应的描述符,多点描述符为多点触摸事件对应的描述符。单点描述例如可以为鼠标描述符,多点描述符例如可以为触摸描述符。
一种可选方式中,HID生成的初始报告描述符仅包括第一子描述符,该第一子描述可以为上述的单点描述符,也可以为上述的多点描述符。相应的,HID生成的初始报告描述符的长度为该第一子描述符的长度。具体的,如果第一子描述符为上述单点描述符,则初始报告描述符的长度为单点描述符的长度。如果第一子描述符为上述多点描述符,则初始报告描述符的长度为多点描述符的长度。
另一种可选方式中,HID生成的初始报告描述符包括第一子描述符和第二子描述符。该第一子描述符为主机的操作系统不支持的事件对应的描述符,该第二子描述符为所述主机的操作系统支持的事件对应的描述符。该第一子描述符可以为多点描述符,该第二子描述符可以为单点描述。或者,该第一子描述符可以为单点描述符,该第一子描述符可以为多点描述符。
无论使用上述哪一种方式,HID生成的初始报告描述符的值均为有效值。该有效值是指遵循USB协议,并且主机能够据此识别出某种触摸事件的值。与此相对应的,无效值是指,主机不能够据此识别出某种触摸事件的值。
可选的,主机的操作系统类型与HID生成的初始报告描述符不匹配,是指主机的操作系统不支持初始报告描述符中某个子描述符对应的事件。示例性的,主机的操作系统类型为Mac操作系统,而HID生成的初始报告描述符中包括了单点描述符和多点描述符,由于Mac操作系统并不支持多点触摸事件,因此,主机的操作系统类型与初始报告描述符不匹配。
当主机的操作系统类型与初始报告描述符不匹配时,HID将初始报告描述符中操作系统不支持事件对应描述符的值修改为无效值。示例性的,主机的操作系统不支持多点触摸事件,而主机生成的初始报告描述符中包括多点描述符,因此,HID可以将初始报告描述符中的多点描述符的值修改为无效值。
值得说明的是,上述无效值可以根据USB协议中针对描述符的定义进行设置,本申请实施例对于上述无效值的具体设置方式不做限定,只要保证主机能够将其识别为无效值即可。一种示例中,上述无效值可以为全为0的值。
S303、HID向主机发送上述修改后的报告描述符。
HID向主机发送修改后的报告描述符之后,主机可以结合该修改后的报告描述符以及前述的其他描述符,识别出HID的设备类型、通信方式等,从而使得主机可以选择合适的驱动程序,进而使得HID可以正常与主机进行通信。
在上述过程中,HID并不是像现有技术一样断开与主机的连接后重新选择报告描述符并重新建立连接和进行枚举,而是在识别出主机的操作系统类型与报告描述符不匹配时,仅将初始报告描述符中操作系统不支持事件对应描述符的值修改为无效值,同时,不修改报告描述符的长度,并将修改后的报告描述符发送给主机,以用于枚举过程。上述过程不需要增加HID与主机的交互步骤,因此,相比于现有技术的方法,能够极大节省HID被识别的时长,进而极大提升用户的使用体验。
本实施例中,HID在识别出主机的操作系统类型与报告描述符不匹配时,仅将初始报告描述符中操作系统不支持事件对应描述符的值修改为无效值,并向主机发送修改后的报告描述符,而不需要执行断开连接以及重新连接等过程,因此,不增加HID与主机的交互步骤,因此,能够极大节省HID被识别的时长,进而极大提升用户的使用体验。
图5为本申请实施例提供的人机交互设备枚举处理方法的流程示意图,如图5所示,在上述步骤S303之前,还包括:
S501、HID接收主机发送的第一请求信息,该第一请求信息用于请求获取HID描述符。
S502、HID根据上述第一请求信息,向主机发送第一响应信息,该第一响应信息用于指示上述初始报告描述符的长度。
一种可选方式中,如果HID生成的初始报告描述符包括第一子描述符和第二子描述符,则上述初始报告描述符的长度为第一子描述符的长度与第二子描述符的长度之和。
另一种可选方式中,如果HID生成的初始报告描述符仅包括第一子描述符,则上述初始报告描述符的长度为第一子描述符的长度。
按照USB协议的规定,HID在发送报告描述符的长度时,通过一个特定的HID描述符wDescriptorLength进行发送,HID在前述生成初始报告描述符以及初始报告描述符的长度时,将初始报告描述符的长度赋予该wDescriptorLength描述符。进而,当HID修改初始报告描述符时,仅是修改了描述符的值,而描述符的长度并未发生改变,因此,wDescriptorLength描述符的值并不需要进行修改。在本步骤中,HID在接收到第一请求信息后,直接将该wDescriptorLength描述符发送给主机。在该过程中,HID仅需要在生成初始报告描述符时向wDescriptorLength描述符赋值,并直接向主机发送该wDescriptorLength描述符,而无需像现有技术一样重新设置报告描述符的长度值,因此,进一步节省了主机识别HID的时间。
图6为本申请实施例提供的人机交互设备枚举处理方法的流程示意图,如图6所示,在上述图5所示流程的基础上,上述步骤S303的一种可选方式包括:
S601、HID接收主机发送的第二请求信息,该第二请求信息用于请求获取报告描述符。
当主机接收到HID发送的报告描述符的长度之后,可以向HID发送第二请求信息,以请求获取报告描述符。相应的,HID接收到该第二请求信息。
S602、HID根据上述第二请求信息,向主机发送第二响应信息,该第二响应信息中包括上述修改后的报告描述符。
HID将上述修改后的报告描述符发送给主机后,主机根据前述所获得的报告描述符的长度,可以读取到完整的报告描述符。进而,主机对报告描述符进行解析,解析出其中的有效值以及无效值,并根据有效值和无效值确定需要响应HID的哪些触摸事件,进而选择驱动程序、与HID通信等。
另一可选实施例中,在上述步骤S302中,如果HID判断出主机的操作系统类型与HID生成的初始报告描述符匹配,则HID向主机发送上述初始报告描述符。
具体的,HID在接收到主机发送的第二请求信息后,将生成的初始报告描述符携带在第二响应信息中发送给主机。
以下说明HID与主机之间的交互流程。
图7为本申请实施例提供的人机交互设备枚举处理方法的交互流程图,如图7所示,HID与主机之间的交互过程包括:
S701、HID生成初始报告描述符以及初始报告描述符的长度,将初始报告描述符的长度赋予wDescriptorLength描述符。
S702、HID通过其他枚举信息识别主机的操作系统类型。
S703、主机向HID发送获取HID描述符的第一请求信息。
S704、HID将wDescriptorLength描述符通过第一响应信息发送给主机。
S705、主机向HID发送请求报告描述符的第二请求信息。
S706、HID将报告描述符中的第一子描述符的值修改为无效值。
值得说明的是,上述步骤S706也可以在步骤S703之前执行。
S707、HID将报告描述符通过第二响应信息发送给主机。
上述各步骤的具体执行过程可以前述实施例,此处不再赘述。
图8为本申请实施例提供的一种人机交互设备枚举处理装置的模块结构图,如图8所示,该装置包括:
识别模块801,用于识别主机的操作系统类型。
修改模块802,用于在所述主机的操作系统类型与HID生成的初始报告描述符不匹配时,将所述初始报告描述符中第一子描述符的值修改为无效值,得到修改后的报告描述符,所述第一子描述符为所述主机的操作系统不支持的事件对应的描述符。
发送模块803,用于向所述主机发送所述修改后的报告描述符。
图9为本申请实施例提供的一种人机交互设备枚举处理装置的模块结构图,如图9所示,该装置还包括:
接收模块804,用于接收所述主机发送的第一请求信息,所述第一请求信息用于请求获取HID描述符。
发送模块803还用于:
根据所述第一请求信息,向所述主机发送第一响应信息,所述第一响应信息用于指示所述初始报告描述符的长度,所述初始报告描述符的长度为所述第一子描述符的长度与第二子描述符的长度之和,所述第二子描述符为所述主机的操作系统支持的事件对应的描述符。
另一实施例中,接收模块804还用于:
接收所述主机发送的第二请求信息,所述第二请求信息用于请求获取报告描述符。
发送模块803具体用于:
根据所述第二请求信息,向所述主机发送第二响应信息,所述第二响应信息中包括所述修改后的报告描述符。
图10为本申请实施例提供的一种人机交互设备枚举处理装置的模块结构图,如图10所示,该所述装置还包括:
生成模块805,用于生成所述初始报告描述符以及所述初始报告符的长度,所述初始报告描述符中包括所述第一子描述符和所述第二子描述符,所述第一子描述符的值和所述第二子描述符的值均为有效值。
另一实施例中,发送模块803还用于:
在所述主机的操作系统类型与HID生成的初始报告描述符匹配时,向所述主机发送所述初始报告描述符。
另一实施例中,所述第一子描述符为多点触摸事件对应的描述符,所述第二子描述符为单点触摸事件对应的描述符。
另一实施例中,所述HID为多点触摸HID
本申请实施例提供的人机交互设备枚举处理装置,可以执行上述方法实施例中的方法步骤,其实现原理和技术效果类似,在此不再赘述。
需要说明的是,应理解以上装置的各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些模块可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分模块通过处理元件调用软件的形式实现,部分模块通过硬件的形式实现。例如,确定模块可以为单独设立的处理元件,也可以集成在上述装置的某一个芯片中实现,此外,也可以以程序代码的形式存储于上述装置的存储器中,由上述装置的某一个处理元件调用并执行以上确定模块的功能。其它模块的实现与之类似。此外这些模块全部或部分可以集成在一起,也可以独立实现。这里所述的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个模块可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。
例如,以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(application specific integrated circuit,ASIC),或,一个或多个微处理器(digital signal processor,DSP),或,一个或者多个现场可编程门阵列(field programmable gate array,FPGA)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(centralprocessing unit,CPU)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(system-on-a-chip,SOC)的形式实现。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘solid state disk(SSD))等。
图11为本发明实施例提供的一种人机交互设备1100的结构示意图。如图11所示,该人机交互设备可以包括:处理器111、存储器112、通信接口113和系统总线114,所述存储器112和所述通信接口113通过所述系统总线114与所述处理器111连接并完成相互间的通信,所述存储器112用于存储计算机执行指令,所述通信接口113用于和其他设备进行通信,所述处理器111执行所述计算机程序时实现如上述图3至图7所示实施例的方案。
该图11中提到的系统总线可以是外设部件互连标准(peripheral componentinterconnect,PCI)总线或扩展工业标准结构(extended industry standardarchitecture,EISA)总线等。所述系统总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。通信接口用于实现数据库访问装置与其他设备(例如客户端、读写库和只读库)之间的通信。存储器可能包含随机存取存储器(random access memory,RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
上述的处理器可以是通用处理器,包括中央处理器CPU、网络处理器(networkprocessor,NP)等;还可以是数字信号处理器DSP、专用集成电路ASIC、现场可编程门阵列FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
可选的,本发明实施例还提供一种存储介质,所述存储介质中存储有指令,当其在计算机上运行时,使得计算机执行如上述图3至图7所示实施例的方法。
可选的,本发明实施例还提供一种运行指令的芯片,所述芯片用于执行上述图3至图7所示实施例的方法。
本发明实施例还提供一种程序产品,所述程序产品包括计算机程序,所述计算机程序存储在存储介质中,至少一个处理器可以从所述存储介质读取所述计算机程序,所述至少一个处理器执行所述计算机程序时可实现上述图3至图7所示实施例的方法。
在本发明实施例中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系;在公式中,字符“/”,表示前后关联对象是一种“相除”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中,a,b,c可以是单个,也可以是多个。
可以理解的是,在本发明实施例中涉及的各种数字编号仅为描述方便进行的区分,并不用来限制本发明实施例的范围。
可以理解的是,在本发明的实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (16)
1.一种人机交互设备枚举处理方法,其特征在于,包括:
人机交互设备HID识别主机的操作系统类型;
若所述主机的操作系统类型与所述HID生成的初始报告描述符不匹配,则所述HID将所述初始报告描述符中第一子描述符的值修改为无效值,得到修改后的报告描述符,所述第一子描述符为所述主机的操作系统不支持的事件对应的描述符;
所述HID向所述主机发送所述修改后的报告描述符。
2.根据权利要求1所述的方法,其特征在于,所述HID向所述主机发送所述修改后的报告描述符之前,还包括:
所述HID接收所述主机发送的第一请求信息,所述第一请求信息用于请求获取HID描述符;
所述HID根据所述第一请求信息,向所述主机发送第一响应信息,所述第一响应信息用于指示所述初始报告描述符的长度,所述初始报告描述符的长度为所述第一子描述符的长度与第二子描述符的长度之和,所述第二子描述符为所述主机的操作系统支持的事件对应的描述符。
3.根据权利要求2所述的方法,其特征在于,所述HID向所述主机发送所述修改后的报告描述符,包括:
所述HID接收所述主机发送的第二请求信息,所述第二请求信息用于请求获取报告描述符;
所述HID根据所述第二请求信息,向所述主机发送第二响应信息,所述第二响应信息中包括所述修改后的报告描述符。
4.根据权利要求2所述的方法,其特征在于,所述HID识别主机的操作系统类型之前,还包括:
所述HID生成所述初始报告描述符以及所述初始报告符的长度,所述初始报告描述符中包括所述第一子描述符和所述第二子描述符,所述第一子描述符的值和所述第二子描述符的值均为有效值。
5.根据权利要求1所述的方法,其特征在于,还包括:
若所述主机的操作系统类型与所述HID生成的初始报告描述符匹配,则所述HID向所述主机发送所述初始报告描述符。
6.根据权利要求2-4任一项所述的方法,其特征在于,所述第一子描述符为多点触摸事件对应的描述符,所述第二子描述符为单点触摸事件对应的描述符。
7.根据权利要求1-5任一项所述的方法,其特征在于,所述HID为多点触摸HID。
8.一种人机交互设备枚举处理装置,其特征在于,包括:
识别模块,用于识别主机的操作系统类型;
修改模块,用于在所述主机的操作系统类型与人机交互设备HID生成的初始报告描述符不匹配时,将所述初始报告描述符中第一子描述符的值修改为无效值,得到修改后的报告描述符,所述第一子描述符为所述主机的操作系统不支持的事件对应的描述符;
发送模块,用于向所述主机发送所述修改后的报告描述符。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:
接收模块,用于接收所述主机发送的第一请求信息,所述第一请求信息用于请求获取HID描述符;
所述发送模块还用于:根据所述第一请求信息,向所述主机发送第一响应信息,所述第一响应信息用于指示所述初始报告描述符的长度,所述初始报告描述符的长度为所述第一子描述符的长度与第二子描述符的长度之和,所述第二子描述符为所述主机的操作系统支持的事件对应的描述符。
10.根据权利要求9所述的装置,其特征在于,所述接收模块还用于:
接收所述主机发送的第二请求信息,所述第二请求信息用于请求获取报告描述符;
所述发送模块具体用于:根据所述第二请求信息,向所述主机发送第二响应信息,所述第二响应信息中包括所述修改后的报告描述符。
11.根据权利要求9所述的装置,其特征在于,所述装置还包括:
生成模块,用于生成所述初始报告描述符以及所述初始报告符的长度,所述初始报告描述符中包括所述第一子描述符和所述第二子描述符,所述第一子描述符的值和所述第二子描述符的值均为有效值。
12.根据权利要求8所述的装置,其特征在于,所述发送模块还用于:
在所述主机的操作系统类型与HID生成的初始报告描述符匹配时,向所述主机发送所述初始报告描述符。
13.根据权利要求9-11任一项所述的装置,其特征在于,所述第一子描述符为多点触摸事件对应的描述符,所述第二子描述符为单点触摸事件对应的描述符。
14.根据权利要求8-12任一项所述的装置,其特征在于,所述HID为多点触摸HID。
15.一种人机交互设备,其特征在于,包括:
存储器,用于存储程序指令;
处理器,用于调用并执行所述存储器中的程序指令,执行权利要求1-7任一项所述的方法步骤。
16.一种可读存储介质,其特征在于,所述可读存储介质中存储有计算机程序,所述计算机程序用于执行权利要求1-7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910919942.2A CN110688052B (zh) | 2019-09-26 | 2019-09-26 | 人机交互设备枚举处理方法、装置及人机交互设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910919942.2A CN110688052B (zh) | 2019-09-26 | 2019-09-26 | 人机交互设备枚举处理方法、装置及人机交互设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110688052A CN110688052A (zh) | 2020-01-14 |
CN110688052B true CN110688052B (zh) | 2021-06-08 |
Family
ID=69110529
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910919942.2A Active CN110688052B (zh) | 2019-09-26 | 2019-09-26 | 人机交互设备枚举处理方法、装置及人机交互设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110688052B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7660611B1 (en) * | 2004-03-25 | 2010-02-09 | Cypress Semiconductor Corporation | Wireless human interface device packet compression system and method for reducing power consumption |
CN102012886A (zh) * | 2010-10-14 | 2011-04-13 | 深圳市文鼎创数据科技有限公司 | 基于hid协议的通讯方法、装置及系统 |
CN102598625A (zh) * | 2009-11-09 | 2012-07-18 | 三星电子株式会社 | 利用通用即插即用在输入系统改变输入类型的方法和装置 |
KR101376603B1 (ko) * | 2013-04-09 | 2014-03-25 | 주식회사 스카이디지탈 | 컴퓨터에서 어플리케이션을 호출할 수 있는 컴퓨터용 키보드 장치 및 어플리케이션 호출 방법 |
CN108153454A (zh) * | 2017-12-22 | 2018-06-12 | 奇酷互联网络科技(深圳)有限公司 | 多点触摸切换方法、装置、存储介质及终端设备 |
CN108388372A (zh) * | 2018-02-24 | 2018-08-10 | 广州视源电子科技股份有限公司 | 一种自适应触摸数据的方法、装置、设备及存储介质 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7139850B2 (en) * | 2002-06-21 | 2006-11-21 | Fujitsu Limited | System for processing programmable buttons using system interrupts |
SG123627A1 (en) * | 2004-12-20 | 2006-07-26 | Trek 2000 Int Ltd | Method for overcoming system administration blockage |
CN102638397B (zh) * | 2012-03-21 | 2014-12-10 | 华为终端有限公司 | 一种usb设备通信传输方法、设备及系统 |
CN103092799B (zh) * | 2012-12-28 | 2015-07-22 | 飞天诚信科技股份有限公司 | 一种usb设备及其识别主机操作系统的方法 |
CN104035625B (zh) * | 2014-07-01 | 2017-04-26 | 江苏惠通集团有限责任公司 | 一种手持设备与主机之间的通信方法 |
JP2019003362A (ja) * | 2017-06-14 | 2019-01-10 | インター・ラボ株式会社 | 入力補助装置 |
CN109543485A (zh) * | 2018-10-16 | 2019-03-29 | 深圳盈达信息科技有限公司 | 一种用于条码读取的方法及系统 |
-
2019
- 2019-09-26 CN CN201910919942.2A patent/CN110688052B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7660611B1 (en) * | 2004-03-25 | 2010-02-09 | Cypress Semiconductor Corporation | Wireless human interface device packet compression system and method for reducing power consumption |
CN102598625A (zh) * | 2009-11-09 | 2012-07-18 | 三星电子株式会社 | 利用通用即插即用在输入系统改变输入类型的方法和装置 |
CN102012886A (zh) * | 2010-10-14 | 2011-04-13 | 深圳市文鼎创数据科技有限公司 | 基于hid协议的通讯方法、装置及系统 |
KR101376603B1 (ko) * | 2013-04-09 | 2014-03-25 | 주식회사 스카이디지탈 | 컴퓨터에서 어플리케이션을 호출할 수 있는 컴퓨터용 키보드 장치 및 어플리케이션 호출 방법 |
CN108153454A (zh) * | 2017-12-22 | 2018-06-12 | 奇酷互联网络科技(深圳)有限公司 | 多点触摸切换方法、装置、存储介质及终端设备 |
CN108388372A (zh) * | 2018-02-24 | 2018-08-10 | 广州视源电子科技股份有限公司 | 一种自适应触摸数据的方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110688052A (zh) | 2020-01-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8751741B2 (en) | Methods and structure for implementing logical device consistency in a clustered storage system | |
EP3255527B1 (en) | Remote keyboard-video-mouse technologies | |
US10255201B2 (en) | Local key management for storage devices | |
US8521929B2 (en) | Virtual serial port management system and method | |
US8645594B2 (en) | Driver-assisted base address register mapping | |
US20170031694A1 (en) | System and method for remote system configuration managment | |
US8533300B2 (en) | Storage device, controller, and address management method | |
CN108038112B (zh) | 文件处理方法、移动终端及计算机可读存储介质 | |
US20080034122A1 (en) | Apparatus and Method to Detect Miscabling in a Storage Area Network | |
US20120262489A1 (en) | Relative and Absolute Screen Rotation Draft Agent | |
CN103500108A (zh) | 系统内存访问方法、节点控制器和多处理器系统 | |
CN110688052B (zh) | 人机交互设备枚举处理方法、装置及人机交互设备 | |
CN111756618B (zh) | 群聊的处理方法及装置、电子设备、可读存储介质 | |
WO2012103768A1 (zh) | 数据处理方法及装置、pci-e总线系统、服务器 | |
WO2015103724A1 (zh) | 一种图标排列方法和终端 | |
CN105279110B (zh) | 一种usb设备识别主机系统的方法及usb设备 | |
CN115114042A (zh) | 存储数据访问方法、装置、电子设备和存储介质 | |
CN109271266B (zh) | 文件传输方法、装置及终端设备 | |
JP2012064012A5 (ja) | 計算機システム及びストレージ・ボリューム管理方法 | |
US8738816B2 (en) | Management of detected devices coupled to a host machine | |
CN110874729B (zh) | 电子红包识别策略的切换方法、切换装置及移动终端 | |
CN109298956B (zh) | 文件传输方法、装置及终端设备 | |
EP2981882A1 (en) | Removable storage device identity and configuration information | |
WO2020147269A1 (zh) | 一种区块链扩链方法、系统及电子设备和存储介质 | |
CN110245016B (zh) | 数据处理方法、系统、装置及终端设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |