失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 罗技 无线鼠标 USB HID数据格式

罗技 无线鼠标 USB HID数据格式

时间:2023-12-02 17:56:14

相关推荐

罗技 无线鼠标 USB HID数据格式

最近在使用 pyusb 进行 鼠标原始数据的读取,使用的是树莓派linux环境,将踩过的“坑”记录下来:

一般需要使用 sudo 运行程序,否则linux系统会报“权限不够”;

对于同时支持无线鼠标、键盘的无线接收器设备,一定要找对接口。一般会有3个接口,但只有一个接口可以被正常读取;

无线接收器返回的数据,不像网上说的什么,鼠标返回 4字节,键盘返回8字节,罗技的 unifying 无线接收器,能正常读取数据那接口,最多返回32字节,一般返回15字节数据;

关于返回的数据,经逆向破解,基本为:

字节0 32(十进制,以下皆用10进制表示),为鼠标或键盘数据

字节1 鼠标数据为2,键盘数据为1

字节2 和字节1相同

字节3 鼠标数据中,为按键信息,bit0-2依次为:左键、右键、中键,按下为1

字节4 我测试时总是为0,可能为某种ID值

字节5-7 鼠标数据中,存X\Y方向上移动数据,比较复杂,等下说

字节8 鼠标数据中,滚轮数据,补码表示滚动值和方向

其它字节 总是为0,不关心了

对于字节5-7 的意义:

字节6的低4位bits + 字节5,构成12bits的X移动数据,补码表示

字节7 +字节6的高4bits,构成12bits的Y移动数据,补码表示

似乎是高4bits为符号位,但可以统一这样解码:

如果最高bit0, 其值直接为正向移动值;

如果最高bit1,则12bits数据按位取反,然后+1,得到移动值,但表示为负向移动值;

有线鼠标的数据,和网上常见的数据格式一样,返回4字节,自行去网上找吧;

如果 pyusb 总是读不出值来,尤其是在window环境,大概率是没有安装好libusb,注:win下一般使用的是 hidusb 类型驱动,不是libusb,但我更换成libusb后,虽能读取到数据了,但鼠标不动了。当然,基于window的虚拟机linux环境中,应该先保证win下能正常读取鼠标数据,否则还是读不到的;

如果觉得《罗技 无线鼠标 USB HID数据格式》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。