next commit
This commit is contained in:
144
Helper.h
144
Helper.h
@@ -6,7 +6,7 @@
|
||||
#include <Indoor/sensors/radio/setup/WiFiFingerprints.h>
|
||||
#include <Indoor/floorplan/v2/Floorplan.h>
|
||||
|
||||
#include "Plotty.h"
|
||||
#include "plots/Plotty.h"
|
||||
|
||||
class LeHelper {
|
||||
|
||||
@@ -28,31 +28,69 @@ public:
|
||||
|
||||
}
|
||||
|
||||
static inline bool isOutdoor(const WiFiFingerprint& fp) {
|
||||
|
||||
const Point3 pos = fp.pos_m;
|
||||
|
||||
// garden
|
||||
if (pos == Point3(21, 12, 1.3)) {return true;}
|
||||
if (pos == Point3(21, 27, 1.3)) {return true;}
|
||||
if (pos == Point3(39, 12, 1.3)) {return true;}
|
||||
if (pos == Point3(39, 27, 1.3)) {return true;}
|
||||
if (pos == Point3(67, 12, 1.3)) {return true;}
|
||||
if (pos == Point3(67, 27, 1.3)) {return true;}
|
||||
if (pos == Point3(88, 12, 1.3)) {return true;}
|
||||
if (pos == Point3(88, 27, 1.3)) {return true;}
|
||||
|
||||
// front door
|
||||
if (pos == Point3(94, 43, 4+1.3)) {return true;}
|
||||
if (pos == Point3(110, 43, 4+1.3)) {return true;}
|
||||
if (pos == Point3(94, 55, 4+1.3)) {return true;}
|
||||
if (pos == Point3(110, 55, 4+1.3)) {return true;}
|
||||
if (pos == Point3(67.2, 55, 4+1.3)) {return true;}
|
||||
|
||||
return false;
|
||||
|
||||
}
|
||||
|
||||
static inline bool isStaircase(const WiFiFingerprint& fp) {
|
||||
|
||||
const Point3 pos = fp.pos_m;
|
||||
|
||||
// floor 0
|
||||
if (pos == Point3(67.2, 48.5, 1.3)) {return true;}
|
||||
if (pos == Point3(11.2, 48.3, 1.3)) {return true;}
|
||||
if (pos == Point3(16.5, 11.9, 1.3)) {return true;}
|
||||
if (pos == Point3(57.4, 2.6, 1.3)) {return true;}
|
||||
if (pos == Point3(57.4, -3.2, 3.0)) {return true;}
|
||||
|
||||
// floor 1
|
||||
if (pos == Point3(67.2, 48.3, 4+1.3)) {return true;}
|
||||
if (pos == Point3(11.4, 48.3, 4+1.3)) {return true;}
|
||||
if (pos == Point3(16.1, 11.9, 4+1.3)) {return true;}
|
||||
if (pos == Point3(57.4, 2.4, 4+1.3)) {return true;}
|
||||
|
||||
// floor 2
|
||||
if (pos == Point3(67.0, 48.5, 3.4+4+1.3)) {return true;}
|
||||
if (pos == Point3(11.6, 48.5, 3.4+4+1.3)) {return true;}
|
||||
if (pos == Point3(16.3, 11.9, 3.4+4+1.3)) {return true;}
|
||||
|
||||
// floor 3
|
||||
if (pos == Point3(67.0, 48.3, 3.4+3.4+4+1.3)) {return true;}
|
||||
if (pos == Point3(11.4, 48.5, 3.4+3.4+4+1.3)) {return true;}
|
||||
if (pos == Point3(16.3, 11.9, 3.4+3.4+4+1.3)) {return true;}
|
||||
|
||||
return false;
|
||||
|
||||
}
|
||||
|
||||
/** remove all outdoor fingerprints */
|
||||
static WiFiFingerprints removeOutdoor(const WiFiFingerprints& inp) {
|
||||
|
||||
WiFiFingerprints res;
|
||||
|
||||
for (const WiFiFingerprint& fp : inp.getFingerprints()) {
|
||||
const Point3 pos = fp.pos_m;
|
||||
|
||||
// garden
|
||||
if (pos == Point3(21, 12, 1.3)) {continue;}
|
||||
if (pos == Point3(21, 27, 1.3)) {continue;}
|
||||
if (pos == Point3(39, 12, 1.3)) {continue;}
|
||||
if (pos == Point3(39, 27, 1.3)) {continue;}
|
||||
if (pos == Point3(67, 12, 1.3)) {continue;}
|
||||
if (pos == Point3(67, 27, 1.3)) {continue;}
|
||||
if (pos == Point3(88, 12, 1.3)) {continue;}
|
||||
if (pos == Point3(88, 27, 1.3)) {continue;}
|
||||
|
||||
// front door
|
||||
if (pos == Point3(94, 43, 4+1.3)) {continue;}
|
||||
if (pos == Point3(110, 43, 4+1.3)) {continue;}
|
||||
if (pos == Point3(94, 55, 4+1.3)) {continue;}
|
||||
if (pos == Point3(110, 55, 4+1.3)) {continue;}
|
||||
if (pos == Point3(67.2, 55, 4+1.3)) {continue;}
|
||||
|
||||
if (isOutdoor(fp)) {continue;}
|
||||
res.add(fp);
|
||||
}
|
||||
|
||||
@@ -65,38 +103,52 @@ public:
|
||||
WiFiFingerprints res;
|
||||
|
||||
for (const WiFiFingerprint& fp : inp.getFingerprints()) {
|
||||
const Point3 pos = fp.pos_m;
|
||||
|
||||
// floor 0
|
||||
if (pos == Point3(67.2, 48.5, 1.3)) {continue;}
|
||||
if (pos == Point3(11.2, 48.3, 1.3)) {continue;}
|
||||
if (pos == Point3(16.5, 11.9, 1.3)) {continue;}
|
||||
if (pos == Point3(57.4, 2.6, 1.3)) {continue;}
|
||||
if (pos == Point3(57.4, -3.2, 3.0)) {continue;}
|
||||
|
||||
// floor 1
|
||||
if (pos == Point3(67.2, 48.3, 4+1.3)) {continue;}
|
||||
if (pos == Point3(11.4, 48.3, 4+1.3)) {continue;}
|
||||
if (pos == Point3(16.1, 11.9, 4+1.3)) {continue;}
|
||||
if (pos == Point3(57.4, 2.4, 4+1.3)) {continue;}
|
||||
|
||||
// floor 2
|
||||
if (pos == Point3(67.0, 48.5, 3.4+4+1.3)) {continue;}
|
||||
if (pos == Point3(11.6, 48.5, 3.4+4+1.3)) {continue;}
|
||||
if (pos == Point3(16.3, 11.9, 3.4+4+1.3)) {continue;}
|
||||
|
||||
// floor 3
|
||||
if (pos == Point3(67.0, 48.3, 3.4+3.4+4+1.3)) {continue;}
|
||||
if (pos == Point3(11.4, 48.5, 3.4+3.4+4+1.3)) {continue;}
|
||||
if (pos == Point3(16.3, 11.9, 3.4+3.4+4+1.3)) {continue;}
|
||||
|
||||
if (isStaircase(fp)) {continue;}
|
||||
res.add(fp);
|
||||
|
||||
}
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
static WiFiFingerprints removeIndoor(const WiFiFingerprints& inp) {
|
||||
|
||||
WiFiFingerprints res;
|
||||
|
||||
for (const WiFiFingerprint& fp : inp.getFingerprints()) {
|
||||
if (!isStaircase(fp) && !isOutdoor(fp)) {continue;}
|
||||
res.add(fp);
|
||||
}
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
|
||||
static WiFiFingerprints removeIf(const WiFiFingerprints& inp, std::function<bool(const WiFiFingerprint&)> remove) {
|
||||
|
||||
WiFiFingerprints res;
|
||||
|
||||
for (const WiFiFingerprint& fp : inp.getFingerprints()) {
|
||||
if (remove(fp)) {continue;}
|
||||
res.add(fp);
|
||||
}
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
|
||||
static WiFiFingerprints onlyOutdoor(const WiFiFingerprints& inp) {
|
||||
|
||||
WiFiFingerprints res;
|
||||
|
||||
for (const WiFiFingerprint& fp : inp.getFingerprints()) {
|
||||
if (!isOutdoor(fp)) {continue;}
|
||||
res.add(fp);
|
||||
}
|
||||
|
||||
return res;
|
||||
|
||||
}
|
||||
|
||||
static void plot(const Floorplan::IndoorMap* map, const WiFiFingerprints& inp, const std::string& title = "Fingerprints") {
|
||||
|
||||
Plotty* p = new Plotty(map);
|
||||
|
||||
Reference in New Issue
Block a user