#ifndef EVALWIFIGROUND_H #define EVALWIFIGROUND_H #include "Indoor/sensors/radio/setup/WiFiOptimizer.h" #include "Indoor/sensors/radio/setup/WiFiFingerprint.h" #include "Indoor/sensors/radio/setup/WiFiFingerprints.h" #include "Indoor/sensors/radio/setup/WiFiOptimizer.h" #include "Indoor/sensors/radio/model/WiFiModels.h" #include "Indoor/sensors/radio/VAPGrouper.h" #include "Indoor/sensors/offline/FileReader.h" #include "Indoor/floorplan/v2/Floorplan.h" #include "Indoor/floorplan/v2/FloorplanReader.h" #include "Indoor/floorplan/v2/FloorplanHelper.h" #include "Indoor/floorplan/v2/FloorplanCeilings.h" #include #include #include #include #include #include #include #include #include "../Structs.h" #include "../plots/Plotty.h" #include "../plots/PlotErrTime.h" #include "../plots/PlotErrFunc.h" #include "../plots/PlotWiFiGroundProb.h" //#include "../CSV.h" #include #include class EvalWiFiGround { private: WiFiModel* mdl; WiFiObserverFree* obs; PlotWiFiGroundProb* groundProb; public: EvalWiFiGround(Floorplan::IndoorMap* map, const std::string calibModel) { mdl = WiFiModelFactory(map).loadXML(calibModel); obs = new WiFiObserverFree(8.0, *mdl); groundProb = new PlotWiFiGroundProb(map); } void show(const std::string walkFile) { Offline::FileReader reader(walkFile); int cnt = 0; for (const auto& entry : reader.getWiFiGroupedByTime()) { const WiFiMeasurements& mes = entry.data; groundProb->show(*obs, mes); groundProb->plotMe(); //if (++cnt > 70) {break;} std::this_thread::sleep_for(std::chrono::milliseconds(2)); } //groundProb->update(); groundProb->plotMe(); int i = 0; (void) i; } }; #endif // EVALWIFIGROUND_H