#ifndef GTL_GUI_OSC_SERIES_H #define GTL_GUI_OSC_SERIES_H #include "gui/gtl_gui_chart_series.h" #include "gtl_gui_osc_meas_model.h" #include "gui/gui_global.h" namespace gtl { namespace gui { namespace osc { class GTL_GUI_EXPORT series : public chart_series { Q_OBJECT public: series(qreal time, bool is_updating, gtl::analog_data* ai, ::chart::axis_horz* axis_x, ::chart::axis_vert* axis_y); ~series(); void set_time(qreal time); bool update(qreal threshold, bool is_front, qreal prehistory, int& analog_data_idx); void update(int ad_idx, qreal prehistory); bool update_(); void set_measures(meas_model* model); private: std::vector _buffer; int _ptr; int _begin_ptr; qreal _time; OscMeasParamsListPtr _measures = nullptr; void measure(std::vector &data); void measure(); protected: qreal _prehistory; qreal _scale; private: void init(); private slots: void data_recieved(); void rate_changed(); void handle_measure(); signals: void measures_changed(OscMeasParamsListPtr meas); }; } } } #endif // GTL_GUI_OSC_SERIES_H