#ifndef TASK_MANAGER_H__ #define TASK_MANAGER_H__ #include #include #include #include /*! The list of task IDs. The IDs are sorted according to descending priority. For each task ID there is the corresponding task handler function. */ typedef enum { TASK_ID_SOFT_TIMER = 0U, /*!< Task ID of Global timer*/ TASK_ID_LIN_STACK, /*!< Task ID of LIN stack*/ TASK_ID_LINS, /*!< Task ID of LIN slave*/ //TASK_ID_PDS, /*!< Task ID of persistance data storage*/ TASK_ID_ADC_MEASURE, /*!< Task ID of ADC measurement*/ TASK_ID_SAFETY_MONITOR, /*!< Task ID of Safety protection*/ TASK_ID_APPL, /*!< Task ID of APPlication purpose for debug and demo*/ } TM_TaskId_t; typedef enum{ TASK_STATE_INIT = 0U, TASK_STATE_ACTIVE, TASK_STATE_PROCESSING, TASK_STATE_IDLE, }TaskState_t; /* * brief runs specified task. * @param [in] taskId - task to be run. * @return none */ void TM_PostTask(TM_TaskId_t taskId); /* * brief Enables specified task. * @param [in] taskId - task to be enabled. * @return none */ void TM_EnableTask(TM_TaskId_t taskId); /* * Disables specified task. * @param [in] taskId - task to be disabled. * @return none */ void TM_DisableTask(TM_TaskId_t taskId); /* * get the state of specified task. * @param [in] taskId - task to be disabled. * @return 0: task is not pending, other: task is pending to be handle */ uint8_t TM_TaskIsPending(TM_TaskId_t taskId); /* * brief task manager. * @return none */ void TM_RunTasks(void); #endif