added code from fusion2016
This commit is contained in:
41
code/frank/BeaconObservation.h
Executable file
41
code/frank/BeaconObservation.h
Executable file
@@ -0,0 +1,41 @@
|
||||
#ifndef BEACONOBSERVATION_H
|
||||
#define BEACONOBSERVATION_H
|
||||
|
||||
#include "MACAddress.h"
|
||||
#include <vector>
|
||||
|
||||
|
||||
/** one observed AP and its signal strength */
|
||||
struct BeaconObservationEntry {
|
||||
|
||||
/** the timestamp this beacon was discovered at */
|
||||
uint64_t ts;
|
||||
|
||||
/** the beacon's mac address */
|
||||
std::string mac;
|
||||
|
||||
/** the beacon's rssi */
|
||||
int rssi;
|
||||
|
||||
BeaconObservationEntry() : ts(0), mac(), rssi(0) {;}
|
||||
BeaconObservationEntry(const uint64_t ts, const std::string& mac, const int rssi) : ts(ts), mac(mac), rssi(rssi) {;}
|
||||
|
||||
};
|
||||
|
||||
/** all APs observed during one scan */
|
||||
struct BeaconObservation {
|
||||
|
||||
std::vector<BeaconObservationEntry> entries;
|
||||
|
||||
void removeOld(uint64_t latestTS) {
|
||||
auto lambda = [latestTS] (const BeaconObservationEntry& e) {
|
||||
uint64_t age = latestTS - e.ts;
|
||||
return age > 1000*3;
|
||||
};
|
||||
entries.erase(std::remove_if(entries.begin(), entries.end(), lambda), entries.end());
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
|
||||
#endif // BEACONOBSERVATION_H
|
||||
Reference in New Issue
Block a user