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();
            }
  • 相关阅读:
    关于MySQL死锁
    随手一记,maven打包
    js生成带logo的二维码
    java生成带logo的二维码
    关于网页中文本域高度自动适应问题,参考微信回复
    从git上拉下来的严选weex项目demo
    补装老版本的Java SE
    新MBP使用git命令时启用xcode的终端log
    电脑出现“损坏的图像”窗口提示dll没有被指定在Windows上运行如何解决
    不同浏览器隐藏默认表单样式
  • 原文地址:https://www.cnblogs.com/jackbase/p/7244046.html
Copyright © 2011-2022 走看看