#include <PeriodicExecutionContext.h>
Public メソッド | |
PeriodicExecutionContext () | |
デフォルトコンストラクタ | |
PeriodicExecutionContext (OpenRTM::DataFlowComponent_ptr owner, double rate=1000.0) | |
コンストラクタ | |
virtual | ~PeriodicExecutionContext (void) |
デストラクタ | |
virtual ExecutionContextService_ptr | getObjRef (void) |
CORBA オブジェクト参照の取得 | |
virtual int | open (void *args) |
ExecutionContext用アクティビティスレッドを生成する | |
virtual int | svc (void) |
ExecutionContext 用のスレッド実行関数 | |
virtual int | close (unsigned long flags) |
ExecutionContext 用のスレッド実行関数 | |
virtual CORBA::Boolean | is_running (void) throw (CORBA::SystemException) |
ExecutionContext 実行状態確認関数 | |
virtual ReturnCode_t | start (void) throw (CORBA::SystemException) |
ExecutionContext の実行を開始 | |
virtual ReturnCode_t | stop (void) throw (CORBA::SystemException) |
ExecutionContext の実行を停止 | |
virtual CORBA::Double | get_rate (void) throw (CORBA::SystemException) |
ExecutionContext の実行周期(Hz)を取得する | |
virtual ReturnCode_t | set_rate (CORBA::Double rate) throw (CORBA::SystemException) |
ExecutionContext の実行周期(Hz)を設定する | |
virtual ReturnCode_t | activate_component (LightweightRTObject_ptr comp) throw (CORBA::SystemException) |
RTコンポーネントをアクティブ化する | |
virtual ReturnCode_t | deactivate_component (LightweightRTObject_ptr comp) throw (CORBA::SystemException) |
RTコンポーネントを非アクティブ化する | |
virtual ReturnCode_t | reset_component (LightweightRTObject_ptr comp) throw (CORBA::SystemException) |
RTコンポーネントをリセットする | |
virtual LifeCycleState | get_component_state (LightweightRTObject_ptr comp) throw (CORBA::SystemException) |
RTコンポーネントの状態を取得する | |
virtual ExecutionKind | get_kind (void) throw (CORBA::SystemException) |
ExecutionKind を取得する | |
virtual ReturnCode_t | add_component (LightweightRTObject_ptr comp) throw (CORBA::SystemException) |
RTコンポーネントを追加する | |
virtual RTC::ReturnCode_t | bindComponent (RTObject_impl *rtc) |
コンポーネントをバインドする。 | |
virtual ReturnCode_t | remove_component (LightweightRTObject_ptr comp) throw (CORBA::SystemException) |
RTコンポーネントを参加者リストから削除する | |
virtual ExecutionContextProfile * | get_profile (void) throw (CORBA::SystemException) |
ExecutionContextProfile を取得する | |
Protected 型 | |
typedef LifeCycleState | ExecContextState |
typedef RTC_Utils::StateHolder < ExecContextState > | ECStates |
typedef std::vector< Comp > ::iterator | CompItr |
Protected 変数 | |
std::vector< Comp > | m_comps |
コンポーネントの参加者リスト | |
Logger | rtclog |
ロガーストリーム | |
bool | m_running |
ExecutionContext の実行状態 true: running, false: stopped | |
bool | m_svc |
ExecutionContext のスレッド実行フラグ | |
Worker | m_worker |
svn用の状態変数 | |
ExecutionContextProfile | m_profile |
ExecutionContextProfile | |
coil::TimeValue | m_period |
ExecutionContext の実行周期 | |
ExecutionContextService_var | m_ref |
ExecutionContextService オブジェクトへの参照 | |
bool | m_nowait |
ExecutionContext 即時実行(wait無し実行)フラグ | |
構成 | |
struct | Comp |
コンポーネント管理用構造体 [詳細] | |
class | DFP |
DFP クラス [詳細] | |
class | DFPBase |
DFPBase クラス [詳細] | |
struct | find_comp |
コンポーネント検索用ファンクタ [詳細] | |
struct | invoke_on_rate_changed |
on_rate_changed 起動用ファンクタ [詳細] | |
struct | invoke_on_shutdown |
on_shutdown 起動用ファンクタ [詳細] | |
struct | invoke_on_startup |
on_startup 起動用ファンクタ [詳細] | |
struct | invoke_worker |
ワーカー実行用ファンクタ [詳細] | |
struct | Worker |
Periodic Sampled Data Processing(周期実行用)ExecutionContextクラス。
typedef LifeCycleState RTC::PeriodicExecutionContext::ExecContextState [protected] |
typedef RTC_Utils::StateHolder<ExecContextState> RTC::PeriodicExecutionContext::ECStates [protected] |
typedef std::vector<Comp>::iterator RTC::PeriodicExecutionContext::CompItr [protected] |
RTC::PeriodicExecutionContext::PeriodicExecutionContext | ( | ) |
デフォルトコンストラクタ
デフォルトコンストラクタ プロファイルに以下の項目を設定する。
RTC::PeriodicExecutionContext::PeriodicExecutionContext | ( | OpenRTM::DataFlowComponent_ptr | owner, | |
double | rate = 1000.0 | |||
) |
コンストラクタ
コンストラクタ 設定された値をプロファイルに設定する。
owner | 当該 Executioncontext の owner | |
rate | 動作周期(Hz)(デフォルト値:1000) |
virtual RTC::PeriodicExecutionContext::~PeriodicExecutionContext | ( | void | ) | [virtual] |
デストラクタ
デストラクタ
virtual ExecutionContextService_ptr RTC::PeriodicExecutionContext::getObjRef | ( | void | ) | [inline, virtual] |
CORBA オブジェクト参照の取得
本オブジェクトの ExecutioncontextService としての CORBA オブジェクト参照 を取得する。
RTC::ExecutionContextBaseを実装しています。
参照先 m_ref.
virtual int RTC::PeriodicExecutionContext::open | ( | void * | args | ) | [virtual] |
ExecutionContext用アクティビティスレッドを生成する
Executioncontext 用の内部アクティビティスレッドを生成し起動する。 これは ACE_Task サービスクラスメソッドのオーバーライド。
args | 通常は0 |
coil::Taskを再定義しています。
virtual int RTC::PeriodicExecutionContext::svc | ( | void | ) | [virtual] |
ExecutionContext 用のスレッド実行関数
ExecutionContext 用のスレッド実行関数。 登録されたコンポーネントの処理を呼び出す。
coil::Taskを再定義しています。
RTC::ExtTrigExecutionContext, と RTC::OpenHRPExecutionContextで再定義されています。
virtual int RTC::PeriodicExecutionContext::close | ( | unsigned long | flags | ) | [virtual] |
ExecutionContext 用のスレッド実行関数
ExecutionContext 用のスレッド終了時に呼ばれる。 コンポーネントオブジェクトの非アクティブ化、マネージャへの通知を行う。 これは ACE_Task サービスクラスメソッドのオーバーライド。
flags | 終了処理フラグ |
coil::Taskを再定義しています。
virtual CORBA::Boolean RTC::PeriodicExecutionContext::is_running | ( | void | ) | throw (CORBA::SystemException) [virtual] |
ExecutionContext 実行状態確認関数
この操作は ExecutionContext が Runnning 状態の場合に true を返す。 Executioncontext が Running の間、当該 Executioncontext に参加している 全てのアクティブRTコンポーネントが、ExecutionContext の実行種類に応じて 実行される。
virtual ReturnCode_t RTC::PeriodicExecutionContext::start | ( | void | ) | throw (CORBA::SystemException) [virtual] |
ExecutionContext の実行を開始
ExecutionContext の実行状態を Runnning とするためのリクエストを発行する。 ExecutionContext の状態が遷移すると ComponentAction::on_startup が 呼び出される。 参加しているRTコンポーネントが、初期化されるまで ExecutionContext を開始 することはできない。 ExecutionContext は複数回開始/停止を繰り返すことができる。
virtual ReturnCode_t RTC::PeriodicExecutionContext::stop | ( | void | ) | throw (CORBA::SystemException) [virtual] |
ExecutionContext の実行を停止
ExecutionContext の状態を Stopped とするためのリクエストを発行する。 遷移が発生した場合は、ComponentActionon_shutdown が呼び出される。 参加しているRTコンポーネントが終了する前に ExecutionContext を停止する 必要がある。 ExecutionContext は複数回開始/停止を繰り返すことができる。
virtual CORBA::Double RTC::PeriodicExecutionContext::get_rate | ( | void | ) | throw (CORBA::SystemException) [virtual] |
ExecutionContext の実行周期(Hz)を取得する
Active 状態にてRTコンポーネントが実行される周期(単位:Hz)を取得する。
virtual ReturnCode_t RTC::PeriodicExecutionContext::set_rate | ( | CORBA::Double | rate | ) | throw (CORBA::SystemException) [virtual] |
ExecutionContext の実行周期(Hz)を設定する
Active 状態にてRTコンポーネントが実行される周期(単位:Hz)を設定する。 実行周期の変更は、DataFlowComponentAction の on_rate_changed によって 各RTコンポーネントに伝達される。
rate | 処理周期(単位:Hz) |
virtual ReturnCode_t RTC::PeriodicExecutionContext::activate_component | ( | LightweightRTObject_ptr | comp | ) | throw (CORBA::SystemException) [virtual] |
RTコンポーネントをアクティブ化する
Inactive 状態にあるRTコンポーネントをActive に遷移させ、 アクティブ化する。 この操作が呼ばれた結果、on_activate が呼び出される。 指定したRTコンポーネントが参加者リストに含まれない場合は、BAD_PARAMETER が返される。 指定したRTコンポーネントの状態が Inactive 以外の場合は、 PRECONDITION_NOT_MET が返される。
comp | アクティブ化対象RTコンポーネント |
virtual ReturnCode_t RTC::PeriodicExecutionContext::deactivate_component | ( | LightweightRTObject_ptr | comp | ) | throw (CORBA::SystemException) [virtual] |
RTコンポーネントを非アクティブ化する
Inactive 状態にあるRTコンポーネントを非アクティブ化し、 Inactive に遷移させる。 この操作が呼ばれた結果、on_deactivate が呼び出される。 指定したRTコンポーネントが参加者リストに含まれない場合は、BAD_PARAMETER が返される。 指定したRTコンポーネントの状態が Active 以外の場合は、 PRECONDITION_NOT_MET が返される。
comp | 非アクティブ化対象RTコンポーネント |
virtual ReturnCode_t RTC::PeriodicExecutionContext::reset_component | ( | LightweightRTObject_ptr | comp | ) | throw (CORBA::SystemException) [virtual] |
RTコンポーネントをリセットする
Error 状態のRTコンポーネントの復帰を試みる。 この操作が呼ばれた結果、on_reset が呼び出される。 指定したRTコンポーネントが参加者リストに含まれない場合は、BAD_PARAMETER が返される。 指定したRTコンポーネントの状態が Error 以外の場合は、PRECONDITION_NOT_MET が返される。
comp | リセット対象RTコンポーネント |
virtual LifeCycleState RTC::PeriodicExecutionContext::get_component_state | ( | LightweightRTObject_ptr | comp | ) | throw (CORBA::SystemException) [virtual] |
RTコンポーネントの状態を取得する
指定したRTコンポーネントの状態(LifeCycleState)を取得する。 指定したRTコンポーネントが参加者リストに含まれない場合は、UNKNOWN_STATE が返される。
comp | 状態取得対象RTコンポーネント |
virtual ExecutionKind RTC::PeriodicExecutionContext::get_kind | ( | void | ) | throw (CORBA::SystemException) [virtual] |
ExecutionKind を取得する
本 ExecutionContext の ExecutionKind を取得する
virtual ReturnCode_t RTC::PeriodicExecutionContext::add_component | ( | LightweightRTObject_ptr | comp | ) | throw (CORBA::SystemException) [virtual] |
RTコンポーネントを追加する
指定したRTコンポーネントを参加者リストに追加する。 追加されたRTコンポーネントは attach_context が呼ばれ、Inactive 状態に遷移 する。 指定されたRTコンポーネントがnullの場合は、BAD_PARAMETER が返される。 指定されたRTコンポーネントが DataFlowComponent 以外の場合は、 BAD_PARAMETER が返される。
comp | 追加対象RTコンポーネント |
virtual RTC::ReturnCode_t RTC::PeriodicExecutionContext::bindComponent | ( | RTObject_impl * | rtc | ) | [virtual] |
コンポーネントをバインドする。
コンポーネントをバインドする。
rtc | RTコンポーネント |
RTC::ExecutionContextBaseを実装しています。
virtual ReturnCode_t RTC::PeriodicExecutionContext::remove_component | ( | LightweightRTObject_ptr | comp | ) | throw (CORBA::SystemException) [virtual] |
RTコンポーネントを参加者リストから削除する
指定したRTコンポーネントを参加者リストから削除する。 削除されたRTコンポーネントは detach_context が呼ばれる。 指定されたRTコンポーネントが参加者リストに登録されていない場合は、 BAD_PARAMETER が返される。
comp | 削除対象RTコンポーネント |
virtual ExecutionContextProfile* RTC::PeriodicExecutionContext::get_profile | ( | void | ) | throw (CORBA::SystemException) [virtual] |
ExecutionContextProfile を取得する
本 ExecutionContext のプロファイルを取得する。
std::vector<Comp> RTC::PeriodicExecutionContext::m_comps [protected] |
コンポーネントの参加者リスト
Logger RTC::PeriodicExecutionContext::rtclog [protected] |
ロガーストリーム
bool RTC::PeriodicExecutionContext::m_running [protected] |
ExecutionContext の実行状態 true: running, false: stopped
bool RTC::PeriodicExecutionContext::m_svc [protected] |
ExecutionContext のスレッド実行フラグ
Worker RTC::PeriodicExecutionContext::m_worker [protected] |
svn用の状態変数
ExecutionContextProfile RTC::PeriodicExecutionContext::m_profile [protected] |
ExecutionContextProfile
ExecutionContext の実行周期
ExecutionContextService_var RTC::PeriodicExecutionContext::m_ref [protected] |
bool RTC::PeriodicExecutionContext::m_nowait [protected] |
ExecutionContext 即時実行(wait無し実行)フラグ