安藤樣
コンポーネントの状態遷移と実行コンテキストの状態遷移は、 仕様上、互いに何らかの関連や制約があるのでしょうか?
現在の実装では、コンポーネントの状態遷移は、 実行コンテキストがRunning状態でなければ 実行されないようになっています。 そのため、実行コンテキストがStopped状態で、 activate/deactivate/reset_component() を呼んでも実際は何も起こりませんが、 それらの戻り値はRTC::RTC_OKとなるため、 状態遷移が起こるかのように見えてしまいます。
また逆に、コンポーネントがActive状態のときに 実行コンテキストをstop()すると、 周期的にonExecute()が呼ばれている最中に 突然onShutdown()が呼ばれて、 コンポーネントがActive状態のまま 実行コンテキストがStopped状態になります。 その後再び実行コンテキストをstart()させると、 onStartup()が呼ばれた後、 いきなりonExecute()が呼ばれてしまいます。
以上のような現象は、望ましくない場合もあるかと 思いますが、仕様でそうなっているのでしょうか?
よろしくご教授願います。
清水
モーションエディタ/シミュレータ
動力学シミュレータ
統合開発プラットフォーム
産総研が提供するRTC集
東京オープンソースロボティクス協会
ネットワーク分散環境でデータ収集用ソフトウェアを容易に構築するためのソフトウェア・フレームワーク
安藤樣
コンポーネントの状態遷移と実行コンテキストの状態遷移は、
仕様上、互いに何らかの関連や制約があるのでしょうか?
現在の実装では、コンポーネントの状態遷移は、
実行コンテキストがRunning状態でなければ
実行されないようになっています。
そのため、実行コンテキストがStopped状態で、
activate/deactivate/reset_component()
を呼んでも実際は何も起こりませんが、
それらの戻り値はRTC::RTC_OKとなるため、
状態遷移が起こるかのように見えてしまいます。
また逆に、コンポーネントがActive状態のときに
実行コンテキストをstop()すると、
周期的にonExecute()が呼ばれている最中に
突然onShutdown()が呼ばれて、
コンポーネントがActive状態のまま
実行コンテキストがStopped状態になります。
その後再び実行コンテキストをstart()させると、
onStartup()が呼ばれた後、
いきなりonExecute()が呼ばれてしまいます。
以上のような現象は、望ましくない場合もあるかと
思いますが、仕様でそうなっているのでしょうか?
よろしくご教授願います。
清水