问题标签 [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 投票
2 回答
16454 浏览

usb - 从简单的 USB HID 磁卡读卡器中获取轨道数据的最简单方法是什么?

我需要从磁卡上获取 Track 1 和 Track 2 数据,然后通过网络将它们发送到等待的服务器。从 USB HID 磁卡读卡器获取轨道数据的简单方法是什么?

如果有帮助,我有一个 MAGTEK 迷你刷卡式磁条阅读器(部件号 21040140)

我与操作系统无关——Windows、Mac 或 Linux 的解决方案会很棒。最好不要.NET,但如果这是最简单的方法,我会选择它。

大家怎么看?

谢谢!

0 投票
2 回答
3225 浏览

c++ - HID 上的 Readfile 有时会给出错误的值

我有 WiiMote 连接

我有一个线程总是读取这个句柄来获取新消息:

我的写功能:

控制台输出:

coutHex 始终以十六进制格式打印接收到的数据。有时我得到正确的数据,但有时数组只加载了 00 00 00 00 00 00 00 00 00 ... 00 00

我经历过,当我进行写入时,我总是会返回一个报告,其中只包含 00,这出现在我的写入函数在控制台输出上写入之前。

我很绝望,所以我尝试了这个:

我不知道为什么,但现在它可以工作了(不好,因为它有 500 毫秒的延迟)。

你怎么看?也许 ReadFile 和 WriteFile 不能同时工作?

这是什么原因造成的?我错过了什么?

0 投票
5 回答
21759 浏览

linux - 是否可以使计算机充当蓝牙 HID 设备?

是否可以使计算机充当蓝牙 HID 设备?也就是说,给定一台插入了标准 USB 键盘的本地机器,其他设备可以发现这台机器并将其用作蓝牙键盘。

我想创建一个 linux 或 OS X 应用程序(或使用现有的应用程序,虽然我没有找到),它可以像上面描述的那样运行,但我不确定从哪里开始,或者是否有可能。

所以:

  • 我描述的可能吗?
  • 是否有任何现有的应用程序可以满足我的描述?
  • 如果没有应用程序已经存在(我假设不存在),是否有蓝牙库或绑定会有所帮助?(我很习惯使用当今大多数流行的语言,所以我更喜欢最直接适合该任务的库,只要它在 linux 或 OS X 中可用。)
  • 如果上述任何一项都失败,蓝牙规格看起来非常密集。是否有适用于手头问题的具体指南或其他起点可供我阅读?

我意识到这样的应用程序很可能需要窃取正常的键盘输入,可能会提供一些类似 KVM 的热键,用于在向主机操作系统提供输入和通过蓝牙将输入发送到连接的设备之间进行切换,但我正在考虑这个问题不在这个问题的范围内。

0 投票
1 回答
3115 浏览

keyboard - USB 键盘协议

我正在尝试构建 HID 键盘。我让我的 STM32 MCU 识别为键盘,但由于某种原因,当我尝试在中断模式下使用端点 1 发送 HID 报告(8 个字节)时。主机端没有得到数据(按下键)。我需要使用标准方法 Get_Report 吗?

我还在 AT90USB1287 上尝试了另一种实现。它运行良好,但出于某种奇怪的原因,我必须将端点设置为 3 才能使其正常工作。

我想知道 USB HID 键盘协议在获取数据时是否只查看端点 3?

0 投票
3 回答
9399 浏览

android - 如何与蓝牙键盘通话?

我编写了一个连接到蓝牙键盘的 Android 应用程序。它通过 BT 套接字连接到键盘并获取套接字的输入流。

接下来我尝试读取输入流,但它说没有可用的字节。

或者

异常说:软件导致连接中止

如果我尝试写入流,我会得到另一个异常:传输端点未连接。

可能会发生两件事之一。

  1. 我的第一个担心是键盘上有 HID 协议,在我说出正确的咒语之前,它不会泄露它的秘密。那是对的吗?还是应该由BT套接字堆栈自动处理?套接字流似乎是标准的串行流,我不确定这是否正确。

  2. 我的第二个担心是,由于这是 Galaxy Tab,我的问题可能只是操作系统的特定部分已被三星删除(但我仍会从套接字连接获得有效的输入流吗?)。据广泛报道,尽管 BT 文件传输工作正常,但美国版 Tab 根本不会使用标准的 Android BT 实用程序连接到任何 BT HID。

我想第三种可能性是我只是在击键发生时错过了它们。我不知道 Java 对来自 HID 的 BT 数据做了多少缓冲,但如果建立了套接字连接,数据应该出现在输入流中,不是吗?

我不愿意在这方面投入更多的时间,以防我完全错误地处理它(参见#1),或者它注定要失败(参见#2)。

0 投票
3 回答
6476 浏览

c - 使用 Bluez 的代码示例 HID 客户端

我正在拼命寻找一些描述如何使用 Bluez 实现 HID 客户端的 C 示例源代码。更具体地说,我想知道如何编写一个通过蓝牙将键盘输入发送到另一个 Linux 系统的应用程序。(真的,接收器运行 Linux/Bluez 的事实并不重要。)

-干杯

0 投票
1 回答
2873 浏览

hid - PIC24 固件引导加载程序不启动加载的程序

我知道这可能不是解决这个问题的最佳地点,但我尝试了 Microchip 论坛,但尚未得到回复。我正在努力让一个 HID 引导加载程序项目在我使用 PIC24FJ64GB002 构建的原型板上工作。我修改了示例 HID Bootloader 项目以与我的板一起使用,我修改了示例 HID 鼠标项目以也与我的板一起使用。当我使用引导加载程序代码对设备进行编程时,它运行良好,Microchip 引导加载程序 Windows 程序找到该设备并显示“已连接设备。”。但是当我尝试将鼠标程序的十六进制文件加载到我的设备上时,它说它成功完成但鼠标程序永远不会运行。我不确定我是否使用了正确的链接器脚本。

0 投票
1 回答
626 浏览

windows - 从 Windows 7 服务(会话 0)读取 HID 设备时出现问题

我在 Windows 7 的 Session 0 服务下从 HID 设备读取时出现问题。在普通桌面用户下,我可以正常读取设备。但是,当我尝试使用会话 0 下的重叠 I/O 从中读取时,WaitForSingleObject() 总是返回 WAIT_TIMEOUT,并且 ReadFile 的缓冲区从不包含任何有效数据。这对我来说似乎是一个 Session 0 隔离问题,但我找不到任何关于如何解决这个问题的信息。在会话 0 下从 HID 设备读取是否不起作用?

谢谢。

0 投票
2 回答
2937 浏览

c# - 如何从软件中捕获精确的 USB-HID 设备交互并在我自己的代码中重新实现

我正在尝试使用一些 USB HID 设备。
我有可以与设备交互的专有软件(来自设备供应商)。但我需要自己写一个。
在嗅探器工具的帮助下,我捕获了主机和设备之间的流量。这个工具是BusDog
然后我能够通过 WriteFile 使用从 CreateFile 获得的设备句柄重现相同的流量(对于从 setupapi.dll API 获得的路径)。但是设备不会对我的命令做出反应(“请求”,因为它们在 USB/HID 世界中被称为)。

然后我使用了另一个工具——HHD Device Monitoring Studio。该工具不仅显示“中断传输”,还显示各种传输。我可以看到以下日志:

我的问题是如何在我自己的代码中重新实现这种转移?以及如何将这些东西解析为适当函数的参数(是 DeviceIoControl?)

ps 我用的是C#,其实没多大关系,C/C++都能看懂。

0 投票
1 回答
1577 浏览

usb - 什么是 USB 条形码数据结构?

USB条码有特定的数据格式???

示例 Keybord 数据格式(来自键盘的数据)为 8 个字节(修饰符、保留、keycode1..keycode6)。