diff --git a/source/RobotAPI/gui-plugins/KinematicUnitPlugin/KinematicUnitGuiPlugin.cpp b/source/RobotAPI/gui-plugins/KinematicUnitPlugin/KinematicUnitGuiPlugin.cpp index a847c5f16420610b778b0c1907b9ecc6fbb20172..3dfed33e57de8096c72ce26bd2f3979ddac1c795 100644 --- a/source/RobotAPI/gui-plugins/KinematicUnitPlugin/KinematicUnitGuiPlugin.cpp +++ b/source/RobotAPI/gui-plugins/KinematicUnitPlugin/KinematicUnitGuiPlugin.cpp @@ -1168,14 +1168,13 @@ void KinematicUnitWidgetController::reportControlModeChanged(const NameControlMo void KinematicUnitWidgetController::reportJointCurrents(const NameValueMap& jointCurrents, Ice::Long timestamp, bool aValueChanged, const Ice::Current& c) { - if (!aValueChanged && jointCurrents.size() > 0) + boost::recursive_mutex::scoped_lock lock(mutexNodeSet); + if (aValueChanged && jointCurrents.size() > 0) { - return; + jointCurrentHistory.push_back(std::pair<Ice::Long, NameValueMap>(timestamp, jointCurrents)); } - boost::recursive_mutex::scoped_lock lock(mutexNodeSet); - jointCurrentHistory.push_back(std::pair<Ice::Long, NameValueMap>(timestamp, jointCurrents)); - if (jointCurrentHistory.back().first - jointCurrentHistory.front().first > historyTime) + while (jointCurrentHistory.back().first - jointCurrentHistory.front().first > historyTime && jointCurrentHistory.size() > 1) { jointCurrentHistory.pop_front(); }