操作
バグ #2084
未完了複合RTCのメンバ(子RTC)を削除すると,すべての子RTCがECからデタッチされてしまう
開始日:
2011/05/02
期日:
進捗率:
30%
予定工数:
説明
1.複合RTCをエディタで開いて子RTCを Delete
2.複合RTCは親RTCの ECに,子RTCがアタッチされる
子RTCの一部を削除すると,その子RTCだけがデタッチされるべきだと思うのですが,
すべての子RTCがデタッチされてしまうようです.
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の処理に関しては、再検討する必要がある。
操作