#ifndef STATE_H
#define STATE_H

#include <Indoor/sensors/radio/WiFiMeasurements.h>
#include <Indoor/sensors/gps/GPSData.h>
#include <Indoor/sensors/activity/Activity.h>

/** observed sensor data */
struct MyObservation {

	/** wifi measurements */
	WiFiMeasurements wifi;

	/** gps measurements */
	GPSData gps;

	// TODO: switch to a general activity enum/detector for barometer + accelerometer + ...?
	/** detected activity */
	Activity activity;

	/** time of evaluation */
	Timestamp currentTime;

};

/** (observed) control data */
struct MyControl {

	/** turn angle (in radians) since the last transition */
	float turnSinceLastTransition_rad = 0;

	/** number of steps since the last transition */
	int numStepsSinceLastTransition = 0;

	// TODO: switch to a general activity enum/detector using barometer + accelerometer?
	/** currently detected activity */
	Activity activity;

	/** reset the control-data after each transition */
	void resetAfterTransition() {
		turnSinceLastTransition_rad = 0;
		numStepsSinceLastTransition = 0;
	}

};

#endif // STATE_H
