publisher_csv.h
Go to the documentation of this file.
1 #ifndef STATE_PUBLISHER_ZMQ_H
2 #define STATE_PUBLISHER_ZMQ_H
3 
4 #include <QObject>
5 #include <QtPlugin>
6 #include <QDialog>
7 #include <QTimer>
8 #include <thread>
9 #include <mutex>
10 #include "ui_publisher_csv_dialog.h"
12 
14 {
15  Q_OBJECT
16  Q_PLUGIN_METADATA(IID "facontidavide.PlotJuggler3.StatePublisher")
17  Q_INTERFACES(PJ::StatePublisher)
18 
19 public:
21 
22  virtual const char* name() const override
23  {
24  return "CSV Exporter";
25  }
26 
27  virtual ~StatePublisherCSV() override;
28 
29  virtual bool enabled() const override
30  {
31  return _enabled;
32  }
33 
34  virtual void updateState(double current_time) override
35  {
36  _previous_time = current_time;
37  }
38 
39  virtual void play(double) override
40  {
41  }
42 
43 public slots:
44  virtual void setEnabled(bool enabled) override;
45 
46 private slots:
47  void onWindowClosed();
48 
49 private:
50  std::mutex _mutex;
51 
52  bool _enabled = false;
53  double _previous_time = 0;
54  double _start_time = std::numeric_limits<double>::quiet_NaN();
55  double _end_time = std::numeric_limits<double>::quiet_NaN();
56 
57  QDialog* _dialog;
58  Ui::PublisherCSV_DIalog* _ui;
59 
61 
63 
64  QString generateRangeCSV(double time_start, double time_end);
65 
66  QString generateStatisticsCSV(double time_start, double time_end);
67 
68  bool getTimeRanges(double* first, double* last);
69 
70  void updateButtonsState();
71 
72  void saveFile(QString text);
73 };
74 
75 #endif // STATE_PUBLISHER_ZMQ_H
virtual bool enabled() const override
True if started.
Definition: publisher_csv.h:29
virtual const char * name() const override
Name of the plugin type, NOT the particular instance.
Definition: publisher_csv.h:22
bool getTimeRanges(double *first, double *last)
void saveFile(QString text)
Ui::PublisherCSV_DIalog * _ui
Definition: publisher_csv.h:58
QString generateRangeCSV(double time_start, double time_end)
virtual void play(double) override
Definition: publisher_csv.h:39
QTimer * _notification_timer
Definition: publisher_csv.h:60
QString generateStatisticsCSV(double time_start, double time_end)
virtual void updateState(double current_time) override
Method called when the timetracker is moved manually to a certain position.
Definition: publisher_csv.h:34
const T & first(const T &value, const Tail &...)
Definition: compile.h:178
virtual void setEnabled(bool enabled) override
void delayedClearNotification()
virtual ~StatePublisherCSV() override
std::mutex _mutex
Definition: publisher_csv.h:50


plotjuggler
Author(s): Davide Faconti
autogenerated on Mon Jun 19 2023 03:01:38