OpenRTM / OpenRTP-aist

OpenRTP-aist: RT-Middleware and OMG RTC based component and system development tools implemented by AIST
Other
1 stars 6 forks source link

[RTSE]関連コンポーネント自動表示機能を追加 #522

Closed ga-sakamoto closed 7 months ago

ga-sakamoto commented 8 months ago

Identify the Bug

Link to #519

Description of the Change

519 の仕様を基に,関連コンポーネントを自動表示する機能を追加させて頂きました.

データポート間の接続,サービスポート間の接続を辿るようにしております. なお,ツールバー上に表示される以下のアイコンにつきましては,暫定的にオブザーバのアイコンを割り当てています.  connection_chain_auto.png  connection_chain_auto@2x.png  connection_chain_manual.png  connection_chain_manual@2x.png

Verification

n-kawauchi commented 7 months ago

このPRをレビューしたいので、確認手順を具体的に教えて下さい。よろしくお願いします。

ga-sakamoto commented 7 months ago

こちらで行った確認手順をご紹介させて頂きます.

前準備として,適当なサンプルコンポーネントを,通常通りの手順でオンラインエディタに配置し,ポート間の接続を行う →こちらではOpenCVコンポーネントなどを使用しました. image image

【手動チェックの確認】

  1. ある1つのコンポーネントを残して,それ以外のコンポーネントをエディタ上から削除
  2. ツールバー上の「Connection Chainを手動でチェック」をクリック
  3. 01で存在したコンポーネントがエディタ上に追加され,ポート間に接続も行われている
  4. 適当なポート間の接続を切断した後,再度,1つだけコンポーネントを残して,それ以外をエディタから削除
  5. ツールバー上の「Connection Chainを手動でチェック」をクリック
  6. 4で切断した接続よりも前に存在するコンポーネントが復活する

【自動チェックの確認 その1】

  1. ある1つのコンポーネントを残して,それ以外のコンポーネントをエディタ上から削除
  2. ツールバー上の「Connection Chainを自動でチェック」をクリック
  3. 01で存在したコンポーネントがエディタ上に追加され,ポート間に接続も行われている
  4. 再度,エディタ上からコンポーネントを削除
  5. 一定時間(デフォルトでは1秒)で,削除したコンポーネントが復活する
  6. ツールバー上の「Connection Chainを自動でチェック」を再度クリック
  7. 再度,エディタ上からコンポーネントを削除
  8. 一定時間が経過してもコンポーネントが復活しない →自動のボタンがトグルボタンになっているためです

【自動チェックの確認 その2】

  1. 全てのコンポーネントをエディタ上から削除
  2. ツールバー上の「Connection Chainを自動でチェック」をクリック
  3. ネームサービスビューから,任意のコンポーネントをエディタ上にDnD
  4. 一定時間が経過すると,全てのコンポーネントが復活する

自動チェックにつきましては,チェック周期を,RTSEの設定メニュー中の「チェック周期」で指定できるようにしていますので,こちらの値を変えて試して頂きますと,コンポーネントが復帰するまでの時間が変わるようになっています.

n-kawauchi commented 7 months ago

RTSEとRTCが異なる環境の場合、【手動チェックの確認】の 3 でコンポーネントがエディタに追加されません。 自動チェックでも接続されませんでした。 LAN上のWindowsとUbuntu22.04で下記の2つのパターンで確認しました。

1.Windows上でRTSEを実行 ・Ubuntu上でSeqIn/SeqOutを実行

2.Ubuntu上でRTSEを実行 ・Windows上でSeqIn/SeqOutを実行

ga-sakamoto commented 7 months ago

上記のお話なのですが,RTSEのネームサービスビューに各RTCは登録されている状態でしょうか? 接続先のRTCを探しにいく際に,ネームサービスビューで探索を行うため,ネームサービスビューに登録されていないRTCは復元する事ができません. 説明が不足しており,申し訳ございませんでした.

n-kawauchi commented 7 months ago

RTSEのネームサービスビューに各RTCは登録されている状態でしょうか?

はい、登録されています。手動でエディタ上にDnDし、ポート間を接続した状態で、一方のRTCをDeleteしてからツールバーのボタン(Connection Chainの手動と自動のチェック)を押して確認しました。

ga-sakamoto commented 7 months ago

かしこまりました. 再度,確認させて頂きます.

ga-sakamoto commented 7 months ago

NameServiceViewに,NameServerが複数登録されている場合の処理がおかしかったので,修正させて頂きました.