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:
Регулировка 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}"
Я постарался предоставить как можно больше информации, любая помощь, которую вы можете оказать, будет оценена. Спасибо.