問題タブ [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.
linux - USBデバイスを一意に識別するにはどうすればよいですか?
USBストレージデバイスの一意のIDを取得する方法を考えていました。この投稿からSCSIシリアルIDを取得する方法はすでに知っています。LinuxC++でのUSBドライブのシリアル番号 この投稿では、デバイス記述子を使用してIDを取得する方法について説明しています。Linuxでデバイス記述子情報を決定するために誰かがコードを投稿できますか?
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 バイトを割り込みチャネルに書き込みます。
c# - C# 読み取り USB 記述子
C# で USB 記述子を読み取るにはどうすればよいですか? 見つけましLibUSB.NET
たが、例のように USB デバイスを取得できません。
count = 0 を返します
usb - 単純なジョイスティックの非表示レポート記述子が機能しない
atmega8チップとV-USBライブラリを使用して、NESゲームパッドをUSBに接続するための小さなブリッジを作成しました。最初は、例の1つをhid記述子として使用したので、このHIDレポート記述子を使用してハンドシェイクするように設定すると、Windowsでデバイスが正しく認識されました。
このレポートタイプ
しかし、私がそれをより単純にしたとき:
Windowsはジョイスティックをインストールできませんでした。名前は認識されますが、インストールを完了できません。
USB Hid Toolがこのレポート記述子を検証するため、混乱しています。
何か考えてください。
usb - LUFA ライブラリに関連する USB 記述子の理解
LUFA ライブラリが USB 記述子を処理する方法を誰か説明してもらえますか? ライブラリのソースに返された例の記述子をたどることができないようです。それらはどのように機能しますか?フラッシュ メモリの特定の場所にプログラムされていますか?
ありがとう、ジョージ
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 記述子が機能しないのはなぜですか? ありがとう!
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 を使用する方法をよりよく理解していますか?
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
変更して .白で、サンプルレートを変更できませんでした。
以下に、オーディオ機能記述子を追加しました。