some fixes [multithreading,..]
needed interface changes [new options] logger for android wifi-ap-optimization new test-cases
This commit is contained in:
@@ -12,6 +12,7 @@
|
||||
#include "../radio/WiFiMeasurements.h"
|
||||
#include "../imu/AccelerometerData.h"
|
||||
#include "../imu/GyroscopeData.h"
|
||||
#include "../pressure/BarometerData.h"
|
||||
|
||||
template <typename SensorData> struct OfflineEntry {
|
||||
|
||||
@@ -41,6 +42,7 @@ public:
|
||||
virtual void onAccelerometer(const Timestamp ts, const AccelerometerData data) = 0;
|
||||
virtual void onGravity(const Timestamp ts, const AccelerometerData data) = 0;
|
||||
virtual void onWiFi(const Timestamp ts, const WiFiMeasurements data) = 0;
|
||||
virtual void onBarometer(const Timestamp ts, const BarometerData data) = 0;
|
||||
};
|
||||
|
||||
/** read recorded android sensor data files */
|
||||
@@ -56,6 +58,8 @@ private:
|
||||
std::vector<OfflineEntry<AccelerometerData>> accel;
|
||||
std::vector<OfflineEntry<AccelerometerData>> gravity;
|
||||
|
||||
std::vector<OfflineEntry<BarometerData>> barometer;
|
||||
|
||||
WalkedPath walkedPath;
|
||||
|
||||
const char* name = "OfflineData";
|
||||
@@ -82,6 +86,9 @@ public:
|
||||
/** get all gravity readings */
|
||||
const std::vector<OfflineEntry<AccelerometerData>>& getGravity() const {return gravity;}
|
||||
|
||||
/** get all barometer readings */
|
||||
const std::vector<OfflineEntry<BarometerData>>& getBarometer() const {return barometer;}
|
||||
|
||||
|
||||
/** get the walked path */
|
||||
const WalkedPath& getWalkedPath() const {return walkedPath;}
|
||||
@@ -171,8 +178,15 @@ private:
|
||||
break;
|
||||
}
|
||||
|
||||
case 5: {
|
||||
const BarometerData data = parseBarometer(sensorData);
|
||||
barometer.push_back(OfflineEntry<BarometerData>(ts, data));
|
||||
if (listener) {listener->onBarometer(ts, data);}
|
||||
break;
|
||||
}
|
||||
|
||||
case 8: {
|
||||
const WiFiMeasurements data = parseWiFi(sensorData);
|
||||
const WiFiMeasurements data = parseWiFi(ts, sensorData);
|
||||
wifi.push_back(OfflineEntry<WiFiMeasurements>(ts, data));
|
||||
if (listener) {listener->onWiFi(ts, data);}
|
||||
break;
|
||||
@@ -196,7 +210,7 @@ private:
|
||||
|
||||
|
||||
/** parse the given WiFiObservation string "MAC;freq;RSSI;MAC;freq;RSSI;...." */
|
||||
static inline WiFiMeasurements parseWiFi(std::string data) {
|
||||
static inline WiFiMeasurements parseWiFi(const Timestamp ts, std::string data) {
|
||||
|
||||
WiFiMeasurements obs;
|
||||
|
||||
@@ -219,7 +233,7 @@ private:
|
||||
Assert::isTrue(data[0] == ';', "unexpected character");
|
||||
data = data.substr(1);
|
||||
|
||||
const WiFiMeasurement e(mac, std::stof(rssi));
|
||||
const WiFiMeasurement e(mac, std::stof(rssi), ts);
|
||||
obs.entries.push_back(e);
|
||||
|
||||
}
|
||||
@@ -265,6 +279,16 @@ private:
|
||||
|
||||
}
|
||||
|
||||
/** parse the given Barometer entry */
|
||||
static inline BarometerData parseBarometer(const std::string& data) {
|
||||
|
||||
BarometerData baro;
|
||||
const int pos = data.find(';');
|
||||
baro.hPa = std::stof(data.substr(0, pos));
|
||||
return baro;
|
||||
|
||||
}
|
||||
|
||||
/** parse the given GroundTruth entry */
|
||||
static inline GroundTruthID parseGroundTruthTick(const std::string& data) {
|
||||
|
||||
|
||||
Reference in New Issue
Block a user