diff --git a/source/RobotAPI/gui-plugins/SensorActorWidgetsPlugin/ArmarXPlotter/ArmarXPlotter.cpp b/source/RobotAPI/gui-plugins/SensorActorWidgetsPlugin/ArmarXPlotter/ArmarXPlotter.cpp index cd6bd78ce1b06629e99aed0a134c4137a13f8046..a89bab1bda53570e659149eabf38c94cd6a9286b 100644 --- a/source/RobotAPI/gui-plugins/SensorActorWidgetsPlugin/ArmarXPlotter/ArmarXPlotter.cpp +++ b/source/RobotAPI/gui-plugins/SensorActorWidgetsPlugin/ArmarXPlotter/ArmarXPlotter.cpp @@ -545,46 +545,51 @@ namespace armarx for (int i = 0; i < selectedChannels.size(); i++) { - ARMARX_VERBOSE << "Channel: " << selectedChannels.at(i).toStdString() << flush; - DataFieldIdentifierPtr identifier = new DataFieldIdentifier(selectedChannels.at(i).toStdString()); - auto prx = getProxy<ObserverInterfacePrx>(identifier->observerName); - - VariantPtr var = VariantPtr::dynamicCast(prx->getDataField(identifier)); - - if (VariantType::IsBasicType(var->getType())) + try { - QwtPlotCurve* curve = createCurve(selectedChannels.at(i)); - curves[selectedChannels.at(i).toStdString()] = curve; - - QwtThermo* bar = createBar(selectedChannels.at(i)); - bars[selectedChannels.at(i).toStdString()] = bar; + ARMARX_VERBOSE << "Channel: " << selectedChannels.at(i).toStdString() << flush; + DataFieldIdentifierPtr identifier = new DataFieldIdentifier(selectedChannels.at(i).toStdString()); + auto prx = getProxy<ObserverInterfacePrx>(identifier->observerName); + VariantPtr var = VariantPtr::dynamicCast(prx->getDataField(identifier)); - } - else - { - auto id = identifier->getIdentifierStr(); - ARMARX_IMPORTANT << id; - auto dict = JSONObject::ConvertToBasicVariantMap(json, var); + if (VariantType::IsBasicType(var->getType())) + { + QwtPlotCurve* curve = createCurve(selectedChannels.at(i)); + curves[selectedChannels.at(i).toStdString()] = curve; - for (auto e : dict) + QwtThermo* bar = createBar(selectedChannels.at(i)); + bars[selectedChannels.at(i).toStdString()] = bar; + } + else { - VariantTypeId type = e.second->getType(); + auto id = identifier->getIdentifierStr(); + ARMARX_IMPORTANT << id; + auto dict = JSONObject::ConvertToBasicVariantMap(json, var); - if (type == VariantType::Double - || type == VariantType::Float - || type == VariantType::Int) + for (auto e : dict) { - std::string key = id + "." + e.first; - ARMARX_INFO << key << ": " << *VariantPtr::dynamicCast(e.second); - QwtPlotCurve* curve = createCurve(QString::fromStdString(key)); - curves[key] = curve; + VariantTypeId type = e.second->getType(); + + if (type == VariantType::Double + || type == VariantType::Float + || type == VariantType::Int) + { + std::string key = id + "." + e.first; + ARMARX_INFO << key << ": " << *VariantPtr::dynamicCast(e.second); + QwtPlotCurve* curve = createCurve(QString::fromStdString(key)); + curves[key] = curve; - QwtThermo* bar = createBar(QString::fromStdString(key)); - bars[key] = bar; + QwtThermo* bar = createBar(QString::fromStdString(key)); + bars[key] = bar; + } } } } + catch(...) + { + handleExceptions(); + } } ui.qwtPlot->replot();