我有一个UWP应用程序,我正在尝试编写的问题。我正在连接到我已编程的定制嵌入式USB批量设备(它实际上是赛普拉斯半导体的一个开箱即用的示例)。我正在使用WinUSB.sys驱动程序,使用设备中的嵌入式MS OS字符串来允许设备无需编写自定义INF文件来调用WinUSB.sys驱动程序。UWP/C# - AQS和USB设备问题
在我的代码中,我使用UsbDevice.GetDeviceSelector方法返回一个AQS,然后可以传递给DeviceInformation.FindAllAsync以开始与我的应用程序中的设备进行通信。我已确认该设备在设备管理器中显示没有任何问题,并且已在注册表中检入以确保其具有接口GUID。我有一个USBViewer的屏幕截图来显示设备的配置。这种用于查找USB设备并与其连接的方法来自此MSDN示例here。
当我使用UsbDevice.GetDeviceSelector方法时,它返回一个与此设备无关的GUID。它返回的GUID实际上与Lumia手机(DEE824EF-729B-4A0E-9C14-B7117D33A817)相关联。因此,它没有找到我的设备连接到系统。
为了排除故障,我使用任何参数调用DeviceInformation.FindAllAsync来查看我的设备是否已列出,并确实找到了设备(已连接到我的设备的1000多台其他设备)。然后,我在没有GetDeviceSelector方法的帮助下编写了一个自定义AQS字符串,从GUID开始。这样做返回了27个设备,但是当我尝试将VID和PID添加到此AQS字符串时,没有任何返回。
我也确保我想要使用的设备通过其适当的VID和PID在应用程序清单中列出,因为这是自定义类0xFF的设备所需的。我使用了自定义USB UWP设备示例,它可以找到该设备,但它使用与设备选取器完全不同的方法,如果需要,我将使用该方法,但这不是我的愿望,因为它使应用程序的这部分不是一个清洁的解决方案。
我已经在MSDN论坛here上发布了这个问题,提供了更多信息,但是我没有得到很多参与。任何帮助,将不胜感激。我知道我必须错过简单的东西。
亚当
private async void button_Click(object sender, RoutedEventArgs e)
{
//UInt32 vid = 0x04B4;
//UInt32 pid = 0x00F0;
UInt32 vid = uint.Parse(textBox1.Text, System.Globalization.NumberStyles.HexNumber);
UInt32 pid = UInt32.Parse(textBox2.Text, System.Globalization.NumberStyles.HexNumber);
Guid winusbInterfaceGuid = new Guid("a5dcbf10-6530-11d2-901f-00c04fb951ed");
//string aqs = UsbDevice.GetDeviceSelector(vid, pid);
string aqs = UsbDevice.GetDeviceSelector(winusbInterfaceGuid);
var myDevices = await DeviceInformation.FindAllAsync(aqs, null);
//var myDevices = await DeviceInformation.FindAllAsync();
var myDevicesCount = myDevices.Count;
if (myDevicesCount >= 1)
{
textBlock2.Text = "Device Found";
} else
{
textBlock2.Text = "Searching";
await Task.Delay(1000);
textBlock2.Text = "looking for device";
}
}
的诡计很抱歉,我无法添加超过2个链接。我有两张照片要上传,但我作为新用户受到限制。 – Adam
请尝试使用最新的[CustomUsbDeviceAccess](https://github.com/Microsoft/Windows-universal-samples/tree/master/Samples/CustomUsbDeviceAccess)示例。它不使用完全不同的方法,它只是使用'var osrFx2Selector = UsbDevice.GetDeviceSelector(OsrFx2.DeviceVid,OsrFx2.DevicePid);'来创建aqs。然后调用一个'CreateWatcher'方法。请将您的aqs与官方样品进行比较。 –
正如你所说的官方样本可以很好地工作,意味着已经有一个解决方案为你。请检查它并比较你有什么不同。 –