電気通信大学大学院の占部と申します.
C++のプログラム上で,コンポーネントのバッファの値を初期化したいのです が,方法はあるのでしょうか?
複数のコンポーネントを結合し実行させるたびに,異なる結果が出力されてしま います.同じコンポーネントを使用しているので,同じ結果になるはずです. 前回実行させた際のデータがバッファに残っていることが原因だと思います. そこで,コンポーネントがDeactivate状態になったときに,バッファの中身を空 にするように記述することができれば問題が解決されると考えました.
ご存知の方いらっしゃいましたら,よろしくお願いします. _______________________________________________ openrtm-users mailing list openrtm-users@openrtm.org http://www.openrtm.org/mailman/listinfo/openrtm-users
静岡大の清水です。
InPortの場合ですが、私は以下のようにしてます。
onActivated()やonDeactivated()内で、
while(m_DataIn.isNew()) m_DataIn.read();
を実行して、バッファに溜まっている全データを読み出す。 最後に読み出したデータは、ポートにバインドされている変数に格納されているので、最新データが必要な場合は、その変数の値を見る。
以上、お役に立てれば。
清水
モーションエディタ/シミュレータ
動力学シミュレータ
統合開発プラットフォーム
産総研が提供するRTC集
東京オープンソースロボティクス協会
ネットワーク分散環境でデータ収集用ソフトウェアを容易に構築するためのソフトウェア・フレームワーク
電気通信大学大学院の占部と申します.
C++のプログラム上で,コンポーネントのバッファの値を初期化したいのです
が,方法はあるのでしょうか?
複数のコンポーネントを結合し実行させるたびに,異なる結果が出力されてしま
います.同じコンポーネントを使用しているので,同じ結果になるはずです.
前回実行させた際のデータがバッファに残っていることが原因だと思います.
そこで,コンポーネントがDeactivate状態になったときに,バッファの中身を空
にするように記述することができれば問題が解決されると考えました.
ご存知の方いらっしゃいましたら,よろしくお願いします.
_______________________________________________
openrtm-users mailing list
openrtm-users@openrtm.org
http://www.openrtm.org/mailman/listinfo/openrtm-users