1

Python スクリプトを使用してゲーム コントローラーのヒューマン インターフェイス デバイス (HID) と通信しようとしていますが、コントローラーからデータを受信できません。私は pywinusb 0.3.2 と Python 3.3 を使用しています。ゲーム コントローラは Logitech Gamepad F310 です。pywinusbへのリンクはこちらです。

PythonにHIDを認識させることができましたが、そこからどこへ行くべきかについて行き詰まっています。コントローラーを認識するための私のコードは次のとおりです。

import pywinusb.hid as hid

target = hid.HidDeviceFilter(vendor_id = target_vendor_id, product_id = target_product_id)
allitems = target.get_devices()
device = allitems[0]
print(device)

このコードは次のようなものを返します: HID device (vID=0x00a, pID=0xa000, v=0x0000); ロジクール; ロジクール デュアル アクション、パス: \(ここでは数字と文字の長いシーケンス)

ここでのアプローチがコントローラーで機能するかどうか、または pywinusb に適した別のライブラリがあるかどうかはわかりません。ライブラリを切り替える必要がある場合は、クロスプラットフォームのものに切り替えることをお勧めします。含まれている例のセクションにある少量のドキュメントでは、これを理解するのに十分ではありませんでした。

私の質問は次のとおりです。コントローラーからデータを受け取るにはどうすればよいですか? コマンドはありますか?私は Arduino を少し使ったことがありますが、それを Wii ヌンチャクに接続するのも同様のプロセスでした。Arduino と同様に、初期化シーケンスを送信する必要がありますか? コントローラーの両方のスティックの x 値と y 値、およびボタンが押されているかどうかを知る必要があります。

これが明らかであるか、すでに回答されている場合は、お詫び申し上げます。Python で HID を使用したことはありません。

4

1 に答える 1

0

HID の使用法がどのように機能するかを見てみましょう (google around)。

show_hids.py サンプル スクリプトを使用して、デバイスが標準的な使用法を公開しているかどうかを確認します。

そうでない場合は、未加工のレポート ハンドラーを使用することが唯一の望みです (ソースのサンプル フォルダーを確認してください。github のコードを使用することをお勧めします)。

于 2015-03-21T01:30:12.250 に答える