[openrtm-beginners:00479] Re: 終了処理について

Yuki Suga ysuga @ ysuga.net
2013年 8月 22日 (木) 19:37:11 JST


杉浦様:
菅です.

まず,RTC Builderで生成されるほにゃららComp.cppに含まれているmain関数は,
おまけのようなもののはずです.

本来,RTC単体はDLLの形で提供されるもので,
RTCの各コールバック関数のみ利用します.
これはRTCを作る側の人に守ってもらいたいことです.


一方で独自のソフトウエアをRTCと通信させるためには,
独自のソフトウエア上でManagerを実体化してRTCを使うことが
必要になると思います.この場合は終了処理を実装する必要がありますよね.


RTCを正しく解放するには,
Managerのshutdownを使います.

RTCを個別に終了するには,
deleteComponent関数を使います.

詳しくはManager.hのコメントを見るか,
Doxygenで生成されたマニュアルを参照してください.

http://www.openrtm.org/OpenRTM-aist/doxygen/ClassReference/classRTC_1_1Manager.html



2013/8/22  <n.sugiura.tr @ gmail.com>:
> お世話になります。杉浦と申します。 RTC
> Builderから生成されたコードをみているのですが、
> main関数が以下のようになっておりますが、明示的に
> 終了処理(ライフサイクルの停止やmanagerのdelete等)が
> 無いのですが良いものでしょうか?
> もし必要でしたら正しい終了のさせ方を教えて頂けますでしょうか?
> int main (int argc, char** argv) { RTC::Manager* manager; manager =
> RTC::Manager::init(argc, argv); // Initialize manager manager->init(argc,
> argv); // Set module initialization proceduer // This procedure will be
> invoked in activateManager() function.
> manager->setModuleInitProc(MyModuleInit); // Activate manager and register
> to
> naming service manager->activateManager(); // run the manager in blocking
> mode // runManager(false) is the default. manager->runManager(); // If you
> want to run the manager in non-blocking mode, do like this //
> manager->runManager(true); return 0; }
>
> _______________________________________________
> openrtm-beginners mailing list
> openrtm-beginners @ openrtm.org
> http://www.openrtm.org/mailman/listinfo/openrtm-beginners



-- 
///////////////////////////////////////////////////////////////////
// Yuki Suga, Ph.D.
// URL: http://www.ysuga.net/?lang=en
// E-mail: ysuga @ ysuga.net
///////////////////////////////////////////////////////////////////


More information about the openrtm-beginners mailing list