モニタクラスとは、センサデータの入力を全て記録しておいて、後からデータを再生したりするためのクラス。で、これから作るのは、その UrgCtrl 版。
基本的に、UrgCtrl でやっているのは、データ取得だけなので、要は getFrame() でユーザに返すデータについて、
- モニタの記録時には、ユーザにデータを渡すと同時にログファイルにも記録
- モニタの再生時には、ログファイルからのデータを、ユーザに返す
という挙動を提供してやればよい。
今回は、とりあえず UrgCtrl を取り込んだ mUrgCtrl クラスを作ったところまで。実装はほとんどのメソッドでこんな感じ。
struct mUrgCtrl::pImpl {
UrgCtrl urg;
pImpl(void) {
}
};
const char* mUrgCtrl::what(void) {
return pimpl->urg.what();
}
ま、簡単だな。
あとは、getFrame() とかデータをユーザに渡すタイミングで記録と再生の調整をすればよい。
それは、また今度♪