Donkey CarのGitHubリポジトリが2.5.1から2.5.8にかわり
リポジトリ構成がどんどんかわってきている。
その過渡期にDonkey Carに取り組んでしまったのは
不幸かもしれない。
ジョイスティックコントローラもそんなひとつ。
だって、
autorope/donkeypart_ps3_controller
と
autorope/donkeypart_bluetooth_game_controller
のふたつがあり、
前者は
/dev/input/js0を標準ライブラリで読む
仕様であり、後者は
/dev/input/event0 をevdevパッケージで読み、かつ設定ファイルをyamlで書く
仕様になっている。
どうもBluetooth側が後発であり新しそうなので、
おそらくこっちで統一しようとしているのだと思う。
というわけで上の図で紹介している
Logicool製F710コントローラをDonkey Carコントローラにする
コントローラクラスの親クラスは
autorope/donkeypart_bluetooth_game_controller
を使うことにした。
で、調べてみるとこのF710、上面にD/Xを選択するスイッチがあって、
これを操作することで DirectInput/Xinput仕様どっちもうごかせるようになっている。
さらにevdevパッケージで製品名を調べると、
スイッチ変えるごとに名前が違う事が判明..
しょうがないのでどっちでも動かせるように
作り変えた。
こんなトンデモ仕様のジョイスティックを想定していない
親クラスは、結局YAMLファイルへ個別仕様の封じ込めに失敗することとなる...
で、作ったのがコレ
coolerking/donkeypart_game_controller
一応oldディレクトリにPS3系パッケージを継承したクラスも用意しています。
詳細は上記リンクを参照のこと。
p.s.
なお、ELECOM製JC-U3912Tというコントローラも
一緒に作ってみました..
リポジトリ構成がどんどんかわってきている。
その過渡期にDonkey Carに取り組んでしまったのは
不幸かもしれない。
ジョイスティックコントローラもそんなひとつ。
だって、
autorope/donkeypart_ps3_controller
と
autorope/donkeypart_bluetooth_game_controller
のふたつがあり、
前者は
/dev/input/js0を標準ライブラリで読む
仕様であり、後者は
/dev/input/event0 をevdevパッケージで読み、かつ設定ファイルをyamlで書く
仕様になっている。
どうもBluetooth側が後発であり新しそうなので、
おそらくこっちで統一しようとしているのだと思う。
というわけで上の図で紹介している
Logicool製F710コントローラをDonkey Carコントローラにする
コントローラクラスの親クラスは
autorope/donkeypart_bluetooth_game_controller
を使うことにした。
で、調べてみるとこのF710、上面にD/Xを選択するスイッチがあって、
これを操作することで DirectInput/Xinput仕様どっちもうごかせるようになっている。
さらにevdevパッケージで製品名を調べると、
スイッチ変えるごとに名前が違う事が判明..
しょうがないのでどっちでも動かせるように
作り変えた。
こんなトンデモ仕様のジョイスティックを想定していない
親クラスは、結局YAMLファイルへ個別仕様の封じ込めに失敗することとなる...
で、作ったのがコレ
coolerking/donkeypart_game_controller
一応oldディレクトリにPS3系パッケージを継承したクラスも用意しています。
詳細は上記リンクを参照のこと。
p.s.
なお、ELECOM製JC-U3912Tというコントローラも
一緒に作ってみました..
0 件のコメント:
コメントを投稿