0

我正在尝试使用LibUSBDotNet库(这里是)获取加密狗(GSM 调制解调器)的详细信息。

以下是我的尝试

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using LibUsbDotNet;
using LibUsbDotNet.Descriptors;
using LibUsbDotNet.DeviceNotify;
using LibUsbDotNet.Info;
using LibUsbDotNet.LibUsb;
using LibUsbDotNet.LudnMonoLibUsb;
using LibUsbDotNet.Main;
using LibUsbDotNet.WinUsb;

namespace LibUsbDotNet_Test1
{
    class Program
    {
        static void Main(string[] args)
        {
            //RetrieveUSBDevices(12d1, 140c);
        }

        public static void RetrieveUSBDevices(int vid, int pid)
        {
            var usbFinder = new UsbDeviceFinder(vid, pid);
            var usbDevices = new UsbRegDeviceList();
            var en = usbDevices.GetEnumerator();

            while (en.MoveNext())
            {
                Console.WriteLine(en.ToString());
            }


        }
    }
}

不幸的是,我似乎需要将产品 ID (PID) 和供应商 ID (VID) 作为整数传递。但是我的 PID 和 VID 包含字母!请查看下图,其中显示了有关我的设备的详细信息。

在此处输入图像描述

在这种情况下如何传递我的 PID 和 VID?或者我做错了什么?我需要打印设备描述并获取加密狗的“端口名称”,这就是为什么我要做所有这些来识别它。

4

1 回答 1

2

看起来 VendorID 和 ProductID 是十六进制数字,但您使用的库需要整数。

string productID = "140c";
int pid = Convert.ToInt32(productID, 16);
// or if you don't like "base 16" and want to have self-documenting code:
pid = Int32.Parse(productID, System.Globalization.NumberStyles.HexNumber);
于 2013-08-15T06:33:01.123 回答