Gainer with C++ vol.2

Macと戯れていたら,コンピュータビジョン・拡張現実感に関する普通じゃない勉強会
近づいてきたので,そろそろ重い腰を上げてみようかと思います(苦笑)
スロースターターですみません。。。>関係者各位

さて,自分のネタですが,発表作品にGainerを使っているものがなさそうなので,
Gainerを絡めたものを出す予定.そのため,フォルダに長い間眠っていた
Gainer with C++ vol.0で自作したライブラリを引っ張り出してみる.

で,いざ使おうと思っていると,単一センサの値読み取り程度なら十分だけど,
いろいろ不備があることが判明したので,同時期に同じことをやっていた
mootoh.log – Gainer++ – GainerをC++から使うを参考に再設計することに.
#正確には上記のもののWindows移植作業+α と言った方が正しいかも。。。

Win32 APIのスレッド周りの知識が怪しいので,結構苦戦して3時間くらいかかったけど,
とりあえず動くものはできました.これでGainerをC++で簡単に扱えます!!
#他人のソースを読むと,こんな書き方ができるのかーと発見があって面白かった

ということで,ボタンを押すと「LED点灯 + ウィンドウ上への情報表示」を行うサンプルです.
相変わらずサンプルが適当だな。。。>自分

Gainerで流行のアレを試してみた

(ホントに基本機能のみだけど)GainerをC++で扱えるようになったので,某動画サイトの流行に乗っかってみました.後悔はしていない.やってることは,加速度センサの値に応じて,画像を切り替えてるだけです(←俗に手抜きともいう).

今回,初めて某動画サイトへの動画投稿に挑戦しました.
叩かれそうで怖い。。。 まぁ,生暖かい目で(以下略)

Gainer with C++ vol.1

前回予告していたようにC++でGainerを扱うために行った処理を簡単に書いてみます.
もしかしたら,間違っていたり,こうした方が良い点などがあるかもしれないので,ご指摘お願いします.

ということで,今のところ最低限用意しているメソッドはこんな感じ.

(1)Gainer初期化
通信速度,パリティ等の設定(こちらを参考)

(2)リセットメッセージ送信
Gainerモジュールに文字列「Q*」 を送信.
(送信に成功したらGainer側からメッセージが送られるので受け取る)

(3)コンフィギュレーションの設定
Gainerモジュールに文字列「KONFIGURATION_1*」を送信.
(送信に成功したらGainer側からメッセージが送られるので受け取る)

(4)データの取得
Gainerモジュールに文字列「I*」を送信.
送信に成功したら,アナログ入力ain0~ain3のデータが文字列として
送られてくるので,その文字列を受信.

(5)文字列→数値変換
受信したアナログ入力のデータは,「Ixx…xx*」(※xx…xxがデータ部)
という構成の文字列なので,まずは入力分だけ文字列を分割.
また,値は16進なので10進に変換して利用.

(6)後処理
ポートのクローズ処理.

************************
あと,「プログラム風」に書くとこんな感じです.
※前回の記事ではこれらの処理に移動平均法の処理も加えています.

[cpp]
#include “MyGainer.h” //ヘッダのインクルード
MyGainer *gainer;

int main(int argc, char** argv)
{
//Gainerオブジェクト生成
//ここではCOM3を指定
gainer = new MyGainer(3);

//初期化
//(COMポートオープン、通信速度等設定)
gainer->initialize();

//コンフィギュレーションの設定(MODE1)
gainer->setConfiguration(1);

//キー値
int key = 0;

//ループ
while(1)
{
//データ取得
//(メッセージ送信 + データ受信 + 文字列→数値)
gainer->getAllAnalogInput();

//キー入力待ち(1msec)
key = getKeyInput();

//ESCキーが押されたら終了
if(key == 0x1b)
{
break;
}
}

//後処理(COMポート解放)
gainer->release();
delete gainer;

return 0;
}[/cpp]