https://www.zer7.com/software/hidsharp
2.0 版允许您从任何 USB HID 输入设备读取和解析报告。您可以读取 USB 游戏手柄、体重秤以及任何您需要的东西。它通过提供完整的报告描述符和报告解析功能来实现这一点。据我所知,HIDSharp 是第一个可以做到这一点的无人驾驶跨平台库!当然,原始读写仍然是完全支持的。
1.5 及以下版本支持 COM,允许 VB6 和 MS Access 程序使用(当然需要安装 .NET Framework)。如果有需求我可能会为 HIDSharp 2.0 添加 COM 支持。
HIDSharp 在 MS Access 中与 Dymo Scale 一起连续使用了八年,在商业软件中与我开发的各种 USB HID 设备一起使用了七年,所以我知道它是可靠的。
HIDSharp 支持 Windows、MacOS 和 Linux (hidraw)。
HIDSharp 使用 Apache 开源许可证。
下载
版本 2.1.0(2019 年 5 月 4 日)(包括 C# 示例)
版本 2.0.8(2019 年 1 月 21 日)(包括 C# 示例)
版本 1.5(2013 年 5 月 18 日)(包括 C# 示例)
版本 1.4.0.1(4 月 21 日) ,2013)(包括 C# 示例)
版本 1.3(2 月2013 年 7 月 23 日)(包括 C# 示例)
版本 1.1(2012 年 7 月 28 日)(包括 C# 和 VB6 示例)
版本 1.0(2010 年 8 月 28 日)(包括 C# 和 VB6 示例)
NuGet 包“HidSharp”
在线文档
版本历史
2.1.0(2019 年 5 月 4 日):
在 Windows 上添加了实验性蓝牙低功耗支持。库的这一部分将来可能会发生变化。让我知道它对您有何作用。
修复了排他层中的竞争条件。
修复了 Linux 上 .NET Core 上出现的线程错误。
使用 Windows 有缺陷的 usbser.sys 驱动程序的串行设备现在与 HIDSharp 兼容,包括连接和断开连接的检测。
2.0.8(2019 年 1 月 21 日):
在 SerialStream 中添加了对七个数据位和偶/奇奇偶校验的支持。
修复了 MacOS 上导致没有序列号的 HID 设备无法显示的错误。
2.0.6(2018 年 12 月 27 日):
在 SerialStream 中添加了对两个停止位的支持。
2.0.5(2018 年 10 月 15 日):
HIDSharp 现在与 Linux 上的 .NET Core 兼容。
修复了 MacOS 上与垃圾收集器相关的崩溃。
2.0.2(2018 年 5 月 5 日):
修复了 Linux 上的一个错误,该错误导致输出报告在不使用报告 ID 的设备上发送不正确。
DeviceList GetSerialDeviceOrNull() 现在将匹配文件系统名称(COM1、/dev/ttyUSB 等)以及 DevicePath。
2.0.1(2018 年 4 月 11 日):
修复了 Windows 上的一个错误,在某些情况下,无法重建设备的报告描述符可能会导致该设备根本无法打开。
HIDSharp 现在包含适用于 .NET Framework 3.5+ 和 .NET Standard 2.0+ 的程序集。
2.0(2018 年 4 月 9 日):
极大改进了报告描述符解析功能。
您现在可以在所有平台上解码(几乎)任何 HID 设备的报告!
添加了对 MacOS 版本 10.8 及更高版本的 GetReportDescriptor 支持。
添加了 Windows 上的 GetReportDescriptor 支持。此描述符是重建的,因为 Windows 不提供直接访问此信息的方法。
在 DeviceList 上添加了 AreDriversBeingInstalled 属性。 (Windows 有时会关闭安装驱动程序时打开的复合 HID 设备流。)
在 DeviceList 上添加了 Changed 事件,用于检测设备连接和断开连接。
向设备添加了 NativeImplementation 属性。
添加了排他性层,具有请求中断的能力。这对于进程间协作很有用,但必须手动启用。
添加了对串行端口的支持。这在 Linux 上仍然存在一些问题,但在 MacOS 上它比 Mono 本机实现更好。
添加了对 Linux libudev.so.1 的支持。
公开 GetFileSystemName()。这可用于在 Linux 上检查 hidraw 权限。
修复了 MacOS 上不使用报告 ID 的设备的最大报告长度。
修复了设备断开连接时 Linux 和 MacOS 不会在 HID Read() 上抛出 IOException 的问题。
修复了最新 Mono 版本上的 Linux 支持。
修复了 32 位 Linux 支持 (Raspberry Pi)。
GetFeature() 和 SetFeature() 现在可以在 Linux 上运行。
HIDSharp 现在使用 Apache 开源许可证。
感谢对新功能的反馈。使用这个新版本需要修改一些代码。
1.5(2013 年 5 月 18 日):
向 HidDevice 添加了 DevicePath 属性。
这对于区分具有相同 VID、PID 等的设备很有用。
1.4.0.1(2013 年 4 月 21 日):
将缺少的 XML 文档文件添加到存档中。
1.4(2013 年 4 月 20 日):
记录最重要的类。
修复了 64 位 Windows 上的输出报告问题。
修复了 Windows 上的超时错误。
并行设备枚举。
重新排序平台检测以防止在 Windows 上植入二进制文件。
1.3(2013 年 2 月 23 日):
修复了 Linux libudev 引用,使其不需要开发人员包符号链接。
1.2(2012 年 10 月 16 日):
修复了 MacOS 支持。
1.1(2012 年 7 月 28 日):
添加了实验性 MacOS 和 Linux 支持。
添加了实验报告描述符解析。
1.0(2010 年 8 月 28 日):
初始版本。