[openrtm-users 00194] Re: onActivatedでのerror
Ando Noriaki
n-ando @ aist.go.jp
2007年 9月 6日 (木) 00:03:10 JST
末廣様
安藤です
> 産総研の末廣です。
> FedraのVMWareImageでいろいろ試しているのですが
> onActivatedでのerrorに対する状態遷移について疑問があります。
>
> onActivatedの内部でエラーを発生させても、
> onActivatedをRTC::RTC_ERRORで終了させても、
> 必ず1回onExecuteが走った後に、onErrorに移ります。
ご指摘の通り、onActivatedがエラーの場合、onExecuteを通らないで、
ただちに、onDeactivatedおよびonAbortingが実行されるべきだと思います。
OMGのRTC Specificationのステートマシン図でも、
ACTIVE状態からERROR状態への遷移のガード条件が、
[ReturnCode_t==ERROR]となっているので、
on_activated が ERROR のとき、直ちに遷移のトリガーがかかり
on_deactivated、on_abortingの順で実行されるものと思います。
ステートマシンの解釈として、これで正しいでしょうか?>坂本様
> onExecuteに対するガードとしての役割を考えるとバグっぽいのですが、
> それともこれは仕様でしょうか。
>
> RTCのspecificationの遷移図を見ても、
> 私には良く分かりませんでした。
>
> よろしくお願いします。
>
> p.s.
> これに関してソースをチェックするとしたらどの
> ファイルを見たらよいのでしょうか?
StateMachine.hおよびPeriodicExecutionContext.[h|cpp]が
該当のファイルになると思います。
--
安藤慶昭@独立行政法人産業技術総合研究所 研究員
知能システム研究部門 タスクインテリジェンス研究グループ
〒305-8568 茨城県つくば市梅園1-1-1 中央第2
TEL: 029-861-5981 FAX: 029-861-5971
n-ando @ aist.go.jp, n-ando @ ieee.org
openrtm-users メーリングリストの案内