added helper methods for debug printing
fixed issue when reading wifi entries within old walk files worked on earth-registration added corresponding test-cases other minor changes
This commit is contained in:
@@ -38,6 +38,10 @@ struct GPSData {
|
||||
EQ_OR_NAN(speed, o.speed);
|
||||
}
|
||||
|
||||
std::string asString() const {
|
||||
return "(lat: " + std::to_string(lat) + ", lon: " + std::to_string(lon) + ", alt: " + std::to_string(alt) + " acur: " + std::to_string(accuracy) + ")";
|
||||
}
|
||||
|
||||
private:
|
||||
|
||||
static inline bool EQ_OR_NAN(const float a, const float b) {return (a==b) || ( (a!=a) && (b!=b) );}
|
||||
|
||||
@@ -193,7 +193,8 @@ namespace Offline {
|
||||
WiFiMeasurements wifi;
|
||||
Splitter s(data, sep);
|
||||
|
||||
for (size_t i = 0; i < s.size(); i += 3) {
|
||||
// the -1 is due to some old files containing a trailing ";" resulting in one additional stray column
|
||||
for (size_t i = 0; i < s.size()-1; i += 3) {
|
||||
|
||||
const std::string mac = s.get(i+0);
|
||||
const float freq = s.getFloat(i+1);
|
||||
|
||||
@@ -9,12 +9,12 @@ namespace Offline {
|
||||
LIN_ACC = 2,
|
||||
GYRO = 3,
|
||||
BARO = 5,
|
||||
COMPASS = 6, // also called "orientatioN"
|
||||
WIFI = 8,
|
||||
BEACON = 9,
|
||||
COMPASS = 15,
|
||||
GPS = 16,
|
||||
GROUND_TRUTH = 99,
|
||||
POS = 1001, // IPIN2016
|
||||
POS = 1001, // IPIN2016
|
||||
};
|
||||
|
||||
template <typename T> struct TS {
|
||||
|
||||
@@ -86,12 +86,14 @@ public:
|
||||
}
|
||||
|
||||
/** make the given AP (and its parameters) known to the model */
|
||||
void addAP(const MACAddress& accessPoint, const APEntry& params) {
|
||||
void addAP(const MACAddress& accessPoint, const APEntry& params, const bool assertSafe = true) {
|
||||
|
||||
// sanity check
|
||||
Assert::isBetween(params.waf, -99.0f, 0.0f, "WAF out of bounds [-99:0]");
|
||||
Assert::isBetween(params.txp, -50.0f, -30.0f, "TXP out of bounds [-50:-30]");
|
||||
Assert::isBetween(params.exp, 1.0f, 4.0f, "EXP out of bounds [1:4]");
|
||||
if (assertSafe) {
|
||||
Assert::isBetween(params.waf, -99.0f, 0.0f, "WAF out of bounds [-99:0]");
|
||||
Assert::isBetween(params.txp, -50.0f, -30.0f, "TXP out of bounds [-50:-30]");
|
||||
Assert::isBetween(params.exp, 1.0f, 4.0f, "EXP out of bounds [1:4]");
|
||||
}
|
||||
|
||||
Assert::equal(accessPoints.find(accessPoint), accessPoints.end(), "AccessPoint already present! VAP-Grouping issue?");
|
||||
|
||||
|
||||
@@ -32,6 +32,13 @@ namespace WiFiOptimizer {
|
||||
return res;
|
||||
}
|
||||
|
||||
/** get all [VAPGrouped, Averaged] fingerprints for the given mac */
|
||||
virtual const std::vector<RSSIatPosition>& getFingerprintsFor(const MACAddress& mac) {
|
||||
const auto& it = apMap.find(mac);
|
||||
if (it == apMap.end()) {throw Exception("mac not found: " + mac.asString());}
|
||||
return it->second;
|
||||
}
|
||||
|
||||
/** add a new fingerprint to the optimizer as data-source */
|
||||
virtual void addFingerprint(const WiFiFingerprint& fp) {
|
||||
|
||||
|
||||
Reference in New Issue
Block a user