lsusb -v给出 USB 设备的设备描述符信息。Linux 中是否有任何命令/工具可以为我们提供来自 USB HID 设备的连续 HID 输入报告?
我在此调用中使用node-hid:
HID.devices()
Run Code Online (Sandbox Code Playgroud)
我应该得到所有连接的USB设备的列表,这里的指南中列出。
结果我得到了这个设备列表:
[ { vendorId: 1452,
productId: 33346,
path: 'USB_05ac_8242_6500000',
serialNumber: '',
manufacturer: 'Apple Computer, Inc.',
product: 'Apple IR',
release: 22,
interface: -1 },
{ vendorId: 1452,
productId: 567,
path: 'USB_05ac_0237_6300000',
serialNumber: '',
manufacturer: 'Apple Inc.',
product: 'Apple Internal Keyboard / Trackpad',
release: 144,
interface: -1 },
{ vendorId: 1452,
productId: 567,
path: 'USB_05ac_0237_6300000',
serialNumber: '',
manufacturer: 'Apple Inc.',
product: 'Apple Internal Keyboard / Trackpad',
release: 144,
interface: -1 },
{ vendorId: 0,
productId: …Run Code Online (Sandbox Code Playgroud) 我在 HID 模式下通过蓝牙将外部条码扫描仪连接到我的平板电脑,并尝试处理我的应用程序中的输入。条码扫描器基本上像键盘一样工作。
我有一个简单的 gui,在我的主要活动中,我有以下方法:
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
System.out.println(keyCode + " - " + (char) event.getUnicodeChar());
return true;
}
Run Code Online (Sandbox Code Playgroud)
问题:
当我打开一个文本应用程序,比如谷歌笔记并扫描任何代码时,条形码被插入,然后是一个新行。这让我觉得我可以处理关键事件并将所有字符写入字符串构建器,直到我到达“Enter”的关键事件。
但问题是,当我在我的应用程序中使用扫描仪(此条形码)时,上述方法的输出如下:
59 - ?? <- 'Shift'
29 -
59 - ??
47 - s
62 -
8 - 1
9 - 2
10 - 3
事件中无法捕获条形码末尾的“Enter”(应该是 keyCode 66),但我的 GUI 中的元素之一被突出显示,这意味着扫描仪必须发送“Enter”
当我将多行 EditText 添加到我的 GUI 并在元素聚焦时扫描相同的条形码时,输出如下:
29 - a
47 - s
62 -
8 - 1
9 - 2
10 - 3 …
我试图找出是否有办法重命名设备,如游戏控制器屏幕中所示。
它们是廉价的 HID 设备,并且它们似乎都共享相同的硬件 ID(如果这是相关信息)VID_0E8F&PID_3013
我可以按照本指南在设备管理器中更改它们的名称:http://www.eightforums.com/customization/15321-tutorial-how-change-device-names-device-manager.html
但是,我一生都无法弄清楚如何更改上图中显示的名称。我计划在我的电脑上添加 8 个游戏控制器,当它们都共享相同的名称时,会变得非常混乱。
任何帮助是极大的赞赏。
我目前正在使用 Atmel 微控制器开发 USB HID 键盘。一切正常,但我通常在不同的机器上使用不同的键盘布局。现在我开始想知道是否有可能告诉主机使用哪种键盘布局,即 EN-US,以便键码总是映射到每台机器上的正确字符上。有任何想法吗?
上下文:我在 Windows 上使用 Qt 5.9.3,为 MinGW 32 位构建。Qt 部分是一个附带问题 - 问题似乎出在 MinGW 上。MinGW 的版本是 4.3.0,作为 Qt 安装的一部分预构建。
我正在构建一个通过 HID 与 USB 设备通信的库。一切都编译得很好,但在链接阶段失败了
./..\..\object\debug\usb_hid_device.o: In function `ZN8MyApp3USB5Win3213getDevicePathB5cxx11Ell':
<MYPATH>/../../source/win32/usb_hid_device.cpp:99: undefined reference to `HidD_GetAttributes(void*, _HIDD_ATTRIBUTES*)@8'
./..\..\object\debug\usb_hid_device.o: In function `ZN8MyApp3USB5Win3214CHIDDeviceImplC2EllRNS_15LogPerComponentE':
<MYPATH>/../../source/win32/usb_hid_device.cpp:200: undefined reference to `HidD_FlushQueue(void*)@4'
Run Code Online (Sandbox Code Playgroud)
链接器命令是
g++ -shared -mthreads -Wl,-subsystem,windows -Wl,--out-implib,<MYPATH>\bin\debug\libusb_hid_comms.a -o <MYPATH>\bin\debug\usb_hid_comms.dll object_script.usb_hid_comms.Debug -lhid -lsetupapi -LC:\Qt\Qt5.9.3\5.9.3\mingw53_32\lib C:\Qt\Qt5.9.3\5.9.3\mingw53_32\lib\libQt5Guid.a C:\Qt\Qt5.9.3\5.9.3\mingw53_32\lib\libQt5Cored.a
Run Code Online (Sandbox Code Playgroud)
如果我省略,-lhid我会得到同样的错误。如果我删除-lhid路径和文件名并将其显式设置为libhid.a. 如果我故意输入错误的路径和文件名,则会出现错误,因此我知道命令行已正确解析。但无论出于何种原因,MinGW 似乎没有链接到它自己的库文件之一。
我还尝试删除-lsetupapi,并得到了我期望的链接器错误,其中定义的函数。Qt 库文件也是如此。不过好像是专门为了libhid.a,MinGW 可以看到库文件,但不会与其链接。
还有其他人看过这个吗?或者拥有相同(或相似)版本 MinGW 的其他人可以确认或否认他们可以链接吗libhid.a?或者我正在做的事情明显有问题吗?
我正在构建一个宏键盘,我尝试实现的功能之一是 Ctrl+Shift+R,但在定义中,固定 8 字节字符串中仅存在一个修饰符。如何实施额外的修饰符?
我开发了计费项目.我要实现刷卡读卡器.我不知道使用VB + winforms的刷卡读卡器应用程序
有人能帮我吗 !!
提供样本和教程等......