added corresponding test-cases switched to newer version of tinyxml due to some issues adjusted affected code-parts accordingly for better re-use, moved ceiling-calculation to a new class some minor fixes new helper methods worked on wifi-opt
56 lines
1.3 KiB
C++
56 lines
1.3 KiB
C++
#ifndef WIFIOPTIMIZERSTRUCTS_H
|
|
#define WIFIOPTIMIZERSTRUCTS_H
|
|
|
|
#include "../../../geo/Point3.h"
|
|
|
|
namespace WiFiOptimizer {
|
|
|
|
/**
|
|
* one entry that is used during optimization:
|
|
* combine one RSSI measurement with the position the signal was measured at
|
|
*/
|
|
struct RSSIatPosition {
|
|
|
|
/** real-world position (in meter) */
|
|
const Point3 pos_m;
|
|
|
|
/** measured signal strength (for one AP) */
|
|
const float rssi;
|
|
|
|
/** ctor */
|
|
RSSIatPosition(const Point3 pos_m, const float rssi) : pos_m(pos_m), rssi(rssi) {;}
|
|
|
|
};
|
|
|
|
/**
|
|
* for statistics
|
|
* after optimiziaton
|
|
*
|
|
* denotes the difference [error] between one fingerprinted rssi
|
|
* at location (x,y,z) and the model estimation for this location
|
|
*/
|
|
struct ErrorAtPosition {
|
|
|
|
/** real-world position (in meter) */
|
|
const Point3 pos_m;
|
|
|
|
/** measured signal strength (for one AP) */
|
|
const float scan_rssi;
|
|
|
|
/** final model's prediction */
|
|
const float model_rssi;
|
|
|
|
/** ctor */
|
|
ErrorAtPosition(const Point3 pos_m, const float scan_rssi, const float model_rssi) : pos_m(pos_m), scan_rssi(scan_rssi), model_rssi(model_rssi) {;}
|
|
|
|
/** get the difference [error] between model-estimated-rssi and fingerprinted-rssi */
|
|
float getError_db() const {
|
|
return model_rssi - scan_rssi;
|
|
}
|
|
|
|
};
|
|
|
|
}
|
|
|
|
#endif // WIFIOPTIMIZERSTRUCTS_H
|