[openrtm-users 03146] Re: RTM実行中に時刻を戻すと、onExecuteの呼び出しが停止する。

Ando Noriaki n-ando @ aist.go.jp
2014年 11月 18日 (火) 10:50:54 JST


numata様

安藤です

標準のECのコードでは、
(スリープ時間)=(周期)−(実行にかかった時間)
としてスリープ時間を計算しsleepしています。
#非リアルタイムECなので精度は良くありません。

この際、時間を取得にLinuxではgettimeofdayを利用しているので
システム時間が実行中に変更されると、上記の計算が狂ってしまうので
思う通りの挙動をしなくなる可能性があります。

90秒後に停止するというのがどうしてなのか詳しく追っていないので
わかりませんが、とりあえずECを一旦Inactiveにして、再度Activeに
することで元通りに動くのではないかと思います。








2014年11月12日 19:12  <yasuhisa.numata @ gmail.com>:
> MLの皆様
> はじめましてnumataと申します。よろしくお願い致します。
> Linux環境でOpenRTM-aist(v1.1.0)を実行中に、システム時刻を過去の時刻(1時間前)に設定すると
> 90秒程度経過した後、RTCのonExecute()の呼び出しが停止する現象が発生して困っています。
> 実行するRTCは1つで、onExecute内で処理は行っていません。
> -操作手順 + eclipse上でRTCの実行開始 ->
> onExecute()が継続的に呼び出される +
> ターミナルからdateコマンドを実行し、時刻を1時間前に設定
> + 90秒程度経過 -> onExecute()の呼び出しが停止する
> -実行環境 -- OS:ARM上のDebian(3.4.90) --
> RTC:Python、1Hzの実行周期
> システム時刻を戻しても、継続して実行したいのですが(onExecute()を呼び続けてほしい)
> 現象の回避方法等ご存知でしたら、御教授いただけると幸いです。
> よろしくお願い致します。
>
> _______________________________________________
> openrtm-users mailing list
> openrtm-users @ openrtm.org
> http://www.openrtm.org/mailman/listinfo/openrtm-users


More information about the openrtm-users mailing list