c#_HidUsb设备通信

baidu搜索c# HidUsb都是大同小异案例,而且拿下来基本不能用。大都是围绕public static extern int CreateFile(省略众多参数..);  发现没有,copy下来测试基本都是用不了的。

原因很简单:windows不允许你用程序随便就去访问硬件设备。所以在此把之前做过的基于C#开发的读写HidUsb设备的项目整理成一个简单的小案例,分享给大家,开发环境VS2010。

该案例重点在public static extern SafeFileHandle CreateFile(string lpFileName, uint dwDesiredAccess, int dwShareMode, IntPtr lpSecurityAttributes, int dwCreationDisposition, int dwFlagsAndAttributes, int hTemplateFile); 看着貌似也是用到CreateFile这个函数,其实并不然,有木有注意到"SafeFileHandle",这就是重点! 只有这样windows才允许你的程序访问外接hidusb设备。

当然具体如何运用这个函数现在已经不是您应该关心的了,因为我已经为您把它封装成一个类,您只要调用相应的方法就OK.

例:
第一步:获取HidUsb设备信息
List<string> slist = new List<string>();
UsbHidDevice usbhid = new UsbHidDevice();
usbhid.GetDeviceList(ref slist); //HidUsb设备信息包含在List数据集中

当获取到HidUsb设备信息为:\\?\hid#vid_0e2c&pid_0112#6&1b44c403&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
那么: vid为0e2c, pid为:0112


第二步://创建一个HidUsb设备访问实例
UsbHidDevice Device = new UsbHidDevice(vid, pid);
//连接HidUsb设备
Boolean connBool = Device.Connect();


第三步://实现数据接收事件
Device.DataReceived += new UsbHidDevice.DataReceivedDelegate(Device_DataReceived);
//当HidUsb设备返回信息时触发此事件
void Device_DataReceived(byte[] data){   }


第四步://向Hid设备发送数据"0xa0 00 0x12 0x9 0x22"
string txt = "0xa0 00 0x12 0x9 0x22";
//把数据转换为字节数组
byte[] data = ConvertHelper.StringToByte(txt2);
byte bt = 0;
CommandMessage cmdMsg = new CommandMessage(bt, data);
Boolean sbool = Device.SendMessage(cmdMsg); //发送数据
Device.Dispose(); //释放所有资源

 

资源包:https://download.csdn.net/download/u010465417/10879988

  • 0
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
赋所有源代码,开发工具vs2010 framework3.5 baidu搜索c# HidUsb都是大同小异案例,而且拿下来基本不能用。大都是围绕public static extern int CreateFile(省略众多参数..);发现没有,copy下来测试基本都是用不了的。 原因很简单:windows不允许你用程序随便就去访问硬件设备。所以在此把之前做过的基于C#开发读写HidUsb设备的项目整理成一个简单的小案例,分享给大家,开发环境VS2010。 该案例重点在public static extern SafeFileHandle CreateFile(string lpFileName, uint dwDesiredAccess, int dwShareMode, IntPtr lpSecurityAttributes, int dwCreationDisposition, int dwFlagsAndAttributes, int hTemplateFile); 看着貌似也是用到CreateFile这个函数,其实并不然,注意到没有"SafeFileHandle",这就是重点! 这样windows是允许程序访问外接hidusb设备的。 当然具体如何运用这个函数现在已经不是您应该 关心的了,因为我已经为您把它封装成一个类,您只要调用相应的方法就OK. 例: //第一步:获取HidUsb设备信息 List slist = new List(); UsbHidDevice usbhid = new UsbHidDevice(); usbhid.GetDeviceList(ref slist); //HidUsb设备信息包含在List数据集中 注:当获取到HidUsb设备信息为:\\?\hid#vid_0e2c&pid;_0112#6&1b44c403;&0&0000;#{4d1e55b2-f16f-11cf-88cb-001111000030}, 注意该字符串里的“vid_0e2c”和“pid_0112”部分,那么: vid为0e2c, pid为:0112 //第二步:创建一个HidUsb设备访问实例 UsbHidDevice Device = new UsbHidDevice(vid, pid); //第三步:连接HidUsb设备 Boolean connBool = Device.Connect(); //第四步:实现数据接收事件 Device.DataReceived += new UsbHidDevice.DataReceivedDelegate(Device_DataReceived); //当HidUsb设备返回信息时触发此事件 void Device_DataReceived(byte[] data) { //处理接收到的数据逻辑 } //第五步:向Hid设备发送数据"0xa0 00 0x12 0x9 0x22" string txt = "0xa0 00 0x12 0x9 0x22"; //把数据转换为字节数组 byte[] data = ConvertHelper.StringToByte(txt2); byte bt = 0; CommandMessage cmdMsg = new CommandMessage(bt, data); Boolean sbool = Device.SendMessage(cmdMsg); //发送数据 //第六步:释放所有资源 Device.Dispose();
### 回答1: 成都宁峰USB_HID上位机是一种用于与USB Human Interface Device (HID)设备进行通信的上位机软件。USB_HID是一种通用的USB设备规范,用于连接计算机和各种外部设备,如键盘、鼠标、游戏手柄等。 成都宁峰USB_HID上位机具有以下特点和功能:首先,它能够实现与USB_HID设备之间的双向通信。这意味着它既可以发送指令和控制信号到设备,也可以接收设备发送的数据和状态信息。其次,它支持多种不同类型的USB_HID设备,可以与不同的设备进行兼容和通信。此外,该上位机提供了友好的用户界面,使用户能够轻松地进行设备配置和控制。 使用成都宁峰USB_HID上位机,用户可以实现对USB_HID设备的灵活控制和管理。用户可以通过该软件发送指令和参数到设备,以控制设备的各种功能和行为。同时,设备也可以将实时数据和状态信息发送给上位机,用户可以通过上位机实时监测和分析设备的数据。 总之,成都宁峰USB_HID上位机是一种功能强大、操作简便的软件工具,可以与USB_HID设备进行通信和控制。它为用户提供了方便的接口和功能,使得用户能够轻松地配置和管理USB_HID设备。无论是在工业控制、自动化设备还是游戏娱乐等领域,该软件都具有广泛的应用潜力。 ### 回答2: 成都宁峰USB_HID 上位机是一种用于与USB_HID设备进行通信的软件应用程序。USB_HID(Human Interface Device)是一种通用的USB设备协议,可以实现电脑与各种外围设备的联接和数据交互。 成都宁峰USB_HID 上位机具有以下主要功能和特点: 1. 数据通信:它可以连接并与USB_HID设备进行数据通信,包括传输和接收数据。通过该上位机,用户可以方便地与设备进行交互,发送指令、接收数据等。 2. 参数设置:上位机提供了一种简单可视化的界面,用于设置USB_HID设备的各种参数。用户可以根据自己的需求调整设备的一些属性,如数据传输速率、数据格式等。 3. 数据分析与处理:上位机可对从USB_HID设备接收到的数据进行解析和处理。它能将接收到的原始数据转化为用户可以理解的形式,并进行相应的数据处理与分析,如绘制曲线图、统计数据等。 4. 设备控制:通过上位机,用户可以发送指令控制USB_HID设备的工作状态。比如,控制设备的开关、调整设备的功能模式等。 5. 数据存储与回放:上位机可以将从USB_HID设备接收到的数据进行存储,并支持数据的回放功能。用户可以随时回顾之前的数据,以便进行分析和比较。 总之,成都宁峰USB_HID 上位机是一款方便易用、功能强大的软件应用程序,可实现与USB_HID设备通信、参数设置、数据处理和设备控制等功能,满足用户对于USB_HID设备的需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值