2016-12-01 20 views
2

私が書こうとしているUWPアプリケーションに問題があります。私がプログラムしたカスタムの組み込みUSBバルクデバイスに接続しています(これは実際にはサイプレスセミコンダクタの箱の例です)。 WinUSB.sysドライバを呼び出すためにカスタムINFファイルを書き出す必要がなく、デバイスを使用できるようにするには、デバイスの埋め込みMS OS文字列を使用して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個のデバイスが返されましたが、このAQS文字列にVIDとPIDを追加しようとしたときに何も返されませんでした。

また、カスタムクラス0xFFのデバイスに必要なデバイスの適切なVIDとPIDによって、使用するデバイスがアプリケーションマニフェストにリストされていることを確認しました。私はカスタム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"; 
 
    } 
 
}

+0

私は2つ以上のリンクを追加できませんでした申し訳ありません。アップロードする写真は2枚ありましたが、新しいユーザーとしては限られていました。 – Adam

+0

最新の[CustomUsbDeviceAccess](https://github.com/Microsoft/Windows-universal-samples/tree/master/Samples/CustomUsbDeviceAccess)サンプルを試してください。完全な別の方法は使用しません。aqを作成するためには 'var osrFx2Selector = UsbDevice.GetDeviceSelector(OsrFx2.DeviceVid、OsrFx2.DevicePid); 'を使用します。そして 'CreateWatcher'メソッドを呼び出します。あなたのaqsを公式のサンプルと比較してください。 –

+0

公式のサンプルがうまくいくと言われているように、既にあなたのための解決策があることを意味します。確認して、あなたと何が違うのかを比較してください。 –

答えて

0

ちょうど(私が思うに、あなたのメールアドレスを推測しなければならなかった)あなたの進捗状況について尋ねるメールを落としたが、今では私が解決策を自分自身を発見したようです。 UWP app cannot find/connect to USB device

つまり、winusbドライバをインストールするためのinfを作成する必要があります。私は理由を知りませんでしたが、それは私のためのトリックでした(そして他の誰かはCannot create UsbDevice from DeviceInformation.Idを参照してください)

+0

うわー、申し訳ありませんが、私はこのスレッドに返信するメール通知を受け取ると思っていましたが、私はしませんでした。私はあなたが投稿したものを見ていきます。私はあなたが送った電子メールを受け取っていませんでした。あなたはAeroengineer1のハンドルの下でTwitterで私を見つけることができます。そこからPMを送ることができます。 – Adam

関連する問題