#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/VAPGrouper.h" #include "Indoor/floorplan/v2/Floorplan.h" #include "Indoor/floorplan/v2/FloorplanReader.h" #include "Indoor/floorplan/v2/FloorplanHelper.h" #include #include #include #include #include #include "Settings.h" #include "EvalCompareOpt.h" #include "EvalApOpt.h" #include "EvalWalk.h" #include "EvalData.h" #include "EvalWiFi.h" #define BREAK raise(SIGTRAP); int main(void) { // test gps within data files if (1 == 0) { EvalData::dumpGPSforPath(Settings::path1a); BREAK; EvalData::dumpGPSforPath(Settings::path1b); BREAK; EvalData::dumpGPSforPath(Settings::path2a); BREAK; EvalData::dumpGPSforPath(Settings::path2b); BREAK; } // test wifi within data files if (1 == 1) { //EvalWiFi ew1(Settings::fMap, Settings::path2a, Settings::GroundTruth::path2); EvalWiFi ew1(Settings::fMap, Settings::path2a, Settings::GroundTruth::path1); //ew1.fixedParams(-40, 2.5, -8); BREAK; ew1.fixedParams(-64.5905, 1.25988, -2.47863); BREAK; } // run walking // run earthmapping //testMapEarthReg(fMap); // EvalApOpt eval(fMap, fCalib); // eval.optAll(); // run evaluation if (1 == 0) { EvalCompareOptAllFixed allFixed(Settings::fMap, Settings::fCalib); allFixed.fixedPosFixedParamsForAll(); allFixed.fixedPosOptParamsForAll(); allFixed.fixedPosOptParamsForEach(); allFixed.optPosOptParamsForEach(); } // Floorplan::IndoorMap* map = Floorplan::Reader::readFromFile("/apps/android/workspace/OTHER2017/data/SHL33a.xml"); // WiFiFingerprints calib("/apps/android/workspace/OTHER2017/data/wifi_fp.dat"); // VAPGrouper vap(VAPGrouper::Mode::LAST_MAC_DIGIT_TO_ZERO, VAPGrouper::Aggregation::AVERAGE); // WiFiOptimizer opt(map, vap); // opt.addFingerprints(calib); // WiFiOptimizer::APParamsList list = opt.optimizeAll(); // for (Floorplan::Floor* floor : map->floors) { // for (Floorplan::AccessPoint* ap : floor->accesspoints) { // const WiFiOptimizer::APParamsMAC* params = list.get(ap->mac); // if (params) { // const float delta = ap->getPos(floor).getDistance(Point3(params->params.x, params->params.y, params->params.z)); // std::cout << ap->mac << ": " << delta << "m" << std::endl; // } // } // } // static K::Gnuplot gp; // gp << "set view equal xy\n"; // K::GnuplotSplot splot; // K::GnuplotSplotElementPoints points; splot.add(&points); points.setPointType(7); points.setPointSize(0.5); // K::GnuplotSplotElementLines lines; splot.add(&lines); // for (Floorplan::Floor* floor : map->floors) { // for (Floorplan::FloorObstacle* obs : floor->obstacles) { // Floorplan::FloorObstacleLine* line = dynamic_cast(obs); // if (line) { // const K::GnuplotPoint3 p1(line->from.x, line->from.y, floor->atHeight); // const K::GnuplotPoint3 p2(line->to.x, line->to.y, floor->atHeight); // lines.addSegment(p1, p2); // } // } // } // for (const WiFiOptimizer::APParamsMAC& ap : list.get()) { // const K::GnuplotPoint3 p3(ap.params.x, ap.params.y, ap.params.z); // points.add(p3); // const Floorplan::AccessPoint* fap = FloorplanHelper::getAP(map, ap.mac); // std::string lbl = (fap) ? (fap->name) : (ap.mac.asString()); // if (!fap) { // gp << "set label '" << lbl << "' at " << ap.params.x+1 << "," << ap.params.y+1 << "," << ap.params.z+0.3 << "\n"; // std::cout << "AP missing in Map: " << ap.mac.asString() << " @ " << ap.params.x << "," << ap.params.y << "," << ap.params.z << std::endl; // } // } // gp.draw(splot); // gp.flush(); // int i = 0; (void) i; }