プロジェクト

全般

プロフィール

調査 #3077

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

n-andoほぼ10年前に追加. ほぼ9年前に更新.

ステータス:
新規
優先度:
通常
担当者:
対象バージョン:
-
開始日:
2014/06/13
期日:
進捗率:

0%

予定工数:

説明

菅様

安藤です

試してみていただきありがとうございます。
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);

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

ではでは

履歴

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

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

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