00001 #ifndef DATASTREAM_SAMPLE_CSV_H 00002 #define DATASTREAM_SAMPLE_CSV_H 00003 00004 #include <QtPlugin> 00005 #include <thread> 00006 #include "PlotJuggler/datastreamer_base.h" 00007 00008 00009 class DataStreamSample: public DataStreamer 00010 { 00011 Q_OBJECT 00012 Q_PLUGIN_METADATA(IID "com.icarustechnology.PlotJuggler.DataStreamer" "../datastreamer.json") 00013 Q_INTERFACES(DataStreamer) 00014 00015 public: 00016 00017 DataStreamSample(); 00018 00019 virtual bool start(QStringList*) override; 00020 00021 virtual void shutdown() override; 00022 00023 virtual bool isRunning() const override; 00024 00025 virtual ~DataStreamSample(); 00026 00027 virtual const char* name() const override { return "Dummy Streamer"; } 00028 00029 virtual bool isDebugPlugin() override { return true; } 00030 00031 virtual bool xmlSaveState(QDomDocument &doc, QDomElement &parent_element) const override; 00032 00033 virtual bool xmlLoadState(const QDomElement &parent_element ) override; 00034 00035 private: 00036 00037 struct Parameters{ 00038 double A,B,C,D; 00039 }; 00040 00041 void loop(); 00042 00043 std::thread _thread; 00044 00045 bool _running; 00046 00047 std::map<std::string,Parameters> _parameters; 00048 00049 void pushSingleCycle(); 00050 }; 00051 00052 #endif // DATALOAD_CSV_H