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

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

usb - STM32f4 HID 受信データ

デバイス モードで HID(USB) として実行されている STM32f407 ディスカバリ ボードでホスト PC から OUT レポート データを受信する方法を教えてください。出来ますか?hidapiを使ってホストからデータを送ろうと思っています。

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

c++ - HID USB コントロール転送 (Windows)

最近、Windows 10 での HID デバイスとの通信について学び始めました。

しかし、いくつか質問があります。

Window のドキュメントによると、パラメータHidD_SetOutputReportの最初のバイトをレポート ID または.ReportBuffer0x00

私のデバイスの 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