|
AIM
|
#include <ShiftWorkCoach.h>
Public Types | |
| enum | SHIFT { FREE, MORNING, DAY, EVENING, NIGHT } |
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< AIMData > | AIMDataQueue |
| typedef std::queue< AIMValue > | AIMValueQueue |
| typedef std::map< std::string, AIMValueQueue > | InputDataQueue |
Public Member Functions | |
| ShiftWorkCoach (std::string name="shift_work_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) |
Public Member Functions inherited from CoachingEngine::Coach | |
| Coach (const Coach &other) | |
| Coach & | operator= (const Coach &rhs) |
| void | addData (const AIMData &data) |
| void | doTick () |
| std::vector< AIMValue > | getRequirements () 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) | |
| AIM & | operator= (const AIM &rhs) |
| virtual void | addDataSubscriber (const std::string &key, AIM *subscriber) |
| virtual void | removeDataSubscriber (const std::string &key) |
| virtual AIMValue | setProperty (const std::string &key, AIMValue value) |
| 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 AIM * | getDataSubscriber (std::string subscriber) |
| virtual std::string | getName () const |
Static Public Attributes | |
| 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_PLANNED_TASKS = "planned_tasks" |
| static const std::string | PROP_PROGRAM_FINISHED_DATE = "program_finished_date" |
| static const std::string | PROP_SCHEDULE = "schedule" |
| static const std::string | PROP_WORK_START_DATE = "work_start_date" |
| static const std::string | PROP_WORK_END_DATE = "work_end_date" |
| static const std::string | PROP_CORE_BODY_LOW = "core_body_low" |
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 Member Functions | |
| virtual void | processDateValue (const std::string &sensor, const AIMValue &dateValue) |
| virtual void | startPlannedTasks () |
|
virtual std::vector < ShiftWorkTask * > | getMorningShiftTasks (double start_date, double end_date, std::map< std::string, AIMValue > &stateProperties) |
|
virtual std::vector < ShiftWorkTask * > | getDayShiftTasks (double start_date, double end_date, std::map< std::string, AIMValue > &stateProperties) |
|
virtual std::vector < ShiftWorkTask * > | getEveningShiftTasks (double start_date, double end_date, std::map< std::string, AIMValue > &stateProperties) |
|
virtual std::vector < ShiftWorkTask * > | getNightShiftTasks (double start_date, double end_date, std::map< std::string, AIMValue > &stateProperties) |
|
virtual std::vector < ShiftWorkTask * > | getFreeShiftTasks (double start_date, double end_date, std::map< std::string, AIMValue > &stateProperties) |
|
virtual std::vector < ShiftWorkTask * > | getShiftTasks (double start_date, double end_date, std::map< std::string, AIMValue > &stateProperties) |
|
virtual std::vector < ShiftWorkTask * > | getBiorhythmTasks (double coreBodyLowDate) |
| virtual void | createNewPlan () |
| virtual double | getNextToBedDate (double time, double bed_time) |
| virtual double | getNextOutBedDate (double time, double out_bed_time, double to_bed_date=0) |
| virtual double | addHoursToBedTime (double bed_time, double hours) |
| virtual double | getStartOfDay (double time) |
| virtual void | setBedTimes (double bedTime, double wakeUpTime, std::map< std::string, AIMValue > &stateProperties) |
| virtual ShiftWorkTask * | creatShiftWorkTask (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) |
| SHIFT | getShift (double start_date, double end_date) |
| void | getBedTimes (double start_date, double end_date, double &bedTime, double &wakeUpTime) |
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 Task * | getTask (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) |
Additional Inherited Members | |
Protected Types inherited from CoachingEngine::Coach | |
|
typedef std::map< std::string, std::unordered_set< Task * > > | SensorRoutes |
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< AIMValue > | requirements |
| bool | requirementsUpdated |
| std::map< std::string, AIM * > | dataSubscribers |
| std::map< std::string, AIMValue > | properties |
| InputDataQueue | inputDataQueue |
| AIMDataQueue | outputDataQueue |
Implementation of the shift work coach. This coach coaches a user based on it's working schedule
|
protected |
Get the bed times based on the work start_date and end_date It does a lookup for the which shift should be selected, and calculates the corresponding bed times
|
virtual |
Return planned tasks for the specified time range.
| start | Start date as Unix timestmap for the range to get planned tasks for, |
| end | End date as Unix timestamp for the range to get planned tasks for. |
Reimplemented from CoachingEngine::Coach.
|
protectedvirtual |
Returns the epoch time in seconds for the next to bed or out bed time
|
virtual |
get the properties of the coach
Reimplemented from CoachingEngine::Coach.
|
protected |
selects the shift type based on the start and end work times
|
protectedvirtual |
Called with the sensor and a date/value tuple.
Reimplemented from CoachingEngine::Coach.
|
protectedvirtual |
Set the latest to bed and wake up hours, based on the latest bedTime and wakeUpTime epoch times
|
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}}
| type | The InitializationType of the coach |
| init | The AIMValue map with initialization data |
| dynamic | Update the goal based on the progress |
Reimplemented from CoachingEngine::Coach.
|
virtual |
set the properties of the coach
Reimplemented from CoachingEngine::Coach.
|
static |
Current bed time in hours
|
static |
The time of the low core body
|
static |
Normal bed time in hours
|
static |
Normal wake up time in hours
|
static |
Hour difference in hours
|
static |
End date of the program
|
static |
The work schedule This consists of a vector with AIMValues with a start_date and end_date in epoch secods
|
static |
Current wake up time in hours
|
static |
Key for the end date of the work schedule map value
|
static |
Key for the start date of the work schedule map value