问题标签 [hidapi]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
google-chrome - Chrome API HID 接收在 Windows 中不起作用
我有一个 chromapp,它使用 USB 将数据发送到 PC,作为 HID 设备连接,在 Linux 中完美运行。尝试在 Windows 中执行相同操作时,应用程序看到设备已连接,但会引发运行时错误:
hid.receive回调函数实现如下
我在 Windows 10 Pro 版本 1607 版本 14388.0 上运行 Google Chrome 版本:52.0.2743.116
其他人有类似的问题吗?有人可以帮我解决这个问题吗?
usb - STM32f4 HID接收数据
如何在设备模式下作为 HID(USB) 运行的 STM32f407 发现板中从主机 PC 接收 OUT 报告数据?可能吗?我正在考虑使用 hidapi 从主机发送数据。
multithreading - 如何在 wxWidgets 中继续轮询 HIDAPI?
从嵌入式微控制器和 C 的世界转向使用 wxWidgets 的 C++。
我创建了一个简单的 GUI 程序,使用 codeblocks 和 wxWidgets 与我使用 signal11 中的 HIDAPI 制作的 USB Hid 设备进行交互。
使用简单的按钮,我可以连接、断开连接和检查设备上的固件软件版本。
我想要做的是让 GUI 自动检测设备是否存在,所以如果我拔下我的设备,GUI 会响应(所有内容都变灰)或在插入时重新启用所有内容。
这是需要一个永无止境的线程来实现的东西,还是有更好的方法?我通常会在微控制器上的中断例程中做这样的事情,但不确定它在桌面平台上的等价物吗?
c++ - 如何在 Visual Studio 2015 C++ 中包含 hidapi
我正在尝试将 Visual Studio 2015 上的 hidapi 库用于 c++ 控制台应用程序。
我已将 hidapi.h 作为头文件包含在内,但似乎无法弄清楚如何链接 dll。我已经搜索了这个站点,寻找包含其他库的解决方案,但它们似乎针对每种情况都是特定的。
任何帮助是极大的赞赏。
python - cython hidapi 写入错误
我正在尝试写入连接到安装了 raspbian 的 raspberry pi 3 的 USB 设备。
错误:
代码
这段代码有什么问题?根据库中的文档,它接受任何整数列表。
我用这个作为参考:https ://github.com/trezor/cython-hidapi/blob/master/try.py
node.js - node-hid HID.devices() 函数在 Windows 上返回空数组
我在 Windows 10 64 位上使用node-hid库。
它安装完美,但是当我连接任何 USB 设备时。HID.devices() 返回空数组 ( [] )。相同的代码完美地显示了适用于 Linux 或 MAC 平台上的设备的对象数组。
我已经尝试过的是在这两种情况下安装预构建二进制文件并从源代码构建节点隐藏,输出是相同的。
我在互联网上找不到与此问题相关的任何内容。
提前致谢
linux - 如何在 Qt Creator 中使用 HIDAPI?
我将整个hidapi-0.7.0
下载(https://github.com/downloads/signal11/hidapi/hidapi-0.7.0.zip)解压缩到我的项目目录中,然后添加hidapi-0.7.0/hidapi/hidapi.h
到hidapi-0.7.0/linux/hid-libusb.c
我的项目中。所以它们现在出现在我的*.pro
文件中。
我安装了 libusb-1.0 ( sudo apt-get install libusb-1.0-0-dev
) 并尝试构建项目。它编译得很好,但是链接器这样做了:
自述文件只是说:
要使用 HIDAPI,只需将 hid.c 或 hid-libusb.c 拖放到您的应用程序中,然后使用 Makefile 中的构建参数进行构建。
这没有帮助。(当我一开始甚至不了解 Makefile 时,如何确保 QtC 生成的 Makefile 像那样工作?)
该网站说:
构建说明
...
Linux:
切换到 linux/ 目录并运行 make。
但它做同样的事情:
我是否仍然缺少某些东西(我希望如此),还是 HIDAPI 0.7.0 实际上已损坏,因为它甚至没有正确构建开箱即用?
根据@eyllanesc 的评论进行实验:
也不喜欢那样,但至少这是一个不同的错误,所以它可能是某种进步。不幸的是,我也不知道这个是什么意思。
c++ - HID USB 控制传输 (Windows)
最近,我开始学习如何在 Windows 10 上与 HID 设备进行通信。
但我有几个问题。
根据Window的文档,HidD_SetOutputReport
必须将ReportBuffer
参数的第一个字节设置为报表ID或0x00
。
由于我设备的 HID 报告描述符已经声明了一些报告 id,所以我必须在使用时设置报告 idHidD_setoutputreport
而不是0x00
?
当我使用报告 id 0x80 作为buf[0]
,例如: 0x80 0x02 0x00 ....... 0x00 (我Capabilities.OutputReportByteLength
是 64)
我的代码是ret = HidD_SetOutputReport(handle->device_handle, buf2, 65)
但我总是这样发送数据(在Bus Hound上):
64 输出 80 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ...... 4.1.0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ...... 4.1.16
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ...... 4.1.32
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ...... 4.1.48
我认为它应该发送buf[1] to buf[64]
而不是发送buf[0] to buf[63]
,所以我尝试ret = HidD_SetOutputReport(handle->device_handle, buf2, 64)
了,但结果是一样的。
这是我的 INPUT 和 OUTPUT 的 HID 报告描述符:
使用页面(通用桌面)05 01
逻辑最小值 (0) 15 00
用法(操纵杆)09 04
收藏(申请)A1 01
报告编号 (48) 85 30
使用页面(通用桌面)05 01
使用页面(按钮) 05 09
最低使用量(按钮 1)19 01
最大使用量(按钮 10) 29 0A
逻辑最小值 (0) 15 00
逻辑最大值 (1) 25 01
报告大小 (1) 75 01
报告计数 (10) 95 0A
单位指数 (0) 55 00
单位(无)65 00
输入 (Data,Var,Abs,NWrp,Lin,Pref,NNul,Bit) 81 02
使用页面(按钮) 05 09
最低使用量(按钮 11) 19 0B
使用最大值(按钮 14) 29 0E
逻辑最小值 (0) 15 00
逻辑最大值 (1) 25 01
报告大小 (1) 75 01
报告数 (4) 95 04
输入 (Data,Var,Abs,NWrp,Lin,Pref,NNul,Bit) 81 02
报告大小 (1) 75 01
报告数 (2) 95 02
输入 (Cnst,Var,Abs,NWrp,Lin,Pref,NNul,Bit) 81 03
用法(通用桌面:指针)0B 01 00 01 00
集合(物理)A1 00
结束收集 C0
用法(通用桌面:帽子开关)0B 39 00 01 00
逻辑最小值 (0) 15 00
逻辑最大值 (7) 25 07
体力最小值 (0) 35 00
物理最大值 (315) 46 3B 01
单位(英语:度)65 14
报告大小 (4) 75 04
报告数 (1) 95 01
输入 (Data,Var,Abs,NWrp,Lin,Pref,NNul,Bit) 81 02
使用页面(按钮) 05 09
最低使用量(按钮 15) 19 0F
最大使用量(按钮 18) 29 12
逻辑最小值 (0) 15 00
逻辑最大值 (1) 25 01
报告大小 (1) 75 01
报告数 (4) 95 04
输入 (Data,Var,Abs,NWrp,Lin,Pref,NNul,Bit) 81 02
报告大小 (8) 75 08
报告数 (52) 95 34
输入 (Cnst,Var,Abs,NWrp,Lin,Pref,NNul,Bit) 81 03
使用页面(供应商定义 1)06 00 FF
报告编号 (33) 85 21
使用情况(供应商定义 1)09 01
报告大小 (8) 75 08
报告数 (63) 95 3F
输入 (Cnst,Var,Abs,NWrp,Lin,Pref,NNul,Bit) 81 03
报告编号 (129) 85 81
使用情况(供应商定义 2)09 02
报告大小 (8) 75 08
报告数 (63) 95 3F
输入 (Cnst,Var,Abs,NWrp,Lin,Pref,NNul,Bit) 81 03
报告编号 (1) 85 01
使用情况(供应商定义 3)09 03
报告大小 (8) 75 08
报告数 (63) 95 3F
输出 (Cnst,Var,Abs,NWrp,Lin,Pref,NNul,Vol,Bit) 91 83
报告编号 (16) 85 10
使用情况(供应商定义 4)09 04
报告大小 (8) 75 08
报告数 (63) 95 3F
输出 (Cnst,Var,Abs,NWrp,Lin,Pref,NNul,Vol,Bit) 91 83
报告编号 (128) 85 80
使用情况(供应商定义 5)09 05
报告大小 (8) 75 08
报告数 (63) 95 3F
输出 (Cnst,Var,Abs,NWrp,Lin,Pref,NNul,Vol,Bit) 91 83
报告编号 (130) 85 82
使用情况(供应商定义 6)09 06
报告大小 (8) 75 08
报告数 (63) 95 3F
输出 (Cnst,Var,Abs,NWrp,Lin,Pref,NNul,Vol,Bit) 91 83
结束收集 C0
python - 解释 HIDAPI python 输出
我想在 OS X 上使用 Python 从 USB HID 扫描仪读取字符串。下面的示例是我的起点,我已经能够为我的扫描仪定制代码:我已经能够执行命令:h.open () 成功并打印出制造商和产品字符串。扫描代码已通过扫描仪与 EVDEV 进行验证。
挑战在于解释返回的数据并将其映射回 ascii 字符串。
$ sudo python try.py
输出:
问题
我找不到好的例子(比如用 EVDEV 找到的例子)。任何指向等效项的链接都会非常有帮助。 在没有良好文档的情况下解释输出是一个挑战。 h.read() 返回一个列表
为什么 h.read() 选择 64?
d = h.read(64)
当 64 替换为 1,2,3...8 中的数字时,列表中的元素数相同。9 个或更多结果是 8 个元素的列表。
为什么变量 'd' 是 8 个元素的输出列表?(8 没有在任何地方指定)
print('read: "{}"'.format(d))
每个打印的输出列表代表什么?1个打字字符?
输出列表中的每一列代表什么\encode?
是否有已发布的表格将数字映射到键盘?
我期待回复:如果您有使用 HIDAPI(尤其是 Python)的经验,请在您的回答中说明这一点。进入双倍奖励回合以获得 HID 扫描仪体验