|
|
|
@ -204,12 +204,13 @@ void scheduling::initTasks() {
|
|
|
|
|
scheduling::printAddObjectError("CFDP_STORE_AND_TM", objects::CFDP_STORE_AND_TM_TASK);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// TODO: Use user priorities for this task.
|
|
|
|
|
#if OBSW_ADD_CFDP_COMPONENTS == 1
|
|
|
|
|
PeriodicTaskIF* cfdpTask = factory->createPeriodicTask(
|
|
|
|
|
"CFDP Handler", 45, PeriodicTaskIF::MINIMUM_STACK_SIZE, 0.4, missedDeadlineFunc);
|
|
|
|
|
"CFDP", 45, PeriodicTaskIF::MINIMUM_STACK_SIZE, 0.4, missedDeadlineFunc);
|
|
|
|
|
result = cfdpTask->addComponent(objects::CFDP_HANDLER);
|
|
|
|
|
if (result != returnvalue::OK) {
|
|
|
|
|
scheduling::printAddObjectError("CFDP Handler", objects::CFDP_HANDLER);
|
|
|
|
|
scheduling::printAddObjectError("CFDP", objects::CFDP_HANDLER);
|
|
|
|
|
}
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
@ -231,7 +232,7 @@ void scheduling::initTasks() {
|
|
|
|
|
|
|
|
|
|
#if OBSW_ADD_RW == 1
|
|
|
|
|
PeriodicTaskIF* rwPolling = factory->createPeriodicTask(
|
|
|
|
|
"RW_POLLING_TASK", 85, PeriodicTaskIF::MINIMUM_STACK_SIZE * 2, 0.4, missedDeadlineFunc);
|
|
|
|
|
"RW_POLLING_TASK", 80, PeriodicTaskIF::MINIMUM_STACK_SIZE * 2, 0.4, missedDeadlineFunc);
|
|
|
|
|
result = rwPolling->addComponent(objects::RW_POLLING_TASK);
|
|
|
|
|
if (result != returnvalue::OK) {
|
|
|
|
|
scheduling::printAddObjectError("RW_POLLING_TASK", objects::RW_POLLING_TASK);
|
|
|
|
@ -306,6 +307,15 @@ void scheduling::initTasks() {
|
|
|
|
|
}
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#if OBSW_ADD_SYRLINKS == 1
|
|
|
|
|
PeriodicTaskIF* syrlinksCom = factory->createPeriodicTask(
|
|
|
|
|
"SYRLINKS_COM", 60, PeriodicTaskIF::MINIMUM_STACK_SIZE, 1.0, missedDeadlineFunc);
|
|
|
|
|
result = syrlinksCom->addComponent(objects::SYRLINKS_COM_HANDLER);
|
|
|
|
|
if (result != returnvalue::OK) {
|
|
|
|
|
scheduling::printAddObjectError("SYRLINKS_COM", objects::SYRLINKS_COM_HANDLER);
|
|
|
|
|
}
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#if OBSW_ADD_STAR_TRACKER == 1
|
|
|
|
|
// Relatively high priority to make sure STR COM works well.
|
|
|
|
|
PeriodicTaskIF* strHelperTask = factory->createPeriodicTask(
|
|
|
|
@ -316,6 +326,7 @@ void scheduling::initTasks() {
|
|
|
|
|
}
|
|
|
|
|
#endif /* OBSW_ADD_STAR_TRACKER == 1 */
|
|
|
|
|
|
|
|
|
|
// TODO: Use regular scheduler for this task
|
|
|
|
|
#if OBSW_ADD_PLOC_MPSOC == 1
|
|
|
|
|
PeriodicTaskIF* mpsocHelperTask = factory->createPeriodicTask(
|
|
|
|
|
"PLOC_MPSOC_HELPER", 20, PeriodicTaskIF::MINIMUM_STACK_SIZE, 0.2, missedDeadlineFunc);
|
|
|
|
@ -325,6 +336,7 @@ void scheduling::initTasks() {
|
|
|
|
|
}
|
|
|
|
|
#endif /* OBSW_ADD_PLOC_MPSOC */
|
|
|
|
|
|
|
|
|
|
// TODO: Use regular scheduler for this task
|
|
|
|
|
#if OBSW_ADD_PLOC_SUPERVISOR == 1
|
|
|
|
|
PeriodicTaskIF* supvHelperTask = factory->createPeriodicTask(
|
|
|
|
|
"PLOC_SUPV_HELPER", 10, PeriodicTaskIF::MINIMUM_STACK_SIZE, 1.0, missedDeadlineFunc);
|
|
|
|
@ -335,7 +347,7 @@ void scheduling::initTasks() {
|
|
|
|
|
#endif /* OBSW_ADD_PLOC_SUPERVISOR */
|
|
|
|
|
|
|
|
|
|
PeriodicTaskIF* plTask = factory->createPeriodicTask(
|
|
|
|
|
"PL_TASK", 30, PeriodicTaskIF::MINIMUM_STACK_SIZE, 0.8, missedDeadlineFunc);
|
|
|
|
|
"PL_TASK", 25, PeriodicTaskIF::MINIMUM_STACK_SIZE, 0.8, missedDeadlineFunc);
|
|
|
|
|
plTask->addComponent(objects::CAM_SWITCHER);
|
|
|
|
|
scheduling::addMpsocSupvHandlers(plTask);
|
|
|
|
|
scheduling::scheduleScexDev(plTask);
|
|
|
|
@ -402,6 +414,9 @@ void scheduling::initTasks() {
|
|
|
|
|
#if OBSW_ADD_ACS_BOARD == 1
|
|
|
|
|
acsBrdPolling->startTask();
|
|
|
|
|
#endif
|
|
|
|
|
#if OBSW_ADD_SYRLINKS == 1
|
|
|
|
|
syrlinksCom->startTask();
|
|
|
|
|
#endif
|
|
|
|
|
#if OBSW_ADD_MGT == 1
|
|
|
|
|
imtqPolling->startTask();
|
|
|
|
|
#endif
|
|
|
|
@ -487,7 +502,7 @@ void scheduling::createPstTasks(TaskFactory& factory, TaskDeadlineMissedFunction
|
|
|
|
|
|
|
|
|
|
#if OBSW_ADD_I2C_TEST_CODE == 0
|
|
|
|
|
FixedTimeslotTaskIF* i2cPst = factory.createFixedTimeslotTask(
|
|
|
|
|
"I2C_PST", 50, PeriodicTaskIF::MINIMUM_STACK_SIZE * 4, 0.4, missedDeadlineFunc);
|
|
|
|
|
"I2C_PST", 60, PeriodicTaskIF::MINIMUM_STACK_SIZE * 4, 0.4, missedDeadlineFunc);
|
|
|
|
|
result = pst::pstI2cProcessingSystem(i2cPst);
|
|
|
|
|
if (result != returnvalue::OK) {
|
|
|
|
|
if (result == FixedTimeslotTaskIF::SLOT_LIST_EMPTY) {
|
|
|
|
@ -527,11 +542,11 @@ void scheduling::createPusTasks(TaskFactory& factory, TaskDeadlineMissedFunction
|
|
|
|
|
}
|
|
|
|
|
result = pusHighPrio->addComponent(objects::EVENT_MANAGER);
|
|
|
|
|
if (result != returnvalue::OK) {
|
|
|
|
|
scheduling::printAddObjectError("PUS_MGMT", objects::EVENT_MANAGER);
|
|
|
|
|
scheduling::printAddObjectError("EVENT_MGMT", objects::EVENT_MANAGER);
|
|
|
|
|
}
|
|
|
|
|
result = pusHighPrio->addComponent(objects::PUS_SERVICE_9_TIME_MGMT);
|
|
|
|
|
if (result != returnvalue::OK) {
|
|
|
|
|
scheduling::printAddObjectError("PUS_9", objects::PUS_SERVICE_9_TIME_MGMT);
|
|
|
|
|
scheduling::printAddObjectError("PUS_TIME", objects::PUS_SERVICE_9_TIME_MGMT);
|
|
|
|
|
}
|
|
|
|
|
taskVec.push_back(pusHighPrio);
|
|
|
|
|
|
|
|
|
|