C# 中HIDlibrary的使用

C#上位机开发实战:使用HIDlibrary高效读写USB设备数据 在C#上位机开发中,与硬件设备通信是常见的需求,尤其是通过USB接口。HID(人机接口设备)协议作为操作系统识别键盘、鼠标、游戏手柄等输入设备的标准,为这类通信提供了基础框架。其原理在于定义了一套统一的数据格式和通信方式,使得主机能够识别并驱动各类HID设备。对于开发者而言,直接调用系统底层API进行设备操作较为繁琐,因此封装库的价值得以体现,它能简化开发流程,提升效率。在需要定制化通信、解析原始数据包或开发专用调试工具的应用场景下,这类技术尤为重要。本文聚焦于C#中一个广泛使用的库——HIDlibrary 阅读详情
AI摘要

本文介绍了HIDLibrary的使用方法,包括下载库、变量声明、初始化等步骤,并提供了发送信息、接收数据及USB插拔触发的示例代码。


前言


在PC与硬件通讯时常常需要用的USB通讯库。HIDLibrary就是个很好的选择

一、HIDLibrary是什么?

HIDLibrary是基于.Net 的一种使您能够枚举中的Hid兼容USB设备并与之通讯。该工具库是您能快速的读写USB数据。

二、使用步骤

1.下载并引用库

工具 ----NuGet包管理器----管理解决方案的NuGet程序包----浏览----搜索HidLibrary----安装

using HidLibrary;

2.变量声明

代码如下(示例):

private const int VendorId = 0x0483;
private const int ProductId = 0x5753;
private  HidDevice _device;

3.初始化

_device = HidDevices.Enumerate(VendorId, ProductId).FirstOrDefault();

if (_device != null)
{
    _device.OpenDevice();

    _device.Inserted += DeviceAttachedHandler;
    _device.Removed += DeviceRemovedHandler;

    _device.MonitorDeviceEvents = true;

   //var message = new byte[] { 0, 81, 80, 73, 71, 83, 183, 169, 13 };	
   
   //_device.Write(message);

    _device.ReadReport(OnReport);

    //_device.CloseDevice();
}
else
{
    Console.WriteLine("Could not find reader.");
    //Console.ReadKey();
}

4.发送信息

发送数据消息时,第一位bit需要发送0

bool isReady = _device.Write(new byte[] { 0X00,0XFA, 0XCD, 0X01, 0XF5 },1000);

5.数据接收

private void OnReport(HidReport report)
{
    if (!_device.IsConnected) { return; }

    var cardData = report.Data;

    Console.WriteLine(cardData.ToString());

    _device.ReadReport(OnReport);

}

6.USB插入触发

private void DeviceAttachedHandler()
{
    Console.WriteLine("Device attached.");
}

7.USB拔出触发

private void DeviceRemovedHandler()
{
    Console.WriteLine("Device removed.");
}

总结

将就的用用吧!

手把手教你用C#写一个HID设备调试助手(附完整源码和HidLibrary使用) 本文详细介绍了如何使用C#开发HID设备调试助手,包括HID协议解析、HidLibrary使用、设备枚举与连接、报告通信实战等核心内容。通过完整的源码示例和实战案例,帮助开发者快速掌握HID设备通信技术,适用于工业控制、医疗设备等多个领域。 阅读详情

相关推荐

C#上位机通过Windows库实现HID设备数据读取实战

在现代工业控制与智能设备开发中,上位机与下位机的稳定通信至关重要。HID(Human Interface Device)类设备凭借其无需安装驱动、即插即用和高兼容性的优势,已广泛应用于数据采集、医疗仪器和自动化测试等领域。相较于传统的串口通信(如),HID通过USB中断传输实现低延迟数据交互,并具备更高的安全性和系统集成度。本章将介绍基于C#与HIDLibrary库构建上位机通信系统的技术路径,阐明其在Windows平台下的实现机制与核心优势,为后续深入解析通信流程与数据处理奠定基础。

weixin_33531560的博客 1603

【亲测免费】 HidLibrary - 强大的 HID 设备访问库

HidLibrary 是一个开源的 C# 库,用于在 Windows、Linux 和 macOS 上访问硬件设备,尤其是那些遵循 HID(人类接口设备)协议的设备。通过这个库,开发者可以轻松地与 USB 控制器、游戏手柄、键盘等 HID 设备进行交互。 ## 为什么选择 HidLibrary? - **跨平台**:HidLibrary 支持 Windows、Linux 和 macOS 等多种操...

gitblog_00001的博客 2716

C#上位机与USB HID设备通信实战:免驱枚举与数据读写

HID(人机交互设备)是USB外设中一种免驱、双向通信的接口类型,鼠标、键盘、扫码枪、读卡器、USB继电器等设备均基于该协议工作。系统内核已内置HID类驱动,设备插入后即可被识别,无需额外安装驱动。对于上位机开发而言,HID链路短、协议清晰,非常适合小数据量、实时性要求高的工业场景。C#开发者可通过HidLibrary、WinRT API或P/Invoke三条路径接入HID设备,其中HidLibrary以封装完善、上手快捷成为桌面项目首选。从VID/PID枚举、多设备序列号区分,到输入输出报告与Report

weixin_34080951的博客 409

【亲测免费】 HidLibrary 使用教程

HidLibrary 是一个开源的 .NET 库,用于在 .NET 环境中枚举和与 HID 兼容的 USB 设备进行通信。该库提供了同步和异步的读写功能,以及设备插入和移除的通知。HidLibrary 支持 x86 和 x64 架构,适用于多种操作系统和 .NET 版本。 ## 项目快速启动 ### 1. 下载并引用库 首先,通过 NuGet 包管理器安装 HidLibrary: ```b...

gitblog_00039的博客 1885

C#开发USB HID上位机:避开UART思维陷阱的工程实践

USB HID是一种基于报告(Report)结构化通信的标准化人机交互协议,区别于传统UART串口的字节流传输与COM端口依赖;其核心原理是主机轮询+设备响应,通过Report Descriptor定义数据格式,由操作系统内建HID协议栈(如hidclass.sys)驱动,无需VCP虚拟串口。技术价值在于即插即用、免驱兼容、跨设备统一接口,广泛应用于工业传感器、智能温控面板、定制化USB外设等场景。本文聚焦C#在Windows平台对接标准HID设备的完整链路——从设备识别(VID/PID+Usage Pag

weixin_42116058的博客 363

C#实现USB通信完整项目实战与技术解析

简介:在IT领域,尤其是设备驱动与嵌入式系统开发中,USB通信是关键的技术环节。本文基于资源“C#USB通信.rar”,深入讲解如何使用C#语言实现与USB设备的高效通信。依托.NET框架及第三方库如HID for .NET和libusb,文章涵盖USB通信的核心概念与开发流程,包括设备枚举、端点读写、描述符解析及事件处理等。通过提供的可运行示例代码,开发者可快速掌握C#在USB通信中的实际应用,提升在工业控制、外设集成等场景下的开发能力。

weixin_28933797的博客 736

HidLibrary - .NET HID设备通信库详解

HidLibrary 是一个强大的开源 C# 库,专门用于在 .NET 应用程序中枚举和与 HID(人机接口设备)兼容的 USB 设备进行通信。该库提供了同步和异步读写功能,以及设备插入和移除的通知机制。 ## 核心特性 - **跨平台支持**:支持 x86 和 x64 架构 - **同步/异步操作**:同时提供同步和异步读写方法 - **设备监控**:实时监测设备的插入和移除事件 - **完

gitblog_00563的博客 1172

C#上位机开发:HID协议与USB设备通信完整指南

在工业自动化和数据采集场景中,USB设备通信需求无处不在。HID协议作为人机交互设备的通用标准,凭借免驱、即插即用等特性,成为扫码枪、RFID读卡器等设备与上位机通信的主流方式。理解HID设备枚举、报告读写、事件处理等原理,是开发稳定通信程序的基础。通过C#结合HidLibrary库,开发者可以高效实现设备识别、数据收发及热插拔处理,降低直接调用Windows API的复杂度。本文从工程实践出发,覆盖方案选型、关键代码实现、调试排错等环节,帮助开发者快速掌握HID通信的完整链路,提升和生产追溯系统等应用场景

weixin_34055787的博客 281

HidLibrary 项目推荐

**HidLibrary** 是一个开源项目,旨在帮助开发者通过 .NET 平台枚举和与 HID(Human Interface Device)兼容的 USB 设备进行通信。该项目主要使用 **C#** 编程语言开发,适用于 .NET 框架。 ## 2. 项目核心功能 HidLibrary 提供了以下核心功能: - **枚举 HID 设备**:能够列出系统中所有 HID 兼容的 USB 设备...

gitblog_07478的博客 486

HidLibrary:该库使您能够枚举 .NET 中的 Hid 兼容 USB 设备并与之通信

注意:此库的支持非常有限。 解决这么多设备和配置的问题几乎是不可能的。 社区可能会提供一些帮助,但您将主要靠自己。 如果您提交问题,请提供相关代码片段以及有关您的操作系统、.NET 版本和设备的详细信息。 欢迎和赞赏拉取请求。 隐藏图书馆 该库使您能够枚举 .NET 中的 Hid 兼容 USB 设备并与之通信。 它提供同步和异步读写功能以及插入和移除设备的通知。 这个库适用于 x86 和 x64。 安装 PM> Install-Package hidlibrary 开发商 贡献者 本杰明·韦格曼 jwelch222 托马斯·哈默 朱利安西伯特 乔治·哈恩 里克·范·利斯霍特 保罗·特兰登 尼尔·泰森 闯入者 布鲁诺·尤奇利 斯布莱克莫尔 JC 马雷克·罗斯科 比尔普雷斯科特 阿南斯·雷切拉 道具 感谢 JetBrains 为R#和dotTrace提供 OSS 许可证! 资

C# USB HID示例

该代码提供简单的获取HID设备,并选择相对应的HID设备进行连接,并接收和输入数据的一个简单案例。适合于对USB HID设备刚入门的学习。其中部分代码参考网友。

HidLibrary 项目安装和配置指南

### 项目基础介绍 HidLibrary 是一个开源的 .NET 库,旨在帮助开发者枚举和与 HID(Human Interface Device)兼容的 USB 设备进行通信。该库提供了同步和异步的读写功能,以及设备插入和移除的通知功能。HidLibrary 适用于 x86 和 x64 架构,支持多种操作系统。 ### 主要编程语言 HidLibrary 主要使用 C# 编程语言进行开发。 ...

gitblog_07479的博客 964

C# HID USB Driver / Library

通过下面简单的几句,就能用C#写HID了 new USBInterface(); Connect(); write(startByte); enableUsbBufferEvent(new System.EventHandler(myEventCacher)); Thread.Sleep(5); startRead(); … stopRead(); write(stopByte)

hid通信程序----c#

基于windows的HID设备读取以及对HID下位机传来的数据进行处理显示

HidLibrary-master

HidLibrary-master,封装好的USB通讯库,在目前环境下使用,尚未发现问题

C#USBHID完整例程

C#下USB的hid通信,例程中关于USB的hid类的通信,实现数据收发

usb hid 通信

c# 下收发usb消息,usb通信程序,大概流程和这篇博客写的差不多(https://www.cnblogs.com/xidongs/archive/2011/11/28/2266100.html)。 这个github上的库也很好,个人觉得用库更方便,地址(https://github.com/mikeobrien/HidLibrary)。 两者底层都是调用setupapi.dll,hid.d...

HETONGDE的博客 1099

不止于修改器:用Cheat Engine(CE)的Lua脚本和D3D Hook打造你的游戏辅助界面

本文深入探讨了Cheat Engine(CE)的高级功能,包括Lua脚本自动化和D3D Hook技术,帮助用户从基础内存扫描升级到开发具有专业图形界面的游戏辅助工具。通过实战示例和优化策略,展示了如何创建高效、稳定的游戏辅助系统,并打包为独立训练器。

weixin_28700411的博客 316
上一篇: WPF窗口置顶方法
下一篇: WPF中使用MVVM模型进行数据绑定
BeanGo
博客等级 码龄10年 931粉丝 167原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BeanGo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值