#include "referencepoint.hh" float ReferencePoint::getSsSquareDistance(const vector &m)const { unsigned int i, j; float ret = 0; bool found; for (i = 0 ; i < m.size() ; i++) { j = 0; found = false; while((j < measurement_list.size())&&(found == false)) { if(measurement_list[j].getMacAddr() == m[i].getMacAddr()) { found = true; ret += measurement_list[j].getSsSquareDistance(m[i].getAverage()); } j++; } } return ret; } void ReferencePoint::addMeasurement(const string &mac_a, const int &value) { unsigned int i; Measurement m; bool inserted = false; for (i = 0 ; i < measurement_list.size() ; i++) if(measurement_list[i].getMacAddr() == mac_a) { measurement_list[i].addSsValue(value); inserted = true; break; } if(inserted == false) { m.setMacAddr(mac_a); m.addSsValue(value); measurement_list.push_back(m); } } bool ReferencePoint::getPowerForAp(const string &ap_mac, float *p)const { unsigned int i; string str; string macLowerCase; str=ap_mac; //Pour convertir les majuscules en miniscules const int length=str.length(); for(int j=0; j < length; ++j) { str[j] = std::tolower(str[j]); } for (i = 0 ; i < measurement_list.size() ; i++) if(measurement_list[i].getMacAddr() == str) { *p = measurement_list[i].getAverage(); return true; } return false; } ReferencePoint ReferencePoint::operator=(const ReferencePoint &rp) { if(this == &rp) return *this; coordinates = rp.coordinates; measurement_list = rp.measurement_list; return *this; } ostream &operator<<(ostream &os, ReferencePoint &rp) { unsigned int i; os << rp.coordinates << endl; if(rp.measurement_list.size() == 0) os << "No measurements" << endl; else for (i = 0 ; i < rp.measurement_list.size() ; i++) os << rp.measurement_list[i] << endl; return os; } /* Opérateur de cast en Point */ ReferencePoint::operator Point() const { return coordinates ; }