FixedTimeslotTask object check
Before adding to PST. Prevents NULL exception.
This commit is contained in:
parent
cd7e47ccbb
commit
782ba143a6
@ -19,8 +19,7 @@ FixedTimeslotTask::~FixedTimeslotTask() {
|
|||||||
void FixedTimeslotTask::taskEntryPoint(void* argument) {
|
void FixedTimeslotTask::taskEntryPoint(void* argument) {
|
||||||
|
|
||||||
//The argument is re-interpreted as FixedTimeslotTask. The Task object is global, so it is found from any place.
|
//The argument is re-interpreted as FixedTimeslotTask. The Task object is global, so it is found from any place.
|
||||||
FixedTimeslotTask *originalTask(
|
FixedTimeslotTask *originalTask(reinterpret_cast<FixedTimeslotTask*>(argument));
|
||||||
reinterpret_cast<FixedTimeslotTask*>(argument));
|
|
||||||
// Task should not start until explicitly requested
|
// Task should not start until explicitly requested
|
||||||
// in FreeRTOS, tasks start as soon as they are created if the scheduler is running
|
// in FreeRTOS, tasks start as soon as they are created if the scheduler is running
|
||||||
// but not if the scheduler is not running.
|
// but not if the scheduler is not running.
|
||||||
@ -58,6 +57,11 @@ ReturnValue_t FixedTimeslotTask::startTask() {
|
|||||||
|
|
||||||
ReturnValue_t FixedTimeslotTask::addSlot(object_id_t componentId,
|
ReturnValue_t FixedTimeslotTask::addSlot(object_id_t componentId,
|
||||||
uint32_t slotTimeMs, int8_t executionStep) {
|
uint32_t slotTimeMs, int8_t executionStep) {
|
||||||
|
if (!objectManager->get<ExecutableObjectIF>(componentId)) {
|
||||||
|
error << "Component " << std::hex << componentId << " not found, not adding it to pst" << std::endl;
|
||||||
|
return HasReturnvaluesIF::RETURN_FAILED;
|
||||||
|
}
|
||||||
|
|
||||||
pst.addSlot(componentId, slotTimeMs, executionStep, this);
|
pst.addSlot(componentId, slotTimeMs, executionStep, this);
|
||||||
return HasReturnvaluesIF::RETURN_OK;
|
return HasReturnvaluesIF::RETURN_OK;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user