Project

General

Profile

Actions

機能 #3403

closed

④ 起動時にコンポーネントをアクティベーションする機能(同一プロセス)

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

Status:
終了
Priority:
通常
Assignee:
Start date:
12/22/2015
Due date:
03/25/2016
% Done:

100%

Estimated time:
30.00 h

Description

コンポーネント起動時に同一プロセス内のコンポーネントをコンポーネントコンフィギュレーションファイルに従いアクティベーションする機能を実装すること。


Files

test_Manager_new.py (7.37 KB) test_Manager_new.py miyamoto, 01/14/2016 08:11 PM
Actions #1

Updated by miyamoto over 9 years ago

  • Due date set to 03/25/2016
  • Assignee set to miyamoto
  • Target version set to RELEASE_1_2_0
  • % Done changed from 0 to 90
  • Estimated time set to 30.00 h
Actions #2

Updated by miyamoto over 9 years ago

実装

ManagerクラスにinitPreActivation関数を実装した。
rtc.confに以下のように記述する事でRTCのアクティブ化が行われる。

manager.components.preactivate RTC1,RTC2

initPreActivation関数では以下の手順でRTCをアクティブ化している。

","で文字列を分割
comps = str(self._config.getProperty("manager.components.preactivate")).split(",")

["RTC1","RTC2"]

compsのそれぞれの要素からコンポーネントのオブジェクトを取得
comp = self.getComponent(c)

RTCをアクティブ化
ret = OpenRTM_aist.CORBA_RTCUtil.activate(comp.getObjRef())

initPreActivation関数をactivateManager関数で呼び出すことでRTCがアクティブ化される。

テスト

添付したテスト用コードでテストを行った。

テスト用コードの動作は以下のようになっている。

setUp関数

マネージャ初期化の引数設定
sys.argv.extend(['-o', 'manager.components.preactivate:TestComp10'])

マネージャ初期化
self.manager = OpenRTM_aist.Manager.init(sys.argv)
self.manager.setModuleInitProc(MyModuleInit)
self.manager.activateManager()


TestComp10,TestComp20の2種類のRTCが起動する。

test_PreActivation関数

アクティブ化しているかを確認
state = OpenRTM_aist.is_in_active(self.comp1)
self.assertTrue(state)

Actions #3

Updated by miyamoto about 9 years ago

  • % Done changed from 90 to 100
Actions #4

Updated by n-ando over 7 years ago

  • Status changed from 新規 to 終了
Actions

Also available in: Atom PDF