2008-04-11 10:11:29 +02:00
|
|
|
|
#include "measurement.hh"
|
|
|
|
|
|
2009-12-11 13:52:21 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*** Constructeurs ***/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Measurement::Measurement(const string &_mac_addr, const vector<int> &_ss_list)
|
|
|
|
|
{
|
|
|
|
|
mac_addr = _mac_addr ;
|
|
|
|
|
ss_list = ssl ;
|
|
|
|
|
update_average_ss() ;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Measurement::Measurement(const Measurement &m)
|
|
|
|
|
{
|
|
|
|
|
mac_addr = m.mac_addr ;
|
|
|
|
|
ss_list = m.ss_list ;
|
|
|
|
|
average_ss = m.average_ss ;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Measurement::~Measurement()
|
|
|
|
|
{
|
|
|
|
|
ss_list.clear() ;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*** Accesseurs lecture ***/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
string Measurement::get_mobile_mac_addr() const
|
2008-04-11 10:11:29 +02:00
|
|
|
|
{
|
2009-12-11 13:52:21 +01:00
|
|
|
|
return mobile_mac_addr ;
|
|
|
|
|
}
|
2009-05-29 13:46:49 +02:00
|
|
|
|
|
2009-12-11 13:52:21 +01:00
|
|
|
|
|
|
|
|
|
string Measurement::get_ap_mac_addr() const
|
|
|
|
|
{
|
|
|
|
|
return ap_mac_addr ;
|
2008-04-11 10:11:29 +02:00
|
|
|
|
}
|
|
|
|
|
|
2009-12-11 13:52:21 +01:00
|
|
|
|
|
|
|
|
|
vector<int> Measurement::get_ss_list() const
|
2010-05-21 10:35:15 +02:00
|
|
|
|
{
|
2009-12-11 13:52:21 +01:00
|
|
|
|
return ss_list ;
|
2010-05-21 10:35:15 +02:00
|
|
|
|
}
|
2008-04-11 10:11:29 +02:00
|
|
|
|
|
2009-12-11 13:52:21 +01:00
|
|
|
|
|
|
|
|
|
float Measurement::get_average_ss() const
|
|
|
|
|
{
|
|
|
|
|
return average_ss ;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
float Measurement::get_ss_square_distance(const float &ss) const
|
|
|
|
|
{
|
|
|
|
|
return ((ss - average_ss) * (ss - average_ss)) ;
|
|
|
|
|
}
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*** Accesseurs <20>criture ***/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void Measurement::update_average_ss()
|
|
|
|
|
{
|
|
|
|
|
average_ss = 0 ;
|
|
|
|
|
|
|
|
|
|
for (int i=0 ; i < ss_list ; i++)
|
|
|
|
|
{
|
|
|
|
|
float ss_mw =
|
|
|
|
|
pow(10, (float) ss_list[i] / 10.0) +
|
|
|
|
|
(ss_list.size() * pow(10, average_ss / 10.0)) ;
|
|
|
|
|
average_ss = 10 * log10(ss_mwatts / ss_list.size()) ;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void Measurement::set_mac_addr(const string &_mac_addr)
|
|
|
|
|
{
|
|
|
|
|
mac_addr = _mac_addr ;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void Measurement::add_ss(const int &ss)
|
|
|
|
|
{
|
|
|
|
|
float ss_mwatts =
|
|
|
|
|
pow(10, (float) ss / 10.0) +
|
|
|
|
|
(ss_list.size() * pow(10, average_ss / 10.0)) ;
|
|
|
|
|
ss_list.push_back(ss) ;
|
|
|
|
|
average_ss = 10 * log10(ss_mwatts / ss_list.size()) ;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*** Op<4F>rateurs ***/
|
|
|
|
|
|
|
|
|
|
|
2008-04-30 11:36:55 +02:00
|
|
|
|
ostream &operator<<(ostream &os, const Measurement &m)
|
2008-04-11 10:11:29 +02:00
|
|
|
|
{
|
2008-04-15 12:19:15 +02:00
|
|
|
|
unsigned int i;
|
2009-05-29 13:46:49 +02:00
|
|
|
|
|
2008-04-15 12:19:15 +02:00
|
|
|
|
os << m.mac_addr << "->";
|
|
|
|
|
if (m.ss_list.size() == 0)
|
|
|
|
|
os << "No values";
|
|
|
|
|
else
|
|
|
|
|
for (i = 0 ; i < m.ss_list.size() ; i++)
|
|
|
|
|
{
|
2009-05-29 13:46:49 +02:00
|
|
|
|
os << m.ss_list[i];
|
|
|
|
|
if (i < m.ss_list.size() - 1)
|
|
|
|
|
os << ";";
|
2008-04-15 12:19:15 +02:00
|
|
|
|
}
|
|
|
|
|
os << " [AVG=" << m.average_ss << "]";
|
2009-05-29 13:46:49 +02:00
|
|
|
|
|
2008-04-15 12:19:15 +02:00
|
|
|
|
return os;
|
2008-04-11 10:11:29 +02:00
|
|
|
|
}
|