[openrtm-users 00317] コンポーネントの状態遷移について

2 posts / 0 new
Last post
root
Offline
Last seen: 7 hours 49 min ago
Joined: 2009-06-23 14:31
[openrtm-users 00317] コンポーネントの状態遷移について

安藤樣

産総研 清水です。

コンポーネントの状態遷移に関して教えて下さい。

コンポーネントの初期化時にonInitialize()が呼ばれ、
それが成功すればAlive状態になると思うのですが、
この関数でエラーとなったときに、
仕様ではどういう挙動をすることになっているのでしょうか?

すなわち、onInitialize()でエラーが起こった場合、
onFinalize()が呼ばれてから終了状態に遷移するのか、
またはonFinalize()が呼ばれず終了状態に遷移するのか、
どちらなのでしょうか?

また、onFinalize()が呼ばれて一旦終了状態となった後、
再びonInitialize()を呼んでAlive状態にすることは
許されているのでしょうか?

以上、よろしくお願い致します。

Undefined
root
Offline
Last seen: 7 hours 49 min ago
Joined: 2009-06-23 14:31
[openrtm-users 00318] コンポーネントの状態遷移について

清水様

安藤です

> 産総研 清水です。
>
> コンポーネントの状態遷移に関して教えて下さい。
>
> コンポーネントの初期化時にonInitialize()が呼ばれ、
> それが成功すればAlive状態になると思うのですが、
> この関数でエラーとなったときに、
> 仕様ではどういう挙動をすることになっているのでしょうか?
>
> すなわち、onInitialize()でエラーが起こった場合、
> onFinalize()が呼ばれてから終了状態に遷移するのか、
> またはonFinalize()が呼ばれず終了状態に遷移するのか、
> どちらなのでしょうか?

o0nInitialize()でエラーとなった場合、onFinalize()が呼ばれて終了することに
なっていたと思います。(少なくとも現在の実装ではそのつもりです。)
RTCの仕様的にもAlive状態のexitがon_finalizeなので、
on_initialize()がエラーのときは、Alive状態から即でるので、そうなります。

> また、onFinalize()が呼ばれて一旦終了状態となった後、
> 再びonInitialize()を呼んでAlive状態にすることは
> 許されているのでしょうか?

終端擬似状態(UMLのnotationで二重丸のやつ)に入るので、復帰は許されません。

> 以上、よろしくお願い致します。
>
> 清水

Log in or register to post comments

Download

latest Releases : 2.0.0-RELESE

2.0.0-RELESE Download page

Number of Projects

Choreonoid

Motion editor/Dynamics simulator

OpenHRP3

Dynamics simulator

OpenRTP

Integrated Development Platform

AIST RTC collection

RT-Components collection by AIST

TORK

Tokyo Opensource Robotics Association

DAQ-Middleware

Middleware for DAQ (Data Aquisition) by KEK