プロジェクト

全般

プロフィール

バグ #2084

複合RTCのメンバ(子RTC)を削除すると,すべての子RTCがECからデタッチされてしまう

taほぼ13年前に追加. ほぼ9年前に更新.

ステータス:
担当
優先度:
通常
担当者:
対象バージョン:
-
開始日:
2011/05/02
期日:
進捗率:

30%

予定工数:

説明

1.複合RTCをエディタで開いて子RTCを Delete
2.複合RTCは親RTCの ECに,子RTCがアタッチされる

子RTCの一部を削除すると,その子RTCだけがデタッチされるべきだと思うのですが,
すべての子RTCがデタッチされてしまうようです.

履歴

#1 kuriharaほぼ13年前に更新

  • ステータス新規 から 担当 に変更
  • 担当者kurihara にセット

#2 kuriharaほぼ13年前に更新

  • 進捗率0 から 30 に変更

PeriodicECSharedComposite.cppのremoveParticipantFromEC(Member& member)
内の以下の内容で、organizationのメンバーにをremove_componentでECから削除する
ようになっている。

   // line: 380
   OrganizationList_var orglist = member.rtobj_->get_organizations();
   for (CORBA::ULong i(0); i < orglist->length(); ++i)
     {
       SDOList_var sdos = orglist[i]->get_members();
       for (CORBA::ULong j(0); j < sdos->length(); ++j)
         {
#ifndef ORB_IS_RTORB
           ::OpenRTM::DataFlowComponent_var dfc;
           if (!sdoToDFC(sdos[j].in(), dfc.out())) { continue; }
#else // ORB_IS_RTORB
           ::OpenRTM::DataFlowComponent_var dfc;
           ::OpenRTM::DataFlowComponent_ptr dfc_ptr(dfc);
           if (!sdoToDFC(sdos[j].in(), dfc_ptr)) { continue; }
#endif // ORB_IS_RTORB
           m_ec->remove_component(dfc.in());
         }
     }

PeriodicECSharedComposite.cppのadd/removeParticipantFromEC(Member& member)
での上記処理は、 r1593 にて追加されている。
Compositeの処理に関しては、再検討する必要がある。

#3 n-andoほぼ9年前に更新

  • プロジェクトOpenRTM-aist (C++) から コア に変更

他の形式にエクスポート: Atom PDF