C#基于LibUsbDotNet实现USB通信(一)
网上C#USB通信的资料比较少, 基本上都是基于LibUsbDotNet 和 CyUsb, 关于打印机设备的还有一个OPOS。
本篇文章基于LibUsbDotNet。
1. 下载并安装 LibUsbDotNet 安装文件。
2. 运行Filter Wizard, Install a device filter。 安装需要通信的usb设备。
3. 建一个简单的控制台项目,进行测试, 下图为打印需要通信设备的信息。
相关代码:
引用
using LibUsbDotNet;
using LibUsbDotNet.Main;
using LibUsbDotNet.Info;
PrintUsbInfo
public static void PrintUsbInfo()
{
UsbDevice usbDevice = null;
UsbRegDeviceList allDevices = UsbDevice.AllDevices; Console.WriteLine("Found {0} devices", allDevices.Count); foreach (UsbRegistry usbRegistry in allDevices)
{
Console.WriteLine("Got device: {0}\r\n", usbRegistry.FullName); if (usbRegistry.Open(out usbDevice))
{
Console.WriteLine("Device Information\r\n------------------"); Console.WriteLine("{0}", usbDevice.Info.ToString()); Console.WriteLine("VID & PID: {0} {1}", usbDevice.Info.Descriptor.VendorID, usbDevice.Info.Descriptor.ProductID); Console.WriteLine("\r\nDevice configuration\r\n--------------------");
foreach (UsbConfigInfo usbConfigInfo in usbDevice.Configs)
{
Console.WriteLine("{0}", usbConfigInfo.ToString()); Console.WriteLine("\r\nDevice interface list\r\n---------------------");
ReadOnlyCollection<UsbInterfaceInfo> interfaceList = usbConfigInfo.InterfaceInfoList;
foreach (UsbInterfaceInfo usbInterfaceInfo in interfaceList)
{
Console.WriteLine("{0}", usbInterfaceInfo.ToString()); Console.WriteLine("\r\nDevice endpoint list\r\n--------------------");
ReadOnlyCollection<UsbEndpointInfo> endpointList = usbInterfaceInfo.EndpointInfoList;
foreach (UsbEndpointInfo usbEndpointInfo in endpointList)
{
Console.WriteLine("{0}", usbEndpointInfo.ToString());
}
}
}
usbDevice.Close();
}
Console.WriteLine("\r\n----- Device information finished -----\r\n");
}
}
调用
public static void Main(string[] args)
{
PrintUsbInfo(); // Wait for user input..
Console.ReadKey();
}
C#基于LibUsbDotNet实现USB通信(一)的更多相关文章
- 基于usb4java实现的java下的usb通信
项目地址:点击打开 使用java开发的好处就是跨平台,基本上java的开发的程序在linux.mac.MS上都可以运行,对应这java的那句经典名言:一次编写,到处运行.这个项目里面有两种包选择,一个 ...
- 基于libUSB的USB设备固件更新程序(下载数据)(转)
源:基于libUSB的USB设备固件更新程序(下载数据) 本文紧接上一篇日志:基于libUSB-Win32的USB设备固件更新程序(前言),相关背景以及起因等,此处不再赘述,如感兴趣请移步. libU ...
- usb通信小结
2010-07-25 16:52:00 目前了解了usb通信层面的一些基础知识如下.如果有空还要再了解hid报告描述符及协议的数据包波形. 一,USB的一些基本概念 1. 管道(Pipe) 是主机和设 ...
- 基于Linux的USB 主/从设备之间通讯的三种方式
转载:http://archive.eet-china.com/www.eet-china.com/ART_8800323770_617693_TA_eda530e7.HTM 随着简单易用的USB接口 ...
- C#:基于WMI查询USB设备信息 及 Android设备厂商VID列表
/* ---------------------------------------------------------- 文件名称:WMIUsbQuery.cs 作者:秦建辉 MSN:splashc ...
- QQ 腾讯QQ(简称“QQ”)是腾讯公司开发的一款基于Internet的即时通信(IM)软件
QQ 编辑 腾讯QQ(简称“QQ”)是腾讯公司开发的一款基于Internet的即时通信(IM)软件.腾讯QQ支持在线聊天.视频通话.点对点断点续传文件.共享文件.网络硬盘.自定义面板.QQ邮箱等多种功 ...
- JAVA基础知识之网络编程——-基于UDP协议的通信例子
UDP是一种不可靠的协议,它在通信两端各建立一个socket,这两个socket不会建立持久的通信连接,只会单方面向对方发送数据,不检查发送结果. java中基于UDP协议的通信使用DatagramS ...
- 使用Wireshark捕捉USB通信数据
USB,是英文Universal Serial Bus(通用串行总线)的缩写,而其中文简称为“通串线”,是一个外部总线标准,用于规范电脑与外部设备的连接和通讯.USB接口支持设备的即插即用和热插拔功能 ...
- C#:基于WMI查询USB设备
来源:http://blog.csdn.net/jhqin/article/details/6734673 /* ------------------------------------------- ...
随机推荐
- 使用gulp构建一个项目
gulp是前端开发过程中自动构建项目的工具,相同作用的还有grunt.构建工具依靠插件能够自动监测文件变化以及完成js/sass/less/html/image/css/coffee等文件的语法检查. ...
- 对接 第三方物流APP 手机版
昨天因为bibi项目要对接 物流信息 开始找了快递鸟文档,但是要填写申请APP,必须要注册公司才可以,这样非常麻烦.下面的第三方物理接口,绝对让你满意. https://m.kuaidi100.com ...
- 保存配置,获取配置,XML
private void SaveSOConfig() { //保存配置 Dictionary<string, string> PrintConfigDIC = new Dictionar ...
- C#通过Ado.net对连接数据库并进行添加删除等常规操作的代码
如下资料是关于C#通过Ado.net对连接数据库并进行添加删除等常规操作的内容. static string sqlcon = "server=.;database=;Integrated ...
- BP神经网络(原理及MATLAB实现)
人工神经网络概述: 人工神经元模型: 神经网络的分类: 按照连接方式,可以分为:前向神经网络 vs. 反馈(递归)神经网络: 按照学习方式,可以分为:有导师学习神经网络 vs. 无导师学习神经网络: ...
- Python hasattr() 函数
hasattr() 函数用于判断对象是否包含对应的属性.(has attribute) hasattr(object, name) 参数 object -- 对象. name -- 字符串,属性名. ...
- LightGBM算法(转载)
原文:https://blog.csdn.net/niaolianjiulin/article/details/76584785 前者的含义是轻量级,GBM:梯度上升机. 相较于xgboost: 更快 ...
- js 获取屏幕或元素宽高...
窗口相对于屏幕顶部距离 window.screenTop 窗口相对于屏幕左边距离 window.screenLeft, 屏幕分辨率的高 window.screen.height, 屏幕分辨率的宽 wi ...
- linux 安装软件三种方法
引言 在ubuntu当中,安装应用程序我所知道的有三种方法,分别是apt-get,dpkg安装deb和make install安装源码包三种.下面针对每一种方法各举例来说明. apt-get方法 使用 ...
- GTID 跳过事物
Mysql5.7 stop slave; set @@SESSION.GTID_NEXT='507e80e9-3648-11e9-aa70-fa163e77a52d:20173'; begin; co ...