75 lines
1.8 KiB
C
75 lines
1.8 KiB
C
|
#ifndef ANALOG_DATA_H
|
||
|
#define ANALOG_DATA_H
|
||
|
|
||
|
#include <QObject>
|
||
|
#include <QJsonArray>
|
||
|
|
||
|
#include "core_global.h"
|
||
|
|
||
|
#include "core/gtl_data_model_node.h"
|
||
|
|
||
|
namespace gtl
|
||
|
{
|
||
|
class CORE_EXPORT analog_data : public data_model_node, public std::vector<qreal>
|
||
|
{
|
||
|
Q_OBJECT
|
||
|
Q_PROPERTY(qreal rate READ get_rate WRITE set_rate NOTIFY rate_changed)
|
||
|
Q_PROPERTY(int color READ color WRITE set_color NOTIFY color_changed)
|
||
|
Q_PROPERTY(qreal reference READ reference NOTIFY reference_changed)
|
||
|
Q_PROPERTY(qreal history READ history WRITE set_history)
|
||
|
|
||
|
public:
|
||
|
analog_data(data_model_node *parent, bool is_hidden = false);
|
||
|
analog_data(analog_data *parent, bool is_hidden = false);
|
||
|
analog_data(qreal rate);
|
||
|
|
||
|
void get_data(std::back_insert_iterator<std::vector<qreal>> data);
|
||
|
virtual void set_data(std::vector<qreal>::iterator begin, std::vector<qreal>::iterator end);
|
||
|
|
||
|
qreal get_rate() const;
|
||
|
|
||
|
void lock_device();
|
||
|
void unlock_device();
|
||
|
|
||
|
int color() const;
|
||
|
|
||
|
virtual qreal reference() const;
|
||
|
|
||
|
virtual void save(QDomElement& root_element);
|
||
|
virtual void load(const QDomElement& root_element);
|
||
|
virtual void get_state(QJsonObject& root);
|
||
|
|
||
|
analog_data* analog_data_root();
|
||
|
|
||
|
protected:
|
||
|
qreal _rate;
|
||
|
int _color;
|
||
|
|
||
|
private:
|
||
|
std::vector<qreal> _history;
|
||
|
int _history_ptr;
|
||
|
|
||
|
private:
|
||
|
qreal history() const;
|
||
|
void set_history(qreal value);
|
||
|
|
||
|
protected:
|
||
|
virtual bool is_checkable() const;
|
||
|
|
||
|
public slots:
|
||
|
virtual void set_rate(qreal value);
|
||
|
void set_color(int value);
|
||
|
QJsonArray getHistoryArray();
|
||
|
|
||
|
signals:
|
||
|
void data_changed();
|
||
|
void rate_changed();
|
||
|
void color_changed();
|
||
|
void reference_changed();
|
||
|
|
||
|
};
|
||
|
|
||
|
}
|
||
|
|
||
|
#endif // ANALOG_DATA_H
|