owlps/GuiNuMo-server/measurement.cc

34 lines
674 B
C++

#include "measurement.hh"
void Measurement::addSsValue(int ssv)
{
float ss_mwatts = pow(10, (float) ssv / 10.0) + (ss_list.size() * pow(10, average_ss / 10.0));
ss_list.push_back(ssv);
average_ss = 10 * log10(ss_mwatts / ss_list.size());
}
float Measurement::getSsSquareDistance(float ss)const
{
return ((ss - average_ss) * (ss - average_ss));
}
ostream &operator<<(ostream &os, Measurement &m)
{
unsigned int i;
os << m.mac_addr << "->";
if(m.ss_list.size() == 0)
os << "No values";
else
for(i=0;i<m.ss_list.size();i++)
{
os << m.ss_list[i];
if(i < m.ss_list.size() - 1)
os << ";";
}
os << " [AVG=" << m.average_ss << "]";
return os;
}