ロボット、千葉ロッテマリーンズについていいかげんなことを書きます。
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
例のツールにRTCをリストから選択して起動する機能を追加している所ですが、後は起動したRTCの情報のファイルに保存・復元する機能を実装して、スプラッシュスクリーンの絵を描けば完成です。
まあ後者は別に必須ではないのですが、あった方がかっこいいので描きます。
実装する過程でRTCが終了したかどうか調べるためにComponentActionListenerを使用したのですが、PythonのRTCで謎の怪現象が起こりました。
まず複数のRTCを起動してそれぞれでComponentActionListenerを追加します。
ここではとりあえずPOST_ON_FINALIZE(RTC終了直後)にリスナを設定します。
つまり各RTCに以下のコードを追加します。
おそらくですが、ComponentActionListener.pyのクラスComponentActionListenersのpreaction_とかportaction_がクラス変数なのが原因だと思います。なんでインスタンス変数にしなかったのでしょうね?
何らかの理由があってこうなっているとは思うのですが、全く想像がつきません。
それどころかComponentActionListener機能を破綻させているのでかなりまずいと思います。
でも意図的にこういう動作にするようにしているとしか思えないしなあ。
だれかメーリングリストで訊いてください。
にほんブログ村のロボットのカテゴリから
全然人が来ない・・・
まあ後者は別に必須ではないのですが、あった方がかっこいいので描きます。
実装する過程でRTCが終了したかどうか調べるためにComponentActionListenerを使用したのですが、PythonのRTCで謎の怪現象が起こりました。
まず複数のRTCを起動してそれぞれでComponentActionListenerを追加します。
ここではとりあえずPOST_ON_FINALIZE(RTC終了直後)にリスナを設定します。
つまり各RTCに以下のコードを追加します。
self.addPostComponentActionListener(OpenRTM_aist.PostComponentActionListenerType.POST_ON_FINALIZE, 関数)
そしてどれか1つのRTCを終了させると、通常はそのRTCで設定したリスナのみがコールされるはずですが、何故か起動した全てのRTCで設定したリスナが呼び出されてしまいます。おそらくですが、ComponentActionListener.pyのクラスComponentActionListenersのpreaction_とかportaction_がクラス変数なのが原因だと思います。なんでインスタンス変数にしなかったのでしょうね?
何らかの理由があってこうなっているとは思うのですが、全く想像がつきません。
それどころかComponentActionListener機能を破綻させているのでかなりまずいと思います。
でも意図的にこういう動作にするようにしているとしか思えないしなあ。
だれかメーリングリストで訊いてください。
にほんブログ村のロボットのカテゴリから
全然人が来ない・・・
PR
この記事にコメントする