微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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 @R_158_4045@ion\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 @R_158_4045@ion finished -----\r\n);
            }
        }

调用


public static void Main(string[] args)
        {
            PrintUsbInfo();

            // Wait for user input..
            Console.ReadKey();
        }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐