57 lines
1.6 KiB
C++
57 lines
1.6 KiB
C++
/*
|
||
* © Copyright 2014 – Urheberrechtshinweis
|
||
* Alle Rechte vorbehalten / All Rights Reserved
|
||
*
|
||
* Programmcode ist urheberrechtlich geschuetzt.
|
||
* Das Urheberrecht liegt, soweit nicht ausdruecklich anders gekennzeichnet, bei Frank Ebner.
|
||
* Keine Verwendung ohne explizite Genehmigung.
|
||
* (vgl. § 106 ff UrhG / § 97 UrhG)
|
||
*/
|
||
|
||
#ifndef BEACONMODEL_H
|
||
#define BEACONMODEL_H
|
||
|
||
#include "../Beacon.h"
|
||
#include "../BeaconMeasurement.h"
|
||
#include "../../../geo/Point3.h"
|
||
|
||
#include <vector>
|
||
|
||
/**
|
||
* interface for signal-strength prediction models.
|
||
*
|
||
* the model is passed a MAC-address of an AP in question, and a position.
|
||
* hereafter the model returns the RSSI for this AP at the questioned location.
|
||
*/
|
||
class BeaconModel {
|
||
|
||
public:
|
||
|
||
// /** get the given access-point's RSSI at the provided location */
|
||
// virtual float getRSSI(const LocatedAccessPoint& ap, const Point3 p) = 0;
|
||
|
||
/** get a list of all APs known to the model */
|
||
virtual std::vector<Beacon> getAllBeacons() const = 0;
|
||
|
||
/**
|
||
* update the beacons signal strength using the current measurement
|
||
* this could happen if the txp is not updated within the floorplan
|
||
*
|
||
* be careful and don't use fantasy values, this could ruin your localitions
|
||
* completely
|
||
*/
|
||
virtual void updateBeacon(const BeaconMeasurement beacon) = 0;
|
||
|
||
|
||
/**
|
||
* get the RSSI expected at the given location (in meter)
|
||
* for an beacon identified by the given MAC.
|
||
*
|
||
* if the model can not predict the RSSI for an beacon, it returns NaN!
|
||
*/
|
||
virtual float getRSSI(const MACAddress& accessPoint, const Point3 position_m) const = 0;
|
||
|
||
};
|
||
|
||
#endif // BEACONMODEL_H
|