- added metrics
git-svn-id: http://moon:8086/svn/software/trunk/libsrc/cpp@1035 b431acfa-c32f-4a4a-93f1-934dc6c82436
This commit is contained in:
@@ -0,0 +1,75 @@
|
||||
#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& provider_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