80 lines
2.0 KiB
C++
80 lines
2.0 KiB
C++
#ifndef VALUE_H
|
|
#define VALUE_H
|
|
|
|
#include <QObject>
|
|
|
|
#include <deque>
|
|
|
|
#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<qreal> 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<qreal> values() const;
|
|
|
|
private:
|
|
qreal _time;
|
|
|
|
protected:
|
|
virtual void before_copying_data(std::vector<qreal>::iterator begin, std::vector<qreal>::iterator end);
|
|
virtual void after_copying_data(std::vector<qreal>::iterator begin, std::vector<qreal>::iterator end);
|
|
|
|
protected:
|
|
QString _name;
|
|
qreal _value;
|
|
gtl::analog_data* _ad;
|
|
|
|
std::vector<qreal> _data;
|
|
int _data_ptr;
|
|
|
|
QList<qreal> _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
|