調査 #3077
open新ECのaddComponent()で即座にRTCリストにRTCが入らない件
0%
Description
菅様
安藤です
試してみていただきありがとうございます。
addComponent でコンポーネントリストの m_comps に即座に
追加されないのは,コンポーネントのコールバック実行中に,
コンポーネントリストが更新されるのを避けたかったからです。
でも,ECが回っていないときには即座にコンポーネントリストが
更新されてもいいような気もしますね。ちょっと考えさせてください。
----
経済産業省 産業機械課 情報化推進係長
博士(工学) 安藤 慶昭
TEL: 029-861-5981 (携帯) TEL: 03-3501-1691(産機課代表)
TEL: 03-3501-1512(経産省代表)→ 72545(個人PHS)
E-MAIL: ando-noriaki@meti.go.jp
Noriaki Ando, Ph.D. Assistant Director
Industrial Machinery Division, Manufacturing Industries Bureau
Ministry of Economy, Trade and Industry
E-MAIL: ando-noriaki@meti.go.jp
2014年6月13日 15:22 Yuki Suga <ysuga@ysuga.net>:
安藤先生:
菅です.お世話になります.いただいたコードで動作しました.OSX10.9,Xcode5.1,omniORB4.1.6で試しました.
一点,お聞きしたいのですが,
現状で,ExecutionContextBase::addCompnentをすると,
ExecutionContextWorker内のm_addedCompsにRTObjectStateMachineが格納されて,m_compsには入りません.
一度,tickが呼ばれて,ExecutionContextWorker::invokeWorkerが呼ばれない限りは,
ExecutionContextWorker::m_compsメンバに移動されないので,
activateComponentを送っても,findComponentで失敗します.
これは仕様ですか?あまり直感的じゃないのですが・・・できれば,
RTObject_ptr comp = ....;
EC_ptr ec = Manager::instance::createContext(ec_id);
ec.addComponent(comp);
ec.activateComponent(comp);としたいところでしたが・・・
ではでは
Updated by n-ando over 9 years ago
- Project changed from OpenRTM-aist (C++) to コア