問題タブ [usb-descriptor]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
audio - USB オーディオ クラス 2.0 オーディオ入力ストリームを有効にする
マイクロコントローラ デバイスで USB オーディオ入力ストリームを設定しようとしています。各 USB オーディオ ストリームには 2 つの代替設定があることを知っています。代替設定 0 は、ストリームが利用できない場所です。代替設定 1 は、利用可能なストリームがある場合です。
私はすでに USB オーディオ出力をセットアップしているので、ストリーム ディスクリプタが正常に動作することがわかっています。明らかに、マイクロコントローラーは USB 割り込みを呼び出して、ホストがオーディオが入ってきたときに出力をアクティブにするようにします (マイクロコントローラーに代替設定 1 を有効にするように指示します...)。しかし、現在、USBオーディオ入力側を有効にする方法がわかりません。明らかに、ホストはマイクロコントローラーに入力が来ていることを伝えていないため、混乱しています...むしろ、デバイスはデータを送信していることをホストに伝えています。
入力ストリームを適切に有効にする方法について誰かが私に洞察を与えることができれば、それは素晴らしいことです。エンドポイントをハードに有効にして、そのようにデータを送信するだけでよいのでしょうか? 必要に応じてより多くのコードを提供できますが、これは思考タイプ/アルゴリズムの問題のアプローチに近いと思います。
ストリームの代替設定の記述子は次のとおりです。
ありがとう!
編集- このソースを読んでください:
「この構成が有効になっている場合、bAlternativeSettings がゼロに等しい最初の 2 つのインターフェイス記述子が使用されます。ただし、操作中に、ホストはインターフェイス 1 のインターフェイス 1 に向けられた SetInterface 要求を送信し、代替設定を 1 にして、他のインターフェイス記述子を有効にすることができます。」-一言で言えばUSB
改訂された質問: SetInterface リクエストを送信して、USB デバイスが入力ストリームを受け入れられるようにするにはどうすればよいですか?
新しい更新- 記述子を介して代替設定をアクティブに設定する方法はありますか? ストリーム記述子についてこれを読んでいました->「bmControlsフィールドには、存在するコントロールとその機能を示す一連のビットペアが含まれています。」「D1..0 アクティブな代替設定コントロール」、「D3..2 有効な代替設定コントロール」。
解決済みの並べ替え-
つまり、ホストデバイスでオーディオアプリを開いて代替設定を有効にする必要があったようです...そうであるとは知りませんでした。
c# - USB デバイス記述子からデータを取得する
私のプロジェクト (C#、WPF アプリケーション) には、VCP として表示されるデバイスがあります。私はそれに接続する必要があります。WMI を使用してシリアル ポートを検出し、VID と PID でフィルター処理しています。それは仕事を90%で終わらせます。デバイス メーカーは、すべてのデバイスに同じ VID/PID ペアを使用します。正確なモデルは USB ディスクリプタ (Device Descriptor 部分、プロパティ iProduct) にあります。これは、WMI を調べてもどこにも見つかりません。
.NET で USB 記述子にアクセスするにはどうすればよいですか? C#では、USB 記述子の回答を読むと、WMI を使用することが提案されます。WMI デバイスの説明では、USB 記述子ではありません。接続されている USB デバイスを一覧表示する必要はありませんが、USB デバイス記述子から特定のデータを読み取る必要があります。