首页 > 编程语言 >HIDSharp 是一个用于 USB HID 设备的多平台 C# 库

HIDSharp 是一个用于 USB HID 设备的多平台 C# 库

时间:2024-12-08 16:10:20浏览次数:2  
标签:MacOS USB C# Windows 添加 HID HIDSharp Linux 2.0

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 日):
初始版本。

标签:MacOS,USB,C#,Windows,添加,HID,HIDSharp,Linux,2.0
From: https://www.cnblogs.com/firespeed/p/18593477

相关文章

  • spoil、decompose、decay和rot的区别
    spoil是食物变质:keepthehamfrom spoiling(让火腿不要变质)。变质不等同于腐败,食物馊了就是变质了,但是馊了的食物不见得就长出霉菌。decompose表示有机体腐败时,等同于rot。rot是鲜活有机体因为细菌或真菌的影响,分解,失去生命力的过程:fruitwasleftto rotinwarehouses(仓......
  • MC官启使用软链接改变文件位置
    MC官启使用软链接改变文件位置某些软件由于各种各样的原因会强制将文件安装到c盘,而c盘作为系统盘过多的文件会导致储存空间变小,但是过小的存储空间会导致系统运行缓慢甚至崩溃,所以是否有办法使得强制安装到c盘的文件能够挪到别的位置?显然是有解决方法的,接下来我为大家介绍!mklin......
  • TINYMCE实现WORD图片自动转存
    编辑器:TinyMCE需求:复制粘贴word内容图片,图文混排,图片转存前端框架:vue,vue2-cli,vue3-cli后端:java,springboot,asp.net,php,asp要求:开源,免费,今天早上又有网友加我微信,也是想了解一下这块的技术和方案。主要是这位网友也遇到了在富文本编辑器上粘贴word图片自动上传的......
  • 如何复制WORD的图文到CKEDITOR中自动上传
    编辑器:ckeditor前端:vue2,vue3.vue-cli后端:asp,jsp,php,asp.net,.netcore功能:复制粘贴word内容图片昨天晚上论坛里面的一个网友给我发私信,想了解一下如何解决word内容图片复制粘贴的问题,主要是想一起探讨一下这块的技术问题,这位老哥说他也是刚开始学习,很多知识都不太懂,......
  • 浅谈C/C++内存管理
    目录一、C语言和C++内存管理方式        1、C语言和C++内存管理方式区别     2、【new】和【delete】的好处二、使用【new】来分配内存三、使用【new】来创建动态数组    1、创建动态数组        2、使用动态数组 四、使用【delete......
  • AC自动机学习笔记
    AC自动机是以trie结构为基础,结合KMP算法思想构建的,用于解决多模式串匹配问题。它的构建方式分为以下几步:\(1.\)建立trie树\(2.\)构建失配(fail)指针其中fail指针指向的是当前节点的状态的后缀所对应的状态。这里明确一下,trie树中的每个节点表示的是一个状态,及某个模式串的......
  • 【Microi吾码】开源力量赋能低代码创新,重塑软件开发生态格局
    我的个人主页文章专栏:Microi吾码一、引言在当今数字化浪潮汹涌澎湃的时代,软件开发的需求呈现出爆发式增长。企业为了在激烈的市场竞争中脱颖而出,不断寻求创新的解决方案以加速数字化转型。传统的软件开发方式往往面临着开发周期长、技术门槛高、成本高昂等诸多挑战。而......
  • Offline Regularised Reinforcement Learning for Large Language Models Alignment
    本文是LLM系列文章,针对《OfflineRegularisedReinforcementLearningforLargeLanguageModelsAlignment》的翻译。用于大型语言模型对齐的离线正则化强化学习摘要1引言2背景3直接奖励优化4实验5相关工作6结论和局限性摘要无论是通过人类反馈的强......
  • Analyzing Large language models chatbots: An experimental approach using a proba
    本文是LLM系列文章,针对《AnalyzingLargelanguagemodelschatbots:Anexperimentalapproachusingaprobabilitytest》的翻译。分析大型语言模型聊天机器人:使用概率测试的实验方法摘要1引言2理论和相关工作3方法4结果和讨论5最后的考虑摘要本研究......
  • ORCA避障源码笔记
    参考资料https://gamma.cs.unc.edu/ORCA/publications/ORCA.pdfhttps://gamma.cs.unc.edu/RVO2/数学知识1.向量的点乘dotProduct,计算方法:1.  2.,作用:点积如果为负,则a,b形成的角为钝角;如果为零,那么a,b垂直;如果为正,那么a,b形成的角为锐角2.向量a,向量b,det(a,b)表示行列式的......