Language agnostic 与外部(硬件)按钮的通信

Language agnostic 与外部(硬件)按钮的通信,language-agnostic,peripherals,Language Agnostic,Peripherals,我想创建一个外部按钮用于我的一个应用程序。我的问题不是集中在硬件本身(这就是为什么我在这里问它),而是在软件/通信方面。最好和最直接的方法是什么?良好的速度很重要,因此它不应该与普通键盘的延迟相差太多 我想到了以下解决方案: 让硬件是一个经过修改的键盘,或者至少它应该被系统识别为一个键盘。赞成:不需要软件方面的额外工作。缺点:如果我也需要使用普通键盘怎么办?好吧,还不错,今天的USB键盘 通过串口进行通信。这将是最直截了当的办法,或者更好的办法,就像10年前那样。当然,现在大多数电脑都没有,周

我想创建一个外部按钮用于我的一个应用程序。我的问题不是集中在硬件本身(这就是为什么我在这里问它),而是在软件/通信方面。最好和最直接的方法是什么?良好的速度很重要,因此它不应该与普通键盘的延迟相差太多

我想到了以下解决方案:

  • 让硬件是一个经过修改的键盘,或者至少它应该被系统识别为一个键盘。赞成:不需要软件方面的额外工作。缺点:如果我也需要使用普通键盘怎么办?好吧,还不错,今天的USB键盘
  • 通过串口进行通信。这将是最直截了当的办法,或者更好的办法,就像10年前那样。当然,现在大多数电脑都没有,周围有很多串行usb转换器
  • 让它成为标准的USB设备。我不喜欢这个想法,安装驱动程序,还要关心不同的操作系统等等

有什么更好的主意吗?

USB键盘类HID对我来说似乎是最好的。您可以使用不同于标准键盘的扫描码,也可以少用一些键盘上应用程序特定按钮的扫描码。(请注意,当前的X.Org驱动程序仍然限于扫描代码<256。)

也许为您的设备找到一个参考HID键盘实现也不难

串行端口在现代个人电脑尤其是笔记本电脑中很少见;即使系统板有RS232电路,也没有外部连接器

为PC端编写自定义驱动程序意味着要做更多的工作,为bug留出更多的空间。使用久经考验的标准驱动程序,您会更加安全