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. 建一个简单的控制台项目,进行测试, 下图为打印需要通信设备的信息。

      

    相关代码:  

    引用  

    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();
            }
    漫思
  • 相关阅读:
    html5 File api 上传案例
    DOM操作
    箭头函数
    js 高级函数
    导入导出封装
    函数
    哲学/文学
    qtMd5 加密算法
    生活感悟
    C# 小技巧
  • 原文地址:https://www.cnblogs.com/sexintercourse/p/15456014.html
Copyright © 2011-2022 走看看