我有一個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與官方樣品進行比較。 –
正如你所說的官方樣本可以很好地工作,意味着已經有一個解決方案爲你。請檢查它並比較你有什麼不同。 –