[openrtm-users 00747] 意図せず多重リンクになってしまう問題
Nobuyuki Kita
n.kita @ aist.go.jp
2009年 1月 29日 (木) 16:19:20 JST
産総研の喜多です。
以前、[openrtm-users 00474]にて、中島氏より 同一PORT同士の多重接続に
ついて報告がありましたが、最近、OpenHRPを使っていなくても頻繁に
意図せず多重リンクになってしまう現象に遭遇したので、何故そのように
なってしまうかを調査しました。わかった範囲で整理しましたので報告します。
RTCLinkあるいはRT System Editorを使う上で認識すべきこと
1.多重リンク(コンポーネントAのポートA1とコンポーネントBのポートB1を
多重に接続する)が許されていること
2.RTCLinkやRT System Editor では、多重リンクが通常同じ場所に表示され
るのでリンクをドラッグしてみるまで多重になっていることに気づかないこと
3.saveした接続情報(RTCLinkの場合はxxx.rtclink、RT System Editorの
場合はxxx.xml)を読み込むとき、現状の接続情報は維持したまま読み込む。
よって、RTCLinkあるいはRT System Editor上でコンポーネントAのポートA1と
コンポーネントBのポートB1を手動で接続したあと、コンポーネントAの
ポートA1とコンポーネントBのポートB1を接続した状態でsaveしたファイルを
restoreすると、コンポーネントAのポートA1とコンポーネントBのポートB1の
接続は2重になる(ただしsaveとrestoreの間にコンポーネントを再起動して
いない場合は多重リンクにはならない)
4.RTCLinkあるいはRT System Editor上で、マウスの左ボタンのクリック&
ドラッグでコンポーネントAとコンポーネントBとポートA1とポートB1の接続を
囲んだあとDeleteしても、ポートA1とポートB1の接続は表示からは消えても
接続情報は維持されたままである。ポートA1とポートB1の接続情報を消す
ためには、リンク自身をクリックして明示的に選択してDeleteする必要がある
(実は、マウスの左ボタンのクリック&ドラッグでコンポーネントAと
コンポーネントBとポートA1とポートB1の接続を囲んでも、よく見ると
ポートA1とポートB1の接続は選択された状態になっていない)
以上です
openrtm-users メーリングリストの案内