AIM
 All Classes Functions Variables Typedefs Enumerations
CoachingEngine::JetLagCoach Class Reference

#include <JetLagCoach.h>

Inheritance diagram for CoachingEngine::JetLagCoach:
CoachingEngine::Coach AIM

Public Member Functions

 JetLagCoach (std::string name="jet_lag_coach")
 
virtual void setGoal (InitializationType type, const AIMValue &init, bool dynamic=true)
 
virtual const std::map
< std::string, AIMValue > & 
getProperties ()
 
virtual void setProperties (const std::map< std::string, AIMValue > &properties)
 
virtual std::vector
< TaskDescription
getFutureTasks (double start, double end)
 
virtual AIMValue setProperty (const std::string &key, AIMValue value)
 
- Public Member Functions inherited from CoachingEngine::Coach
 Coach (const Coach &other)
 
Coachoperator= (const Coach &rhs)
 
void addData (const AIMData &data)
 
void doTick ()
 
std::vector< AIMValuegetRequirements () const
 
bool requirementsAreUpdated (bool reset) const
 
virtual AIMValue getGoal () const
 
virtual std::vector
< TaskDescription
getCurrentTasks () const
 
virtual Status getStatus () const
 
virtual Type getType ()
 
virtual std::map< std::string,
AIMValue
getMemberDataAsProperties () const
 
virtual void pause (double time)
 
virtual void resume (double time)
 
virtual TaskDescription setTaskValueManually (std::string taskType, double taskStartDate, const AIMValue &data)
 
- Public Member Functions inherited from AIM
 AIM (std::string name="")
 
 AIM (const AIM &other)
 
AIMoperator= (const AIM &rhs)
 
virtual void addDataSubscriber (const std::string &key, AIM *subscriber)
 
virtual void removeDataSubscriber (const std::string &key)
 
virtual AIMValue getProperty (std::string key) const
 
virtual void sendData ()
 
virtual std::string exportProperties ()
 
virtual std::vector< std::pair
< std::string, AIMValue > > 
getOutputData (bool clear_output=false)
 
virtual std::vector< std::pair
< std::string, AIMValue > > 
getInputData (bool clear_input=false)
 
virtual AIMgetDataSubscriber (std::string subscriber)
 
virtual std::string getName () const
 

Static Public Attributes

static const std::string PROP_FLIGHT_PLANS = "flight_plans"
 
static const std::string PROP_CURRENT_TIMEZONE = "current_timezone"
 
static const std::string PROP_ORIGINAL_TIMEZONE = "original_timezone"
 
static const std::string PROP_ARRIVAL_TIME = "arrival_time"
 
static const std::string PROP_PROGRAM_PHASE = "program_phase"
 
static const std::string PROP_BED_TIME = "bed_time"
 
static const std::string PROP_NORMAL_BED_TIME = "normal_bed_time"
 
static const std::string PROP_WAKEUP_TIME = "wakeup_time"
 
static const std::string PROP_NORMAL_WAKEUP_TIME = "normal_wakeup_time"
 
static const std::string PROP_HOUR_DIFFERENCE = "hour_difference"
 
static const std::string PROP_PLANNED_TASKS = "planned_tasks"
 
static const std::string PROP_STAYING_DAYS = "staying_days"
 
static const std::string PROP_PROGRAM_FINISHED_DATE = "program_finished_date"
 
static const std::string PROP_SET_NEW_TIME_ZONE = "set_new_time_Zone"
 
static const std::string FIELD_FLIGHT_ID = "flight_id"
 
static const std::string FIELD_FLIGHT_DATE = "flight_date"
 
static const std::string FIELD_FLIGHT_DEPARTURE_TZ = "flight_departure_tz"
 
static const std::string FIELD_FLIGHT_ARRIVAL_TZ = "flight_arrival_tz"
 
static const std::string FIELD_FLIGHT_DEPARTURE_TIME = "flight_departure_time"
 
static const std::string FIELD_FLIGHT_ARRIVAL_TIME = "flight_arrival_time"
 
static const std::string FIELD_FLIGHT_DEPARTURE_TZ_OFFSET = "flight_departure_tz_offset"
 
static const std::string FIELD_FLIGHT_ARRIVAL_TZ_OFFSET = "flight_arrival_tz_offset"
 
- Static Public Attributes inherited from CoachingEngine::Coach
static const std::string PROP_COMPLETED_TASKS = "completed_tasks"
 
static const std::string PROP_ACTIVE_TASKS = "active_tasks"
 
static const std::string PROP_STATUS = "status"
 
static const std::string PROP_GOAL = "goal"
 
static const std::string PROP_BASELINE = "baseline"
 
static const std::string PROP_DYNAMIC_COACH = "dynamic_coach"
 
static const std::string PROP_GOAL_TYPE = "goal_type"
 
static const std::string PROP_START_DATE = "start_date"
 
static const std::string PROP_END_DATE = "end_date"
 
static const std::string PROP_TOTAL_DAYS = "total_days"
 
static const std::string PROP_GAIN = "gain"
 
static const std::string PROP_CURRENT_TIME = "clock"
 
static const std::string PROP_START_PAUSE = "start_pause"
 
static const std::string OUTPUT_FIELD_COACH_TYPE = "coach_type"
 
static const std::string PROP_PAUSED_SECONDS = "paused_seconds"
 
- Static Public Attributes inherited from AIM
static const std::string VERSION = AIM_VERSION
 

Protected Types

enum  JetlagProgramPhase {
  NONE, PRE_DEPARTURE, TRAVEL_DAY_PRE_DEPARTURE, DURING_FLIGHT,
  TRAVEL_DAY_AFTER_ARRIVAL, AFTER_TRAVEL_DAY
}
 
- Protected Types inherited from CoachingEngine::Coach
typedef std::map< std::string,
std::unordered_set< Task * > > 
SensorRoutes
 

Protected Member Functions

virtual void processDateValue (const std::string &sensor, const AIMValue &dateValue)
 
virtual bool handleNewFlightPlan (AIMValue flightPlan)
 
virtual bool handleNewTimeZone (AIMValue timeZone, std::map< std::string, AIMValue > &stateProperties)
 
virtual std::vector< JetLagTask * > getPhaseTasks (JetlagProgramPhase phase, std::map< std::string, AIMValue > &stateProperties)
 
virtual void startPlannedTasks ()
 
virtual std::vector< JetLagTask * > getPreDepartureTasks (std::map< std::string, AIMValue > &stateProperties, bool travelDay)
 
virtual std::vector< JetLagTask * > getDuringFlightTasks (std::map< std::string, AIMValue > &stateProperties)
 
virtual std::vector< JetLagTask * > getTravelDayAfterArrivalTasks (std::map< std::string, AIMValue > &stateProperties)
 
virtual std::vector< JetLagTask * > getAfterTravelDayTasks (std::map< std::string, AIMValue > &stateProperties)
 
virtual std::vector< JetLagTask * > getBiorhythmTasks (double coreBodyLowDate, double adjustSec)
 
virtual void createNewPlan ()
 
virtual double getNextToBedDate (double time, double bed_time, int tz_offset=-1)
 
virtual double getNextOutBedDate (double time, double out_bed_time, double to_bed_time=0, int tz_offset=-1)
 
virtual double addHoursToBedTime (double bed_time, double hours)
 
virtual double getStartOfDay (double time, int tz_offset=-1)
 
virtual JetLagTaskcreatJetLagTask (Task::Type taskType, double taskStartTime, double taskEndTime, double triggerTime=0.0/0.0, double targetStartTime=0.0/0.0, double targetEndTime=0.0/0.0)
 
virtual JetlagProgramPhase getProgramPhase (double time, std::map< std::string, AIMValue > &stateProperties)
 
- Protected Member Functions inherited from CoachingEngine::Coach
 Coach (Type coachType, std::string name="coach")
 
virtual void addActiveTask (Task &task)
 
virtual void removeActiveTask (Task *task)
 
virtual double calculateTargetValue (int week, double goalValue, double lastValue, double speed=(2.0/3.0))
 
virtual int getWeek (double date)
 
virtual double calculateGoal (std::string taskType, double currentValue, int weeksLeft)
 
virtual void decreaseGain (std::string taskType)
 
virtual void increaseGain (std::string taskType)
 
virtual void handleCompletedTask (Task *task)
 
virtual bool checkAndHandleNewWeek ()
 
virtual double calculateAverage (std::string taskType, double startDate, double endDate, int min_values=1, int nr_values=-1)
 
virtual void createNewTask (std::string taskType)
 
virtual std::pair< double, double > calculateTaskPeriod (double currentTime, std::string taskType="")
 
virtual void removeRoutesForTask (Task *task)
 
virtual TaskgetTask (TaskDescription::Type type)
 
- Protected Member Functions inherited from AIM
void setDataSubscribers (const std::map< std::string, AIM * > &subscribers)
 
void setInputDataQueue (const InputDataQueue &inputDataQueue)
 
void setOutputDataQueue (const AIMDataQueue &outputDataQueue)
 

Protected Attributes

JetlagProgramPhase programPhase
 
- Protected Attributes inherited from CoachingEngine::Coach
const Type type
 
Status status
 
std::vector< Task * > activeTasks
 
std::vector< Task * > completedTasks
 
SensorRoutes routes
 
AIMValue goal
 
AIMValue baseline
 
Clock clock
 
bool dynamicCoach
 
InitializationType goalType
 
double end_date
 
double start_date
 
int total_days
 
AIMValue gain
 
- Protected Attributes inherited from AIM
std::string name
 
std::vector< AIMValuerequirements
 
bool requirementsUpdated
 
std::map< std::string, AIM * > dataSubscribers
 
std::map< std::string, AIMValueproperties
 
InputDataQueue inputDataQueue
 
AIMDataQueue outputDataQueue
 

Additional Inherited Members

- Public Types inherited from CoachingEngine::Coach
enum  Type {
  PHYSICAL_ACTIVITY, MENTAL_RESILIENCE, SLEEP_DURATION, JETLAG,
  SHIFTWORK, CALIBRATION, NONE, BIORHYTHM
}
 
enum  InitializationType { MANUAL_GOAL, POPULATION_GOAL, PERSONAL_GOAL }
 
enum  Status { UNINITIALIZED, GOAL_INITIALIZED, READY, PAUSED }
 
- Public Types inherited from AIM
typedef std::pair< std::string,
AIMValue
AIMData
 
typedef std::queue< AIMDataAIMDataQueue
 
typedef std::queue< AIMValueAIMValueQueue
 
typedef std::map< std::string,
AIMValueQueue
InputDataQueue
 

Detailed Description

Implementation of the jet lag coach. This coach coaches a user before, during and after a flight

Member Function Documentation

std::vector< TaskDescription > CoachingEngine::JetLagCoach::getFutureTasks ( double  start,
double  end 
)
virtual

Return planned tasks for the specified time range.

Parameters
startStart date as Unix timestmap for the range to get planned tasks for,
endEnd date as Unix timestamp for the range to get planned tasks for.
Returns
A list of the tasks planned for the specified period.

Reimplemented from CoachingEngine::Coach.

double CoachingEngine::JetLagCoach::getNextOutBedDate ( double  time,
double  out_bed_time,
double  to_bed_time = 0,
int  tz_offset = -1 
)
protectedvirtual

Returns the epoch time in seconds for the next out bed

It will provide a value higher then the to_bed_date

Parameters
timeThe current time to use
out_bed_timeThe out bed time in hours
to_bed_timeThe to bed time in hours
tz_offsetThe time zone offset from UTC in seconds, if not provided or -1 then the time zone stored in PROP_CURRENT_TIMEZONE, PROP_ORIGINAL_TIMEZONE or local time zone is used in that order
Returns
The next out bed epoch time.
double CoachingEngine::JetLagCoach::getNextToBedDate ( double  time,
double  bed_time,
int  tz_offset = -1 
)
protectedvirtual

Returns the epoch time in seconds for the next to bed or out bed time

Parameters
timeThe current time to use
bed_timeThe bed time in hours
tz_offsetThe time zone offset from UTC in seconds, if not provided or -1 then the time zone stored in PROP_CURRENT_TIMEZONE, PROP_ORIGINAL_TIMEZONE or local time zone is used in that order
Returns
The next to bed epoch time.
JetLagCoach::JetlagProgramPhase CoachingEngine::JetLagCoach::getProgramPhase ( double  time,
std::map< std::string, AIMValue > &  stateProperties 
)
protectedvirtual

Return the phase of the program based on the time

Parameters
timeThe time to calculate the program phase for
statePropertiesThe properties in this current state of the program
Returns
The program phase
const std::map< std::string, AIMValue > & CoachingEngine::JetLagCoach::getProperties ( )
virtual

get the properties of the coach

Reimplemented from CoachingEngine::Coach.

double CoachingEngine::JetLagCoach::getStartOfDay ( double  time,
int  tz_offset = -1 
)
protectedvirtual

Get the start of day for a current time and time zone

Parameters
timeThe current time to use
tz_offsetThe time zone offset in seconds, if not provided or -1 then the time zone stored in PROP_CURRENT_TIMEZONE, PROP_ORIGINAL_TIMEZONE or local time zone is used in that order
Returns
The start of the day 0:00 in epoch time for the specified time zone
void CoachingEngine::JetLagCoach::processDateValue ( const std::string &  sensor,
const AIMValue dateValue 
)
protectedvirtual

Called with the sensor and a date/value tuple.

Reimplemented from CoachingEngine::Coach.

void CoachingEngine::JetLagCoach::setGoal ( InitializationType  type,
const AIMValue init,
bool  dynamic = true 
)
virtual

Set the goal for the coach.

A coach can be initialized with a specific type. With a corresponding init value.

MANUAL_GOAL: init = {{"goal",{"Task.TYPE", "value"}}}

PERSONAL_GOAL: init = {{"goal",{"Task.TYPE", "value"}}, {"baseline",{"Task.TYPE", "value"}}, {"days",84}}

POPULATION_GOAL: init = {{"goal",{"Task.TYPE", "value"}}, {"baseline",{"Task.TYPE", "value"}}, {"days",84}}

Parameters
typeThe InitializationType of the coach
initThe AIMValue map with initialization data
dynamicUpdate the goal based on the progress

Reimplemented from CoachingEngine::Coach.

void CoachingEngine::JetLagCoach::setProperties ( const std::map< std::string, AIMValue > &  properties)
virtual

set the properties of the coach

Reimplemented from CoachingEngine::Coach.

AIMValue CoachingEngine::JetLagCoach::setProperty ( const std::string &  key,
AIMValue  value 
)
virtual

Set property

This method sets the value of a property. An AIMValue response value is returned and it can have the type EMPTY if no response data is present.

Parameters
stringkey The key of the property
AIMValuevalue The value of the property
Returns
AIMValue An optional response value.

Reimplemented from AIM.

Member Data Documentation

const string CoachingEngine::JetLagCoach::PROP_ARRIVAL_TIME = "arrival_time"
static

Time of arrival in epoch seconds

const string CoachingEngine::JetLagCoach::PROP_BED_TIME = "bed_time"
static

Current bed time in hours

const string CoachingEngine::JetLagCoach::PROP_HOUR_DIFFERENCE = "hour_difference"
static

Hour difference in hours

const string CoachingEngine::JetLagCoach::PROP_NORMAL_BED_TIME = "normal_bed_time"
static

Normal bed time in hours

const string CoachingEngine::JetLagCoach::PROP_NORMAL_WAKEUP_TIME = "normal_wakeup_time"
static

Normal wake up time in hours

const string CoachingEngine::JetLagCoach::PROP_SET_NEW_TIME_ZONE = "set_new_time_Zone"
static

Property for setting a new time zone

const string CoachingEngine::JetLagCoach::PROP_WAKEUP_TIME = "wakeup_time"
static

Current wake up time in hours


The documentation for this class was generated from the following files: