test_sdk/math/gtl_math_analog_value.h

80 lines
2.0 KiB
C
Raw Normal View History

#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