问题标签 [usb-hid]

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.

0 投票
0 回答
262 浏览

linux - Linux 是否支持 USB 1.1 字符设备(如键盘)的运行时自动挂起功能?

我不得不调试我在罗技无线 USB 键盘中遇到的键盘延迟问题,我发现它具有运行时自动挂起功能,导致键盘在 2 秒后挂起。我的 usb 2.0 USB 键盘的规格是

此无线键盘已禁用 USB 自动挂起,即。/sys/devices/pci0000:00/0000:00:14.0/usb3/power/control 开启,这意味着自动挂起被禁用。

但是具有 USB 自动挂起功能的键盘是 USB 2.0 键盘,其设备描述符是

我只想知道 USB 1.1 协议是否支持 USB 运行时自动挂起?如果它支持,我在哪里可以找到内核中的代码,上面写着运行时自动挂起适用于基于其协议版本的 USB 设备。提前致谢。

0 投票
1 回答
330 浏览

linux - TIAM57xx 上 Linux 中的 USB HID 小工具“g_hid”

我想测试 linux usb HID 小工具“g_hid”模块。但是在插入它时会出现“没有这样的设备”的错误。参考 Linux 文档 http://elixir.free-electrons.com/linux/v4.13.11/source/Documentation/usb/gadget_hid.txt后,我​​知道了我们需要在平台代码中添加的以下代码

我应该在Linux源代码中的哪里添加上述代码?我正在使用 TI-AM57xx 板。

0 投票
0 回答
1913 浏览

winapi - 如何在后台进程中读取条码扫描仪输入?

我正在使用连接到 Windows PC 的条形码扫描仪。它被配置为 USB HID 设备,是此扫描仪工作最可靠的模式。我开发了一些软件来注册它的输入。问题是我想让一些程序在后台运行并从条形码扫描仪截取数据并通过网络发送获得的数据。我检查了一些类似的解决方案,但似乎人们大多使用背景窗口。

在不知道 VID&PID 的情况下读取 USB HID 条形码扫描仪输入- 这是一个类似的问题,但答案描述了 Java GUI 表单 https://stackoverflow.com/a/14106511的 Swing KeyListener 子- 也指向类似的想法。

这是一个内部使用的应用程序,所以我什至可以手动指定设备的 VID 和 PID。

有没有办法在没有 GUI 窗口的情况下读取和拦截来自条形码扫描仪的输入?

0 投票
1 回答
535 浏览

usb - 从 GNU Octave 中与 USB HID 设备对话

我需要从 GNU Octave 中控制测量仪器。该仪器有一个 USB HID 接口。我只需要读取或更改仪器的设置。这与从仪器获取测量数据无关。

在 GNU Octave 中有哪些选项可以做到这一点,它们是如何工作的?

0 投票
2 回答
869 浏览

rust - 如何使用 ioctl + nix 宏来获取可变大小的缓冲区

这与如何使用nix的ioctl有关?但这不是同一个问题。

我想检索一个可变大小的缓冲区。还有一个ioctl告诉我我需要读取 X 个字节。C 标头也告诉我以下内容:

我通过以下方式定义宏:

后来打电话:

这样做的时候,desc_raw全是零。我本来希望size根据结构定义包含前 4 个字节。

替代方案似乎也不起作用

在这两种情况下,我都尝试desc_raw使用 0xFF 进行初始化,并且在调用之后,它似乎没有受到影响。

我是否ioctl_read_buf错误地使用了宏?

0 投票
1 回答
855 浏览

android - Android USB - 了解 controlTransfer 方法

我即将开始一个使用 USB HID 设备的新项目。我知道要向 HID 设备发送命令,您使用以下方法:

虽然我很确定 , , 和 是什么,但requestType我不清楚,和. 这些参数有什么作用,我将传递什么来发送我的命令?bufferlengthtimeoutrequestvalueindex

例如,如果我要在具有指定设置速度命令的跑步机上设置速度,我会通过什么?我得到的文件对此并不清楚。

0 投票
1 回答
288 浏览

python - 将串行从 Raspberry 传递到 Arduino USB HID

我正在尝试将数据从 RPi 上的 tkinter 应用程序传递到设置为 USB HID 设备的 Arduino Leonardo,然后使用 arduino 从 arduino 传递到计算机keyboard.write(),但并非所有数据都最终到达接收计算机。

我在 Pi 上运行了 tkinter 应用程序,Pi 连接到称重传感器和记录包裹重量和尺寸的超声波传感器。这些值放置在 tkinter 树视图中。这一切都很好。我已经通过串行(GPIO)将 Pi 连接到 Arduino Leonardo,arduino 被设置为 USB HID 设备。我希望将 pi 上的树视图中的值传递给 arduino,然后通过(USB HID)传递给连接的计算机。我几乎已经完成了这项工作,但并非所有数据都通过了,它会在几个字符后停止。我需要将 TAB 和 INSERT 传递给接收计算机,所以我从 Raspberry 发送“T”和“I”字符串,然后在 arduino 上将其“转换”为 HEX 值。

串行和 USB HID 对我来说都是新的,所以我不确定我是否正确设置了它……有什么想法吗?

这是在 Raspberry Pi 上运行的代码:

这是arduino上的循环:

0 投票
1 回答
503 浏览

java - 如何处理没有传出端点的 USB-HID 设备?

我一直在为需要与许多设备通信的 Android 插件开发 USB-HID Java,并且我使用 bulkTransfer() 方法取得了大部分成功。

直到我遇到一个没有任何传出端点的硬件设备。这个特定的接口有 2 个接口,每个接口有 1 个端点。两者都是传入的,因此无法使用 bulkTransfer() 向它发送命令。

我的问题:

1) 是否可以使用 controlTransfer() 方法向设备发送相同的命令?

2) 我可以使用传递给 bulkTransfer() 的相同字节数组吗?

3)如果以上都为真,那么value和index参数对controlTransfer()的作用是什么:

https://developer.android.com/reference/android/hardware/usb/UsbDeviceConnection.html#controlTransfer(int,%2520int,%2520int,%2520int,%2520byte%5B%5D,%2520int,%2520int)

我看了看: controlTransfer 和 bulkTransfer 有什么不同?

但它并没有真正回答我的主要问题。

0 投票
2 回答
621 浏览

usb - 仅基于 DESCRIPTOR HID 报告访问 USB 设备数据

我有一个带 USB 的数字声级计(声压计)GM1356。有一些软件可以在 Windows 上处理它,但是我没有 CD,而且它在 Internet 上不可用。我想要做的是读取它关于 Linux 上当前噪音水平的数据。

我已经找到了一个库,它允许我用我知道的语言(ruby、libusb)来执行此操作。在下一步中,我安装了wireshark 来检查它发送给电脑的内容。它不会发送太多。我发现的最有趣的数据包是DESCRIPTOR HID Report. 我想知道下一步应该采取哪些步骤来读取我感兴趣的数据。我如何确定我应该发送哪些请求来获取它?

0 投票
2 回答
1408 浏览

bluetooth - Xbox One S 无线控制器可能无效的 HID 描述符

我一直在尝试使用Bluekitchen 实现的 BTStack通过经典蓝牙将我的 ESP-32 微控制器连接到 XBox One S 无线控制器。我设法连接了两个设备(以 ESP-32 作为主机)并且可以从 ESP-32 上的控制器读取所有值。我现在正在尝试研究如何向控制器发送有效报告。控制器在连接时报告的描述符是这样的:

当我通过这个翻译器运行这个转储时,我得到了一个可读的输出,它包含在问题的末尾,因为它很长。此处仅列出 HID 描述符的输出报告格式:

我对 HID 标准的理解表明描述符的这一部分是无效的,因为Usage (0x70)后面跟着Report Count (4),我用来调试为什么这不起作用的 btstack 解析器然后必须尝试将 4 个字节与单个用法匹配并且据我所知,无法做到这一点。目前,我尝试发送给控制器(以及在我调试时发送给解析器)的报告是0x03, 0xF0, 0x64, 0x64, 0x64, 0x64, 0xFF, 0x10, 0x05,其中0x03表示报告 ID,以下值表示我发送以控制振动电机的参数。这 4 个0x64值是应该映射到 4 个用法的 4 个字节,但是0x70根据 HID 描述符仅对应于 1 个用法。目前,解析器在找到第一个0x64并声称已完成后停止。

我认为这个 HID 描述符无效是错误的吗?如果我是,有谁知道我应该发送什么报告来匹配这个 HID 描述符模板。对不起这个问题的混乱/长度。

在此先感谢,理查德

完全可读的 HID 描述符输出: