yuan910715 / 3keys

一个CH552制作的三键小键盘 CV工程师键盘
45 stars 14 forks source link

HID键盘扩展请求 #5

Open Zylsjsp opened 1 year ago

Zylsjsp commented 1 year ago

你好 从立创广场一路看到这来的 很不错的3键键盘固件!

我自己的出发点是想要做一个单独的Sysreq单键键盘 开源广场上也看了很多方案 感觉各路神仙都把ch552玩出花来

我读了@DeqingSun的示例代码和你的项目 基于我自己的使用场景 想给功能键增加一个sysreq的选项 也查了相关的hid规范pdf image 感觉只要在USBHIDKeyboard.c修改#DEFINEapp.vue里面的列表应该就能加入新的键位 板子和材料还没到所以我暂时还不能验证可行性 如果可行的话看看能不能接受一下我的PR

可以的话能不能尝试对HID里面的其他键进行扩展呢 比如留一部分自定义功能键0xfc-0xfe可以提供给自定义的映射 至少有三个键的空间可以用 如果可以把这三个键在web改键程序上作为自定义扩展提供应该会更加方便(例如需要改PrintScr, Pause键的场景)

yuan910715 commented 1 year ago

添加按键很容易,USBHIDKeyboard.c里可以不修改。 Sysreq按键是什么作用?我查了资料现代键盘已没有此键位 部分操作系统将其解析成PrintScreen ,你是想要添加PrintScreen按键吗?

Zylsjsp commented 1 year ago

Sysreq的功能可以参考内核文档Linux Magic System Request Key Hacks

有一部分键盘厂商是将printsrc和sysreq做到一个键上的 但是这个方法不在USB HID的规范中 同时这个键的位置在表里的位置太靠后了 @DeqingSun提供的示例代码中给出的+136的映射区域不能够直接找到HID中后半部分的键(中间0xb5我记得也是一个跳过去的映射 因为和'~'冲突吧好像) 看看是不是有机会可以考虑重构一下这部分代码完整支持HID keyboard的完整表

另外 这个键盘支持6键无冲吗 如果不支持的话是不是最好也做一个适配

yuan910715 commented 1 year ago

我在改键页增加了printscr/break pause/num lock/scroll lock四个按键, sysreq我再研究下。 CH552 IO够 可以6键无冲不需要添加其他元件。