2016年11月13日日曜日

WiimoteLibでWiiリモコンプラスを使う

WiimoteLibでWiiリモコンプラスを使う

PC上でWiiリモコンを扱うライブラリ
WiimoteLib
https://wiimotelib.codeplex.com/
公式板の最新バージョンWiimoteLib v1.8 Beta 1は外付けのWii MotionPlusに対応していますが、Wii MotionPlusを内蔵するリモコン(新しいほうのやつ)には対応していません。
デバイスIDが異なるため弾かれるようです。

公式サイトからWiimoteLib_1.8_srcをダウンロードします。

解凍したファイルからWiimote.slnをVisualStudioで開きます。
Solution ExplorerのWiimoteLib - Docs - DataType.csを開いて
a00405で検索
 MotionPlus = 0x0000a4200405,を
 MotionPlus = 0x0100a4200405,に書き換えます

BuildメニューのBuild WiimoteLibでビルドします。

\WiimoteLib_1.8\WiimoteLib\bin\Releaseか
\WiimoteLib_1.8\WiimoteLib\bin\Debugに
WiimoteLib.dllができます。

外付けのWii MotionPlusには対応できなくなります。

======dllの作成ここまで=======

使い方

        wm.Connect()
        wm.InitializeMotionPlus()
        wm.WiimoteState.ExtensionType = ExtensionType.MotionPlus

このへんは私には何が正解かよくわかりませんが、2回くらい起動すると動くので、間違っているけどなんとかなるくらいの状態だと思います。。
        wm.SetReportType(InputReport.ButtonsAccel, True)
        wm.SetReportType(InputReport.IRExtensionAccel, True)



各データはこんな感じで取れます。

        yaw0 = wm.WiimoteState.MotionPlusState.RawValues.X
        roll0 = wm.WiimoteState.MotionPlusState.RawValues.Y
        pitch0 = wm.WiimoteState.MotionPlusState.RawValues.Z

角度が出てくるわけではなく、14bitの生値が出てくるそうです。
早い動きを検出するモードと遅い動きを検出するモードがあるそうです。
しっかりデータの解析をしていないのでよくわかりません。


キャリブレーションコマンドがLib内にありますが、私には使い方がわかりませんでした。




2016年6月26日日曜日

SmartNews利用時のパケット節約方法

スマートフォン用アプリSmartNews(スマートニュース)について
普通に使っているとデータ使用量(パケット数)がどんどん増えてしまいます。

起動時の読み込みが終了した後 モバイルデータをオフにするとパケットを節約できます。

これでわかる人はここまででこの記事は終了です。

以下細かい説明
まず、スマートニュースアプリの動作(勝手に予想)を説明します。
まず、アプリ立ち上げ時に見出し一覧とスマートモード用のテキストデータと画面に映っている記事のサムネイル画像を読み込んでいます。
そして画面スクロール時に画面内の記事のサムネイル画像を読み込み、
記事をタップしたときに元記事の全データを読み込み(これが重い)しています。スマートモードを使う場合は元記事のデータは読み込まなくても表示できるので、

Androidの場合の手順
(1)アプリを立ち上げる(orデータを手動で読み込む)
(2)通信が終わるまで(アンテナピクトの矢印が消えるまで)待つ
    画面を上から下にスワイプすることで手動更新もできます
(3)モバイルデータをオフにする

あとは普通に読むだけです。
終わったらデータ通信をオンにするのを忘れずに