問題タブ [hidapi]
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.
usb - STM32f4 HID 受信データ
デバイス モードで HID(USB) として実行されている STM32f407 ディスカバリ ボードでホスト PC から OUT レポート データを受信する方法を教えてください。出来ますか?hidapiを使ってホストからデータを送ろうと思っています。
c++ - HID USB コントロール転送 (Windows)
最近、Windows 10 での HID デバイスとの通信について学び始めました。
しかし、いくつか質問があります。
Window のドキュメントによると、パラメータHidD_SetOutputReport
の最初のバイトをレポート ID または.ReportBuffer
0x00
私のデバイスの HID Report Descriptor はいくつかのレポート ID を宣言しているため、 ?HidD_setoutputreport
の代わりに使用するときにレポート ID を設定する必要があります。0x00
レポート ID 0x80 を として使用した場合buf[0]
、例: 0x80 0x02 0x00 ....... 0x00 (私のCapabilities.OutputReportByteLength
場合は 64)
そして私のコードはret = HidD_SetOutputReport(handle->device_handle, buf2, 65)
しかし、私は常に次のようにデータを送信します ( Bus Houndで):
64 OUT 80 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 4.1.0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ............... 4.1.16
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ............... 4.1.32
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ............... 4.1.48
buf[1] to buf[64]
の代わりに送るべきだと思い、buf[0] to buf[63]
を試してみret = HidD_SetOutputReport(handle->device_handle, buf2, 64)
ましたが、結果は同じでした。
INPUT と OUTPUT の HID レポート記述子は次のとおりです。
使い方ページ(汎用デスクトップ) 05 01
論理最小値 (0) 15 00
使い方(ジョイスティック) 09 04
コレクション(アプリケーション) A1 01
レポート ID (48) 85 30
使い方ページ(汎用デスクトップ) 05 01
使い方ページ(ボタン) 05 09
最小使用量 (ボタン 1) 19 01
使用最大 (ボタン 10) 29 0A
論理最小値 (0) 15 00
論理最大値 (1) 25 01
レポートサイズ (1) 75 01
レポート数 (10) 95 0A
単位指数 (0) 55 00
単位 (なし) 65 00
入力 (データ、Var、Abs、NWrp、Lin、Pref、NNul、Bit) 81 02
使い方ページ(ボタン) 05 09
最小使用量 (ボタン 11) 19 0B
使用最大 (ボタン 14) 29 0E
論理最小値 (0) 15 00
論理最大値 (1) 25 01
レポートサイズ (1) 75 01
レポート数 (4) 95 04
入力 (データ、Var、Abs、NWrp、Lin、Pref、NNul、Bit) 81 02
レポートサイズ (1) 75 01
レポート数 (2) 95 02
入力 (Cnst、Var、Abs、NWrp、Lin、Pref、NNul、Bit) 81 03
使用法 (汎用デスクトップ:ポインター) 0B 01 00 01 00
コレクション (物理) A1 00
コレクション終了 C0
使用法 (汎用デスクトップ:ハット スイッチ) 0B 39 00 01 00
論理最小値 (0) 15 00
論理最大値 (7) 25 07
物理的最小値 (0) 35 00
物理最大 (315) 46 3B 01
単位 (Eng Rot: 度) 65 14
レポートサイズ (4) 75 04
レポート数 (1) 95 01
入力 (データ、Var、Abs、NWrp、Lin、Pref、NNul、Bit) 81 02
使い方ページ(ボタン) 05 09
最小使用量 (ボタン 15) 19 0F
使用最大数 (ボタン 18) 29 12
論理最小値 (0) 15 00
論理最大値 (1) 25 01
レポートサイズ (1) 75 01
レポート数 (4) 95 04
入力 (データ、Var、Abs、NWrp、Lin、Pref、NNul、Bit) 81 02
レポートサイズ (8) 75 08
レポート数 (52) 95 34
入力 (Cnst、Var、Abs、NWrp、Lin、Pref、NNul、Bit) 81 03
使用ページ (ベンダー定義 1) 06 00 FF
レポート ID (33) 85 21
使用法 (ベンダー定義 1) 09 01
レポートサイズ (8) 75 08
レポート数 (63) 95 3F
入力 (Cnst、Var、Abs、NWrp、Lin、Pref、NNul、Bit) 81 03
レポート ID (129) 85 81
使用法 (ベンダー定義 2) 09 02
レポートサイズ (8) 75 08
レポート数 (63) 95 3F
入力 (Cnst、Var、Abs、NWrp、Lin、Pref、NNul、Bit) 81 03
レポート ID (1) 85 01
使用法 (ベンダー定義 3) 09 03
レポートサイズ (8) 75 08
レポート数 (63) 95 3F
出力 (Cnst、Var、Abs、NWrp、Lin、Pref、NNul、Vol、Bit) 91 83
レポート ID (16) 85 10
使用法 (ベンダー定義 4) 09 04
レポートサイズ (8) 75 08
レポート数 (63) 95 3F
出力 (Cnst、Var、Abs、NWrp、Lin、Pref、NNul、Vol、Bit) 91 83
レポート ID (128) 85 80
使用法 (ベンダー定義 5) 09 05
レポートサイズ (8) 75 08
レポート数 (63) 95 3F
出力 (Cnst、Var、Abs、NWrp、Lin、Pref、NNul、Vol、Bit) 91 83
レポート ID (130) 85 82
使用法 (ベンダー定義 6) 09 06
レポートサイズ (8) 75 08
レポート数 (63) 95 3F
出力 (Cnst、Var、Abs、NWrp、Lin、Pref、NNul、Vol、Bit) 91 83
コレクション終了 C0