test_sdk/math/gtl_math_delta_phase_spec.h

74 lines
1.9 KiB
C++

#ifndef GTL_MATH_DELTA_PHASE_SPEC_H
#define GTL_MATH_DELTA_PHASE_SPEC_H
#include <QObject>
#include "core/gtl_device.h"
#include "core/gtl_analog_data.h"
#include "gtl_math_spec.h"
#include "math_global.h"
namespace gtl
{
namespace math
{
class MATH_EXPORT delta_phase_spec : public QObject
{
Q_OBJECT
Q_PROPERTY(qreal frequency READ frequency WRITE set_frequency NOTIFY frequency_changed);
Q_PROPERTY(qreal max_frequency READ max_frequency WRITE set_max_frequency NOTIFY max_frequency_changed);
Q_PROPERTY(qreal resolution READ resolution WRITE set_resolution NOTIFY resolution_changed);
Q_PROPERTY(qreal value READ value() NOTIFY value_changed);
public:
delta_phase_spec(gtl::analog_data *ref, gtl::analog_data *data);
~delta_phase_spec();
qreal frequency() const;
void set_frequency(qreal value);
qreal max_frequency() const;
void set_max_frequency(qreal value);
qreal resolution() const;
void set_resolution(qreal value);
qreal overlap() const;
void set_overlap(int value);
private:
int _ref_max_idx;
int _data_max_idx;
gtl::math::spec* _ref_spec = NULL;
gtl::math::spec* _data_spec = NULL;
qreal _phase;
qreal _freq;
qreal _max_freq;
gtl::device* _device;
private slots:
void calculate();
signals:
void value_changed();
void frequency_changed();
void max_frequency_changed();
void resolution_changed();
void overlap_changed();
public slots:
qreal value();
};
} // namespace math
} // namespace gtl
#endif // GTL_MATH_DELTA_PHASE_SPEC_H