問題タブ [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.

0 投票する
6 に答える
9071 参照

linux - USBデバイスを一意に識別するにはどうすればよいですか?

USBストレージデバイスの一意のIDを取得する方法を考えていました。この投稿からSCSIシリアルIDを取得する方法はすでに知っています。LinuxC++でのUSBドライブのシリアル番号 この投稿では、デバイス記述子を使用してIDを取得する方法について説明しています。Linuxでデバイス記述子情報を決定するために誰かがコードを投稿できますか?

0 投票する
1 に答える
5113 参照

iphone - HID レポート記述子 (iPhone の場合)

Bluetooth経由でubuntuからiPhone4にキーストロークを送信しようとしています。つまり、非常に原始的な仮想キーボードの開発です。

問題アプリケーションが iPhone と通信するようにします (つまり、レポート プロトコルを使用します。iPhone がサポートするのはそれだけです)。そのままでは、私のwrite(interruptChannelFD)呼び出しはエラーを返しませんが、iPhone 側にはテキストが表示されません。l2cap チャネルは、blueZ ライブラリを使用して開かれています。

質問 1:それを行う仮想キーボードが存在しないことを考えると、どれくらい難しいですか?

私は、iPhone と Linux ボックスが接続され、接続を維持する段階にいます。問題ありません。また、すべてのperror()呼び出しは、制御チャネル ソケットと割り込みチャネル ソケットが正常に接続されていることを示しています。(私が行っているのは、ドングルを Keyboard デバイス クラスに hciconfig し、Collin Mullinerによるよく知られているコードを少し変更して使用することです。すべてのスマートフォンで要求されるように、パスコードを 1 回入力する必要がありました)。

質問 2:write()暗号化を気にせずに割り込みソケットに入る ことができるはずですよね? パスコードを入力しましたが、電話機はキーボードを信頼しています。(コリンは隠し攻撃の可能性を考えていましたが、正直に言います)

また、HID デバイスのブート プロトコルでは、SPD で指定された正確なレポート記述子はほとんど関係がないことを理解しています。レポート形式はとにかく固定されています。そう...

質問 3:レポート プロトコルについて何か大きな間違いがありますか? 私がやっていることは、Apple キーボード レポート記述子を変更し、ソケットに書き込むことです (以下を参照)。

};

この後、次の 10 バイトを割り込みチャネルに書き込みます。

0 投票する
0 に答える
4928 参照

c# - C# 読み取り USB 記述子

C# で USB 記述子を読み取るにはどうすればよいですか? 見つけましLibUSB.NETたが、例のように USB デバイスを取得できません。

count = 0 を返します

0 投票する
1 に答える
4911 参照

usb - 単純なジョイスティックの非表示レポート記述子が機能しない

atmega8チップとV-USBライブラリを使用して、NESゲームパッドをUSBに接続するための小さなブリッジを作成しました。最初は、例の1つをhid記述子として使用したので、このHIDレポート記述子を使用してハンドシェイクするように設定すると、Windowsでデバイスが正しく認識されました。

このレポートタイプ

しかし、私がそれをより単純にしたとき:

Windowsはジョイスティックをインストールできませんでした。名前は認識されますが、インストールを完了できません。

USB Hid Toolがこのレポート記述子を検証するため、混乱しています。

何か考えてください。

0 投票する
1 に答える
1087 参照

usb - LUFA ライブラリに関連する USB 記述子の理解

LUFA ライブラリが USB 記述子を処理する方法を誰か説明してもらえますか? ライブラリのソースに返された例の記述子をたどることができないようです。それらはどのように機能しますか?フラッシュ メモリの特定の場所にプログラムされていますか?

ありがとう、ジョージ

0 投票する
0 に答える
6681 参照

keyboard - 7 キーの HID キーボード記述子

HID USBキーボードを作ろうとしています。デフォルトの HID 記述子には、6 キーの HID レポートがあります。ここに記述子があり、私はそれが動作することをテストしました:

ここで、これを 6 キー ディスクリプタから 7 キー ディスクリプタに変更したいと思います。これが記述子の関連部分だと思います:

7 キーに変更するために、REPORT_COUNT を 7 にしました。

次に、テストに進みます。以前は、これは 6 キー記述子を使用してコンピューターに ";abcde" を送信する HID レポートでした。

7 キー ディスクリプタを使用しているため、新しい HID レポートは次のようになります。

長さが 0x0a (10) ではなく 0x0b (11) になり、0x09 を追加したことに注意してください。予想されるキーボードの結果は「;abcdef」であるはずですが、以前と同様に「;abcde」しか受け取りません。

7 キー HID 記述子が機能しないのはなぜですか? ありがとう!

0 投票する
3 に答える
1224 参照

linux - IOHIDManager OsX : HID 記述子と HID レポートの一致が間違っていますか?

IOHIDManager API を使用して、マウス (Magic Apple Mouse) の X、Y、button1、Button2 などの Mac OsX 上のデバイスの HID レポートからデータを読み取ろうとしています。

API を使用すると、記述子を動的に読み取ることができますが、いくつかの問題があります。 - API は、記述子から必要なすべての情報を提供してくれません。...構造を正しく構築するには、パディングを自分で計算する必要があります。- API は、記述子または HID レポートと同じ順序で機能 (X、Y、btn1 ...) を提供しません!! HIDレポートを読む正しい順序をどうやって知ることができると思いますか!?

そのため、HID レポート データと正しく一致していません。

これは、OsX API によって記述子から提供された情報です。

だから私は構造体を構築します:X、Y、Z、ホイール、Btn1 | Btn2 | Btn3 | Btn4、ARMD

これは、記述子から Linux で提供された RAW 情報です。

だから私は構造体を構築することができました: Btn1|Btn2|Btn3|Btn4|0|0|0|0, X, Y, Z, Wheel, ARMD

そこから、OsX API に基づいて、HID レポートと「一致」するように、ほぼ同じ (パディング ビットを含む) 構造を構築しています。だから私は持っています:X、Y、Z、ホイール、Btn1 | Btn2 | Btn3 | Btn4 | 0 | 0 | 0 | 0、ARMD

私は HID レポートを購読し、私の構造に適合するはずなので解析します...しかし、そうではありません

ここでは、OsX で Btn1 をクリックしたときに得たものです。

レポートによると、X=1 !!!!

ここに、それは私がLinuxで持っているものです

このプログラムは、Magic Apple Mouse 以外のいくつかのデバイスでマウスとして動作しますが、他のデバイスでも同様の問題が発生します... API は、間違った順序で部分的な情報を提供します。

私が理解できなかったことはありますか?誰かが同じ問題を抱えているか、OSX で HID API を使用する方法をよりよく理解していますか?

0 投票する
1 に答える
1985 参照

windows - 24 ビット USB サンプルレートのサポート

私の質問はこの質問とよく似ています: Linkですが、コメントすることはできません。

私はサウンドカードとして PIC32 を実装しており、32kHz と 48kHz のサンプル レートで 16 ビットをサポートする USB オーディオ ストリームが動作しています。ビット深度を 24 ビットに変更したいので、USB 記述子を次のように変更します。

これを行うと、想定どおりにビット解像度が変更されますが、マイクのプロパティでは、サンプリング周波数を変更できるドロップダウン メニューが灰色になっています。32kHz と 48kHz の両方がサポートされているエンドポイント記述子は何も変更していません。

サンプリング周波数を変更できません

私の USB トポロジーには、2 つのユニットを備えた 1 つのオーディオ制御インターフェイスと、ストリーミング IN と OUT 用の 2 つのオーディオ ストリーミング インターフェイスがあります。Marc O は彼の質問に答えて、入力ターミナルの何かを変更しようとしましwChannelConfigたが、うまくいきませんでした。デバイス ドライバのアンインストールとインストールを試みましたが、うまくいきません。

サンプリング周波数を選択できるようにするには、記述子でさらに何を変更する必要がありますか?

ありがとう :)

編集:記述子コードと説明された進行状況を追加

チャンネル数を 2 にwChannelConfig = 0x03 -> right + Left Front変更して .白で、サンプルレートを変更できませんでした。

以下に、オーディオ機能記述子を追加しました。