C#基于LibUsbDotNet实现USB通信(一)
2021/10/24 22:39:38
本文主要是介绍C#基于LibUsbDotNet实现USB通信(一),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
网上C#USB通信的资料比较少, 基本上都是基于LibUsbDotNet 和 CyUsb, 关于打印机设备的还有一个OPOS。
本篇文章基于LibUsbDotNet。
1. 下载并安装 LibUsbDotNet 安装文件。
2. 运行Filter Wizard, Install a device filter。 安装需要通信的usb设备。
3. 建一个简单的控制台项目,进行测试, 下图为打印需要通信设备的信息。
相关代码:
引用
1 2 3 |
using LibUsbDotNet;
using LibUsbDotNet.Main;
using LibUsbDotNet.Info;
|
PrintUsbInfo
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
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" );
}
}
|
调用
1 2 3 4 5 6 7 |
public static void Main( string [] args)
{
PrintUsbInfo();
// Wait for user input..
Console.ReadKey();
}
|
这篇关于C#基于LibUsbDotNet实现USB通信(一)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2022-03-01沐雪多租宝商城源码从.NetCore3.1升级到.Net6的步骤
- 2024-05-08首个适配Visual Studio平台的国产智能编程助手CodeGeeX正式上线!C#程序员必备效率神器!
- 2024-03-30C#设计模式之十六迭代器模式(Iterator Pattern)【行为型】
- 2024-03-29c# datetime tryparse
- 2024-02-21list find index c#
- 2024-01-24convert toint32 c#
- 2024-01-24Advanced .Net Debugging 1:你必须知道的调试工具
- 2024-01-24.NET集成IdGenerator生成分布式全局唯一ID
- 2024-01-23用CI/CD工具Vela部署Elasticsearch + C# 如何使用
- 2024-01-23.NET开源的简单、快速、强大的前后端分离后台权限管理系统