[openrtm-users 00431] RTCのデストラクタにつきまして

2 個の投稿 / 0 new
最終投稿
root
オフライン
Last seen: 2日 19時間 前
登録日: 2009-06-23 14:31
[openrtm-users 00431] RTCのデストラクタにつきまして

産総研の中島です。

以下2点について質問させてください。

(1)「RTCのデストラクタ」について

RTCの状態遷移がどのように呼ばれるかを確認するためにサンプルソースを
作成し、全てのメソッド(constructer/destructer含む)をアンコメントアウト
して内部にデバッグライト(以下のようなもの)を入れて、例えばRtc-Linkで「activate」,「exit」
などの操作を行った場合に、どのように呼ばれるかを確認しておりましたところ、
「exit」「finalize」などを行っても「destructer()」に入らないように思えました。

ex1) 端末からRTC起動 -> Rtc-Linkで「activate」->「exit」で終了
「now in constructer()」
「now in onInitialize()」
「now in onStartup()」
「now in onActivate()」
   「now in onExecute()」
「now in onStateUpdate()」
「now in onFinalize()」

ex2) 端末からRTC起動 -> Rtc-Linkで「activate」-> 「deactivate」->「exit」で終了
「now in constructer()」
「now in onInitialize()」
「now in onStartup()」
「now in onActivate()」
   「now in onExecute()」
「now in onStateUpdate()」
「now in onDeactivate()」
「now in onShutdown()」
「now in onFinalize()」

上記2つの例では、最後に「now in destructer()」というデバッグライトを期待していたのですが、
得られませんでした。

デストラクタは呼ばれないのでしょうか?

(2) 終了方法について

 以前のMLにもありましたが、端末でRTC(manager?)を起動(./SampleComp) 
した場合、「exit」「finalize」でコンテキストとRTCが終了しても、managerを
終了させるには、やはり「ctrl+c」をしなければ終了できないのでしょうか?

よろしくお願いいたします、

未定義
root
オフライン
Last seen: 2日 19時間 前
登録日: 2009-06-23 14:31
[openrtm-users 00433] RTCのデストラクタにつきまして

中島様

安藤です

> 以下2点について質問させてください。
>
>
> (1)「RTCのデストラクタ」について
>
> RTCの状態遷移がどのように呼ばれるかを確認するためにサンプルソースを
> 作成し、全てのメソッド(constructer/destructer含む)をアンコメントアウト
> して内部にデバッグライト(以下のようなもの)を入れて、例えばRtc-Linkで「activate」,「exit」
> などの操作を行った場合に、どのように呼ばれるかを確認しておりましたところ、
> 「exit」「finalize」などを行っても「destructer()」に入らないように思えました。
>
> ex1) 端末からRTC起動 -> Rtc-Linkで「activate」->「exit」で終了
> 「now in constructer()」
> 「now in onInitialize()」
> 「now in onStartup()」
> 「now in onActivate()」
> 「now in onExecute()」
> 「now in onStateUpdate()」
> 「now in onFinalize()」
>
> ex2) 端末からRTC起動 -> Rtc-Linkで「activate」-> 「deactivate」->「exit」で終了
> 「now in constructer()」
> 「now in onInitialize()」
> 「now in onStartup()」
> 「now in onActivate()」
> 「now in onExecute()」
> 「now in onStateUpdate()」
> 「now in onDeactivate()」
> 「now in onShutdown()」
> 「now in onFinalize()」
>
> 上記2つの例では、最後に「now in destructer()」というデバッグライトを期待していたのですが、
> 得られませんでした。
>
> デストラクタは呼ばれないのでしょうか?

デストラクタを呼ぶように作ったつもりでしたが、
もしかすると呼ばれないかもしれません。
終了処理周りはちょっと怪しい部分もあるので調査してみます。

> (2) 終了方法について
>
> 以前のMLにもありましたが、端末でRTC(manager?)を起動(./SampleComp)
> した場合、「exit」「finalize」でコンテキストとRTCが終了しても、managerを
> 終了させるには、やはり「ctrl+c」をしなければ終了できないのでしょうか?

RTC::Manager::instance.terminate()
を呼べば終了したと思います。

コメントを投稿するにはログインまたはユーザー登録を行ってください

ダウンロード

最新バージョン : 2.0.1-RELESE

統計

Webサイト統計
ユーザ数:2209
プロジェクト統計
RTコンポーネント307
RTミドルウエア35
ツール22
文書・仕様書2

Choreonoid

モーションエディタ/シミュレータ

OpenHRP3

動力学シミュレータ

OpenRTP

統合開発プラットフォーム

産総研RTC集

産総研が提供するRTC集

TORK

東京オープンソースロボティクス協会

DAQ-Middleware

ネットワーク分散環境でデータ収集用ソフトウェアを容易に構築するためのソフトウェア・フレームワーク