[openrtm-users 00409] Re: PortProfileのownerメンバ
kurihara shinji
shinji.kurihara @ aist.go.jp
2008年 4月 3日 (木) 18:17:29 JST
スキューブド 佐藤様
お世話になっております。
産総研 栗原です。
PortProfileのownerがnilになっている件ですが、ご指摘の通りOpenRTM-aist-0.4.1
リリース版の実装ではownerのセットが行われておりません。
お手数ですが、RTObject.cppのregisterPort(PortBase& port)メソッドを下記のよう
に変更後、make -> make install にて対処していただけますでしょうか?
// file: RTObject.cpp line: 1053
void RTObject_impl::registerPort(PortBase& port)
{
m_portAdmin.registerPort(port);
port.setOwner(this->getObjRef()); // <--- この一行を追加
return;
}
> 1) ownerメンバを得る方法はこれで問題ありませんでしょうか?
こちらでも、上記修正を行い、同様の方法にて相手のコンポーネントを取得して
おります。
手順としましては、
1. ConnectorProfileより、相手ポートオブジェクトを取得。
2. 1.で取得したオブジェクトのget_port_profile()にて相手のPortProfileを取得。
(PortProfileに相手ポートのオブジェクトが格納されている。)
です。
# このバグに関しましては、後程、OpenRTMオフィシャルサイトのToDo > バグにア
# ップさせて頂きます。
以上、お手数お掛け致しますが、宣しくお願い致します。
> 安藤様
>
> たびたび申し訳ありません。
> エスキューブドの佐藤です。
>
> PortProfileのownerメンバについて質問があります。
>
> 現在、コンポーネントのポートから相手のポートのPortProfile#ownerにアクセ
> スすることで相手のコンポーネントを取得するというコードを書いています。し
> かしながら、ownerメンバは常にnilとなっています。
>
> また、PortBase#setOwnerメソッドでownerをセットするように見えますが、
> OpenRTM 0.4.1のコード中ではこのメソッドを使用していません。
>
> つきましては以下の2つの質問にお答えいただけないでしょうか?
>
> 1) ownerメンバを得る方法はこれで問題ありませんでしょうか?
>
> 2) 相手のコンポーネントを得る方法は他にありますでしょうか?
>
> お教えいただければ幸いです。
>
> ---
> 佐藤 竜太
>
>
--
----------
栗原 眞二
shinji.kurihara @ aist.go.jp
kurihara @ imagination.co.jp
openrtm-users メーリングリストの案内