added support for pillars

some new helper methods/classes
This commit is contained in:
2018-05-22 11:45:35 +02:00
parent a22290415e
commit 9e6d9f4ce7
13 changed files with 185 additions and 9 deletions

View File

@@ -12,6 +12,8 @@ class WiFiModelFactory {
private:
static constexpr const char* name = "WifiModelFac";
Floorplan::IndoorMap* map;
public:

View File

@@ -7,6 +7,7 @@
#include "WiFiModelPerFloor.h"
#include "WiFiModelPerBBox.h"
WiFiModel* WiFiModelFactory::loadXML(const std::string& file) {
XMLDoc doc;
@@ -25,10 +26,10 @@ WiFiModel* WiFiModelFactory::readFromXML(XMLDoc* doc, XMLElem* src) {
WiFiModel* mdl = nullptr;
// create an instance for the model
if (type == "WiFiModelLogDist") {mdl = new WiFiModelLogDist();}
else if (type == "WiFiModelLogDistCeiling") {mdl = new WiFiModelLogDistCeiling(map);}
else if (type == "WiFiModelPerFloor") {mdl = new WiFiModelPerFloor(map);}
else if (type == "WiFiModelPerBBox") {mdl = new WiFiModelPerBBox(map);}
if (type == "WiFiModelLogDist") {Log::add(name, "loading WiFiModelLogDist"); mdl = new WiFiModelLogDist();}
else if (type == "WiFiModelLogDistCeiling") {Log::add(name, "loading WiFiModelLogDistCeiling"); mdl = new WiFiModelLogDistCeiling(map);}
else if (type == "WiFiModelPerFloor") {Log::add(name, "loading WiFiModelPerFloor"); mdl = new WiFiModelPerFloor(map);}
else if (type == "WiFiModelPerBBox") {Log::add(name, "loading WiFiModelPerBBox"); mdl = new WiFiModelPerBBox(map);}
else {throw Exception("invalid model type given: " + type);}
// load the model from XML

View File

@@ -18,6 +18,8 @@
*/
class WiFiModelLogDistCeiling : public WiFiModel {
static constexpr const char* name = "WifiModelLDC";
public:
/** parameters describing one AP to the model */
@@ -224,6 +226,8 @@ public:
ceilings.addCeiling(atHeight_m);
}
Log::add(name, "loaded " + std::to_string(accessPoints.size()) + " APs");
}
};

View File

@@ -14,6 +14,8 @@
*/
class WiFiModelPerFloor : public WiFiModel {
static constexpr const char* name = "WiFiModelFlo";
public:
struct ModelForFloor {
@@ -173,6 +175,8 @@ public:
}
Log::add(name, "loaded " + std::to_string(models.size()) + " floor models");
}
void writeToXML(XMLDoc* doc, XMLElem* dst) override {