[.前言]
Hello大家好,我应该有好久没在52发帖了吧,灌水除外。原因大概,近段时间都在搞(补习)硬件(模电)方面的东西,不涉及软件/逆向等。不外如今终于得住机会,能够有个擦边内容可以拟个帖子分享大家了。
最近新入手了个D87 RGB单模机械键盘,团体都不错,奢华内涵有档次,就这。
设置第一个按键(ESC)为红色,然后我们可以看到抓取到的USB数据如下图
然后抓取第二个键F1,
继续验证后面的按键,可能键盘空的地方,实在是存在按键的?
颠末一系列的抓包,然后整理出来一些猜测,好比每个按键的控制都是明码,传输的是RGB数据占用3字节。
每条报文(是这么叫的么?)头部有12字节是协议头或者下令,共计发送6条数据给键盘
失败的主要原因,猜测可能存在空键位,当顺序点亮到空键位的时候,会出现IO错乱题目
TLEDS LED逻辑控制层。负责现实控制LED XY矩阵数据逻辑,以及提供R、G、B->RGB的转换方法和向下发送USB层功能。
介绍完框架布局完了,给大家分享几个简单的实例。因为懒,所以没有使用多线程或者Timer之类,QT内里的Timer必要代码自己码,相比VB6难用很多。
点亮键盘最右侧按键,用于检测KeyMap映射数据是否缺损
[C++] 纯文本查看 复制代码void MainWindow::on_pushButton_3_clicked(){ if(!kbd)return; int rgb=kbd->rgb(0,0,255);//blue kbd->on("pause",rgb); kbd->on("pu",rgb); kbd->on("pd",rgb); kbd->on("\r",rgb); kbd->on("up",rgb); kbd->on("right",rgb); kbd->show();}
表现I Love You,简单的字节数组表现点亮键盘LED
<font size="3"> |