プロジェクト 秘密戦隊ハカタ 事件簿

「秘密戦隊ハカタ」が遭遇したさりげない日常の事件の記録

Bluetoothの接続タイミング

2009-07-16 08:14:36 | ETロボコン
雨上がりに虹が...
もうすぐ梅雨も明けるかな
九州のソフト業界の梅雨明けは...いつになることやら。

Bluetoothの接続、切断のタイミングをどうするか、悩ましいところですが、nxtOSEK-ATK/JSPの場合、OS起動終了時に呼ばれるフック関数が用意されていて、それを使うと便利です。
OS起動時
void ecrobot_device_initialize(void)
{
ecrobot_init_bt_slave(Bluetoothのパスキー4桁); //Bluetooth接続
}
OS終了時
void ecrobot_device_terminate(void)
{
ecrobot_term_bt_connection(); //Bluetooth切断
}
さらにOS終了時にモーターを止めておいた方が良いでしょう。
nxt_motor_set_speed(PORT_MOTOR_R,0,0);
nxt_motor_set_speed(PORT_MOTOR_L,0,0);

この辺り、さらっとサンプルプログラムに書かれていますが、説明が無い(もしかしたらnxtOSEKのドキュメントの何処かに書かれているのかも)ので判りにくかったと思います。
この2つの関数は、最初に起動されるメインのプログラムに書いておけば(別にヘッダーファイルに定義は必要なし)、OS起動終了のタイミングで呼ばれます。
C++の場合、API関数が剥き出しで気持ち悪い場合は、API関数をカプセル化したクラスを作って呼び出せば良いでしょう。
このフック関数を使うと、OS起動”nxtOSEK-XXX”の表示が出てRUNボタン待ちの状態で、Bluetoothが接続待ちの状態になるので、このタイミングでNXTGamePadなどのログ取得用プログラムから接続を開始出来ます。

あっ。気づいている人もいるでしょうが、Bluetoothのパスキーのデフォルト"1234"。試走会の時には任意のキーに書き換えておきましょうね。
そうしないと大変なことが起こると予想されます...。そう大変な、きゃーああ恐ろしい。ブルブル。

最新の画像もっと見る

1 Comments

コメント日が  古い順  |   新しい順
Unknown (take)
2009-07-24 19:02:25
nxtway_gsとnxt remoconの接続の仕方を教えて下さい。出来るだけ細かく教えて下さるとありがたいです。
返信する

post a comment