Components/Libraries/XF/FreeRTOS/BaseThread
Sara.chalokh (Talk | contribs) |
Sara.chalokh (Talk | contribs) |
||
Line 7: | Line 7: | ||
= Member Functions Documentation= | = Member Functions Documentation= | ||
== BaseThread(string oName, PRIORITY_SIZE oPriority, STACKSIZE_SIZE oStackDepth) == | == BaseThread(string oName, PRIORITY_SIZE oPriority, STACKSIZE_SIZE oStackDepth) == | ||
+ | === Descritption === | ||
Construct a new BaseThread to manage a new FreeRTOS task. This will create the FreeRTOS task. The thread does not begin executing until startScheduler is called. | Construct a new BaseThread to manage a new FreeRTOS task. This will create the FreeRTOS task. The thread does not begin executing until startScheduler is called. | ||
Line 12: | Line 13: | ||
If the FreeRTOS task creation fails and useErrorHandler is define also an error "OS_MEMORY_COULD_NOT_BE_ALLOCATED" is send. | If the FreeRTOS task creation fails and useErrorHandler is define also an error "OS_MEMORY_COULD_NOT_BE_ALLOCATED" is send. | ||
+ | === Parameters === | ||
+ | oName : the name of the thread (automatically set to "a Thread") | ||
+ | |||
+ | oPriority : the thread priority (automatically set to LOW_PRIORITY) | ||
+ | |||
+ | oStackDepth : the number of words (not bytes !) to allocate for stack size (automatically set to THREAD_STACK_SIZE) | ||
== ~BaseThread() [virtual] == | == ~BaseThread() [virtual] == | ||
+ | === Descritption === | ||
Delete the BaseThread and the FreeRTOS task that it manages same if this one is runing. | Delete the BaseThread and the FreeRTOS task that it manages same if this one is runing. | ||
== string getName() == | == string getName() == | ||
+ | === Descritption === | ||
Returns the name of the BaseThread. | Returns the name of the BaseThread. | ||
== PRIORITY_SIZE getPriority() == | == PRIORITY_SIZE getPriority() == | ||
Returns the priority of the BaseThread. | Returns the priority of the BaseThread. | ||
+ | |||
== bool setPriority(PRIORITY_SIZE oNewPriority) [virtual] == | == bool setPriority(PRIORITY_SIZE oNewPriority) [virtual] == | ||
Set the priority of the BaseThread to the value of oNewPriority. | Set the priority of the BaseThread to the value of oNewPriority. | ||
If the value of oNewPriorityis bigger than MAX_SYSTEM_PRIORITY and useErrorHandler is defined also an error "OS_BAD_PRIORITY" is send. | If the value of oNewPriorityis bigger than MAX_SYSTEM_PRIORITY and useErrorHandler is defined also an error "OS_BAD_PRIORITY" is send. | ||
+ | |||
+ | === Parameters === | ||
+ | oNewPriority : the new priority of the thread (must be lower than MAX_SYSTEM_PRIORITY) | ||
+ | === Return === | ||
+ | Return true if priority has been changed successfully else false | ||
+ | |||
== void waitMs(tickSize oMsToWait) == | == void waitMs(tickSize oMsToWait) == | ||
+ | === Descritption === | ||
Put the FreeRTOS task in a waiting state for the given time. | Put the FreeRTOS task in a waiting state for the given time. | ||
+ | === Parameters === | ||
+ | oMsToWait : the number of ms that the thread should block | ||
+ | |||
== void stop() == | == void stop() == | ||
Put the FreeRTOS task to the waiting state until restart is called. | Put the FreeRTOS task to the waiting state until restart is called. | ||
+ | |||
== void restart() == | == void restart() == | ||
+ | === Descritption === | ||
Resart the task that was stopped. | Resart the task that was stopped. | ||
+ | |||
== bool restartFromISR() == | == bool restartFromISR() == | ||
+ | === Descritption === | ||
Restart the task that was stopped from an ISR. | Restart the task that was stopped from an ISR. | ||
+ | === Return === | ||
+ | Return true if the thread has been restarted successfully | ||
+ | |||
== bool isCreated() == | == bool isCreated() == | ||
+ | === Descritption === | ||
Returns true if the FreeRTOS task has been created successfully. | Returns true if the FreeRTOS task has been created successfully. | ||
== void startScheduler() [static] == | == void startScheduler() [static] == | ||
+ | === Descritption === | ||
Starts the FreeRTOS scheduler. | Starts the FreeRTOS scheduler. | ||
+ | |||
== void endScheduler() [static] == | == void endScheduler() [static] == | ||
+ | === Descritption === | ||
Ends the FreeRTOS scheduler. | Ends the FreeRTOS scheduler. | ||
== void threadMainWrapper(void* pvParameter) [static] [protected] == | == void threadMainWrapper(void* pvParameter) [static] [protected] == | ||
+ | === Descritption === | ||
The thread main wrapper. The Free RTOS task only accept static methods to execute as main function. This function get in parameter the thread and call it's threadMain function. | The thread main wrapper. The Free RTOS task only accept static methods to execute as main function. This function get in parameter the thread and call it's threadMain function. | ||
+ | === Parameters === | ||
+ | pvParameter : a pointer to the thread to call the correct threadMain function | ||
== void threadMain() [pure virtual] [protected] == | == void threadMain() [pure virtual] [protected] == | ||
− | This function is not implemented here | + | === Descritption === |
+ | This function is not implemented here. This is the main function executed by the thead. |
Revision as of 11:28, 10 August 2017
BaseThread
The class BaseThread is a C++ version of a FreeRTOS task. It is an interface that implement all Free RTOS function too manage a Free RTOS task.
The function threadMain is the main function of the thread. But in the class it is just a pure virtual function that must be reimplemented in a subclass.
Member Functions Documentation
BaseThread(string oName, PRIORITY_SIZE oPriority, STACKSIZE_SIZE oStackDepth)
Descritption
Construct a new BaseThread to manage a new FreeRTOS task. This will create the FreeRTOS task. The thread does not begin executing until startScheduler is called.
If the value of oPriority is bigger than MAX_SYSTEM_PRIORITY and useErrorHandler is defined also an error "OS_BAD_PRIORITY" is send.
If the FreeRTOS task creation fails and useErrorHandler is define also an error "OS_MEMORY_COULD_NOT_BE_ALLOCATED" is send.
Parameters
oName : the name of the thread (automatically set to "a Thread")
oPriority : the thread priority (automatically set to LOW_PRIORITY)
oStackDepth : the number of words (not bytes !) to allocate for stack size (automatically set to THREAD_STACK_SIZE)
~BaseThread() [virtual]
Descritption
Delete the BaseThread and the FreeRTOS task that it manages same if this one is runing.
string getName()
Descritption
Returns the name of the BaseThread.
PRIORITY_SIZE getPriority()
Returns the priority of the BaseThread.
bool setPriority(PRIORITY_SIZE oNewPriority) [virtual]
Set the priority of the BaseThread to the value of oNewPriority.
If the value of oNewPriorityis bigger than MAX_SYSTEM_PRIORITY and useErrorHandler is defined also an error "OS_BAD_PRIORITY" is send.
Parameters
oNewPriority : the new priority of the thread (must be lower than MAX_SYSTEM_PRIORITY)
Return
Return true if priority has been changed successfully else false
void waitMs(tickSize oMsToWait)
Descritption
Put the FreeRTOS task in a waiting state for the given time.
Parameters
oMsToWait : the number of ms that the thread should block
void stop()
Put the FreeRTOS task to the waiting state until restart is called.
void restart()
Descritption
Resart the task that was stopped.
bool restartFromISR()
Descritption
Restart the task that was stopped from an ISR.
Return
Return true if the thread has been restarted successfully
bool isCreated()
Descritption
Returns true if the FreeRTOS task has been created successfully.
void startScheduler() [static]
Descritption
Starts the FreeRTOS scheduler.
void endScheduler() [static]
Descritption
Ends the FreeRTOS scheduler.
void threadMainWrapper(void* pvParameter) [static] [protected]
Descritption
The thread main wrapper. The Free RTOS task only accept static methods to execute as main function. This function get in parameter the thread and call it's threadMain function.
Parameters
pvParameter : a pointer to the thread to call the correct threadMain function
void threadMain() [pure virtual] [protected]
Descritption
This function is not implemented here. This is the main function executed by the thead.