SerialPort PortNumber для PortName - PullRequest
1 голос
/ 21 мая 2019

Я хочу обнаружить USB-устройства в Windows и Linux по их идентификатору производителя и идентификатору продукта.Я делаю это с помощью пакета LibUsbDotNet 3.0.48-alpha NuGet.Это работает как талисман, он возвращает номер порта, который я также нахожу в диспетчере устройств, когда смотрю на диспетчер устройств в «Расположение» (например, Port_#0001.Hub_#0008).Но номер порта (# 0001) не всегда совпадает с именем порта COM (например, COM4 или в linux /dev/ttyS0)

Есть ли способ получить имя порта, полученное из номера порта?Или я иду в неправильном направлении?

using (var context = new UsbContext())
{
    var haljiaUsbRelays = context.List().Where(d => d.ProductId == 0x7523 && d.VendorId == 0x1a86);
    Console.WriteLine($"{haljiaUsbRelays.Count()} relays found.");
    foreach (UsbDevice x in haljiaUsbRelays)
    {
        Console.WriteLine($"Portnumber: {x.PortNumber}");
        string portName = ConvertPortNumberToPortName(x.PortNumber);//I need this function
        var port = new SerialPort(portName);
    }
}
...