如何写电脑power reset 的报告描述符?

[复制链接]
 楼主| doob 发表于 2008-2-21 17:06 | 显示全部楼层 |阅读模式
hid协议看得不是很明白,(那些家伙把个并不太复杂的协议<br />&nbsp;&nbsp;拼命写的老复杂,郁闷)<br />有做的,贴个出来,参考以下,<br />谢谢
 楼主| doob 发表于 2008-2-21 17:09 | 显示全部楼层

hi

报告描述符<br />&nbsp;&nbsp;&nbsp;&nbsp;一个USB多媒体键盘,共包含三种按键:普通按键,系统特殊功能键和用户特殊功能键,其中系统特殊功能键有Sleep、Power和Wakeup三个,用户特殊功能键较多,常用的有www,&nbsp;Mail&nbsp;,&nbsp;My&nbsp;COMPUTER等。在USB列举中,对键盘的特殊功能键的描述,主要是通过键盘的报告描述符(表1,表2)来实现的,即按照USB协议[2]的要求,将给定的报告描述符发送给主机,主机通过分析接收到的报告描述符,判断出键盘的按键信息,然后实现对按键的响应。下面给出列举的报告描述符并详细说明。<br />&nbsp;&nbsp;&nbsp;&nbsp;描述符中0980表示其下的描述符是关于系统特殊功能键,定义头字节为02,第二个字节表示键值信息,报告数值为3,表示有三个不同的健值需要发送。发送时,第二字节每位从低位到高位顺序置1,以表示不同键值,向主机发送的数据如下:<br />&nbsp;&nbsp;&nbsp;&nbsp;POWER:<br />&nbsp;&nbsp;&nbsp;&nbsp;00000010&nbsp;00000001&nbsp;即02&nbsp;01<br />&nbsp;&nbsp;&nbsp;&nbsp;SLEEP:<br />&nbsp;&nbsp;&nbsp;&nbsp;00000010&nbsp;00000010&nbsp;即02&nbsp;02<br />&nbsp;&nbsp;&nbsp;&nbsp;WAKEUP:<br />&nbsp;&nbsp;&nbsp;&nbsp;00000010&nbsp;00000100&nbsp;即02&nbsp;04<br />&nbsp;&nbsp;&nbsp;&nbsp;当按键抬起时,向主机发送零帧:即02&nbsp;00<br />&nbsp;&nbsp;&nbsp;&nbsp;报告描述符中050c,0901表示以下是用户特殊功能键,定义字头是03,报告长度为8,需要8位即一个字节来表示所有的键值信息。不同的键值,是通过对字节从低到高的8位顺序置1来表示,对于我们的报告描述符,按键PLAY/PAUSE送入主机的键值应为:&nbsp;00000011&nbsp;00000001&nbsp;即03&nbsp;01&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;以下列举三个常用按键按下时键盘向主机发送的键值:<br />&nbsp;&nbsp;&nbsp;&nbsp;WWW:&nbsp;报告描述符中第六个,送入主机的键值应把第六位置1,即:<br />&nbsp;&nbsp;&nbsp;&nbsp;00000011&nbsp;00100000&nbsp;即03&nbsp;20&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;SEARCH:&nbsp;报告描述符中第五个,送入主机的键值应把第五位置1,即:<br />&nbsp;&nbsp;&nbsp;&nbsp;00000011&nbsp;00010000&nbsp;即03&nbsp;10&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;MAIL:&nbsp;报告描述符中第二个,送入主机的键值应把第二位置1,即:<br />&nbsp;&nbsp;&nbsp;&nbsp;00000011&nbsp;00000010&nbsp;即03&nbsp;02&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;当按键抬起时,向主机发送零帧:&nbsp;即03&nbsp;00&nbsp;<br />
computer00 发表于 2008-2-21 17:19 | 显示全部楼层

哈哈,还没玩过,哪天也做个玩玩~~~HID协议里面应该有吧

  
您需要登录后才可以回帖 登录 | 注册

本版积分规则

165

主题

1113

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部