added c++11 fixes

removed old components
disabled activity (for compiling reasons)
added wifi 2.4ghz hack
This commit is contained in:
k-a-z-u
2018-07-11 13:23:18 +02:00
parent b0712ec005
commit bb974d3871
18 changed files with 107 additions and 80 deletions

View File

@@ -81,7 +81,7 @@ Controller::Controller() {
// create the main window // create the main window
mainWindow = new MainWindow(); mainWindow = new MainWindow();
sl = new StepLoggerWrapperAndroid(scaler); //sl = new StepLoggerWrapperAndroid(scaler);
//sl = new StepLoggerWrapper(scaler, mainWindow); //sl = new StepLoggerWrapper(scaler, mainWindow);
@@ -253,7 +253,7 @@ void Controller::onLoadButton() {
getMapView3D()->setVisible(false); getMapView3D()->setVisible(false);
// attach ipin step logger // attach ipin step logger
nav->addListener(sl); //nav->addListener(sl);
} }

View File

@@ -2,9 +2,9 @@
#define CONTROLLER_H #define CONTROLLER_H
#include "misc/fixc11.h" #include "misc/fixc11.h"
#include "ipin/Scaler.h" //#include "ipin/Scaler.h"
#include "ipin/StepLoggerWrapper.h" //#include "ipin/StepLoggerWrapper.h"
#include "ipin/StepLoggerWrapperAndroid.h" //#include "ipin/StepLoggerWrapperAndroid.h"
class MainWindow; class MainWindow;
class MainMenu; class MainMenu;
@@ -42,11 +42,11 @@ public:
protected: protected:
// scaling for the UAH building // // scaling for the UAH building
IPINScaler scaler = IPINScaler(1869, 1869, 40.51312440, -3.34959080, -40.73112000, 0.07596002); // IPINScaler scaler = IPINScaler(1869, 1869, 40.51312440, -3.34959080, -40.73112000, 0.07596002);
//StepLoggerWrapper* sl = nullptr; // //StepLoggerWrapper* sl = nullptr;
StepLoggerWrapperAndroid* sl = nullptr; // StepLoggerWrapperAndroid* sl = nullptr;
private slots: private slots:

View File

@@ -11,6 +11,7 @@ import android.os.Debug;
import android.util.Log; import android.util.Log;
import java.util.List; import java.util.List;
import java.io.ByteArrayOutputStream; import java.io.ByteArrayOutputStream;
import java.lang.reflect.Method;
public class WiFi { public class WiFi {
@@ -51,7 +52,19 @@ public class WiFi {
// start the first scan // start the first scan
triggerOneScan(); triggerOneScan();
//this is a very nice hack. do not try this at home.
Method m = null;
try {
m = manager.getClass().getDeclaredMethod("setFrequencyBand", int.class, boolean.class);
m.setAccessible(true);
m.invoke(manager, 2, true);
m.invoke(manager, 2, true);
m.invoke(manager, 2, true);
Log.d("wifi", "HACK IS RUNNING, BIAAAATCH");
} catch (Exception e) {
Log.d("wifi", "HACK HAS FAILED >.<");
e.printStackTrace();
}
// if the scan result takes longer than X milliseconds, // if the scan result takes longer than X milliseconds,
// trigger another-scan to ensure nothing is stuck // trigger another-scan to ensure nothing is stuck

View File

@@ -167,20 +167,21 @@ public:
} }
double getStairProb(const K::Particle<MyState>& p, const ActivityButterPressure::Activity act) { double getStairProb(const K::Particle<MyState>& p, const Activity act) {
const float kappa = 0.75; const float kappa = 0.75;
const MyGridNode& gn = grid->getNodeFor(p.state.position); const MyGridNode& gn = grid->getNodeFor(p.state.position);
switch (act) { switch (act) {
case ActivityButterPressure::Activity::STAY: case Activity::STANDING:
case Activity::WALKING:
if (gn.getType() == GridNode::TYPE_FLOOR) {return kappa;} if (gn.getType() == GridNode::TYPE_FLOOR) {return kappa;}
if (gn.getType() == GridNode::TYPE_DOOR) {return kappa;} if (gn.getType() == GridNode::TYPE_DOOR) {return kappa;}
{return 1-kappa;} {return 1-kappa;}
case ActivityButterPressure::Activity::UP: case Activity::WALKING_UP:
case ActivityButterPressure::Activity::DOWN: case Activity::WALKING_DOWN:
if (gn.getType() == GridNode::TYPE_STAIR) {return kappa;} if (gn.getType() == GridNode::TYPE_STAIR) {return kappa;}
if (gn.getType() == GridNode::TYPE_ELEVATOR) {return kappa;} if (gn.getType() == GridNode::TYPE_ELEVATOR) {return kappa;}
{return 1-kappa;} {return 1-kappa;}

View File

@@ -45,8 +45,9 @@ class NavController :
public SensorListener<WiFiMeasurements>, public SensorListener<WiFiMeasurements>,
public SensorListener<GPSData>, public SensorListener<GPSData>,
public SensorListener<StepData>, public SensorListener<StepData>,
public SensorListener<TurnData>, public SensorListener<TurnData>
public SensorListener<ActivityData> { //public SensorListener<ActivityData>
{
private: private:
@@ -116,7 +117,7 @@ public:
SensorFactory::get().getWiFi().addListener(this); SensorFactory::get().getWiFi().addListener(this);
SensorFactory::get().getSteps().addListener(this); SensorFactory::get().getSteps().addListener(this);
SensorFactory::get().getTurns().addListener(this); SensorFactory::get().getTurns().addListener(this);
SensorFactory::get().getActivity().addListener(this); //SensorFactory::get().getActivity().addListener(this);
// hacky.. but we need to call this one from the main thread! // hacky.. but we need to call this one from the main thread!
//mainController->getMapView()->showParticles(pf->getParticles()); //mainController->getMapView()->showParticles(pf->getParticles());
@@ -211,14 +212,14 @@ public:
gotSensorData(ts); gotSensorData(ts);
} }
void onSensorData(Sensor<ActivityData>* sensor, const Timestamp ts, const ActivityData& data) override { // void onSensorData(Sensor<ActivityData>* sensor, const Timestamp ts, const ActivityData& data) override {
(void) sensor; // (void) sensor;
(void) ts; // (void) ts;
curCtrl.activity = data.curActivity; // curCtrl.activity = data.curActivity;
curObs.activity = data.curActivity; // curObs.activity = data.curActivity;
debugActivity(data.curActivity); // debugActivity(data.curActivity);
gotSensorData(ts); // gotSensorData(ts);
} // }
int cameraMode = 0; int cameraMode = 0;
void toggleCamera() { void toggleCamera() {
@@ -234,16 +235,16 @@ private:
} }
void debugActivity(const ActivityData& activity) { // void debugActivity(const ActivityData& activity) {
QString act; // QString act;
switch(activity.curActivity) { // switch(activity.curActivity) {
case ActivityButterPressure::Activity::STAY: act = "STAY"; break; // case ActivityButterPressure::Activity::STAY: act = "STAY"; break;
case ActivityButterPressure::Activity::DOWN: act = "DOWN"; break; // case ActivityButterPressure::Activity::DOWN: act = "DOWN"; break;
case ActivityButterPressure::Activity::UP: act = "UP"; break; // case ActivityButterPressure::Activity::UP: act = "UP"; break;
default: act = "???"; break; // default: act = "???"; break;
} // }
Assert::isTrue(QMetaObject::invokeMethod(mainController->getInfoWidget(), "showActivity", Qt::QueuedConnection, Q_ARG(const QString&, act)), "call failed"); // Assert::isTrue(QMetaObject::invokeMethod(mainController->getInfoWidget(), "showActivity", Qt::QueuedConnection, Q_ARG(const QString&, act)), "call failed");
} // }
/** particle-filter update loop */ /** particle-filter update loop */
void filterUpdateLoop() { void filterUpdateLoop() {

View File

@@ -54,7 +54,7 @@ struct MyObservation {
// TODO: switch to a general activity enum/detector for barometer + accelerometer + ...? // TODO: switch to a general activity enum/detector for barometer + accelerometer + ...?
/** detected activity */ /** detected activity */
ActivityButterPressure::Activity activity; Activity activity;
/** time of evaluation */ /** time of evaluation */
Timestamp currentTime; Timestamp currentTime;
@@ -72,7 +72,7 @@ struct MyControl {
// TODO: switch to a general activity enum/detector using barometer + accelerometer? // TODO: switch to a general activity enum/detector using barometer + accelerometer?
/** currently detected activity */ /** currently detected activity */
ActivityButterPressure::Activity activity; Activity activity;
/** reset the control-data after each transition */ /** reset the control-data after each transition */
void resetAfterTransition() { void resetAfterTransition() {

View File

@@ -30,7 +30,7 @@
#include "StepSensor.h" #include "StepSensor.h"
#include "TurnSensor.h" #include "TurnSensor.h"
#include "ActivitySensor.h" //#include "ActivitySensor.h"
class SensorFactory { class SensorFactory {
@@ -90,11 +90,11 @@ public:
return turns; return turns;
} }
/** get the Activity sensor */ // /** get the Activity sensor */
ActivitySensor& getActivity() { // ActivitySensor& getActivity() {
static ActivitySensor activity(getBarometer(), getAccelerometer()); // static ActivitySensor activity(getBarometer(), getAccelerometer());
return activity; // return activity;
} // }
}; };

View File

@@ -7,7 +7,7 @@
#include "StepSensor.h" #include "StepSensor.h"
#include "TurnSensor.h" #include "TurnSensor.h"
#include "WiFiSensor.h" #include "WiFiSensor.h"
#include "ActivitySensor.h" //#include "ActivitySensor.h"
#include "GPSSensor.h" #include "GPSSensor.h"
#include "CompassSensor.h" #include "CompassSensor.h"
#include "SensorFactory.h" #include "SensorFactory.h"

View File

@@ -18,6 +18,7 @@ class TurnSensor :
private: private:
PoseDetection pose;
TurnDetection turn; TurnDetection turn;
TurnData data; TurnData data;
@@ -27,7 +28,7 @@ private:
public: public:
/** ctor */ /** ctor */
TurnSensor(AccelerometerSensor& acc, GyroscopeSensor& gyro) : acc(acc), gyro(gyro) { TurnSensor(AccelerometerSensor& acc, GyroscopeSensor& gyro) : acc(acc), gyro(gyro), turn(&pose) {
acc.addListener(this); acc.addListener(this);
gyro.addListener(this); gyro.addListener(this);
} }
@@ -46,7 +47,8 @@ public:
virtual void onSensorData(Sensor<AccelerometerData>* sensor, const Timestamp ts, const AccelerometerData& data) override { virtual void onSensorData(Sensor<AccelerometerData>* sensor, const Timestamp ts, const AccelerometerData& data) override {
(void) sensor; (void) sensor;
turn.addAccelerometer(ts, data); //turn.addAccelerometer(ts, data);
pose.addAccelerometer(ts, data);
} }
virtual void onSensorData(Sensor<GyroscopeData>* sensor, const Timestamp ts, const GyroscopeData& data) override { virtual void onSensorData(Sensor<GyroscopeData>* sensor, const Timestamp ts, const GyroscopeData& data) override {

View File

@@ -60,7 +60,12 @@ protected:
AccelerometerSensor::informListeners(ts, data); AccelerometerSensor::informListeners(ts, data);
} }
virtual void onGravity(const Timestamp ts, const AccelerometerData data) override { virtual void onGravity(const Timestamp ts, const GravityData data) override {
(void) ts;
(void) data;
}
virtual void onMagnetometer(const Timestamp ts, const MagnetometerData data) override {
(void) ts; (void) ts;
(void) data; (void) data;
} }

View File

@@ -27,7 +27,7 @@ MainWindow::MainWindow(QWidget *parent) : QWidget(parent) {
// ensure we are fullscreen // ensure we are fullscreen
showMaximized(); showMaximized();
sleep(1); // sleep(1);
emit resizeEvent(nullptr); emit resizeEvent(nullptr);
// important! must be called AFTER window is visible // important! must be called AFTER window is visible

View File

@@ -1,3 +1,4 @@
#include "../misc/fixc11.h"
#include "PlotGPS.h" #include "PlotGPS.h"
#include <QPainter> #include <QPainter>

View File

@@ -3,6 +3,7 @@
#include <QWidget> #include <QWidget>
#include "../misc/fixc11.h"
#include "../sensors/GPSSensor.h" #include "../sensors/GPSSensor.h"
#include <Indoor/data/Timestamp.h> #include <Indoor/data/Timestamp.h>

View File

@@ -1,3 +1,4 @@
#include "../misc/fixc11.h"
#include "PlotTurns.h" #include "PlotTurns.h"
#include <QPainter> #include <QPainter>

View File

@@ -2,6 +2,7 @@
#define PLOTTURNS_H #define PLOTTURNS_H
#include <QWidget> #include <QWidget>
#include "../misc/fixc11.h"
#include "../sensors/TurnSensor.h" #include "../sensors/TurnSensor.h"
#include "../sensors/CompassSensor.h" #include "../sensors/CompassSensor.h"

View File

@@ -156,25 +156,25 @@ public:
} }
void add(const Timestamp ts, const ActivityData& data) { // void add(const Timestamp ts, const ActivityData& data) {
static int skip = 0; // static int skip = 0;
if ((++skip % 8) != 0) {return;} // if ((++skip % 8) != 0) {return;}
float offset = 0; // float offset = 0;
switch(data.curActivity) { // switch(data.curActivity) {
case ActivityButterPressure::Activity::DOWN: offset = -0.5; break; // case ActivityButterPressure::Activity::DOWN: offset = -0.5; break;
case ActivityButterPressure::Activity::UP: offset = +0.5; break; // case ActivityButterPressure::Activity::UP: offset = +0.5; break;
case ActivityButterPressure::Activity::STAY: offset = +0.1; break; // case ActivityButterPressure::Activity::STAY: offset = +0.1; break;
} // }
addLineNode(ts, line[0].getData().front().val + offset, 1); // addLineNode(ts, line[0].getData().front().val + offset, 1);
if (needsRefresh(ts)) { // if (needsRefresh(ts)) {
limit(); // limit();
refresh(ts); // refresh(ts);
} // }
} // }
void limit() { void limit() {
@@ -224,8 +224,8 @@ SensorDataWidget::SensorDataWidget(QWidget* parent) : QWidget(parent) {
SensorFactory::get().getSteps().addListener(this); SensorFactory::get().getSteps().addListener(this);
SensorFactory::get().getTurns().addListener(this); SensorFactory::get().getTurns().addListener(this);
SensorFactory::get().getWiFi().addListener(this); SensorFactory::get().getWiFi().addListener(this);
SensorFactory::get().getActivity().addListener(this); // SensorFactory::get().getActivity().addListener(this);
SensorFactory::get().getCompass().addListener(this); // SensorFactory::get().getCompass().addListener(this);
SensorFactory::get().getGPS().addListener(this); SensorFactory::get().getGPS().addListener(this);
} }
@@ -253,20 +253,20 @@ void SensorDataWidget::onSensorData(Sensor<BarometerData>* sensor, const Timesta
((PlotBaro*)plotBaro)->add(ts, data); ((PlotBaro*)plotBaro)->add(ts, data);
} }
void SensorDataWidget::onSensorData(Sensor<ActivityData>* sensor, const Timestamp ts, const ActivityData& data) { //void SensorDataWidget::onSensorData(Sensor<ActivityData>* sensor, const Timestamp ts, const ActivityData& data) {
(void) sensor; // (void) sensor;
((PlotBaro*)plotBaro)->add(ts, data); // ((PlotBaro*)plotBaro)->add(ts, data);
} //}
void SensorDataWidget::onSensorData(Sensor<TurnData>* sensor, const Timestamp ts, const TurnData& data) { void SensorDataWidget::onSensorData(Sensor<TurnData>* sensor, const Timestamp ts, const TurnData& data) {
(void) sensor; (void) sensor;
((PlotTurns*)plotTurn)->add(ts, data); ((PlotTurns*)plotTurn)->add(ts, data);
} }
void SensorDataWidget::onSensorData(Sensor<CompassData>* sensor, const Timestamp ts, const CompassData& data) { //void SensorDataWidget::onSensorData(Sensor<CompassData>* sensor, const Timestamp ts, const CompassData& data) {
(void) sensor; // (void) sensor;
((PlotTurns*)plotTurn)->add(ts, data); // ((PlotTurns*)plotTurn)->add(ts, data);
} //}
void SensorDataWidget::onSensorData(Sensor<GPSData>* sensor, const Timestamp ts, const GPSData& data) { void SensorDataWidget::onSensorData(Sensor<GPSData>* sensor, const Timestamp ts, const GPSData& data) {
(void) sensor; (void) sensor;

View File

@@ -12,7 +12,7 @@
#include "../sensors/StepSensor.h" #include "../sensors/StepSensor.h"
#include "../sensors/TurnSensor.h" #include "../sensors/TurnSensor.h"
#include "../sensors/WiFiSensor.h" #include "../sensors/WiFiSensor.h"
#include "../sensors/ActivitySensor.h" //#include "../sensors/ActivitySensor.h"
#include "../sensors/GPSSensor.h" #include "../sensors/GPSSensor.h"
#include "../sensors/CompassSensor.h" #include "../sensors/CompassSensor.h"
@@ -25,12 +25,13 @@ class SensorDataWidget :
public SensorListener<AccelerometerData>, public SensorListener<AccelerometerData>,
public SensorListener<GyroscopeData>, public SensorListener<GyroscopeData>,
public SensorListener<BarometerData>, public SensorListener<BarometerData>,
public SensorListener<ActivityData>, //public SensorListener<ActivityData>,
public SensorListener<StepData>, public SensorListener<StepData>,
public SensorListener<TurnData>, public SensorListener<TurnData>,
public SensorListener<WiFiMeasurements>, public SensorListener<WiFiMeasurements>,
public SensorListener<GPSData>, public SensorListener<GPSData>
public SensorListener<CompassData> { //public SensorListener<CompassData>
{
Q_OBJECT Q_OBJECT
@@ -46,9 +47,9 @@ public:
void onSensorData(Sensor<StepData>* sensor, const Timestamp ts, const StepData& data) override; void onSensorData(Sensor<StepData>* sensor, const Timestamp ts, const StepData& data) override;
void onSensorData(Sensor<TurnData>* sensor, const Timestamp ts, const TurnData& data) override; void onSensorData(Sensor<TurnData>* sensor, const Timestamp ts, const TurnData& data) override;
void onSensorData(Sensor<WiFiMeasurements>* sensor, const Timestamp ts, const WiFiMeasurements& data) override; void onSensorData(Sensor<WiFiMeasurements>* sensor, const Timestamp ts, const WiFiMeasurements& data) override;
void onSensorData(Sensor<ActivityData>* sensor, const Timestamp ts, const ActivityData& data) override; //void onSensorData(Sensor<ActivityData>* sensor, const Timestamp ts, const ActivityData& data) override;
void onSensorData(Sensor<GPSData>* sensor, const Timestamp ts, const GPSData& data) override; void onSensorData(Sensor<GPSData>* sensor, const Timestamp ts, const GPSData& data) override;
void onSensorData(Sensor<CompassData>* sensor, const Timestamp ts, const CompassData& data) override; //void onSensorData(Sensor<CompassData>* sensor, const Timestamp ts, const CompassData& data) override;
private: private:

View File

@@ -5,7 +5,7 @@ QT += qml opengl svg
# android? # android?
# CONFIG+=ANDROID DEFINES+=ANDROID CONFIG+=ANDROID DEFINES+=ANDROID
ANDROID { ANDROID {
QT += androidextras QT += androidextras
QT += sensors QT += sensors