#ifndef VALUE_H #define VALUE_H #include #include #include "core/gtl_analog_data.h" #include "math_global.h" namespace gtl { namespace math { class MATH_EXPORT analog_value : public QObject { Q_OBJECT Q_PROPERTY(QString name READ name WRITE set_name NOTIFY name_changed) Q_PROPERTY(qreal time READ time WRITE set_time NOTIFY time_changed) Q_PROPERTY(qreal value READ value NOTIFY value_changed) Q_PROPERTY(qreal avg_value READ avg_value NOTIFY avg_value_changed) Q_PROPERTY(quint32 avg_cnt READ avg_cnt WRITE set_avg_cnt NOTIFY avg_cnt_changed) Q_PROPERTY(QList values READ values CONSTANT) public: analog_value(gtl::analog_data *data); virtual ~analog_value(); QString name() const; qreal value() const; qreal time() const; quint32 avg_cnt() const; qreal avg_value() const; QList values() const; private: qreal _time; protected: virtual void before_copying_data(std::vector::iterator begin, std::vector::iterator end); virtual void after_copying_data(std::vector::iterator begin, std::vector::iterator end); protected: QString _name; qreal _value; gtl::analog_data* _ad; std::vector _data; int _data_ptr; QList _values; quint32 _avg_cnt; bool _is_acq; signals: void name_changed(); void value_changed(); void avg_value_changed(); void time_changed(); void avg_cnt_changed(); public slots: void set_name(QString value); virtual void set_time(qreal value); void set_avg_cnt(quint32 value); void stop_acq(); protected slots: virtual void data_changed(); }; } } #endif // VALUE_H