お世話になります。
[openrtm-users 00522] 実行コンテキストに関する質問
お世話になります。
野村様
安藤です
> お世話になります。
山武 野村様
産総研 安藤です
お世話になっております。
> お世話になります。
金広@産総研です。
2008/07/14 1:09 Ando Noriaki :
> 産総研 安藤です
>
> また、0.4.2から manager.modules.preload オプション(etc/rtc.conf.sample参照)
> が使えますので、作成されたECを共有オブジェクト化しておけば、
> rtc.confに指定するだけロードおよびアタッチができると思います。
> (まだECでは試したことがないので動くかどうかはわかりませんが。)
上記の方法でExecutionContextをダイナミックロードして使えるか試して
みましたが、結果は動作しませんでした。
これはManager::activateManager()において、initProc(通常ここでコンポーネント
の生成を実行していると思います)の呼び出しがpreloadの処理よりも先に行われて
いるため、まだロードされていないExecutionContextを作ろうとするためのようです。
差し支えなければ次期バージョンではこれらの順序を逆にしていただければと
思います。
金広様
安藤です
> 金広@産総研です。
>
> 2008/07/14 1:09 Ando Noriaki :
>> 産総研 安藤です
>>
>> また、0.4.2から manager.modules.preload オプション(etc/rtc.conf.sample参照)
>> が使えますので、作成されたECを共有オブジェクト化しておけば、
>> rtc.confに指定するだけロードおよびアタッチができると思います。
>> (まだECでは試したことがないので動くかどうかはわかりませんが。)
>
> 上記の方法でExecutionContextをダイナミックロードして使えるか試して
> みましたが、結果は動作しませんでした。
>
> これはManager::activateManager()において、initProc(通常ここでコンポーネント
> の生成を実行していると思います)の呼び出しがpreloadの処理よりも先に行われて
> いるため、まだロードされていないExecutionContextを作ろうとするためのようです。
>
> 差し支えなければ次期バージョンではこれらの順序を逆にしていただければと
> 思います。
ご指摘ありがとうございます。
preloadオプションは、ECやその他のモジュールのロードにも
使えるかなと思ってつけたオプションだったのですが、
試してはいませんでした。
次期バージョンではその辺を考慮したいと思います。
お世話になっております。
静岡大 清水です。
C++版の場合ですが、
ECのインスタンスをきれいに消す方法は
ないと思います。
本来は、ManagerにECを消すメソッドが無ければ
ならないのですが、0.4.2では用意されてません。
ちなみに、ECのインスタンスを生成したマシン上
であれば、強引に消すこともできます。
ECのCORBAリファレンスはRTCから取得できるので、
それをservantに変換し、deleteすれば
インスタンスを消せます。
ただ、0.4.2ではECのインスタンスを消すと
バグのためにセグメントエラーが出ると思います。
ですので、おすすめはできません。
また、ECなしのRTCですが、RTCインスタンス自身は
簡単に生成できます。ただし、RTCのconfigが
されないために、ネームサーバにきちんと登録されず、
Rtclink等から制御できません。
自分でconfigをすればよいのですが、
confファイルのparseが必要だったりするので、
かなり面倒です。
私もECの操作にはかなり苦労しているので、
次期バージョンで改良されることを期待しています。
清水
お世話になります。