Project

General

Profile

整備 #2322

ExecutionContextBaseの見直し

Added by n-ando over 12 years ago. Updated almost 11 years ago.

Status:
終了
Priority:
通常
Assignee:
Target version:
-
Start date:
01/11/2012
Due date:
% Done:

100%

Estimated time:

Description

ExecutionContextBaseとこれを継承しているPeriodicExecutionContextなどの見直しを行う。

  1. ECをGlobalFactoryで生成するように変更する。(C++, r2268)
  2. ExecutionContextBaseはExecutionContextProfileをメンバとして持ち、すべての関数をdelegateする。
  3. ECのプロファイルを管理するRTC_impl::ExecutionContextProfileクラス(≠RTC::ExecutionContextProfile)の導入 (C++, r2268)
  4. 実装クラス内でRTC_impl::ExecutionContextProfileを利用するように変更する。 (C++, r2268)
  5. ExecutionContextBaseの親クラス ExtTrigEC, RefCountServantBaseを実装クラス(PeriodicExecutionContext)へ移動。 (C++, r2268)
  6. RTCのStateMachine管理クラスを導入し、ExecutionContextBaseにメンバとして持たせる。
  7. 各実装クラスで上記のSM管理クラスを利用するように変更。

Related issues

Related to OpenRTM-aist (C++) - バグ #2321: ExecutionContextBaseの見直し終了2012-01-11

Associated revisions

Revision 651 (diff)
Added by fsi-katami over 12 years ago

Daily check in. refs #2322

Revision 653 (diff)
Added by fsi-katami over 12 years ago

Daily check in. refs #2322

Revision 654 (diff)
Added by fsi-katami over 12 years ago

Daily check in. refs #2322

Revision 655 (diff)
Added by fsi-katami over 12 years ago

Daily check in. refs #2322

Revision 656 (diff)
Added by fsi-katami over 12 years ago

Deleted some codes for debugging. refs #2322

Revision 657 (diff)
Added by fsi-katami over 12 years ago

Daily check in. refs #2322

Revision 660 (diff)
Added by fsi-katami over 12 years ago

Daily check in. refs #2322

Revision 661 (diff)
Added by fsi-katami over 12 years ago

merge refs #2322

Revision 676 (diff)
Added by fsi-takahashi about 12 years ago

refs #2322

Revision 679 (diff)
Added by ga over 11 years ago

New ECBase have been implemented. refs #2322

Revision 680 (diff)
Added by ga over 11 years ago

New ECBase have been implemented. refs #2322

History

#1 Updated by n-ando over 12 years ago

ExecutionContextBaseの実装について

ExecutionContextBase はテンプレートメソッドパターンで実装する。

  • あるpublic関数 XXX に対して、実際に操作を行う関数 XXX を内部で呼び出す
  • xxx() を呼び出す前に onXxxing()関数を呼び出す
  • xxx() を呼び出したあとに onXxxed() 関数を呼び出す。
  • activate/deactivate/resetComponent() 関数については、状態遷移待ちを行いその際に onWaitingXxxed()関数を呼び出す。

ExecutionContextBaseでのECオプションの扱いについて

ExecutionContextBase::init() 関数でオプションを取得するようにする。
取得するオプションは以下のとおり。

  • rate: 実行レート
  • sync_transition: 同期遷移
  • sync_activation: 同期アクティブ化
  • sync_deactivation: 同期非アクティブ化
  • sync_reset: 同期リセット
  • transition_timeout: 同期遷移時のタイムアウト
  • activation_timeout: 同期アクティブ化時のタイムアウト
  • deactivation_timeout: 同期非アクティブ化時のタイムアウト
  • reset_timeout: 同期リセット時のタイムアウト

EC実装について

従来通り PeriodicExecutionContext, ExtTrigExecutionContext, OpenHRPExecutionContext を ExecutionContextBase を使用して実装すること。

#2 Updated by fsi-takahashi about 12 years ago

コーディングまで終了

#3 Updated by ga over 11 years ago

  • Status changed from 新規 to 解決
  • Assignee changed from n-ando to ga
  • % Done changed from 0 to 100

各種関係クラスの実装・修正を行い r679 にてコミット致しました。 ( r679, r680 )

#4 Updated by n-ando almost 11 years ago

  • Status changed from 解決 to 終了

ありがとうございました。

Also available in: Atom PDF