ODeV framework  v2
AManagedTaskEx_vtbl.h
Go to the documentation of this file.
1 
31 #ifndef INCLUDE_SERVICES_AMANAGEDTASKEX_VTBL_H_
32 #define INCLUDE_SERVICES_AMANAGEDTASKEX_VTBL_H_
33 
34 #ifdef __cplusplus
35 extern "C" {
36 #endif
37 
38 #include "systypes.h"
39 #include "syserror.h"
40 #include "systp.h"
41 #include "FreeRTOS.h"
42 #include "task.h"
43 
44 #include "AManagedTaskVtbl.h"
45 
49 typedef struct _AManagedTaskEx_vtbl AManagedTaskEx_vtbl;
50 
51 struct _AManagedTaskEx_vtbl {
52  sys_error_code_t (*HardwareInit)(AManagedTask *this, void *pParams);
53  sys_error_code_t (*OnCreateTask)(AManagedTask *this, TaskFunction_t *pvTaskCode, const char **pcName, unsigned short *pnStackDepth, void **pParams, UBaseType_t *pxPriority);
54  sys_error_code_t (*DoEnterPowerMode)(AManagedTask *this, const EPowerMode eActivePowerMode, const EPowerMode eNewPowerMode);
55  sys_error_code_t (*HandleError)(AManagedTask *this, SysEvent xError);
56  sys_error_code_t (*ForceExecuteStep)(AManagedTaskEx *this, EPowerMode eActivePowerMode);
57 };
58 
63 typedef struct _AMTStatusEx {
64  uint8_t nIsWaitingNoTimeout : 1;
65 
66  uint8_t nUnused: 6;
67  uint8_t nReserved : 1;
68 } AMTStatusEx;
69 
79 
83  TaskHandle_t m_xThaskHandle;
84 
89 
94 
99 };
100 
101 extern EPowerMode SysGetPowerMode();
102 
103 // Inline functions definition
104 // ***************************
105 
106 SYS_DEFINE_INLINE
107 sys_error_code_t AMTExForceExecuteStep(AManagedTaskEx *this, EPowerMode eActivePowerMode) {
108  return this->vptr->ForceExecuteStep(this, eActivePowerMode);
109 }
110 
111 SYS_DEFINE_INLINE
113  AManagedTaskEx *pObj = (AManagedTaskEx*)this;
114 
115  this->m_pNext = NULL;
116  this->m_xThaskHandle = NULL;
120  this->m_xStatus.nIsTaskStillRunning = 0;
121  this->m_xStatus.nErrorCount = 0;
122  this->m_xStatus.nReserved = 1; // this identifies the task as an AManagedTaskEx.
123  pObj->m_xStatusEx.nIsWaitingNoTimeout = 0;
124  pObj->m_xStatusEx.nUnused = 0;
125  pObj->m_xStatusEx.nReserved = 0;
126 
127  return SYS_NO_ERROR_CODE;
128 }
129 
130 SYS_DEFINE_INLINE
131 sys_error_code_t AMTExSetInactiveState(AManagedTaskEx *this, boolean_t bBlockedSuspended) {
132  assert_param(this);
133 
134  this->m_xStatusEx.nIsWaitingNoTimeout = bBlockedSuspended;
135 
136  return SYS_NO_ERROR_CODE;
137 }
138 
139 SYS_DEFINE_INLINE
141  assert_param(this);
142 
143  return this->m_xStatusEx.nIsWaitingNoTimeout;
144 }
145 
146 
147 #ifdef __cplusplus
148 }
149 #endif
150 
151 
152 #endif /* INCLUDE_SERVICES_AMANAGEDTASKEX_VTBL_H_ */
Definition: sysevent.h:44
Define the global error management API.
struct _AManagedTaskEx_vtbl AManagedTaskEx_vtbl
Definition: AManagedTaskEx_vtbl.h:49
struct _AManagedTaskEx * m_pNext
Definition: AManagedTaskEx_vtbl.h:88
SYS_DEFINE_INLINE sys_error_code_t AMTInitEx(AManagedTaskEx *this)
Definition: AManagedTaskEx_vtbl.h:112
uint8_t nIsTaskStillRunning
Definition: AManagedTaskVtbl.h:81
TaskHandle_t m_xThaskHandle
Definition: AManagedTaskEx_vtbl.h:83
uint8_t nDelayPowerModeSwitch
Definition: AManagedTaskVtbl.h:65
#define assert_param(expr)
Include module's header file.
Definition: stm32l4xx_hal_conf.h:359
Definition: AManagedTaskVtbl.h:95
AMTStatusEx m_xStatusEx
Definition: AManagedTaskEx_vtbl.h:98
SYS_DEFINE_INLINE sys_error_code_t AMTExForceExecuteStep(AManagedTaskEx *this, EPowerMode eActivePowerMode)
Definition: AManagedTaskEx_vtbl.h:107
AMTStatus m_xStatus
Definition: AManagedTaskEx_vtbl.h:93
uint8_t nPowerModeSwitchDone
Definition: AManagedTaskVtbl.h:76
SYS_DEFINE_INLINE sys_error_code_t AMTExSetInactiveState(AManagedTaskEx *this, boolean_t bBlockedSuspended)
Definition: AManagedTaskEx_vtbl.h:131
uint8_t nPowerModeSwitchPending
Definition: AManagedTaskVtbl.h:70
Definition: AManagedTaskVtbl.h:60
SYS_DEFINE_INLINE boolean_t AMTExIsTaskInactive(AManagedTaskEx *this)
Definition: AManagedTaskEx_vtbl.h:140
struct _AMTStatusEx AMTStatusEx
TODO - insert here the file description.
Definition: AManagedTaskEx_vtbl.h:74
Common type declaration.
uint8_t nErrorCount
Definition: AManagedTaskVtbl.h:86
Definition: AManagedTaskEx_vtbl.h:63
unsigned short sys_error_code_t
Definition: syserror.h:45
const AManagedTaskEx_vtbl * vptr
Definition: AManagedTaskEx_vtbl.h:78
Target platform definition.