added gps support
added compass support added ui elements for gps and compass added support for writing sensor data
This commit is contained in:
@@ -16,6 +16,7 @@
|
||||
#include <Indoor/floorplan/v2/FloorplanHelper.h>
|
||||
|
||||
#include <Indoor/sensors/radio/WiFiGridEstimator.h>
|
||||
#include <Indoor/sensors/radio/setup/WiFiOptimizerLogDistCeiling.h>
|
||||
|
||||
#include <Indoor/Assertions.h>
|
||||
|
||||
@@ -28,11 +29,13 @@
|
||||
#include "sensors/dummy/SensorFactoryDummy.h"
|
||||
#include "sensors/android/SensorFactoryAndroid.h"
|
||||
#include "sensors/offline/SensorFactoryOffline.h"
|
||||
#include "sensors/SensorWriter.h"
|
||||
|
||||
#include "tools/calibration/WiFiCalibrationDataModel.h"
|
||||
|
||||
#include "nav/NavController.h"
|
||||
|
||||
|
||||
Controller::Controller() {
|
||||
|
||||
// OpenGL setup
|
||||
@@ -51,13 +54,29 @@ Controller::Controller() {
|
||||
|
||||
//SensorFactory::set(new SensorFactoryOffline(Settings::Data::getOfflineDir() + "bergwerk/path3/nexus/vor/1454782562231.csv"));
|
||||
//SensorFactory::set(new SensorFactoryOffline(Settings::Data::getOfflineDir() + "/bergwerk/path4/nexus/rueck/1454776724285_rueck.csv"));
|
||||
SensorFactory::set(new SensorFactoryOffline(Settings::Data::getOfflineDir() + "/bergwerk/path4/nexus/vor/1454776525797.csv"));
|
||||
//SensorFactory::set(new SensorFactoryOffline(Settings::Data::getOfflineDir() + "/bergwerk/path4/nexus/vor/1454776525797.csv"));
|
||||
|
||||
// live data on the smartphone
|
||||
if (1 == 1) {
|
||||
|
||||
// use android's sensors
|
||||
SensorFactory::set(new SensorFactoryAndroid());
|
||||
|
||||
// write them to file??
|
||||
//const std::string file = Settings::Data::getRecordsDir() + "/" + std::to_string(Timestamp::fromUnixTime().ms()) + ".csv";
|
||||
//SensorWriter* writer = new SensorWriter();
|
||||
//writer->start(file);
|
||||
|
||||
// start the sensors
|
||||
SensorFactory::get().getAccelerometer().start();
|
||||
SensorFactory::get().getGyroscope().start();
|
||||
SensorFactory::get().getBarometer().start();
|
||||
SensorFactory::get().getWiFi().start();
|
||||
SensorFactory::get().getGPS().start();
|
||||
SensorFactory::get().getCompass().start();
|
||||
|
||||
}
|
||||
|
||||
// SensorFactory::set(new SensorFactoryAndroid());
|
||||
// SensorFactory::get().getAccelerometer().start();
|
||||
// SensorFactory::get().getGyroscope().start();
|
||||
// SensorFactory::get().getBarometer().start();
|
||||
// SensorFactory::get().getWiFi().start();
|
||||
|
||||
|
||||
// create the main window
|
||||
@@ -126,13 +145,13 @@ void buildGridOnce(Grid<MyGridNode>* grid, Floorplan::IndoorMap* map, const std:
|
||||
|
||||
WiFiCalibrationDataModel mdl(fpFile);
|
||||
Assert::isFalse(mdl.getFingerprints().empty(), "no fingerprints available!");
|
||||
WiFiOptimizer opt(map, Settings::WiFiModel::vg_calib);
|
||||
WiFiOptimizer::LogDistCeiling opt(map, Settings::WiFiModel::vg_calib);
|
||||
for (const WiFiFingerprint& fp : mdl.getFingerprints()) {
|
||||
opt.addFingerprint(fp);
|
||||
}
|
||||
const std::vector<WiFiOptimizer::APParamsMAC> res = opt.optimizeAll();
|
||||
const WiFiOptimizer::LogDistCeiling::APParamsList res = opt.optimizeAll(opt.NONE);
|
||||
WiFiGridEstimator::estimate(*grid, wifiModel, Settings::smartphoneAboveGround);
|
||||
for (const WiFiOptimizer::APParamsMAC& ap : res) {
|
||||
for (const WiFiOptimizer::LogDistCeiling::APParamsMAC& ap : res.get()) {
|
||||
const WiFiModelLogDistCeiling::APEntry entry(ap.params.getPos(), ap.params.txp, ap.params.exp, ap.params.waf);
|
||||
wifiModel.addAP(ap.mac, entry);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user