CN101582057B - 一种控制人机接口设备通信传输的方法、设备和系统 - Google Patents
一种控制人机接口设备通信传输的方法、设备和系统 Download PDFInfo
- Publication number
- CN101582057B CN101582057B CN2009100810898A CN200910081089A CN101582057B CN 101582057 B CN101582057 B CN 101582057B CN 2009100810898 A CN2009100810898 A CN 2009100810898A CN 200910081089 A CN200910081089 A CN 200910081089A CN 101582057 B CN101582057 B CN 101582057B
- Authority
- CN
- China
- Prior art keywords
- main frame
- interface device
- human interface
- operational order
- hid
- 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
- 238000000034 method Methods 0.000 title claims abstract description 75
- 230000006854 communication Effects 0.000 title claims abstract description 69
- 238000004891 communication Methods 0.000 title claims abstract description 57
- 230000005540 biological transmission Effects 0.000 title abstract description 34
- 230000004044 response Effects 0.000 claims abstract description 176
- 230000008569 process Effects 0.000 claims abstract description 16
- 238000012545 processing Methods 0.000 claims description 44
- 230000008859 change Effects 0.000 claims description 31
- 238000010586 diagram Methods 0.000 description 6
- 238000012546 transfer Methods 0.000 description 5
- 230000004069 differentiation Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000009428 plumbing Methods 0.000 description 1
Images
Landscapes
- Communication Control (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本发明公开了一种控制人机接口设备HID通信传输的方法、设备和系统,属于计算机应用领域。所述方法包括:人机接口设备HID和主机建立连接;HID设备向主机声明自身为HID类型设备;HID设备接收主机下发的操作命令,执行操作命令;接收主机下发的获取应答信息命令,并返回应答信息;主机接收应答信息,根据应答信息判断HID设备是否为忙状态,如果是忙状态,则主机继续向HID设备下发获取应答信息命令,直到主机接收到主机所需数据为止,如果HID设备不是忙状态,则继续执行操作。本发明实现了对人机接口设备HID与主机的通信的控制,避免了数据传输过程中人机接口设备HID未完成主机下发的操作命令就导致通信中断的情况发生,提高了通信的可靠性和通信的效率。
Description
技术领域
本发明涉及计算机应用领域,特别涉及一种控制人机接口设备通信传输的方法、设备和系统。
背景技术
HID(Human Interface Device,人机接口设备)主要指的是一些实现人与主机进行交互的设备,如键盘、鼠标、游戏杆等,但是HID设备不一定非要是这些人机交互设备,只要是符合HID设备级定义规范要求的都可以认为是HID设备;且HID类是Windows操作系统完全支持的第一批USB(Universal SerialBUS,通用串行总线)设备配置中的一种,在运行Windows 98或更高操作系统版本的计算机上,多类应用程序可以与内置驱动的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接收所述主机下发的携带操作命令的数据帧,对所述数据帧解析获取所述操作命令,执行所述操作命令,并改变所述数据帧的状态结构体变量,所述改变后的所述数据帧的状态结构体变量用于指示所述操作命令是否执行完毕;
相应地,所述人机接口设备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不是忙状态,则继续提示所述第一下发模块向所述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还用于接收所述主机下发的携带操作命令的数据帧,对所述数据帧解析获取所述操作命令,执行所述操作命令,并改变所述数据帧的状态结构体变量,所述改变后的所述数据帧的状态结构体变量用于指示所述操作命令是否执行完毕;所述人机接口设备HID接收所述主机下发的携带获取应答信息命令的数据帧;如果所述改变后的数据帧的状态结构体变量指示所述操作命令执行完毕,则向所述主机返回携带所述主机所需数据的数据帧;如果所述改变后的数据帧的状态结构体变量指示所述操作命令未执行完毕,则向所述主机返回携带预定义的忙信息的数据帧。
其中,所述人机接口设备HID还用于当接收所述操作命令后,根据所述操作命令的类型,判断对所述操作命令的操作是否超时;
如果是,则设置操作标识,执行所述操作命令,所述操作标识用于指示所述操作命令未执行完毕;
如果否,则执行所述操作命令,接收所述主机下发的获取应答信息命令,向所述主机返回所需数据。
其中,在所述主机向所述人机接口设备HID下发所述操作命令后,所述主机等待预设时间,向所述人机接口设备HID下发所述获取应答信息命令。
本发明提供的技术方案的有益效果是:
实现了对人机接口设备HID与主机的通信过程的控制,有效地避免数据传输过程中HID设备和主机的通信未完成就导致通信中断的情况发生,大大提高了通信的可靠性和通信的效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例1提供的控制人机接口设备通信传输的方法流程示意图;
图2是本发明实施例2提供的控制人机接口设备通信传输的方法流程示意图;
图3是本发明实施例3提供的控制人机接口设备通信传输的方法人机接口设备侧流程示意图;
图4是本发明实施例3提供的控制人机接口设备通信传输的方法主机侧流程示意图;
图5是本发明实施例5提供的人机接口设备示意图;
图6是本发明实施例5提供的人机接口设备第一详细示意图;
图7是本发明实施例6提供的主机设备示意图;
图8是本发明实施例6提供的主机设备详细示意图;
图9是本发明实施例7提供的控制人机接口设备通信传输的系统示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
实施例1
为了控制人机接口设备HID与主机的通信过程,有效地避免数据传输过程中人机接口设备HID和主机的通信未完成就导致通信中断的情况发生,本发明实施例提供了一种控制人机接口设备HID通信传输的方法,参见图1,所述方法包括:
S1:人机接口设备HID(以下简称为HID设备)和主机建立连接;
S2:HID设备向主机声明自身为HID类型设备;
S3:HID设备接收主机下发的操作命令,执行操作命令;
S4:HID设备接收主机下发的获取应答信息命令,向主机返回应答信息;
S5:主机接收应答信息,根据应答信息判断HID设备是否为忙状态,如果判断HID设备是忙状态,则主机继续向HID设备下发获取应答信息命令,直到主机接收到所需数据为止,如果判断HID设备不是忙状态,则继续执行操作,具体为返回执行步骤S3至步骤S5的操作。
其中,当判断HID设备是忙状态时,该应答信息为:预定义的忙信息或是预设标识,当判断人机接口设备HID不是忙状态时,该应答信息为主机所需数据。
进预定义的忙信息或是预设标识,可以是预先定义的具体的格式(如规定帧头是03,则说明是预定义的忙信息),或是具体的数据(如规定返回的应答信息是全0或是全F,则说明是预设标识),本实施例不对预定义的忙信息和预设标识做限制。
进一步,当应答信息包括预定义的忙信息或主机所需数据时,本发明实施例提供的方法在步骤S3中:HID设备接收主机下发的操作命令之后,方法还包括:HID设备判断对操作命令的操作是否超时,如果是,则执行后续步骤(具体的内容将在实施例3中进行详细的介绍);否则,HID设备执行操作命令,接收主机下发的获取应答信息命令,向主机直接返回主机所需数据。
相应地,本发明实施例提供的方法在步骤S4中:HID设备接收主机下发的获取应答信息命令,向主机返回应答信息,具体为:HID设备判断是否操作命令执行完毕,如果是,则向主机返回主机所需数据;如果不是,则向主机返回预定义的忙信息。
通过本发明实施例提供的方法,解决了人机接口设备HID控制传输系统超时问题,使得有效地避免数据传输过程中人机接口设备HID和主机的通信未完成就导致通信中断的情况发生,提高了通信的可靠性和通信效率。
为了对上述本发明实施例提供的方法进行详细说明,请参见如下实施例:
实施例2
为了控制人机接口设备HID和主机的通信过程,有效地避免数据传输过程中人机接口设备HID和主机的通信未完成就导致通信中断的情况发生,本发明实施例提供了一种控制人机接口设备通信传输的方法,为了便于说明,本实施例假设人机接口设备HID接收主机下发的操作命令后,对该操作命令执行的处理时间超过主机侧的预设时间,如操作命令为人机接口设备HID(以下称之为HID设备)数据进行签名或是加密等处理导致处理时间超过主机侧的预设时间,同时,HID设备向主机返回的应答信息是预定义的忙信息或主机所需数据。参见图2,本发明实施例提供的方法内容如下:
步骤101:HID设备和主机进行连接;
其中,本步骤所涉及的连接方式包括但不限于通过USB建立连接,本实施例对此不做限制。
步骤102:当HID设备和主机进行连接后,HID设备向主机声明自身为HID类型的设备;
其中,本步骤所涉及的声明过程,具体为,可以采用设备类型指示符的形式实现,即HID设备向主机发送HID类型的设备指示符,主机收到该HID类型的设备指示符后,根据该HID类型的设备指示符识别该建立连接的设备为HID设备。本实施例不限制该声明过程的具体实现方式和方法。
步骤103:主机向HID设备下发携带操作命令的数据帧;
在本实施例中,步骤103具体内容如下:
本实施例以主机调用api函数HidD_SetFeature(m_Handle,buffer,bufferSize)实现向HID设备下发数据帧为例进行说明。
其中,api函数HidD_SetFeature(m_Handle,buffer,bufferSize)下发数据帧具体为通过主机应用软件调用api函数HidD_SetFeature(m_Handle,buffer,bufferSize)下发数据帧。参见表1,为本发明实施例提供的该数据帧的传输格式示意表。
表1
Stx | Len | Fnum | DevSn | Cmdcls | CmdSubcls | Data | Lrc |
…… | …… | …… | …… | …… | …… | …… | …… |
如表1所示,下行数据传输格式为:
Stx+Len+Fnum+DevSn+Cmdcls+CmdSubcls+Data+Lrc;则相应地,应答数据的传输格式为:Stx+Len++Fnum+DevSn+Status+Data+Lrc。对上述各字段解释如下:
1、Stx:表示一字节数据帧起始头,固定为0x02;
2、Len:表示一字节数据帧长度,数据长度(Len)指从Fnum到Lrc之间的数据长度;
3、Fnum:一字节数据帧帧号,Bit7表示将要传输的数据是否为多帧数据传输;Bit6-Bit0表示多帧数据传输中具体帧号,其最大值为10;
其中:单帧数据传输:Fnum值为0; 多帧数据传输:
Bit7=1:第一次出现表示一个多帧数据传输的开始;其后每帧数据都是这次多帧数据传输中的一帧,Bit7位一直为1直到Bit7为0,表示多帧数据传输结束;
Bit7=0:多帧数据传输结束,当前帧为此次多帧数据传输的最后一帧;
4、DevSn:2字节设备序列号,用于区分同时连接到同一台主机上相同读写器;
5、Cmdcls:一字节命令所属大类别;
6、CmdSubcls:属于Cmdcls命令类别之下的具体操作命令,长度为一字节;
7、Data:进行交互的命令数据;
8、Lrc:一字节数据帧异或校验和,从Len开始到Lrc之前结束;
9、Status:一字节执行状态。
实际应用中,HidD_SetFeature(m_Handle,buffer,bufferSize)还可以用
步骤104:HID设备接收携带操作命令的数据帧;
步骤105:当HID设备对数据帧接收完毕后,对下发的数据帧进行解析得到操作命令,根据操作命令执行处理过程,并改变数据帧的状态结构体变量;
其中,本步骤所涉及的改变数据帧的状态结构体变量的步骤,具体为:如果HID设备在对操作命令进行处理中,则将数据帧的结构体变量中的预设部分置为忙状态;如果HID设备对该操作命令处理完毕,在将数据帧的结构体变量中的预设部分置为闲状态。其中,该数据帧的状态结构体变量示例如下:
其中,数据帧的连接状态有:
#define Frm_Idle 0x00 //数据帧传输未启动,空闲中
#define Frm_Still 0x80 //数据帧传输进行中
#define Frm_Over 0x7F //本次数据传输结束
#define cmd_processing 0x80 //命令处理中
具体实现时,上述数据帧的结构体变量中的预设部分是数据帧的连接状态字段,当HID设备在对操作命令进行处理中,则该连接状态字段是忙状态时,该字段定义为#define cmd_processing 0x80;当HID设备在对操作命令处理完毕,则该连接状态字段是闲状态时,该字段定义为#define Frm_Over0x7F。步骤106:主机向HID设备下发携带操作命令的数据帧后,等待预设时间,向HID设备下发携带获取应答信息命令的数据帧;
其中,该主机向HID设备下发携带操作命令的数据帧具体通过主机应用软件调用函数HidD_GetFeature(m_Handle,buffer,bufferSize)下发的Get_Report Request命令。上述预设时间的设置根据主机和HID设备的通信需求进行设置,本实施例对此不做任何限制。
实际应用中,HidD_GetFeature(m_Handle,buffer,bufferSize)还可以通过
步骤107:HID设备接收携带获取应答信息命令的数据帧,并向主机返回携带应答信息的数据帧;具体为HID设备判断数据帧的状态结构体变量的连接状态是否为忙状态,如果是,则向主机返回预定义的忙信息,如果不是,则向主机返回主机所需数据;
步骤108:当主机接收到HID设备返回的携带应答信息的数据帧后,判断接收到的信息是否为预定义的忙信息,如果是,则返回执行步骤106中的等待预设时间,向HID设备下发携带获取应答信息命令的数据帧,直到主机接收到返回的应答信息具体为主机所需数据为止,然后执行步骤109;
其中,在上述步骤106所述的主机向HID设备下发携带操作命令的数据帧后,等待预设时间,向HID设备下发携带获取应答信息命令的数据帧的过程时,可定义该预设时间为第一预设时间;
而在该步骤108所涉及的当主机接收到HID设备返回的携带应答信息的数据帧后,判断接收到的信息是否为忙信息,如果是,则等待预设时间,向HID设备下发携带获取应答信息命令的数据帧;可定义该预设时间为第二预设时间;
进一步地,如果在主机等待了第二预设时间向HID设备下发携带获取应答信息命令的数据帧后,再次收到HID设备返回的忙信息,同理可得,主机等待第三预设时间,向HID设备下发携带获取应答信息命令的数据帧;类似地,直到主机接收到返回的应答信息具体为主机所需的数据信息为止。
其中,上述第一预设时间、第二预设时间和第三预设时间的取值可以相同也可以不同,本实施例对此不做任何限制,例如,假设将第一预设时间设置为1秒,将第二预设时间设置为0.8秒,将第三预设时间设置为0.6秒。
步骤109:当主机接收到HID设备返回的携带应答信息为主机所需数据,则主机应用软件继续操作。
其中,该步骤所涉及的主机应用软件继续操作具体可以为主机的应用软件会继续重复执行上述步骤103至步骤109的操作,直至HID设备和主机的通讯结束。
综上所述,本发明实施例提供的方法,实现了对HID设备与主机的通信过程的控制,有效地避免数据传输过程中HID设备和主机的通信未完成就导致通信中断的情况发生,提高了通信的可靠性和通信的效率。
实施例3
为了控制人机接口设备HID(以下称之为HID设备)与主机的通信过程,有效地避免数据传输过程中HID设备和主机的通信未完成就导致通信中断的情况发生,本发明实施例提供了一种控制人机接口设备通信传输的方法,参见图3,本发明实施例提供的方法以HID设备侧和主机侧在交互过程中所执行的主要动作进行说明,本实施例中,HID设备返回的应答信息是预定义的忙信息或主机所需数据,内容如下,
一、HID设备侧:
步骤201:HID设备与主机进行连接;
步骤202:HID设备向主机声明自身的设备类型(即HID设备类型);
步骤203:HID设备接收api函数HidD_SetFeature(m_Handle,buffer,bufferSize)下发的数据帧;
其中,该api函数HidD_SetFeature(m_Handle,buffer,bufferSize)下发的数据帧具体为通过主机应用软件调用api函数HidD_SetFeature(m_Handle,buffer,bufferSize)下发的数据帧。
其中,下行数据传输格式为:
Stx+Len+Fnum+DevSn+Cmdcls+CmdSubcls+Data+Lrc;
相应地,应答数据传输格式为:Stx+Len++Fnum+DevSn+Status+Data+Lrc;
Stx:表示一字节数据帧起始头,固定为0x02;
Len:表示一字节数据帧长度,数据长度(Len)指从Fnum到Lrc之间的数据长度;
Fnum:一字节数据帧帧号,Bit7表示将要传输的数据是否为多帧数据传输;
Bit6-Bit0
表示多帧数据传输中具体帧号,其最大值为10;
其中:单帧数据传输:Fnum值为0;
多帧数据传输:
Bit7=1:第一次出现表示一个多帧数据传输的开始;其后每帧数据都是这次多帧数据传输中的一帧,Bit7位一直为1直到Bit7为0,表示多帧数据传输结束;
Bit7=0:多帧数据传输结束,当前帧为此次多帧数据传输的最后一帧;
DevSn:2字节设备序列号,用于区分同时连接到同一台计算机上相同读写器;
Cmdcls:一字节命令所属大类别;
CmdSubcls:属于Cmdcls命令类别之下的具体操作命令,长度为一字节;
Data:进行交互的命令数据;
Lrc:一字节数据帧异或校验和,从Len开始到Lrc之前结束;
Status:一字节执行状态。
步骤204:当HID设备接收数据帧完毕后,按照协议对下发的数据帧进行解析得到操作命令;
其中,HID设备按照协议对下发的数据帧进行解析是为了得到具体的操作命令。
步骤205:HID设备判断对解析得到的操作命令的处理的时间是否超过预设时间,如果超过预设时间,则执行步骤208;否则,执行步骤206;
其中,HID设备判断对解析得到的操作命令的处理的时间是否超过预设时间,本实施例假设HID设备对操作命令执行处理的时间T处理,主机预设的对操作命令处理的时间T预设,当T处理>T预设,表示HID设备对操作命令的处理时间超过主机预设的对操作命令处理的时间,则HID设备向主机返回的应答信息具体为忙信息。类似地,如果T处理<T预设,表示HID设备对操作命令的处理时间未超过主机预设的对操作命令处理的时间,则HID设备向主机返回的应答信息具体为主机所需的数据信息。
步骤206:HID设备对解析得到的操作命令进行处理,转至执行步骤207;
步骤207:HID设备接收函数
HidD_GetFeature(m_Handle,buffer,bufferSize)下发的命令,转至执行步骤212;
步骤208:HID设备改变数据帧的状态结构体变量;
其中,HID设备改变数据帧的状态结构体变量具体为:当HID设备在对操作命令进行处理时,则将数据帧结构体变量的连接状态置为忙状态(如#definecmd_processing 0x80),当对操作命令处理完毕后,则将数据帧结构体变量的连接状态置为闲状态(如#define Frm_Idle 0x00);
本实施例中,该数据帧的状态结构体变量为
其中,数据帧的连接状态有:
#define Frm_Idle 0x00 //数据帧传输未启动,空闲中
#define Frm_Still 0x88 //数据帧传输进行中
#define Frm_Over 0x7F //本次数据传输结束
#define cmd_processing 0x80 //命令处理中
步骤209:HID设备接收函数
HidD_GetFeature(m_Handle,buffer,bufferSize)下发的命令;
其中,函数HidD_GetFeature(m_Handle,buffer,bufferSize)下发的命令具体为主机应用软件调用函数HidD_GetFeature(m_Handle,buffer,bufferSize)下发的命令。
步骤210:当HID设备接收到函数
HidD_GetFeature(m_Handle,buffer,bufferSize)下发的命令后,判断数据帧结构体变量的连接状态是否为忙状态,如果是,则执行步骤211;否则,执行步骤212;
步骤211:HID设备向主机返回预设的忙信息;
本实施例中,该忙信息为02 0c 00 00 00 00 00 0601 02 03 04 90 00 9e,为了提高传输效率,节省网络资源带宽,该忙信息可以是最短的传输,如通过操作标识形式实现,具体示例为:可以只发是一字节,不必发整包的数据包,本实施例对上述忙信息的具体发送方式和方法不做限制。
此时,HID向主机返回预设的忙信息后,继续等待接收主机通过函数HidD_GetFeature(m_Handle,buffer,buffersize)下发的命令。
步骤212:HID设备向主机返回所需数据。
其中,该所需数据为处理解析得到的操作命令后得到的信息。
二、主机侧,详见图4:
步骤301:主机检测到HID设备接入;
此时相当于第一部分中的HID设备和主机建立连接后,HID设备向主机声明自身的设备类型,此时主机应用软件打开HID设备,继续执行步骤302。
步骤302:主机应用软件调用系统api函数
HidD_SetFeature(m_Handle,buffer,bufferSize)向HID设备下发数据帧;
步骤303:主机应用软件调用系统api函数
HidD_GetFeature(m_Handle,buffer,bufferSize)向HID设备下发命令,并读取HID设备返回的应答信息;
其中,步骤303是在步骤302执行的预设时间(如0.1秒)后执行的。
步骤304:主机应用软件判断接收到的应答信息是否为预定义的忙信息,如果是,则等待预设时间后,继续执行步骤303,直至接收的应答信息不是预定义的忙信息,转至执行步骤305;如果不是预定义的忙信息,则执行步骤305;
步骤305:主机应用软件继续进行下一步操作。
具体为主机应用软件会继续重复执行步骤302至步骤305的操作,直至HID设备和主机的通讯结束。
综上所述,本发明实施例提供的方法,实现了对HID设备与主机的通信过程的控制,有效地避免数据传输过程中HID设备和主机的通信未完成就导致通信中断的情况发生,提高了通信的可靠性和通信的效率。
实施例4
为了控制人机接口设备HID与主机的通信过程,有效地避免数据传输过程中HID设备和主机的通信未完成就导致通信中断的情况发生,本发明实施例提供了一种控制人机接口设备通信传输的方法,与上述实施例2和3的区别在于,本实施例中,当HID设备收到操作命令后,如果操作命令还未执行完毕,则HID设备向主机返回的应答信息是预设标识,无需HID设备做判断,内容如下,
首先,人机接口设备HID(以下简称为HID设备)和主机建立连接;
其次,HID设备向主机声明自身为HID类型设备;
然后,HID设备接收主机下发的操作命令,执行操作命令;
再次,HID设备接收主机下发的获取应答信息命令,并向主机返回应答信息;
如果操作命令还未执行完毕,则向主机返回全0数据,如果操作命令执行完毕,则HID设备向主机返回主机所需数据。
其中,上述全0数据即为预设标识,该预设标识还可以为全F数据,本实施例对此,不做任何限制。
最后,主机接收应答信息,如果应答信息为全0数据,则主机继续向HID设备下发获取应答信息命令,直到主机接收到主机所需数据为止,如果是主机所需数据,则继续执行操作。
其中,该继续执行操作具体为再次下发新的操作命令,直至HID设备和主机的通讯结束。
综上所述,本发明实施例提供的方法,实现了对HID设备与主机的通信过程的控制,有效地避免数据传输过程中HID设备和主机的通信未完成就导致通信中断的情况发生,提高了通信的可靠性和通信的效率。
实施例5
相应于上述方法实施例,本发明实施例提供了一种人机接口设备HID,参见图5,设备包括:
建立模块501,用于建立和主机的连接;
声明模块502,用于当建立模块501建立了和主机的连接后,向主机声明自身为HID类型设备;
第一处理模块503,用于当声明模块502声明自身为HID类型设备后,接收主机下发的操作命令,执行操作命令;
第二处理模块504,用于当第一处理模块503执行操作命令后,等待预设时间,接收主机下发的获取应答信息命令,向主机返回应答信息。
其中,该预设时间具体为主机侧下发了操作命令后,会等待该预设时间之后下发获取应答信息命令。
详见图6,其中,第一处理模块503,包括:
第一接收单元5031,用于接收主机下发的操作命令;
执行单元5032,用于执行第一接收单元5031接收的操作命令;
相应地,第二处理模块504包括:
第二接收单元5041,用于接收主机下发的获取应答信息命令;
发送单元5042,用于向主机返回应答信息,该应答信息用于判断人机接口设备HID是否为忙状态,如果判断该人机接口设备是忙状态,则该应答信息用于提示主机向该人机接口设备HID继续下发获取应答信息命令,直到主机接收到主机所需数据为止,如果判断该人机接口设备不是忙状态,则该应答信息用于提示主机继续执行操作。
其中,该应答信息用于判断人机接口设备HID是忙状态时,该应答信息为预定义的忙信息或是预设标识;
其中,当该应答信息用于判断人机接口设备HID不是忙状态时,该应答信息为主机所需数据。
其中,提示主机继续进行操作,具体为提示第一处理模块继续执行操作。
其中,第一接收单元5031具体用于接收主机下发的携带操作命令的数据帧;
执行单元5032具体用于执行第一接收单元5031接收到的携带操作命令的数据帧,并对数据帧解析获取操作命令,执行操作命令;
相应地,
第二接收单元5041具体用于接收主机下发的携带获取应答信息命令的数据帧。
如图6所示,进一步,当返回的应答信息包括预定义的忙信息或主机所需数据时,第一处理模块503还包括:
设置单元5033,用于设置操作标识,操作标识用于指示操作命令是否执行完毕;具体用于改变数据帧的状态结构体变量,改变后的数据帧的状态结构体变量用于指示操作命令是否执行完毕;
相应地,发送单元5042具体用于如果改变后的数据帧的状态结构体变量指示操作命令执行完毕,则向主机返回携带主机所需数据的数据帧;如果改变后的数据帧的状态结构体变量指示操作命令未执行完毕,则向主机返回携带忙信息的数据帧。
进一步地,HID设备还包括:判断模块,用于当第一处理模块503接收操作命令后,根据操作命令的类型,判断对操作命令的操作是否超时;如果是,则通过设置单元5033设置操作标识,执行操作命令,其中该操作标识用于指示操作命令未执行完毕;如果否,则执行操作命令,接收主机下发的获取应答信息命令,向主机返回主机所需数据。
其中,判断模块包括处理单元,用于当接收主机下发的获取应答信息命令后,向主机返回应答信息,处理单元具体用于如果操作标识指示操作命令执行完毕,向主机返回主机所需数据;如果操作标识指示操作命令未执行完毕,向主机返回预定义的忙信息;预定义的忙信息用于使得主机接收预定义的忙信息后,继续执行向人机接口设备HID下发获取应答信息命令,直到主机接收到主机所需数据为止。
综上所述,本发明实施例提供的HID设备,实现了对HID设备与主机的通信过程的控制,有效地避免数据传输过程中HID设备和主机的通信未完成就导致通信中断的情况发生,提高了通信的可靠性和通信的效率。
实施例6
相应于上述方法和人机接口设备HID(以下称之为HID设备)实施例,本发明实施例提供了一种主机设备HID,参见图7本主机设备包括:
通信模块601,用于建立和HID设备的连接,并接收HID设备发送的自身为HID类型设备的声明信息;
第一下发模块602,用于向HID设备下发操作命令;
第二下发模块603,用于向HID设备下发获取应答信息命令;
接收模块604,用于接收HID设备返回的应答信息;
判断模块605,用于根据应答信息判断HID设备是否为忙状态,如果是,则继续向人机接口设备HID下发获取应答信息命令,直到接收到所需数据为止,如果不是,则继续提示第一下发模块602向所述HID设备下发操作命令。
其中,当判断HID设备是忙状态时,则该应答信息可以是预定义的忙信息或预设标识或主机所需数据,当判断HID设备不是忙状态时,则该应答信息为主机所需数据。
其中,参见图8,上述第一下发模块602包括:
第一下发单元6021,用于向人机接口设备HID下发携带操作命令的数据帧,以使得人机接口设备HID对数据帧解析获取操作命令,执行操作命令;
第二下发模块603包括:
第二下发单元6031,用于向HID设备下发携带获取应答信息命令的数据帧;
接收模块604包括:
接收单元6041,用于接收人机接口设备HID返回的携带所需数据的数据帧;
或,接收人机接口设备HID返回的携带预定义的忙信息的数据帧;或,接收人机接口设备HID返回的预设标识;
判断模块605包括:
判断单元6051,用于当接收单元604接收到携带预定义的忙信息的数据帧或是接收预设标识后,提示第二下发单元6031继续向人机接口设备HID下发携带获取应答信息命令的数据帧,直到接收单元604接收到携带所需数据的数据帧为止。
其中,第一下发模块602下发操作命令后,第二下发模块603等待预设时间下发获取应答信息命令。
综上所述,本发明实施例提供的主机设备,实现了对HID设备与主机的通信过程的控制,有效地避免数据传输过程中HID设备和主机的通信未完成就导致通信中断的情况发生,提高了通信的可靠性和通信的效率。
实施例7
相应于上述方法和设备实施例,本发明实施例提供了一种控制人机接口设备通信传输的系统,参见图9,系统包括:HID设备701、主机702;其中,
HID设备701,用于建立和主机702的连接;向主机702声明自身为人机接口设备HID类型设备;接收主机702下发的操作命令,执行操作命令;接收主机702下发的获取应答信息命令,向主机702返回应答信息;
主机702,用于建立和HID设备701的连接,并接收HID设备701发送的自身为HID类型设备的声明信息;向HID设备701下发操作命令;向HID设备701下发获取应答信息命令;接收HID设备701返回的应答信息;根据应答信息判断HID设备701是否为忙状态,如果判断HID设备701是忙状态,则继续向HID设备701下发获取应答信息命令,直到接收到主机所需数据为止;如果判断HID设备701不是忙状态,则继续执行操作。
其中,当判断HID设备701是忙状态时,则该应答信息可以是预定义的忙信息或预设标识或主机所需数据,当判断HID设备701不是忙状态时,则该应答信息为主机所需数据。
进一步地,当主机702返回的应答信息包括预定义的忙信息或主机所需数据时,HID设备701还用于设置操作标识,操作标识用于指示操作命令是否执行完毕;如果操作标识指示操作命令执行完毕,向主机702返回主机所需数据;如果操作标识指示操作命令未执行完毕,向主机返回预定义的忙信息;预定义的忙信息用于使得主机702接收所述预定义的忙信息后,继续执行向HID设备701下发获取应答信息命令,直到主机702接收到主机所需数据为止。
进一步地,HID设备701接收主机702下发的操作命令,执行操作命令,并设置操作标识时,HID设备701还用于接收主机702下发的携带操作命令的数据帧,对数据帧解析获取操作命令,执行操作命令,并改变数据帧的状态结构体变量,改变后的数据帧的状态结构体变量用于指示操作命令是否执行完毕;HID设备701接收主机702下发的携带获取应答信息命令的数据帧;
如果改变后的数据帧的状态结构体变量指示操作命令执行完毕,则向主机702返回携带所需数据的数据帧;如果改变后的数据帧的状态结构体变量指示操作命令未执行完毕,则向主机702返回携带预定义的忙信息的数据帧。
相应地,HID设备701还用于当接收操作命令后,根据所述操作命令的类型,判断对操作命令的操作是否超时;如果是,则设置操作标识,执行操作命令,该操作标识用于指示该操作命令未执行完毕;其中,当操作标识指示操作命令未执行完毕,则向主机返回预定义的忙信息;直到主机接收到主机所需数据为止;当操作标识指示操作命令执行完毕,则向主机返回主机所需数据;如果否,则执行操作命令,接收主机702下发的获取应答信息命令,向主机702返回主机所需数据。
其中,在主机702向HID设备701下发操作命令预设时间后,主机702向HID设备701下发获取应答信息命令。
其中,该系统在具体实现时,可以参照上述方法实施例,本实施例不再赘述。
综上所述,本发明实施例提供的系统,实现了对HID设备与主机的通信过程的控制,有效地避免数据传输过程中HID设备和主机的通信未完成就导致通信中断的情况发生,提高了通信的可靠性和通信的效率。
本发明实施例中的“接收”一词可以理解为主动从其他模块获取也可以是接收其他模块发送来的信息。
本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
本发明实施例中的部分步骤,可以利用软件实现,相应的软件程序可以存储在可读取的存储介质中,如光盘或硬盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (24)
1.一种控制人机接口设备HID通信传输的方法,其特征在于,所述方法包括:
人机接口设备HID和主机建立连接;
所述人机接口设备HID向所述主机声明自身为HID类型设备;
所述人机接口设备HID接收所述主机下发的操作命令,执行所述操作命令;
所述人机接口设备HID接收所述主机下发的获取应答信息命令,向所述主机返回应答信息;
所述主机接收所述应答信息,根据所述应答信息判断所述人机接口设备HID是否为忙状态,如果判断所述人机接口设备HID是忙状态,则所述主机继续向所述人机接口设备HID下发获取应答信息命令,直到所述主机接收到所述主机所需数据为止,其中所述人机接口设备HID不是忙状态时所述主机接收到的所述应答信息为所述主机所需数据;如果判断所述人机接口设备HID不是忙状态,则所述主机继续向所述人机接口设备HID下发操作命令。
2.如权利要求1所述的方法,其特征在于,当判断所述人机接口设备HID是忙状态时,所述应答信息为:预定义的忙信息或是预设标识;
当判断所述人机接口设备HID不是忙状态时,所述应答信息为所述主机所需数据。
3.如权利要求2所述的方法,其特征在于,所述方法还包括:
设置操作标识,所述操作标识用于指示所述操作命令是否执行完毕;
相应地,向所述主机返回应答信息,包括:
如果所述操作标识指示所述操作命令执行完毕,向所述主机返回所述主机所需数据;如果所述操作标识指示所述操作命令未执行完毕,向所述主机返回预定义的忙信息;所述预定义的忙信息用于使得所述主机接收所述预定义的忙信息后,继续执行向所述人机接口设备HID下发获取应答信息命令,直到所述主机接收到所需数据为止。
4.如权利要求3所述的方法,其特征在于,所述人机接口设备HID接收所述主机下发的操作命令,执行所述操作命令,并设置操作标识的步骤,包括:
所述人机接口设备HID接收所述主机下发的携带操作命令的数据帧,对所述数据帧解析获取所述操作命令,执行所述操作命令,并改变所述数据帧的状态结构体变量,所述改变后的所述数据帧的状态结构体变量用于指示所述操作命令是否执行完毕;
相应地,所述人机接口设备HID接收所述主机下发的获取应答信息命令,包括:
所述人机接口设备HID接收所述主机下发的携带获取应答信息命令的数据帧;
如果所述改变后的数据帧的状态结构体变量指示所述操作命令执行完毕,则向所述主机返回携带所述主机所需数据的数据帧;如果所述改变后的数据帧的状态结构体变量指示所述操作命令未执行完毕,则向所述主机返回携带预定义的忙信息的数据帧。
5.如权利要求3所述的方法,其特征在于,所述人机接口设备HID接收所述主机下发的操作命令之后,所述方法还包括:
所述人机接口设备HID根据所述操作命令的类型,判断对所述操作命令的操作是否超时,如果是,则设置操作标识,所述操作标识用于指示所述操作命令未执行完毕;否则,所述人机接口设备HID执行所述操作命令,当接收所述主机下发的获取应答信息命令后,向所述主机返回所需数据。
6.如权利要求1-5任一权利要求所述的方法,其特征在于,当所述主机下发所述操作命令后,所述主机等待预设时间,下发所述获取应答信息命令。
7.一种人机接口设备HID,其特征在于,所述人机接口设备HID包括:
建立模块,用于建立和主机的连接;
声明模块,用于当所述建立模块建立了和所述主机的连接后,向所述主机声明自身为HID类型设备;
第一处理模块,用于当所述声明模块声明自身为HID类型设备后,接收所述主机下发的操作命令,执行所述操作命令;
第二处理模块,用于当所述第一处理模块执行操作命令后,等待预设时间接收所述主机下发的获取应答信息命令,向所述主机返回应答信息,包括:
第二接收单元,用于接收所述主机下发的获取应答信息命令;
发送单元,用于向所述主机返回应答信息,所述应答信息用于判断所述人机接口设备HID是否为忙状态,如果判断所述人机接口设备HID是忙状态,则所述应答信息用于提示所述主机向所述人机接口设备HID继续下发获取应答信息命令,直到所述主机接收到所述主机所需数据为止,其中所述人机接口设备HID不是忙状态时所述主机接收到的所述应答信息为所述主机所需数据;如果判断所述人机接口设备HID不是忙状态,则所述应答信息用于提示所述主机继续向所述人机接口设备HID下发操作命令。
8.如权利要7所述的人机接口设备HID,其特征在于,所述第一处理模块,包括:
第一接收单元,用于接收所述主机下发的操作命令;
执行单元,用于执行所述第一接收单元接收的操作命令。
9.如权利要求7所述的人机接口设备HID,其特征在于,当判断所述人机接口设备HID是忙状态时,所述应答信息为:预定义的忙信息或是预设标识;
当判断所述人机接口设备HID不是忙状态时,所述应答信息为所述主机所需数据。
10.如权利要求8所述的人机接口设备HID,其特征在于,提示所述主机继续向所述人机接口设备HID下发操作命令具体为:提示所述主机向所述接口设备HID下发操作命令,所述第一处理模块接收所述主机下发的操作命令,所述第一处理模块执行所述操作命令。
11.如权利要求8或10所述的人机接口设备HID,其特征在于,
所述第一接收单元具体用于接收所述主机下发的携带操作命令的数据帧;
所述执行单元具体用于对所述第一接收单元接收到的携带操作命令的数据帧进行解析获取所述操作命令后,执行所述操作命令;
相应地,
所述第二接收单元具体用于接收所述主机下发的携带获取应答信息命令的数据帧。
12.如权利要求9所述的人机接口设备HID,其特征在于,当所述应答信息为包括预定义的忙信息或所需数据时,所述第一处理模块还包括:
设置单元,用于设置操作标识,所述操作标识用于指示所述操作命令是否执行完毕;
相应地,所述发送单元用于如果所述操作标识指示所述操作命令执行完毕,则向所述主机返回所述主机所需数据;如果所述操作标识指示所述操作命令未执行完毕,则向所述主机返回预定义的忙信息;所述预定义的忙信息用于在所述主机接收所述预定义的忙信息后,继续执行向所述人机接口设备HID下发获取应答信息命令,直到所述主机接收到所需数据为止。
13.如权利要求12所述的人机接口设备HID,其特征在于,
所述设置单元具体用于改变携带操作命令的数据帧的状态结构体变量,所述改变后的所述数据帧的状态结构体变量用于指示所述操作命令是否执行完毕;
所述发送单元具体用于如果所述改变后的数据帧的状态结构体变量指示所述操作命令执行完毕,则向所述主机返回携带所述主机所需数据的数据帧;如果所述改变后的数据帧的状态结构体变量指示所述操作命令未执行完毕,则向所述主机返回携带预定义的忙信息的数据帧。
14.如权利要求12所述的人机接口设备HID,其特征在于,所述人机接口设备HID,还包括:
判断模块,用于当所述第一处理模块接收所述操作命令后,根据所述操作命令的类型,判断对所述操作命令的操作是否超时;如果是,则通过所述设置单元设置操作标识,所述操作标识用于指示所述操作命令未执行完毕;如果否,则由所述第一处理模块执行所述操作命令。
15.一种主机设备,其特征在于,所述主机设备包括:
通信模块,用于建立和人机接口设备HID的连接,并接收所述人机接口设备HID发送的自身为HID类型设备的声明信息;
第一下发模块,用于向所述人机接口设备HID下发操作命令;
第二下发模块,用于向所述人机接口设备HID下发获取应答信息命令;
接收模块,用于接收所述人机接口设备HID返回的应答信息;
判断模块,用于根据所述应答信息判断所述人机接口设备HID是否为忙状态,如果判断所述人机接口设备HID是忙状态,则继续向所述人机接口设备HID下发获取应答信息命令,直到接收到所述主机所需数据为止,其中所述人机接口设备HID不是忙状态时所述主机接收到的所述应答信息为所述主机所需数据;如果判断所述人机接口设备HID不是忙状态,则继续提示所述第一下发模块向所述HID设备下发操作命令。
16.如权利要求15所述的设备,其特征在于,当判断所述人机接口设备HID是忙状态时,所述应答信息为:预定义的忙信息或是预设标识;
当判断所述人机接口设备HID不是忙状态时,所述应答信息为所需数据。
17.如权利要求16所述的设备,其特征在于,
所述第一下发模块包括:
第一下发单元,用于向所述人机接口设备HID下发携带操作命令的数据帧,以使得所述人机接口设备HID对所述数据帧解析获取所述操作命令,执行所述操作命令;
所述第二下发模块包括:
第二下发单元,用于向所述人机接口设备HID下发携带获取应答信息命令的数据帧;
所述接收模块包括:
接收单元,用于接收所述人机接口设备HID返回的携带所需数据的数据帧;或,接收所述人机接口设备HID返回的携带预定义的忙信息的数据帧;或,接收所述人机接口设备HID返回的预设标识;
所述判断模块包括:
判断单元,用于当所述接收单元接收到携带预定义的忙信息的数据帧或是接收所述预设标识后,提示所述第二下发单元继续向所述人机接口设备HID下发携带获取应答信息命令的数据帧,直到所述接收单元接收到携带所需数据的数据帧为止。
18.如权利要求15-17任一权利要求所述的设备,其特征在于,在所述第一下发模块下发所述操作命令后,所述第二下发模块等待预设时间后下发所述获取应答信息命令。
19.一种控制人机接口设备通信传输的系统,其特征在于,所述系统包括:人机接口设备HID、主机;
所述人机接口设备HID,用于建立和所述主机的连接;向所述主机声明自身为HID类型设备;接收所述主机下发的操作命令,执行所述操作命令;接收所述主机下发的获取应答信息命令,向所述主机返回应答信息;
所述主机,用于建立和人机接口设备HID的连接,并接收所述人机接口设备HID发送的自身为HID类型设备的声明信息;向所述人机接口设备HID下发操作命令;向所述人机接口设备HID下发获取应答信息命令;接收所述人机接口设备HID返回的应答信息;根据所述应答信息判断所述人机接口设备HID是否为忙状态,如果判断所述人机接口设备HID是忙状态,则继续向所述人机接口设备HID下发获取应答信息命令,直到接收到所述主机所需数据为止,其中所述人机接口设备HID不是忙状态时所述主机接收到的所述应答信息为所述主机所需数据;如果判断所述人机接口设备HID不是忙状态,则继续提示所述主机向所述人机接口设备HID下发操作命令。
20.如权利要求19所述的系统,其特征在于,当判断所述人机接口设备HID是忙状态时,所述应答信息可以为预定义的忙信息或是预设标识,当判断所述人机接口设备HID不是忙状态时,所述应答信息为所述主机所需数据。
21.如权利要求20所述的系统,其特征在于,当所述人机接口设备HID向所述主机返回的应答信息包括预定义的忙信息或所述主机所需数据时,
所述人机接口设备HID还用于设置操作标识,所述操作标识用于指示所述操作命令是否执行完毕;如果所述操作标识指示所述操作命令执行完毕,向所述主机返回所述主机所需数据;如果所述操作标识指示所述操作命令未执行完毕,向所述主机返回预定义的忙信息;所述预定义的忙信息用于使得所述主机接收所述预定义的忙信息后,继续执行向所述人机接口设备HID下发获取应答信息命令,直到所述主机接收到所需数据为止。
22.如权利要求21所述的系统,其特征在于,所述人机接口设备HID用于接收所述主机下发的操作命令,执行所述操作命令,并设置操作标识时,
所述人机接口设备HID还用于接收所述主机下发的携带操作命令的数据帧,对所述数据帧解析获取所述操作命令,执行所述操作命令,并改变所述数据帧的状态结构体变量,所述改变后的所述数据帧的状态结构体变量用于指示所述操作命令是否执行完毕;所述人机接口设备HID接收所述主机下发的携带获取应答信息命令的数据帧;如果所述改变后的数据帧的状态结构体变量指示所述操作命令执行完毕,则向所述主机返回携带所述主机所需数据的数据帧;如果所述改变后的数据帧的状态结构体变量指示所述操作命令未执行完毕,则向所述主机返回携带预定义的忙信息的数据帧。
23.如权利要求22所述的系统,其特征在于,
所述人机接口设备HID还用于当接收所述操作命令后,根据所述操作命令的类型,判断对所述操作命令的操作是否超时;
如果是,则设置操作标识,执行所述操作命令,所述操作标识用于指示所述操作命令未执行完毕;
如果否,则执行所述操作命令,接收所述主机下发的获取应答信息命令,向所述主机返回所需数据。
24.如权利要求19-23任一权利要求所述的系统,其特征在于,在所述主机向所述人机接口设备HID下发所述操作命令后,所述主机等待预设时间,向所述人机接口设备HID下发所述获取应答信息命令。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100810898A CN101582057B (zh) | 2009-04-01 | 2009-04-01 | 一种控制人机接口设备通信传输的方法、设备和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100810898A CN101582057B (zh) | 2009-04-01 | 2009-04-01 | 一种控制人机接口设备通信传输的方法、设备和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101582057A CN101582057A (zh) | 2009-11-18 |
CN101582057B true CN101582057B (zh) | 2012-04-18 |
Family
ID=41364207
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009100810898A Active CN101582057B (zh) | 2009-04-01 | 2009-04-01 | 一种控制人机接口设备通信传输的方法、设备和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101582057B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103412837A (zh) * | 2013-07-10 | 2013-11-27 | 北京深思数盾科技有限公司 | 一种提高人机接口设备通讯稳定的方法、设备和系统 |
CN106293673A (zh) * | 2015-06-08 | 2017-01-04 | 中兴通讯股份有限公司 | 操作指令处理方法及装置 |
CN106452677A (zh) * | 2016-10-20 | 2017-02-22 | 北京海泰方圆科技股份有限公司 | 一种数据传输方法、装置及系统 |
CN115426318B (zh) * | 2022-11-04 | 2023-03-24 | 深圳市湘凡科技有限公司 | 优化数据传输方法及相关装置 |
CN117112473B (zh) * | 2023-10-19 | 2024-02-02 | 紫光同芯微电子有限公司 | 一种基于单总线的数据传输方法、系统、设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5844794A (en) * | 1996-10-18 | 1998-12-01 | Allen Bradley Company, Llc | Electronic data communications system having data consumer defining data transmission structure |
CN1904864A (zh) * | 2006-08-15 | 2007-01-31 | 北京飞天诚信科技有限公司 | 一种使hid设备能提供智能卡接口的装置及方法 |
CN1920848A (zh) * | 2006-09-19 | 2007-02-28 | 北京飞天诚信科技有限公司 | 一种主机与智能卡信息交互的方法和装置 |
CN101000585A (zh) * | 2006-12-06 | 2007-07-18 | 北京飞天诚信科技有限公司 | 一种实现ccid设备的方法和装置 |
CN101329661A (zh) * | 2008-07-31 | 2008-12-24 | 北京飞天诚信科技有限公司 | 一种实现hid/scsi设备pc/sc接口的系统和方法 |
-
2009
- 2009-04-01 CN CN2009100810898A patent/CN101582057B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5844794A (en) * | 1996-10-18 | 1998-12-01 | Allen Bradley Company, Llc | Electronic data communications system having data consumer defining data transmission structure |
CN1904864A (zh) * | 2006-08-15 | 2007-01-31 | 北京飞天诚信科技有限公司 | 一种使hid设备能提供智能卡接口的装置及方法 |
CN1920848A (zh) * | 2006-09-19 | 2007-02-28 | 北京飞天诚信科技有限公司 | 一种主机与智能卡信息交互的方法和装置 |
CN101000585A (zh) * | 2006-12-06 | 2007-07-18 | 北京飞天诚信科技有限公司 | 一种实现ccid设备的方法和装置 |
CN101329661A (zh) * | 2008-07-31 | 2008-12-24 | 北京飞天诚信科技有限公司 | 一种实现hid/scsi设备pc/sc接口的系统和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101582057A (zh) | 2009-11-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8347008B2 (en) | Method and system for hardware based implementation of USB 1.1 over a high speed link | |
WO2023284699A1 (zh) | 基于Linux系统的协议栈数据传输方法、计算机设备和存储介质 | |
EP3176980B1 (en) | Unified server communication method, baseboard management controller and server | |
US10261930B2 (en) | System, device and method for transmitting signals between different communication interfaces | |
CN101582057B (zh) | 一种控制人机接口设备通信传输的方法、设备和系统 | |
KR100720708B1 (ko) | 무선 usb drd 시스템 | |
CN101968775B (zh) | 计算机系统 | |
CN107391419B (zh) | 支持多主机的通用序列汇流排集线设备及车用主机 | |
CN115357535A (zh) | 一种虚拟串口设计方法及装置 | |
JP4444101B2 (ja) | バスシステム、バスシステム内で用いるためのステーション、及びバスインタフェース | |
WO2018223936A1 (zh) | 一种AP与Modem的交互方法及系统、存储介质 | |
CN102426558A (zh) | 终端通过usb与计算机通信的方法、终端和计算机 | |
CN102087589A (zh) | 可检测被控计算机状态的远程管理装置 | |
US6714990B1 (en) | Communication system and data adapter | |
CN111475368A (zh) | 一种串口级联调控方法及串口设备 | |
US9619005B2 (en) | Apparatus and method for saving power of USB device | |
US9087031B2 (en) | Method and program for selective suspension of USB device | |
CN115941382A (zh) | 一种spi通信的流控方法、装置、终端设备及存储介质 | |
CN101908025A (zh) | 一种串口使用权控制装置及控制方法 | |
WO2012058875A1 (zh) | 一种串行通信的方法和系统 | |
CN107402898B (zh) | 一种信息处理的方法及电子设备 | |
EP2506659A1 (en) | Device and method for enhancing flexibility of interface between 3g communication module and application processor | |
CN109413101A (zh) | 一种客户端与服务端之间的信息传输方法 | |
CN102917390A (zh) | 一种控制lte数据卡的连接状态的方法和系统 | |
CN114385104A (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 | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: 17th floor, building B, Huizhi building, No.9, Xueqing Road, Haidian District, Beijing 100085 Patentee after: Feitian Technologies Co.,Ltd. Country or region after: China Address before: 100085 17th floor, block B, Huizhi building, No.9 Xueqing Road, Haidian District, Beijing Patentee before: Feitian Technologies Co.,Ltd. Country or region before: China |
|
OL01 | Intention to license declared | ||
OL01 | Intention to license declared |