#include "StateVariables.hpp"

static bool forceExit = false;
bool forceRecovery = false;
uint16_t __attribute__((section(".backup"))) profileNum = 0;
tm __attribute__((section(".backup"))) missionStartTime{0};

//static uint16_t PLACE_IN_BACKUP_SRAM() profileNum;
//static RTClock::CPFTimestamp PLACE_IN_BACKUP_SRAM() missionStartTime;

static void StateVariables::incrProfileNum()
{
	profileNum++;
}

uint16_t StateVariables::getProfileNum()
{
	return profileNum;
}

void StateVariables::setProfileNum(uint16_t pNum)
{
	profileNum = pNum;
}

static tm StateVariables::getMissionStartTime()
{
	return missionStartTime;
}

static void StateVariables::setForceExit()
{
	forceExit = true;
}

static void StateVariables::clearForceExit()
{
	forceExit = false;
}

static bool StateVariables::getForceExit()
{
	return forceExit;
}

static void StateVariables::setForceRecovery()
{
	forceRecovery = true;
}

static void StateVariables::clearForceRecovery()
{
	forceRecovery = false;
}

static bool StateVariables::getForceRecovery()
{
	return forceRecovery;
}

void StateVariables::setMissionStartTime()
{
	char timeString[28];
	
	missionStartTime = RTClock::getDateTimeStruct();
	snprintf(timeString, 27, "%04d-%02d-%02dT%02d:%02d:%02d",
		missionStartTime.tm_year + 1900, missionStartTime.tm_mon,	missionStartTime.tm_mday,
		missionStartTime.tm_hour, missionStartTime.tm_min, missionStartTime.tm_sec);
	std::cout << "Mission start time = " << timeString << std::endl;
}
