71 lines
2.4 KiB
C++
71 lines
2.4 KiB
C++
|
|
#ifndef GTL_MATH_OSC_MEAS_H
|
|
#define GTL_MATH_OSC_MEAS_H
|
|
|
|
#include <QObject>
|
|
#include <QSharedPointer>
|
|
#include <QList>
|
|
|
|
#include "core/gtl_analog_data.h"
|
|
#include "math_global.h"
|
|
|
|
namespace gtl {
|
|
namespace math {
|
|
|
|
class MATH_EXPORT osc_meas
|
|
{
|
|
Q_GADGET
|
|
public:
|
|
osc_meas();
|
|
|
|
enum class types
|
|
{
|
|
min,
|
|
max,
|
|
offset,
|
|
peak,
|
|
peak_to_peak,
|
|
rms,
|
|
freq,
|
|
period,
|
|
kurt
|
|
};
|
|
Q_ENUM(types)
|
|
|
|
struct params
|
|
{
|
|
int id;
|
|
QString chan;
|
|
osc_meas::types type;
|
|
qreal value;
|
|
gtl::analog_data* ad;
|
|
explicit params()
|
|
{
|
|
chan = "";
|
|
type = math::osc_meas::types::min;
|
|
value = 0;
|
|
id = 0;
|
|
ad = nullptr;
|
|
}
|
|
};
|
|
|
|
static qreal min(const std::vector<qreal>::iterator& begin, const std::vector<qreal>::iterator& end);
|
|
static qreal max(const std::vector<qreal>::iterator& begin, const std::vector<qreal>::iterator& end);
|
|
static qreal offset(const std::vector<qreal>::iterator& begin, const std::vector<qreal>::iterator& end);
|
|
static qreal peak(const std::vector<qreal>::iterator& begin, const std::vector<qreal>::iterator& end);
|
|
static qreal peak_to_peak(const std::vector<qreal>::iterator& begin, const std::vector<qreal>::iterator& end);
|
|
static qreal rms(const std::vector<qreal>::iterator& begin, const std::vector<qreal>::iterator& end);
|
|
static qreal freq(const std::vector<qreal>::iterator& begin, const std::vector<qreal>::iterator& end, qreal f_sample);
|
|
static qreal period(const std::vector<qreal>::iterator& begin, const std::vector<qreal>::iterator& end, qreal f_sample);
|
|
static qreal kurt(const std::vector<qreal>::iterator& begin, const std::vector<qreal>::iterator& end);
|
|
};
|
|
} // namespace math
|
|
} // namespace gtl
|
|
|
|
Q_DECLARE_METATYPE(gtl::math::osc_meas::params)
|
|
typedef QList<gtl::math::osc_meas::params> QListOscMeasParams;
|
|
typedef QSharedPointer<QListOscMeasParams> OscMeasParamsListPtr;
|
|
Q_DECLARE_METATYPE(OscMeasParamsListPtr)
|
|
|
|
#endif // GTL_MATH_OSC_MEAS_H
|