new time-grouping for vap grouper adjusted test-cases minor changes/fixes/improvements
90 lines
2.1 KiB
C++
90 lines
2.1 KiB
C++
#ifndef WIFIMEASUREMENT_H
|
|
#define WIFIMEASUREMENT_H
|
|
|
|
#include "AccessPoint.h"
|
|
#include "../../data/Timestamp.h"
|
|
|
|
/**
|
|
* describes a measurement received for one access-point at a given time
|
|
*/
|
|
class WiFiMeasurement {
|
|
|
|
private:
|
|
|
|
friend class VAPGrouper;
|
|
|
|
/** the access-point we got a measurement for */
|
|
AccessPoint ap;
|
|
|
|
/** the measured signal strength */
|
|
float rssi;
|
|
|
|
/** OPTIONAL. frequence the signal was received */
|
|
float freq = NAN;
|
|
|
|
/** OPTIONAL. timestamp the measurement was recorded at */
|
|
Timestamp ts;
|
|
|
|
public:
|
|
|
|
/** ctor */
|
|
WiFiMeasurement(const AccessPoint& ap, const float rssi) : ap(ap), rssi(rssi), freq(NAN) {
|
|
;
|
|
}
|
|
|
|
/** ctor with freq*/
|
|
WiFiMeasurement(const AccessPoint& ap, const float rssi, const float freq) : ap(ap), rssi(rssi), freq(freq) {
|
|
;
|
|
}
|
|
|
|
/** ctor with timestamp */
|
|
WiFiMeasurement(const AccessPoint& ap, const float rssi, const Timestamp ts) : ap(ap), rssi(rssi), freq(NAN), ts(ts) {
|
|
;
|
|
}
|
|
|
|
/** ctor with timestamp and freq*/
|
|
WiFiMeasurement(const AccessPoint& ap, const float rssi, const float freq, const Timestamp ts) : ap(ap), rssi(rssi), freq(freq), ts(ts) {
|
|
;
|
|
}
|
|
|
|
public:
|
|
|
|
/** get the AP we got the measurement for */
|
|
const AccessPoint& getAP() const {return ap;}
|
|
|
|
/** get the measurement's signal strength */
|
|
float getRSSI() const {return rssi;}
|
|
|
|
/** OPTIONAL: get the measurement's timestamp (if known!) */
|
|
const Timestamp& getTimestamp() const {return ts;}
|
|
|
|
/** timestamp known? */
|
|
bool hasTimestamp() const {return ts == ts;}
|
|
|
|
/** OPTIONAL: get the measurement's frequency (if known!) */
|
|
float getFrequency() const {return freq;}
|
|
|
|
/** frequency known? */
|
|
bool hasFrequency() const {return freq == freq;}
|
|
|
|
/** set another signal strength */
|
|
void setRssi(float value){rssi = value;}
|
|
|
|
/** set the timestamp */
|
|
void setTimestamp(const Timestamp& val){ts = val;}
|
|
|
|
/** as string for debug printing */
|
|
std::string asString() const {
|
|
std::string res = ap.asString();
|
|
if (hasTimestamp()) {res += " @" + std::to_string(ts.ms());}
|
|
if (hasFrequency()) {res += " " + std::to_string((int)freq) + " MHz";}
|
|
res += " - " + std::to_string(rssi) + " dBm ";
|
|
return res;
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
#endif // WIFIMEASUREMENT_H
|