next up previous
Next: 3.2.1 DoInit() Up: 3 OPEN-Rプログラミングの基礎 Previous: 3.1.2.2.7 モード

3.2 オブジェクトのためのクラスとメンバ関数

OPEN-Rプログラミングでは,C/C++言語と異なり, プログラムの開始点であるmain()関数を記述しない. その代わり,実行されるプログラム(オブジェクト)を 表すC++のクラスを記述し,AIBO のシステムから呼び出されるエントリポイントを クラスのメンバ関数として実装する. オブジェクトを表すクラスは, ヘッダファイルの中で,次のようにOObjectクラスを継承し, DoInit(),DoStart(),DoStop(),DoDestroy()の4つの メンバ関数を宣言したものになる. 以下のプログラムは,telnetでAIBOへ接続し, 「Hello World」という文字列を表示させるプロクラムである. telnetでAIBOへ接続し,実行結果をみることには無線コンソールが 必要である. ※HelloWorldでは,オブジェクト間通信を行わない.

[HelloWorld.h]

#include <OPENR/OObject.h>

class HelloWorld : public OObject { //継承
 public:
  HelloWorld(); 
  virtual ~HelloWorld() {}  

  virtual OStatus DoInit   (const OSystemEvent& event);
  virtual OStatus DoStart  (const OSystemEvent& event);
  virtual OStatus DoStop   (const OSystemEvent& event);
  virtual OStatus DoDestroy(const OSystemEvent& event);
};
OPEN-Rプログラミングでは,main()関数に書かれたプログラムが順に実行され るのではなく,OObjecを継承したクラスのメンバ関数が「何々したとき」に呼 び出される形になる.この「何々したとき」のことをイベントと呼ぶ. また,基本的な4つのメンバ関数は,次のように呼び出される.



generated through LaTeX2HTML. M.Inaba 平成18年5月6日