#ifndef ANALOG_INPUT_H #define ANALOG_INPUT_H #include #include "core/gtl_analog_data.h" #include "hw_global.h" #include "core/gtl_device.h" namespace gtl { namespace hw { class HW_EXPORT analog_input : public gtl::analog_data { Q_OBJECT Q_PROPERTY(qreal reference READ reference WRITE set_reference NOTIFY reference_changed) public: explicit analog_input(qreal rate, QString name, gtl::device *parent); void set_data(qreal* data, int size, int offset, int step); void set_iepe(bool value); bool is_iepe() const; void set_coupling(bool value); bool is_coupling() const; void set_sensitivity(qreal value); qreal sensitivity() const; void set_gain(qreal value); qreal gain() const; void set_offset(qreal value); bool offset() const; void set_inverting(bool value); bool is_inverting() const; void set_reference(qreal value); virtual void save(QDomElement& root_element) override; virtual void load(const QDomElement& root_element) override; virtual void get_state(QJsonObject& root) override; virtual qreal reference() const override; private: bool _is_iepe; bool _is_coupling; qreal _sensitivity; qreal _gain; qreal _offset; bool _is_inverting; qreal _reference; signals: void iepe_changed(); void coupling_changed(); }; } } #endif // ANALOG_INPUT_H