网上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 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");            }        }

调用


public static void Main(string[] args)        {            PrintUsbInfo();            // Wait for user input..            Console.ReadKey();        }

更多相关文章

  1. .Net中Core使用Socket与树莓派进行通信的实例分析(图文)
  2. 详解.Net Core使用Socket与树莓派进行通信
  3. 仪器设备改造技术,实现测量数据上传到服务器的功能
  4. 微服务通信的三种方法[每日前端夜话0xB5]
  5. 假装网络工程师28——MPLS跨AS通信optionC方案2
  6. 分布式链路追踪 SkyWalking 源码分析 —— Agent Remote 远程通
  7. 分布式链路追踪 SkyWalking 源码分析 —— Collector Remote 远
  8. 注册中心 Eureka 源码解析 —— 网络通信
  9. Docker容器跨主机通信之:直接路由方式

随机推荐

  1. Android的建议
  2. Android SVG矢量图
  3. Android USB 开发详解
  4. Android API版本对应Android系统版本及内
  5. Android C/C++开发指南
  6. Android入门教程 (一) Android简介和androi
  7. 4.0.x Launcher UI
  8. [原]如何在Android用FFmpeg+SDL2.0解码图
  9. android:ellipsize属性 textview
  10. Android异步消息处理机制