Alex Pirciu
/
BFMC
a
Embed:
(wiki syntax)
Show/hide line numbers
taskmanager.cpp
00001 /** 00002 ****************************************************************************** 00003 * @file TaskManager.cpp 00004 * @author RBRO/PJ-IU 00005 * @version V1.0.0 00006 * @date day-month-2017 00007 * @brief This file contains the class definition for task manager. 00008 ****************************************************************************** 00009 */ 00010 00011 #include <TaskManager/taskmanager.hpp> 00012 00013 namespace task{ 00014 00015 /******************************************************************************/ 00016 /** \brief CTask class constructor 00017 * 00018 * Constructor method 00019 * 00020 * @param f_period execution period 00021 */ 00022 CTask::CTask(uint32_t f_period) 00023 : m_period(f_period) 00024 , m_ticks(0) 00025 , m_triggered(false) 00026 { 00027 } 00028 00029 /** \brief CTask class destructor 00030 * 00031 * Destructor method 00032 * 00033 * 00034 */ 00035 CTask::~CTask() 00036 { 00037 } 00038 00039 /** \brief Run method 00040 * 00041 * Destructor method 00042 * 00043 * 00044 * 00045 */ 00046 void CTask::run() 00047 { 00048 if (m_triggered) 00049 { 00050 m_triggered = false; 00051 _run(); 00052 } 00053 } 00054 00055 /******************************************************************************/ 00056 /** \brief CTaskManager class constructor 00057 * 00058 * Constructor method 00059 * 00060 * @param f_taskList task list 00061 * @param f_taskCount task count 00062 * @param f_baseFreq base frequency 00063 */ 00064 CTaskManager::CTaskManager(task::CTask** f_taskList, uint32_t f_taskCount, float f_baseFreq) 00065 : m_taskList(f_taskList) 00066 , m_taskCount(f_taskCount) 00067 { 00068 m_ticker.attach(mbed::callback(&task::CTaskManager::callback, this), f_baseFreq); 00069 } 00070 00071 /** \brief CTaskManager class destructor 00072 * 00073 * Destructor method 00074 * 00075 * 00076 */ 00077 CTaskManager::~CTaskManager() 00078 { 00079 m_ticker.detach(); 00080 } 00081 00082 /** \brief Callback method 00083 * 00084 * @param thisPointer The object pointer 00085 */ 00086 void CTaskManager::callback(void *thisPointer) 00087 { 00088 task::CTaskManager* self = static_cast<task::CTaskManager*>(thisPointer); 00089 self->timerCallback(); 00090 } 00091 00092 }; // namespace task
Generated on Tue Jul 12 2022 22:40:51 by 1.7.2