- removed
git-svn-id: http://moon:8086/svn/software/trunk/libsrc/cpp@1043 b431acfa-c32f-4a4a-93f1-934dc6c82436
This commit is contained in:
@@ -1,28 +0,0 @@
|
|||||||
#ifndef _METRICS_IMINMAX_HPP_
|
|
||||||
#define _METRICS_IMINMAX_HPP_
|
|
||||||
|
|
||||||
#pragma once
|
|
||||||
|
|
||||||
#include <radio/radio_types.h>
|
|
||||||
|
|
||||||
namespace Radio
|
|
||||||
{
|
|
||||||
namespace Metrics
|
|
||||||
{
|
|
||||||
class IMinMax
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
virtual ~IMinMax() = default;
|
|
||||||
|
|
||||||
virtual radio_float_t min_i() const = 0;
|
|
||||||
virtual radio_float_t min_q() const = 0;
|
|
||||||
virtual radio_float_t min_mag() const = 0;
|
|
||||||
|
|
||||||
virtual radio_float_t max_i() const = 0;
|
|
||||||
virtual radio_float_t max_q() const = 0;
|
|
||||||
virtual radio_float_t max_mag() const = 0;
|
|
||||||
};
|
|
||||||
} // Metrics
|
|
||||||
} // Radio
|
|
||||||
|
|
||||||
#endif // _METRICS_IMINMAX_HPP_
|
|
||||||
@@ -1,45 +0,0 @@
|
|||||||
#include "Statistics.hpp"
|
|
||||||
#include <radio/cpx.h>
|
|
||||||
|
|
||||||
namespace Radio
|
|
||||||
{
|
|
||||||
namespace Metrics
|
|
||||||
{
|
|
||||||
Statistics::Statistics(radio_float_t updateInterval_minMax)
|
|
||||||
: m_provider_minMax(*this)
|
|
||||||
{
|
|
||||||
SlidingMinMaxInit(&m_sl_min_I, updateInterval_minMax, (radio_float_t)1E12, -1);
|
|
||||||
SlidingMinMaxInit(&m_sl_min_Q, updateInterval_minMax, (radio_float_t)1E12, -1);
|
|
||||||
SlidingMinMaxInit(&m_sl_min_mag, updateInterval_minMax, (radio_float_t)1E12, -1);
|
|
||||||
SlidingMinMaxInit(&m_sl_max_I, updateInterval_minMax, (radio_float_t)1E12, +1);
|
|
||||||
SlidingMinMaxInit(&m_sl_max_Q, updateInterval_minMax, (radio_float_t)1E12, +1);
|
|
||||||
SlidingMinMaxInit(&m_sl_max_mag, updateInterval_minMax, (radio_float_t)1E12, +1);
|
|
||||||
}
|
|
||||||
|
|
||||||
Statistics::~Statistics()
|
|
||||||
{
|
|
||||||
SlidingMinMaxFree(&m_sl_min_I);
|
|
||||||
SlidingMinMaxFree(&m_sl_min_Q);
|
|
||||||
SlidingMinMaxFree(&m_sl_min_mag);
|
|
||||||
SlidingMinMaxFree(&m_sl_max_I);
|
|
||||||
SlidingMinMaxFree(&m_sl_max_Q);
|
|
||||||
SlidingMinMaxFree(&m_sl_max_mag);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
IMinMax const& Statistics::minMax() const
|
|
||||||
{
|
|
||||||
return m_provider_minMax;
|
|
||||||
}
|
|
||||||
|
|
||||||
void Statistics::process(ComplexScalar const &x)
|
|
||||||
{
|
|
||||||
SlidingMinMaxProcess(&m_sl_min_I, x.real());
|
|
||||||
SlidingMinMaxProcess(&m_sl_min_Q, x.imag());
|
|
||||||
SlidingMinMaxProcess(&m_sl_min_mag, CpxMagS(toCpx(x)));
|
|
||||||
SlidingMinMaxProcess(&m_sl_max_I, x.real());
|
|
||||||
SlidingMinMaxProcess(&m_sl_max_Q, x.imag());
|
|
||||||
SlidingMinMaxProcess(&m_sl_max_mag, CpxMagS(toCpx(x)));
|
|
||||||
}
|
|
||||||
} // Metrics
|
|
||||||
} // Radio
|
|
||||||
@@ -1,75 +0,0 @@
|
|||||||
#ifndef _METRICS_STATISTICS_HPP_
|
|
||||||
#define _METRICS_STATISTICS_HPP_
|
|
||||||
|
|
||||||
#pragma once
|
|
||||||
|
|
||||||
#include <cpp/radio/Vector.hpp>
|
|
||||||
#include <radio/statistics.h>
|
|
||||||
|
|
||||||
#include "IMinMax.hpp"
|
|
||||||
|
|
||||||
namespace Radio
|
|
||||||
{
|
|
||||||
namespace Metrics
|
|
||||||
{
|
|
||||||
class Statistics
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
friend class MinMaxProvider;
|
|
||||||
Statistics(radio_float_t updateInterval_minMax);
|
|
||||||
~Statistics();
|
|
||||||
void process(ComplexScalar const &xin);
|
|
||||||
IMinMax const& minMax() const;
|
|
||||||
|
|
||||||
class MinMaxProvider : public IMinMax
|
|
||||||
{
|
|
||||||
Statistics &m_parent;
|
|
||||||
public:
|
|
||||||
MinMaxProvider(Statistics &parent)
|
|
||||||
: m_parent(parent)
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
radio_float_t min_i() const
|
|
||||||
{
|
|
||||||
return SlidingMinMaxGet(&m_parent.m_sl_min_I);
|
|
||||||
|
|
||||||
}
|
|
||||||
radio_float_t min_q() const
|
|
||||||
{
|
|
||||||
return SlidingMinMaxGet(&m_parent.m_sl_min_Q);
|
|
||||||
}
|
|
||||||
radio_float_t min_mag() const
|
|
||||||
{
|
|
||||||
return SlidingMinMaxGet(&m_parent.m_sl_min_mag);
|
|
||||||
}
|
|
||||||
|
|
||||||
radio_float_t max_i() const
|
|
||||||
{
|
|
||||||
return SlidingMinMaxGet(&m_parent.m_sl_max_I);
|
|
||||||
}
|
|
||||||
radio_float_t max_q() const
|
|
||||||
{
|
|
||||||
return SlidingMinMaxGet(&m_parent.m_sl_max_Q);
|
|
||||||
}
|
|
||||||
radio_float_t max_mag() const
|
|
||||||
{
|
|
||||||
return SlidingMinMaxGet(&m_parent.m_sl_max_mag);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
private:
|
|
||||||
sl_minmax_t m_sl_min_I;
|
|
||||||
sl_minmax_t m_sl_min_Q;
|
|
||||||
sl_minmax_t m_sl_min_mag;
|
|
||||||
|
|
||||||
sl_minmax_t m_sl_max_I;
|
|
||||||
sl_minmax_t m_sl_max_Q;
|
|
||||||
sl_minmax_t m_sl_max_mag;
|
|
||||||
MinMaxProvider m_provider_minMax;
|
|
||||||
|
|
||||||
};
|
|
||||||
} // Metrics
|
|
||||||
} // Radio
|
|
||||||
|
|
||||||
#endif // _METRICS_STATISTICS_HPP_
|
|
||||||
Reference in New Issue
Block a user