zoukankan      html  css  js  c++  java
  • 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}
    ", usbRegistry.FullName);
    
                    if (usbRegistry.Open(out usbDevice))
                    {
                        Console.WriteLine("Device Information
    ------------------");
    
                        Console.WriteLine("{0}", usbDevice.Info.ToString());
    
                        Console.WriteLine("VID & PID: {0} {1}", usbDevice.Info.Descriptor.VendorID, usbDevice.Info.Descriptor.ProductID);
    
                        Console.WriteLine("
    Device configuration
    --------------------");
                        foreach (UsbConfigInfo usbConfigInfo in usbDevice.Configs)
                        {
                            Console.WriteLine("{0}", usbConfigInfo.ToString());
    
                            Console.WriteLine("
    Device interface list
    ---------------------");
                            ReadOnlyCollection<UsbInterfaceInfo> interfaceList = usbConfigInfo.InterfaceInfoList;
                            foreach (UsbInterfaceInfo usbInterfaceInfo in interfaceList)
                            {
                                Console.WriteLine("{0}", usbInterfaceInfo.ToString());
    
                                Console.WriteLine("
    Device endpoint list
    --------------------");
                                ReadOnlyCollection<UsbEndpointInfo> endpointList = usbInterfaceInfo.EndpointInfoList;
                                foreach (UsbEndpointInfo usbEndpointInfo in endpointList)
                                {
                                    Console.WriteLine("{0}", usbEndpointInfo.ToString());
                                }
                            }
                        }
                        usbDevice.Close();
                    }
                    Console.WriteLine("
    ----- Device information finished -----
    ");
                }
            }
    

    调用

    public static void Main(string[] args)
            {
                PrintUsbInfo();
    
                // Wait for user input..
                Console.ReadKey();
            }
  • 相关阅读:
    sparql学习sparql示例、dbpedia在线验证
    中国绿卡
    逾期率的水有多深,你知道吗?
    ICO和区块链区别
    What are the benefits to using anonymous functions instead of named functions for callbacks and parameters in JavaScript event code?
    Link static data in sql source control
    sql data compare
    viewbag
    多态的实际使用
    win10 sedlauncher.exe占用cpu处理
  • 原文地址:https://www.cnblogs.com/jackbase/p/7244046.html
Copyright © 2011-2022 走看看