【Windowsプログラミング】VRCのコントロールを取り込まなきゃ。。WindowsのUSBデバイスを読むには【自作UAV】

DSC_0690

VRCのUSB変換器かったら・・・

1日で、到着(笑) そしたら、やっぱり走らせるのが好きなので、VRCで遊んでしまった(笑)

【自作ラジコンUAV】USBアダプタ買ったのでVRCをインストールして動かしてみる。。【シミュレータ】

で・・

【DQNな動画】ラジコンカーの自動運転に機械学習で使えそうな映像を集めてみた。。【UAVシミュレータ】

なことをしたいので・・  画像・映像は撮れるツールがあるので、それでやるとして・・

USBのJoystickデバイスの値を映像といっしょに取らなきゃだめですね。

Windowsで、USBのデータを取るには

昔だったらシリアル通信の部分なので、シリアルのポートを垂れ流せばいいのかな?なんて思っていたんですが・・

Gitで検索したら出てきたやつはこれ。 Joystickをモニターするもの。。

https://github.com/gdmalet/JoyMon

ん・・ウィンドウの上にある時だけだ。。このままじゃダメですね。仕方がないので組んでみるかな?って思って

ぐぐってみると、なにやら最近は、DirectXというSDK類の中に含まれている関数を使わなきゃいけなさそう。上のソフトもDirectXを使っているようです。

DirectX SDKが入らない!

[C#]DirectInputでジョイスティック(ゲームパッド)を使用する

ちょっと古いけど、こいつを参考にして、やってみっか?って。。VisualStudioとDirectX SDKを入れてみたら・・入らない。

原因は、インストーラーがボケなだけのようで。。Visual C++の再配布ライブラリの2010年以降のやつがあるとインストールが完了しないようです。MicrosoftってこういうDLLとかの依存とか、インストーラーのチェックとかあちこちに地雷が仕掛けてあって、2010年とかっていう古いSDKなのに、放置されてて、公式サイトには対策方法とかが乗ってなくてググらないと出てこないというやつは、本当に大昔から変わってないですね(笑)

で・・・無事に、SDKが入ったので、サンプルを入れようと思ったら・・Visual Studioが2017になってて、今度は上のサイトのサンプルが入らないって(笑)

でもやってみても・・やっぱり上のアプリのようになってしまう。。

次は公式サイトにあるサンプルを調べてみる(笑)

DirectInput Samples
These are the original DirectX SDK Win32 samples for the legacy DirectInput API updated to build with Visual Studio 2012 without using the DirectX SDK.

https://code.msdn.microsoft.com/windowsdesktop/DirectInput-Samples-8ac6f5e3

Visual Studio2012を使えばSDKいらんのか?(笑) Win32 じゃないけどねぇ~

DirectInput? それとも Xinput?

https://msdn.microsoft.com/ja-jp/library/windows/desktop/ee417001.aspx

ん?Windows10だとJava??

https://github.com/Microsoft/Windows-universal-samples/tree/master/Samples/CustomUsbDeviceAccess

USB関数?

そんなのもあるのね。。これだとDriver直接たたけそう。。

https://msdn.microsoft.com/en-us/library/windows/hardware/ff540046(v=vs.85).aspx#winusb

Joystickのサンプル?やっぱDirectX?

http://princess-tiara.biz/directx/?chapter=14

 

昔は楽だったなぁ~

http://tom2rd.sakura.ne.jp/tominaga/pc/soft/lapmon/index.html

この時代だったら、シリアルで読むだけだったような気がする。簡単だったよ~ん(笑)

今日はもう眠くなったので、明日にします(笑)

投稿者 tom2rd

コメントを残していただけるとありがたいです

Loading Facebook Comments ...

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください