Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
ICE-Application/src/Utilities/timerUtils.h@0:61364762ee0e, 2017-01-24 (annotated)
- Committer:
- jmarkel44
- Date:
- Tue Jan 24 19:05:33 2017 +0000
- Revision:
- 0:61364762ee0e
Port from IAR to Nucleo-F412 board
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
jmarkel44 | 0:61364762ee0e | 1 | #ifndef __CNTL_TIME_SHEDULE_UTILS_H__ |
jmarkel44 | 0:61364762ee0e | 2 | #define __CNTL_TIME_SHEDULE_UTILS_H__ |
jmarkel44 | 0:61364762ee0e | 3 | /************************************************************************ |
jmarkel44 | 0:61364762ee0e | 4 | * * |
jmarkel44 | 0:61364762ee0e | 5 | * Copyright (c) 2012 Nalco Company. All Rights Reserved. * |
jmarkel44 | 0:61364762ee0e | 6 | * * |
jmarkel44 | 0:61364762ee0e | 7 | ************************************************************************/ |
jmarkel44 | 0:61364762ee0e | 8 | |
jmarkel44 | 0:61364762ee0e | 9 | #include <mbed.h> |
jmarkel44 | 0:61364762ee0e | 10 | #include "rtos.h" |
jmarkel44 | 0:61364762ee0e | 11 | |
jmarkel44 | 0:61364762ee0e | 12 | #ifdef __ICCARM__ |
jmarkel44 | 0:61364762ee0e | 13 | struct tm *localtime_r(const time_t *const timep, struct tm *result); |
jmarkel44 | 0:61364762ee0e | 14 | #endif |
jmarkel44 | 0:61364762ee0e | 15 | |
jmarkel44 | 0:61364762ee0e | 16 | typedef char DMSTRING32[32]; |
jmarkel44 | 0:61364762ee0e | 17 | typedef char DMSTRING128[128]; |
jmarkel44 | 0:61364762ee0e | 18 | typedef DMSTRING32 DM_TAG; |
jmarkel44 | 0:61364762ee0e | 19 | |
jmarkel44 | 0:61364762ee0e | 20 | #define ERROR -1 |
jmarkel44 | 0:61364762ee0e | 21 | #define OK 0 |
jmarkel44 | 0:61364762ee0e | 22 | |
jmarkel44 | 0:61364762ee0e | 23 | typedef enum cntl_check_schedule_returns |
jmarkel44 | 0:61364762ee0e | 24 | { |
jmarkel44 | 0:61364762ee0e | 25 | CNTL_SCHED_CHECK_INTERNAL_ERROR = -3, // internal implementation error |
jmarkel44 | 0:61364762ee0e | 26 | CNTL_SCHED_CHECK_BAD_PARAMS = -2, // problem with the schedule data passed |
jmarkel44 | 0:61364762ee0e | 27 | CNTL_SCHED_CHECK_SCHED_OK = 0, // no problems or conflicts with the schedule |
jmarkel44 | 0:61364762ee0e | 28 | CNTL_SCHED_CHECK_OUTPUT_CONFLICT = 1, // conflict on output relay |
jmarkel44 | 0:61364762ee0e | 29 | CNTL_SCHED_CHECK_PRODUCT_CONFLICT = 2, // product conflict with another relay timer |
jmarkel44 | 0:61364762ee0e | 30 | CNTL_SCHED_CHECK_BLOWDOWN_CONFLICT = 3 // blowdown conflict with another relay timer |
jmarkel44 | 0:61364762ee0e | 31 | } CNTL_CHECK_SCHEDULE_RETURNS; |
jmarkel44 | 0:61364762ee0e | 32 | |
jmarkel44 | 0:61364762ee0e | 33 | #define CNTL_MAX_SCHEDULE_ELEMENTS 64 |
jmarkel44 | 0:61364762ee0e | 34 | #define TSC_ALARM_PRIORITY (90) /* Very high alarm priority so no other alarm can cancel it, i.e. interlock, maintenance mode, etc.*/ |
jmarkel44 | 0:61364762ee0e | 35 | #define TSC_12_HOURS_IN_SECONDS (SECONDS_PER_MINUTE * MINUTES_PER_HOUR * 12 ) |
jmarkel44 | 0:61364762ee0e | 36 | #define TSC_31_DAYS_IN_SECONDS (SECONDS_PER_MINUTE * MINUTES_PER_HOUR * HOURS_PER_DAY * 31) |
jmarkel44 | 0:61364762ee0e | 37 | |
jmarkel44 | 0:61364762ee0e | 38 | |
jmarkel44 | 0:61364762ee0e | 39 | #define SUNDAY_MASK (0x001) |
jmarkel44 | 0:61364762ee0e | 40 | #define MONDAY_MASK (0x002) |
jmarkel44 | 0:61364762ee0e | 41 | #define TUESDAY_MASK (0x004) |
jmarkel44 | 0:61364762ee0e | 42 | #define WEDNESDAY_MASK (0x008) |
jmarkel44 | 0:61364762ee0e | 43 | #define THURSDAY_MASK (0x010) |
jmarkel44 | 0:61364762ee0e | 44 | #define FRIDAY_MASK (0x020) |
jmarkel44 | 0:61364762ee0e | 45 | #define SATURDAY_MASK (0x040) |
jmarkel44 | 0:61364762ee0e | 46 | #define EVERY_DAY_MASK (0x080) |
jmarkel44 | 0:61364762ee0e | 47 | #define EVERY_WEEK_DAY_MASK (0x100) |
jmarkel44 | 0:61364762ee0e | 48 | #define SUN_TO_SAT_MASK (SUNDAY_MASK | MONDAY_MASK | TUESDAY_MASK | WEDNESDAY_MASK | THURSDAY_MASK | FRIDAY_MASK | SATURDAY_MASK) |
jmarkel44 | 0:61364762ee0e | 49 | |
jmarkel44 | 0:61364762ee0e | 50 | typedef struct |
jmarkel44 | 0:61364762ee0e | 51 | { |
jmarkel44 | 0:61364762ee0e | 52 | int days; |
jmarkel44 | 0:61364762ee0e | 53 | int hours; |
jmarkel44 | 0:61364762ee0e | 54 | int minutes; |
jmarkel44 | 0:61364762ee0e | 55 | int seconds; |
jmarkel44 | 0:61364762ee0e | 56 | } UTtimeInterval; |
jmarkel44 | 0:61364762ee0e | 57 | |
jmarkel44 | 0:61364762ee0e | 58 | /* |
jmarkel44 | 0:61364762ee0e | 59 | * A general date and time struct |
jmarkel44 | 0:61364762ee0e | 60 | */ |
jmarkel44 | 0:61364762ee0e | 61 | typedef struct |
jmarkel44 | 0:61364762ee0e | 62 | { |
jmarkel44 | 0:61364762ee0e | 63 | int hour; |
jmarkel44 | 0:61364762ee0e | 64 | int minute; |
jmarkel44 | 0:61364762ee0e | 65 | int day; |
jmarkel44 | 0:61364762ee0e | 66 | int month; |
jmarkel44 | 0:61364762ee0e | 67 | int year; |
jmarkel44 | 0:61364762ee0e | 68 | } UT_DATE_TIME; |
jmarkel44 | 0:61364762ee0e | 69 | |
jmarkel44 | 0:61364762ee0e | 70 | typedef struct cntl_date_struct |
jmarkel44 | 0:61364762ee0e | 71 | { |
jmarkel44 | 0:61364762ee0e | 72 | unsigned long month; |
jmarkel44 | 0:61364762ee0e | 73 | unsigned long day; |
jmarkel44 | 0:61364762ee0e | 74 | unsigned long year; |
jmarkel44 | 0:61364762ee0e | 75 | } CNTL_DATE_STRUCT; |
jmarkel44 | 0:61364762ee0e | 76 | |
jmarkel44 | 0:61364762ee0e | 77 | typedef struct cntl_hr_min_struct |
jmarkel44 | 0:61364762ee0e | 78 | { |
jmarkel44 | 0:61364762ee0e | 79 | unsigned long hour; |
jmarkel44 | 0:61364762ee0e | 80 | unsigned long minute; |
jmarkel44 | 0:61364762ee0e | 81 | unsigned long second; |
jmarkel44 | 0:61364762ee0e | 82 | } CNTL_HR_MIN_STRUCT; |
jmarkel44 | 0:61364762ee0e | 83 | |
jmarkel44 | 0:61364762ee0e | 84 | #define SECONDS_PER_MINUTE (60) |
jmarkel44 | 0:61364762ee0e | 85 | #define MINUTES_PER_HOUR (60) |
jmarkel44 | 0:61364762ee0e | 86 | #define HOURS_PER_DAY (24) |
jmarkel44 | 0:61364762ee0e | 87 | #define DAYS_PER_WEEK (7) |
jmarkel44 | 0:61364762ee0e | 88 | #define DAYS_PER_YEAR (365) |
jmarkel44 | 0:61364762ee0e | 89 | #define HOURS_PER_WEEK (HOURS_PER_DAY * DAYS_PER_WEEK) |
jmarkel44 | 0:61364762ee0e | 90 | #define MINUTES_PER_DAY (MINUTES_PER_HOUR * HOURS_PER_DAY) |
jmarkel44 | 0:61364762ee0e | 91 | #define MINUTES_PER_WEEK (MINUTES_PER_HOUR * HOURS_PER_WEEK) |
jmarkel44 | 0:61364762ee0e | 92 | #define SECONDS_PER_HOUR (SECONDS_PER_MINUTE*MINUTES_PER_HOUR) |
jmarkel44 | 0:61364762ee0e | 93 | #define SECONDS_PER_DAY (SECONDS_PER_HOUR*HOURS_PER_DAY) |
jmarkel44 | 0:61364762ee0e | 94 | #define SECONDS_PER_WEEK (SECONDS_PER_HOUR*HOURS_PER_WEEK) |
jmarkel44 | 0:61364762ee0e | 95 | |
jmarkel44 | 0:61364762ee0e | 96 | |
jmarkel44 | 0:61364762ee0e | 97 | #define CNTL_SUNDAY_MASK (0x01) |
jmarkel44 | 0:61364762ee0e | 98 | #define CNTL_MONDAY_MASK (0x02) |
jmarkel44 | 0:61364762ee0e | 99 | #define CNTL_TUESDAY_MASK (0x04) |
jmarkel44 | 0:61364762ee0e | 100 | #define CNTL_WEDNESDAY_MASK (0x08) |
jmarkel44 | 0:61364762ee0e | 101 | #define CNTL_THURSDAY_MASK (0x10) |
jmarkel44 | 0:61364762ee0e | 102 | #define CNTL_FRIDAY_MASK (0x20) |
jmarkel44 | 0:61364762ee0e | 103 | #define CNTL_SATURDAY_MASK (0x40) |
jmarkel44 | 0:61364762ee0e | 104 | #define CNTL_SUN_TO_SAT_MASK (CNTL_SUNDAY_MASK | CNTL_MONDAY_MASK | CNTL_TUESDAY_MASK | CNTL_WEDNESDAY_MASK | CNTL_THURSDAY_MASK | CNTL_FRIDAY_MASK | CNTL_SATURDAY_MASK) |
jmarkel44 | 0:61364762ee0e | 105 | #define CNTL_WEEKDAY_MASK (CNTL_MONDAY_MASK | CNTL_TUESDAY_MASK | CNTL_WEDNESDAY_MASK | CNTL_THURSDAY_MASK | CNTL_FRIDAY_MASK) |
jmarkel44 | 0:61364762ee0e | 106 | |
jmarkel44 | 0:61364762ee0e | 107 | typedef enum |
jmarkel44 | 0:61364762ee0e | 108 | { |
jmarkel44 | 0:61364762ee0e | 109 | DAY_SCHEDULE_NOT_SPECIFIED = 0x00, |
jmarkel44 | 0:61364762ee0e | 110 | DAY_SCHEDULE_SUNDAY_MASK = 0x01, |
jmarkel44 | 0:61364762ee0e | 111 | DAY_SCHEDULE_MONDAY_MASK = 0x02, |
jmarkel44 | 0:61364762ee0e | 112 | DAY_SCHEDULE_TUESDAY_MASK = 0x04, |
jmarkel44 | 0:61364762ee0e | 113 | DAY_SCHEDULE_WEDNESDAY_MASK = 0x08, |
jmarkel44 | 0:61364762ee0e | 114 | DAY_SCHEDULE_THURSDAY_MASK = 0x10, |
jmarkel44 | 0:61364762ee0e | 115 | DAY_SCHEDULE_FRIDAY_MASK = 0x20, |
jmarkel44 | 0:61364762ee0e | 116 | DAY_SCHEDULE_SATURDAY_MASK = 0x40, |
jmarkel44 | 0:61364762ee0e | 117 | DAY_SCHEDULE_WEEKDAY_MASK = ( DAY_SCHEDULE_MONDAY_MASK | DAY_SCHEDULE_TUESDAY_MASK | DAY_SCHEDULE_WEDNESDAY_MASK | DAY_SCHEDULE_THURSDAY_MASK | DAY_SCHEDULE_FRIDAY_MASK ), |
jmarkel44 | 0:61364762ee0e | 118 | DAY_SCHEDULE_SAT_TO_SUN_MASK = ( DAY_SCHEDULE_SUNDAY_MASK | DAY_SCHEDULE_WEEKDAY_MASK | DAY_SCHEDULE_SATURDAY_MASK ) |
jmarkel44 | 0:61364762ee0e | 119 | } DAY_SCHEDULE; |
jmarkel44 | 0:61364762ee0e | 120 | |
jmarkel44 | 0:61364762ee0e | 121 | typedef enum |
jmarkel44 | 0:61364762ee0e | 122 | { |
jmarkel44 | 0:61364762ee0e | 123 | WEEKLY_CHOICE_EVERY_WEEK = 0, |
jmarkel44 | 0:61364762ee0e | 124 | WEEKLY_CHOICE_FIRST_WEEK = 1, |
jmarkel44 | 0:61364762ee0e | 125 | WEEKLY_CHOICE_SECOND_WEEK = 2, |
jmarkel44 | 0:61364762ee0e | 126 | WEEKLY_CHOICE_THIRD_WEEK = 3, |
jmarkel44 | 0:61364762ee0e | 127 | WEEKLY_CHOICE_FOURTH_WEEK = 4, |
jmarkel44 | 0:61364762ee0e | 128 | WEEKLY_CHOICE_LAST_WEEK = 5, |
jmarkel44 | 0:61364762ee0e | 129 | WEEKLY_CHOICE_EVERYOTHER_WEEK = 6, |
jmarkel44 | 0:61364762ee0e | 130 | WEEKLY_CHOICE_NOT_SPECIFIED = 7 |
jmarkel44 | 0:61364762ee0e | 131 | } WEEKLY_CHOICES; |
jmarkel44 | 0:61364762ee0e | 132 | |
jmarkel44 | 0:61364762ee0e | 133 | |
jmarkel44 | 0:61364762ee0e | 134 | typedef enum cntl_days_of_wk |
jmarkel44 | 0:61364762ee0e | 135 | { |
jmarkel44 | 0:61364762ee0e | 136 | SUNDAY = 0, |
jmarkel44 | 0:61364762ee0e | 137 | MONDAY = 1, |
jmarkel44 | 0:61364762ee0e | 138 | TUESDAY = 2, |
jmarkel44 | 0:61364762ee0e | 139 | WEDNESDAY = 3, |
jmarkel44 | 0:61364762ee0e | 140 | THURSDAY = 4, |
jmarkel44 | 0:61364762ee0e | 141 | FRIDAY = 5, |
jmarkel44 | 0:61364762ee0e | 142 | SATURDAY = 6 |
jmarkel44 | 0:61364762ee0e | 143 | } CNTL_DAYS_OF_WK; |
jmarkel44 | 0:61364762ee0e | 144 | |
jmarkel44 | 0:61364762ee0e | 145 | /* |
jmarkel44 | 0:61364762ee0e | 146 | * CNLT_SCHED_STRUCT contains everything needed to specify a schedule |
jmarkel44 | 0:61364762ee0e | 147 | */ |
jmarkel44 | 0:61364762ee0e | 148 | typedef struct cntl_sched_struct |
jmarkel44 | 0:61364762ee0e | 149 | { |
jmarkel44 | 0:61364762ee0e | 150 | CNTL_DATE_STRUCT startDate; // always valid, mm/dd/yyyy when schedule starts all schedules have a startDate |
jmarkel44 | 0:61364762ee0e | 151 | CNTL_HR_MIN_STRUCT startTime; // always valid, hour and minute when output is activated, all schedules have startTime |
jmarkel44 | 0:61364762ee0e | 152 | CNTL_HR_MIN_STRUCT endTime; // always valid, hour and minute when output is activation stops, all schedules have stopTime |
jmarkel44 | 0:61364762ee0e | 153 | WEEKLY_CHOICES weeklySchedule; // default is EVERY |
jmarkel44 | 0:61364762ee0e | 154 | unsigned char dailySchedule; // default is the current day of the week |
jmarkel44 | 0:61364762ee0e | 155 | } CNTL_SCHED_STRUCT; |
jmarkel44 | 0:61364762ee0e | 156 | |
jmarkel44 | 0:61364762ee0e | 157 | typedef struct |
jmarkel44 | 0:61364762ee0e | 158 | { |
jmarkel44 | 0:61364762ee0e | 159 | CNTL_SCHED_STRUCT schedule; /* the schedule */ |
jmarkel44 | 0:61364762ee0e | 160 | time_t calTime; /* time in seconds passed to localtime to populate the requestTime structure */ |
jmarkel44 | 0:61364762ee0e | 161 | struct tm requestTime; /* the broken down time when the request was made, used to determine the initial starting date */ |
jmarkel44 | 0:61364762ee0e | 162 | unsigned long outputDuty; /* scaled output duty 3 digits 1 decimal 0 <= outputDuty <= 1000 */ |
jmarkel44 | 0:61364762ee0e | 163 | bool preBleedorLockout; /* the timer specifies preBleed or lockout */ |
jmarkel44 | 0:61364762ee0e | 164 | } TSC_SCHED_ELEM; |
jmarkel44 | 0:61364762ee0e | 165 | |
jmarkel44 | 0:61364762ee0e | 166 | #define TSC_NULL_INSTANCE (-1) |
jmarkel44 | 0:61364762ee0e | 167 | |
jmarkel44 | 0:61364762ee0e | 168 | /* |
jmarkel44 | 0:61364762ee0e | 169 | * To be deprecated |
jmarkel44 | 0:61364762ee0e | 170 | */ |
jmarkel44 | 0:61364762ee0e | 171 | typedef enum |
jmarkel44 | 0:61364762ee0e | 172 | { |
jmarkel44 | 0:61364762ee0e | 173 | TSC_UTIL_ONE_OUTPUT = 1, |
jmarkel44 | 0:61364762ee0e | 174 | TSC_UTIL_ALL_OUTPUTS = 2, |
jmarkel44 | 0:61364762ee0e | 175 | } TSC_UTIL_OUTPUT_CHECK; |
jmarkel44 | 0:61364762ee0e | 176 | |
jmarkel44 | 0:61364762ee0e | 177 | /* |
jmarkel44 | 0:61364762ee0e | 178 | * Tell the general checking function what to look for |
jmarkel44 | 0:61364762ee0e | 179 | */ |
jmarkel44 | 0:61364762ee0e | 180 | typedef enum |
jmarkel44 | 0:61364762ee0e | 181 | { |
jmarkel44 | 0:61364762ee0e | 182 | TSC_UTIL_THEOUTPUT_CHECK, |
jmarkel44 | 0:61364762ee0e | 183 | TSC_UTIL_BLOWDOWN_CHECK, |
jmarkel44 | 0:61364762ee0e | 184 | TSC_UTIL_OXNONOX_CHECK |
jmarkel44 | 0:61364762ee0e | 185 | } TSC_UTIL_WHAT_TO_CHECK; |
jmarkel44 | 0:61364762ee0e | 186 | |
jmarkel44 | 0:61364762ee0e | 187 | /* |
jmarkel44 | 0:61364762ee0e | 188 | * The attribute to look for when filtering the list of timer schedules |
jmarkel44 | 0:61364762ee0e | 189 | * it's up to the pruning filter functions to include or exclude based upon the |
jmarkel44 | 0:61364762ee0e | 190 | * pruning attribute |
jmarkel44 | 0:61364762ee0e | 191 | */ |
jmarkel44 | 0:61364762ee0e | 192 | typedef enum |
jmarkel44 | 0:61364762ee0e | 193 | { |
jmarkel44 | 0:61364762ee0e | 194 | TSC_UTIL_PRUNE_PRODUCTS = 1, |
jmarkel44 | 0:61364762ee0e | 195 | TSC_UTIL_PRUNE_BLOWDOWN = 2 |
jmarkel44 | 0:61364762ee0e | 196 | } TSC_UTIL_PRUNE_ATTRIBUTE; |
jmarkel44 | 0:61364762ee0e | 197 | |
jmarkel44 | 0:61364762ee0e | 198 | /* |
jmarkel44 | 0:61364762ee0e | 199 | * attribute indicates if a timer scheduling is for the first time or a reschedule |
jmarkel44 | 0:61364762ee0e | 200 | */ |
jmarkel44 | 0:61364762ee0e | 201 | typedef enum |
jmarkel44 | 0:61364762ee0e | 202 | { |
jmarkel44 | 0:61364762ee0e | 203 | TSC_INITIAL_SCHEDULE, |
jmarkel44 | 0:61364762ee0e | 204 | TSC_RESCHEDULE |
jmarkel44 | 0:61364762ee0e | 205 | } TSC_UTIL_SCHED_STATE; |
jmarkel44 | 0:61364762ee0e | 206 | |
jmarkel44 | 0:61364762ee0e | 207 | typedef enum tsc_sched_miss_reason |
jmarkel44 | 0:61364762ee0e | 208 | { |
jmarkel44 | 0:61364762ee0e | 209 | TSC_SCHEDULE_NOT_MISSED, |
jmarkel44 | 0:61364762ee0e | 210 | TSC_SCHEDULE_MISSED, |
jmarkel44 | 0:61364762ee0e | 211 | TSC_SCHEDULE_INTERRUPTED |
jmarkel44 | 0:61364762ee0e | 212 | } TSC_SCHED_MISS_REASON; |
jmarkel44 | 0:61364762ee0e | 213 | |
jmarkel44 | 0:61364762ee0e | 214 | |
jmarkel44 | 0:61364762ee0e | 215 | /* |
jmarkel44 | 0:61364762ee0e | 216 | * renamed utility functions replacing CNTL_xyz functions |
jmarkel44 | 0:61364762ee0e | 217 | */ |
jmarkel44 | 0:61364762ee0e | 218 | |
jmarkel44 | 0:61364762ee0e | 219 | void TSCutilScheduleWithInWeek( TSC_SCHED_ELEM *pSchedElem ); |
jmarkel44 | 0:61364762ee0e | 220 | void TSCutilPreviousScheduleWithInWeek( TSC_SCHED_ELEM *pSchedElem ); |
jmarkel44 | 0:61364762ee0e | 221 | void TSCutilComputeStartDate( TSC_SCHED_ELEM *pSchedElem ); |
jmarkel44 | 0:61364762ee0e | 222 | void TSCutilScheduleOneWeekPerMonth( TSC_SCHED_ELEM *pSchedElem ); |
jmarkel44 | 0:61364762ee0e | 223 | void TSCutilInitFreeLists(); |
jmarkel44 | 0:61364762ee0e | 224 | bool TSCutilWasPreviousScheduleInterrupted( CNTL_SCHED_STRUCT *pElem, TSC_SCHED_MISS_REASON *pReason, unsigned long create_time_stamp, int *pmiss_count, int *pstart_to_end_diff ); |
jmarkel44 | 0:61364762ee0e | 225 | int TSCgetCreateTime( DM_TAG relay, unsigned long starting_hour, unsigned long starting_minute, unsigned long *create_time ); |
jmarkel44 | 0:61364762ee0e | 226 | int TSCnewComputeWaitTimer( CNTL_SCHED_STRUCT *pSchedule, TSC_UTIL_SCHED_STATE scheduleingState, TSC_SCHED_ELEM *pNowTimeDate, unsigned long *pDiffInSeconds ); |
jmarkel44 | 0:61364762ee0e | 227 | bool TSCIsTimerSchedLT12Hr( unsigned long *pGo_Off, DMSTRING32 id_info ); |
jmarkel44 | 0:61364762ee0e | 228 | |
jmarkel44 | 0:61364762ee0e | 229 | int TSCutilLoadSchedules(); |
jmarkel44 | 0:61364762ee0e | 230 | int TSCutilAddElemToScheduleList( TSC_SCHED_ELEM *pElem ); |
jmarkel44 | 0:61364762ee0e | 231 | int TSCutilPutFreeSchedElem( TSC_SCHED_ELEM *pElem ); |
jmarkel44 | 0:61364762ee0e | 232 | |
jmarkel44 | 0:61364762ee0e | 233 | |
jmarkel44 | 0:61364762ee0e | 234 | int TSCutilDeleteSchedElem( TSC_SCHED_ELEM *pElem ); |
jmarkel44 | 0:61364762ee0e | 235 | |
jmarkel44 | 0:61364762ee0e | 236 | TSC_SCHED_ELEM *TSCutilGetFreeSchedElem( ); |
jmarkel44 | 0:61364762ee0e | 237 | TSC_SCHED_ELEM *TSCutilGetFirstSchedule(); |
jmarkel44 | 0:61364762ee0e | 238 | TSC_SCHED_ELEM *TSCutilGetNextSchedule( TSC_SCHED_ELEM *pElem ); |
jmarkel44 | 0:61364762ee0e | 239 | |
jmarkel44 | 0:61364762ee0e | 240 | int TSCutilgetScheduleCount(); |
jmarkel44 | 0:61364762ee0e | 241 | int TSCutilCmpStartTimes( TSC_SCHED_ELEM *pNewElem, TSC_SCHED_ELEM *pListElem ); |
jmarkel44 | 0:61364762ee0e | 242 | |
jmarkel44 | 0:61364762ee0e | 243 | bool TSCutilDoesScheduleConflict( TSC_SCHED_ELEM *pNewElem, TSC_UTIL_OUTPUT_CHECK which_check ); |
jmarkel44 | 0:61364762ee0e | 244 | |
jmarkel44 | 0:61364762ee0e | 245 | |
jmarkel44 | 0:61364762ee0e | 246 | |
jmarkel44 | 0:61364762ee0e | 247 | int Util_addTupleToTimeControl( int instance, TSC_SCHED_ELEM *pElem ); |
jmarkel44 | 0:61364762ee0e | 248 | int Util_addTupleToRLcontrol( int instance, TSC_SCHED_ELEM *pElem, DM_TAG keyTag ); |
jmarkel44 | 0:61364762ee0e | 249 | int Util_dateTimeDiff( CNTL_SCHED_STRUCT *pDateTime1, CNTL_SCHED_STRUCT *pDateTime2, unsigned long *pDiffInSeconds ); |
jmarkel44 | 0:61364762ee0e | 250 | |
jmarkel44 | 0:61364762ee0e | 251 | |
jmarkel44 | 0:61364762ee0e | 252 | void Util_displayStartDateTime( CNTL_SCHED_STRUCT *pTimeStruct ); |
jmarkel44 | 0:61364762ee0e | 253 | void Util_displayWeeklySchedule( CNTL_SCHED_STRUCT *pTimeStruct ); |
jmarkel44 | 0:61364762ee0e | 254 | void Util_displayDailySchedule( CNTL_SCHED_STRUCT *pTimeStruct ); |
jmarkel44 | 0:61364762ee0e | 255 | |
jmarkel44 | 0:61364762ee0e | 256 | int Util_getDayOfWeek( TSC_SCHED_ELEM *pSchedElem, CNTL_DATE_STRUCT *pDate ); |
jmarkel44 | 0:61364762ee0e | 257 | int Util_getMonthWeek( TSC_SCHED_ELEM *pSchedElem, CNTL_DATE_STRUCT *pDate ); |
jmarkel44 | 0:61364762ee0e | 258 | int Util_findAday( int startingDay, unsigned char dailySchedule ); |
jmarkel44 | 0:61364762ee0e | 259 | int Util_getDoWThisMonth( TSC_SCHED_ELEM *pSchedElem, int dom ); |
jmarkel44 | 0:61364762ee0e | 260 | int Util_numDaysInSchedule( unsigned char dailySchedule ); |
jmarkel44 | 0:61364762ee0e | 261 | |
jmarkel44 | 0:61364762ee0e | 262 | char *Util_getDailyScheduleString( CNTL_SCHED_STRUCT *pTimeStruct ); |
jmarkel44 | 0:61364762ee0e | 263 | char *Util_getWeeklyScheduleString( CNTL_SCHED_STRUCT *pTimeStruct); |
jmarkel44 | 0:61364762ee0e | 264 | char *Util_getDayString( int dayOfWeek ); |
jmarkel44 | 0:61364762ee0e | 265 | |
jmarkel44 | 0:61364762ee0e | 266 | int TSCgetNumericSuffix(char* input); |
jmarkel44 | 0:61364762ee0e | 267 | char * TSCinterruptReasonToString( TSC_SCHED_MISS_REASON reason ); |
jmarkel44 | 0:61364762ee0e | 268 | |
jmarkel44 | 0:61364762ee0e | 269 | #endif |