This repository has been archived on 2020-04-08. You can view files and clone it, but cannot push or open issues or pull requests.
Files
Indoor/sensors/radio/WiFiMeasurement.h
frank da477866c1 worked on wifi-scanner for linux
new time-grouping for vap grouper
adjusted test-cases
minor changes/fixes/improvements
2017-10-11 14:00:24 +02:00

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