diff --git a/source/RobotAPI/gui-plugins/SensorActorWidgetsPlugin/ArmarXPlotter/ArmarXPlotter.cpp b/source/RobotAPI/gui-plugins/SensorActorWidgetsPlugin/ArmarXPlotter/ArmarXPlotter.cpp index a6041e30ab273cec1b4fdb4f812364cf0e0b8216..f91a01a727ad3c8f3f2eb10e7efdcb59f79c489b 100644 --- a/source/RobotAPI/gui-plugins/SensorActorWidgetsPlugin/ArmarXPlotter/ArmarXPlotter.cpp +++ b/source/RobotAPI/gui-plugins/SensorActorWidgetsPlugin/ArmarXPlotter/ArmarXPlotter.cpp @@ -211,6 +211,7 @@ namespace armarx loggingDir = dialog->ui.editLoggingDirectory->text(); ui.btnLogToFile->setChecked(false); curves.clear(); + dataMap.clear(); ui.qwtPlot->detachItems(); clearBarList(); } @@ -632,10 +633,10 @@ namespace armarx for (; itmap != dataMaptoAppend.end(); ++itmap) { std::vector<TimeData>& dataVec = itmap->second; - int stepSize = dataVec.size() * 0.01; + int stepSize = std::max<int>(1, dataVec.size() * 0.01); int thresholdIndex = -1; - for (unsigned int i = 0; dataVec.size(); i += stepSize) + for (unsigned int i = 0; i < dataVec.size(); i += stepSize) { // only delete if entries are older than 2*showninterval // and delete then all entries that are older than showninterval. @@ -694,7 +695,10 @@ namespace armarx { // ARMARX_IMPORTANT << "Variant: " << VariantPtr::dynamicCast(variants[i]); VariantPtr var = VariantPtr::dynamicCast(variants[i]); - + if (!var->getInitialized()) + { + continue; + } if (VariantType::IsBasicType(var->getType())) { dataMaptoAppend[DataFieldIdentifierPtr::dynamicCast(it->second[i])->getIdentifierStr()].push_back(TimeData(time, var)); @@ -737,7 +741,7 @@ namespace armarx } catch (...) { - handleExceptions(); + ARMARX_WARNING << deactivateSpam(5) << GetHandledExceptionString(); } return newData;