问题标签 [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.
c - 如何检测蓝牙 HID 设备是否断开连接?
我正在使用CreateFile
打开系统上蓝牙 HID 设备的异步文件句柄。然后设备将开始流式传输数据,我用它ReadFile
来从设备读取数据。问题是,如果蓝牙连接断开,ReadFile
只是继续提供ERROR_IO_PENDING
而不是报告失败。
我不能依赖超时,因为如果没有要报告的内容,设备不会发送任何数据。如果连接仍然存在,我不希望它超时,但是暂时没有数据。
尽管如此,蓝牙管理器(Windows 和东芝)确实会立即注意到连接丢失。所以这个信息在系统内部的某个地方;它只是没有通过ReadFile
。
我有可用的:
- 设备的文件句柄(
HANDLE
值), - 用于打开该句柄的路径(但我不想再次尝试打开它,创建一个新连接......)
OVERLAPPED
用于异步的结构ReadFile
。
我不确定此问题是特定于蓝牙、特定于 HID 还是一般设备都会出现。有什么办法我可以
- get
ReadFile
在连接断开时返回错误,或者 - 在超时时快速检测
ReadFile
连接是否仍然存在(它需要快速,因为ReadFile
每秒至少调用 100 次),或者 - 以另一种我没有想到的方式解决这个问题?
objective-c - How to use the USB/HID port with objective-c under a Mac environment?
I am having big trouble to communicate through USB, from a Mac to an external HID device. The hardware has been proven fine when running under the Windows XP platform, but I can't find a GOOD exemple of programming the HID with Cocoa / objective-C. Several exemples are available in the Apple center, but they are either poorly documented, or too much complex ( in term of software with mixed objective-C and C, making the file difficult to understand), or not up to date. Well, I must say that I am more an hardware electronic engineer than a software specialist ! So far, I can enumerate the USB port, identify my device using the HID Apple's tools ( I read PID and VID ), but I miserably fail to send a report and/or to read a report back from the external device. I would certainelly appreciate if one of you has used the new Apple's HID API and can share some know how. On the other hand, is there any "USB spy" tool operating with the Apple's OSX ? Thank you so much for your help
Michael
c# - 使用带 HiD 的 DeviceIoControl
我正在尝试在 C# (V studio 2008) 中写入 HiD 驱动程序,并决定使用DeviceIoContol函数来访问设备。然而,我对用什么代替这个函数的第二个参数感到困惑,拖网并没有产生任何有用或解释性的东西,所以任何想法都会受到赞赏。
c# - 将手机注册为 HID(鼠标)
给定带有蓝牙的 Windows Mobile 6.1 智能手机,我想将其注册为鼠标。
基本上我现在做的:
- 使用 Guid {00001124-0000-1000-8000-00805f9b34fb} 在设备上启动蓝牙服务
- 从台式电脑连接到设备。
结果:
- 所有服务都检测到设备,包括 HID 服务,但没有驱动程序
当前解决方法:
- 连接蓝牙服务并读取数据流的桌面应用程序
所需的解决方案:
- 将服务注册为蓝牙鼠标并从手机发送鼠标事件。
问:
- 如何获得所需的解决方案?
- 我必须为它写一个inf文件吗?
- 我必须向蓝牙服务添加额外信息吗?
- 如何通过此服务发送鼠标点击?
目前我正在使用 .NETCF 3.5 和来自 .NET CF SDK 的 Microsoft.WindowsMobile.SharedSource.Bluetooth 程序集在 C# 中开发,但如果需要,在 C++ 中工作是没有问题的。
c - 如何在 os x 上模拟低级按键?
我正在尝试以编程方式生成键盘 keydown 和 keyup 事件。我目前正在使用 CGPostKeyboardEvent 来执行此操作,但我正在寻找一种在较低级别执行此操作的方法。我查看了 DDHidLib,但无法找到创建假事件的方法。任何人都可以帮忙吗?
更新:感谢weichsel的建议,我现在正在使用以下内容创建一个按键事件:
我在这里找到的。
但是,我的问题仍然存在,所以我会详细说明一下。我想发送按键以实现DDHidLib 的键捕获功能的应用程序(第 3 方):
并且永远不会使用当前方法调用它。我的猜测是,使用 CGEventCreateKeyboardEvent 模拟的按键级别太高,无法被 ddhidKeyboard:keyDown 捕获。所以我要做的是在足够低的级别创建keydown事件,以便ddhidKeyboard:keyDown可以识别它。
usb - C8051F320 上的 HID 输入报告队列
似乎一旦为主机准备好数据(例如,当我使用 WriteFile 向 HID 发送命令时,我告诉 HID 返还一些数据,例如端口值)并且数据包就绪位是设置,主机在调用 ReadFile 之前读取它(由另一个 USB 中断确认)。ReadFile 稍后用于将此数据放入主机上的缓冲区。这是它应该发生的方式吗?我本来希望 ReadFile 调用会导致 in 中断。
所以这是我的问题:我有一个可以很好地协同工作的 GUI 和 HID。HID 可以对另一个 IC 执行 I2C,GUI 可以告诉 HID 执行 I2C 就好了。启动时,GUI 从 HID 读取数据并获得正确的值(例如 0x49)。打开第二个 GUI 到同一个 HID 会从 HID 读取相同的初始数据并获得正确的值(例如,0x49;它应该与第一个 GUI 的读取相同)。现在,如果我转到第一个 GUI 并进行 I2C 读取,回读值为 0x49,这是第二个 GUI 从 HID 请求的值。似乎 HID 将此值放在连接到它的所有设备的 in 端点上。因此,第一个 GUI 错误地认为这是正确的值。
根据 Jan Axelson 的 HID 常见问题解答,“HID 的每个打开句柄都有自己的报告队列。设备发送的每个报告都会进入所有队列,因此多个应用程序可以读取相同的报告。” 我相信这是我的问题。如何在第一个 GUI 发出请求之前清除它并清除端点,以便正确的值(HID 确实发送每个调试器)通过?我尝试了 HidD_FlushQueue,但它一直返回 False(不工作;不断收到“句柄无效”错误,尽管句柄在每个 WriteFile/ReadFile 成功的情况下使用相同的句柄都是有效的)。有任何想法吗?
谢谢!
c++ - 在 C++ 中确定 HID 接口为 POS 或键盘
我有一些可以处理各种 USB 接口(COMM 仿真、HID 键盘、HID POS 等)的条形码扫描仪设备。问题是,虽然我可以判断设备是否处于 HID 模式,但我需要能够确定它是 HID 键盘还是 HID POS。
有没有办法使用 Win32 C++ 来确定这一点,最好是使用内置的 Windows HID 库(hidsdi.h)?
c# - 使用 C# 在 Windows CE 6.0 中使用 USB HID 设备
我正在研究一个嵌入式Windows CE项目,并且有兴趣通过其 USB 主机端口之一访问 USB HID 设备。我真正需要阅读的是原始 HID 规范数据包。
在 Windows 计算机上,我有一个使用 hid.dll 的工作程序,但据我研究,在 Windows CE 上没有任何等效程序。我知道有usbhid.dll文件,但我不确定它是否适用于这种情况。我不想编写内核级驱动程序,因为我想用 C# 编写代码。如何在 Windows CE 上使用 HID 设备?
windows - 来自 GetRawInputData 的 HID 设备信息结构
我在哪里可以获得 HID 设备的结构?
例如:
通过分析原始流,我可以找出按钮、开关和模拟数据在哪里。有没有办法从 Windows 询问这些信息。
我的主要目标是基本上得到结构:
我找到的唯一解决方案是HID Descriptors
. 但我不确定如何使用它们。阅读文档后,我感觉就像撞到了一堵砖墙。是否有一个很好的例子如何使用它们或更好地描述它们的书。(或者没有描述符的更简单的方法)
我发现HidP_GetButtons
但HidP_GetUsages
仍然不知道如何提取结构(如上所述)。
c# - 编程通用遥控器
我有一个遥控器 RM200,我想对其进行编程,以便我可以检测按键并将它们发送到应用程序。
现在,我可以在 Windows 中使用哪个 API?
隐藏USB API?IRDA API?
我很困惑。
我的遥控器是 IRDA 遥控器,但有时我读到我可以使用 HID USB API 对这个设备进行编程????