C#基于LibUsbDotNet实现USB通信(一)

标签:
it |
分类: JAVA/C#/Cpp/C语言/Python |
转载:C#基于LibUsbDotNet实现USB通信(一)
{
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 interfaceList =
usbConfigInfo.InterfaceInfoList;
foreach
(UsbInterfaceInfo usbInterfaceInfo in interfaceList)
{
Console.WriteLine("{0}",
usbInterfaceInfo.ToString());
Console.WriteLine("\r\nDevice
endpoint list\r\n--------------------");
ReadOnlyCollection
endpointList = usbInterfaceInfo.EndpointInfoList;
foreach (UsbEndpointInfo
usbEndpointInfo in endpointList)
{
Console.WriteLine("{0}",
usbEndpointInfo.ToString());
}
}
}
usbDevice.Close();
}
Console.WriteLine("\r\n-----
Device information finished -----\r\n");
}
}
{
PrintUsbInfo();
// Wait
for user input..
Console.ReadKey();
}
网上C#USB通信的资料比较少, 基本上都是基于LibUsbDotNet 和 CyUsb, 关于打印机设备的还有一个OPOS。
本篇文章基于LibUsbDotNet。
1. 下载并安装
2. 运行Filter Wizard, Install a device filter。 安装需要通信的usb设备。
https://images2017.cnblogs.com/blog/592920/201707/592920-20170727113555187-1326231114.png
3. 建一个简单的控制台项目,进行测试, 下图为打印需要通信设备的信息。
https://images2017.cnblogs.com/blog/592920/201707/592920-20170727113720312-1122210180.png
相关代码:
引用
using LibUsbDotNet;
using LibUsbDotNet.Main;
using LibUsbDotNet.Info;
public static void PrintUsbInfo()
public static void Main(string[] args)
前一篇:C#基本数据类型