Project

General

Profile

調査 #3077

新ECのaddComponent()で即座にRTCリストにRTCが入らない件

Added by n-ando over 7 years ago. Updated over 6 years ago.

Status:
新規
Priority:
通常
Assignee:
Target version:
-
Start date:
06/13/2014
Due date:
% Done:

0%

Estimated time:

Description

菅様

安藤です

試してみていただきありがとうございます。
addComponent でコンポーネントリストの m_comps に即座に
追加されないのは,コンポーネントのコールバック実行中に,
コンポーネントリストが更新されるのを避けたかったからです。

でも,ECが回っていないときには即座にコンポーネントリストが
更新されてもいいような気もしますね。ちょっと考えさせてください。

----
経済産業省 産業機械課 情報化推進係長
博士(工学) 安藤 慶昭
TEL: 029-861-5981 (携帯) TEL: 03-3501-1691(産機課代表)
TEL: 03-3501-1512(経産省代表)→ 72545(個人PHS)
E-MAIL:

Noriaki Ando, Ph.D. Assistant Director
Industrial Machinery Division, Manufacturing Industries Bureau
Ministry of Economy, Trade and Industry
E-MAIL:

2014年6月13日 15:22 Yuki Suga <>:

安藤先生:
菅です.お世話になります.

いただいたコードで動作しました.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);

としたいところでしたが・・・

ではでは

History

#1 Updated by n-ando over 6 years ago

  • Project changed from OpenRTM-aist (C++) to コア

Also available in: Atom PDF