FindAllAsync возвращает пустые USB-устройства в C#

Я связываюсь (или пытаюсь) с контроллером мотора ESP 301 через USB. Смотрите здесь для документации, если это необходимо (PDF)

Для этого я работаю в C# и имею следующую функцию:

private async void connectDevice()
{
    string aqs = UsbDevice.GetDeviceSelector(Constants.ESPVENDORID,Constants.ESPPRODUCTID);
    Console.WriteLine(aqs);
    var myDevices = await DeviceInformation.FindAllAsync(aqs);
    Console.WriteLine(myDevices.Count);
    try
    {
        esp301 = await UsbDevice.FromIdAsync(myDevices[0].Id);
        Console.WriteLine("SUCCESSFULLY OPENED DEVICE FOR COMMUNICATION");
        initialized = true;
    }
    catch (Exception exception)
    {
        Console.WriteLine("ERROR:");
        Console.WriteLine(exception.Message.ToString());
    }

}

Тем не менее DeviceInformation.FindAllAsync(aqs) Вызов возвращает пустой контейнер.

Я изменил манифест приложения, чтобы он содержал следующее:

<Capabilities>
    <DeviceCapability Name="usb">
      <Device Id="vidpid:104D3001">
      </Device>
    </DeviceCapability>
  </Capabilities>

Это та часть, в которой я больше всего не уверен, и я изо всех сил пытаюсь найти много информации об этом.

В отдельном классе констант я определил следующее:

public static Guid ESPGUID { get { return new Guid("{4d36e978-e325-11ce-bfc1-08002be10318}"); } }
public static uint ESPVENDORID { get { return 0x104D; } }
public static uint ESPPRODUCTID { get { return 0x3001; } }

что кажется правильным, и я проверил идентификаторы поставщиков и продуктов с помощью приложения USB View, распространяемого Microsoft:

USB View

Регулировка UsbDevice.GetDeviceSelector вызовите для использования GUID, определенного в файле констант следующим образом:

string aqs = UsbDevice.GetDeviceSelector(Constants.ESPGUID);

похоже тоже ничего не меняет.

Я знаю, что контейнер пуст, потому что счетчик, который я печатаю на консоль, равен 0, а также я получаю исключение вне диапазона.

Строка aqs, которую я печатаю, выглядит так:

System.Devices.InterfaceClassGuid: = "{DEE824EF-729B-4A0E-9C14-B7117D33A817}" И System.Devices.InterfaceEnabled:=System.StructuredQueryType.Boolean#True И System.DeviceInterface.Win ~sDeviceSWD = 36D6D: Классы E325-11CE-BFC1-08002BE10318}"

Я постарался предоставить как можно больше информации, любая помощь, которую вы можете оказать, будет оценена. Спасибо.

0 ответов

Другие вопросы по тегам