owlps/GuiNuMo-server/measurement.cc

34 lines
701 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;
}