26 #pragma GCC diagnostic push
27 #pragma GCC diagnostic ignored "-Wpedantic"
28 #include <ArmarXGui/gui-plugins/PlotterPlugin/ui_ArmarXPlotter.h>
29 #pragma GCC diagnostic pop
36 #include <ArmarXCore/interface/components/TopicRecorderInterface.h>
37 #include <ArmarXCore/interface/observers/ConditionHandlerInterface.h>
63 class ArmarXPlotterDialog;
73 public TopicReplayerListenerInterface
80 const Ice::Current&
c = Ice::emptyCurrent)
override
87 if (!ui.btnLogToFile->isChecked())
90 ui.btnLogToFile->setChecked(
true);
101 if (!syncDataLogging)
106 if (ui.btnLogToFile->isChecked())
108 ui.btnLogToFile->setChecked(
false);
116 Ui::ArmarXPlotter
ui;
130 return "Observers.LivePlotter";
136 return QIcon(
"://icons/combo_chart.svg");
139 void loadSettings(QSettings* settings)
override;
140 void saveSettings(QSettings* settings)
override;
144 void onInitComponent()
override;
145 void onConnectComponent()
override;
146 void onExitComponent()
override;
151 void onCloseWidget(QCloseEvent* event);
152 QwtPlotCurve* createCurve(
const QString& label);
153 QwtThermo* createBar(
const QString& label);
157 void ButtonAddSensorChannelClicked();
160 void toggleLogging(
bool toggled);
161 void onGraphStyleChanged(
const QString& style);
162 void logToFile(
long timestamp,
const std::map<std::string, VariantPtr>& dataMaptoAppend);
168 QDateTime startUpTime;
169 std::map<std::string, ObserverInterfacePrx> proxyMap;
170 bool __plottingPaused;
173 std::mutex dataMutex;
174 bool syncDataLogging;
175 std::vector<std::string> csvHeader;
176 std::ofstream logstream;
182 std::mutex fileMutex;