我目前正在用Python 3写出USB HID代码。
NULL_CHAR = chr(0)
def write_report(report):
with open('/dev/hidg0', 'rb+') as fd:
fd.write(report.encode())
# Press SHIFT + a = A
write_report(chr(32)+NULL_CHAR+chr(4)+NULL_CHAR*5)
# Release all keys
write_report(NULL_CHAR*8)
我的问题:
通过查看USB.org(v1.12-10-21-2004-https://www.usb.org/document-library/hid-usage-tables-112)中的标准“ USB HID使用表” ...
通过积极运行上述示例,我知道
(使用十进制FYI中的“用法ID”), CHR(32)是
那是怎么回事?
我使用的表是否错误,我应该使用ASCii代码而不是USB HID键盘代码吗?
是否有更好/更准确的代码表?
因为如果chr(32)实际上是
除了全文行之外,是否有更简便的方法来组合键入功能键(F1 + F3 + F5)并通过USB发出,这比我目前的操作方式更容易?
任何帮助专业人员解决此问题的方法将不胜感激!!!
答案 0 :(得分:0)
不确定您是否还需要答案,但我在为同一件事头疼了一天后想通了。 您发送的信息必须始终以 8 个字节传输。 所以从你的例子来看:
pick 483ac92 first commit
pick bb739b7 second commit
pick 59f2bf0 very long commit with multiline
chr(32) 是字节 0(这是修饰符),然后是字节 1 的空字符,然后是字节 2 的实际字符,然后是另外 5 个空字符,使其成为 8。 修饰符遵循与实际字符不同的系统。
write_report(chr(32)+NULL_CHAR+chr(4)+NULL_CHAR*5)
所以 32 的原因是因为它是十六进制中 0x20 的十进制等效值。 希望这对您或其他任何寻找此答案的人有所帮助。