that should get the job done
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
This commit is contained in:
parent
9c1eee075c
commit
404a1009ed
@ -26,6 +26,11 @@ will consitute of a breaking change warranting a new major release:
|
|||||||
|
|
||||||
- Missing `nullptr` checks for PLOC Supervisor handler, which could lead to crashes.
|
- Missing `nullptr` checks for PLOC Supervisor handler, which could lead to crashes.
|
||||||
|
|
||||||
|
## Added
|
||||||
|
|
||||||
|
- Activate Xiphos WDT with a timeout period of 60 seconds using the `libxiphos` API. The WDT
|
||||||
|
calls are done by the new `XiphosWdtHandler` object.
|
||||||
|
|
||||||
# [v6.6.0] 2023-09-18
|
# [v6.6.0] 2023-09-18
|
||||||
|
|
||||||
## Changed
|
## Changed
|
||||||
|
@ -19,11 +19,20 @@ ReturnValue_t XiphosWdtHandler::initialize() {
|
|||||||
<< " seconds failed with code " << result << ": " << strerror(result) << std::endl;
|
<< " seconds failed with code " << result << ": " << strerror(result) << std::endl;
|
||||||
return ObjectManagerIF::CHILD_INIT_FAILED;
|
return ObjectManagerIF::CHILD_INIT_FAILED;
|
||||||
}
|
}
|
||||||
result = xsc_watchdog_enable(wdtHandle);
|
int nowayout = 0;
|
||||||
if (result != 0) {
|
int status = 0;
|
||||||
sif::error << "XiphosWdtHandler: Enabling WDT failed with code " << result << ": "
|
result = xsc_watchdog_get_status(&nowayout, &status);
|
||||||
<< strerror(result) << std::endl;
|
if (result == 0) {
|
||||||
return ObjectManagerIF::CHILD_INIT_FAILED;
|
if (status == 0) {
|
||||||
|
result = xsc_watchdog_enable(wdtHandle);
|
||||||
|
if (result != 0) {
|
||||||
|
sif::error << "XiphosWdtHandler: Enabling WDT failed with code " << result << ": "
|
||||||
|
<< strerror(result) << std::endl;
|
||||||
|
return ObjectManagerIF::CHILD_INIT_FAILED;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
sif::warning << "XiphosWdtHandler: Getting WDT status failed" << std::endl;
|
||||||
}
|
}
|
||||||
return returnvalue::OK;
|
return returnvalue::OK;
|
||||||
}
|
}
|
||||||
|
@ -82,8 +82,10 @@ void scheduling::initTasks() {
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// Medium priority, higher than something like payload, but not the highest priority to also
|
||||||
|
// detect tasks which choke other tasks.
|
||||||
PeriodicTaskIF* xiphosWdtTask =
|
PeriodicTaskIF* xiphosWdtTask =
|
||||||
factory->createPeriodicTask("XIPHOS_WDT", 90, PeriodicTaskIF::MINIMUM_STACK_SIZE, 0.4,
|
factory->createPeriodicTask("XIPHOS_WDT", 40, PeriodicTaskIF::MINIMUM_STACK_SIZE, 0.4,
|
||||||
missedDeadlineFunc, &RR_SCHEDULING);
|
missedDeadlineFunc, &RR_SCHEDULING);
|
||||||
result = xiphosWdtTask->addComponent(objects::XIPHOS_WDT);
|
result = xiphosWdtTask->addComponent(objects::XIPHOS_WDT);
|
||||||
if (result != returnvalue::OK) {
|
if (result != returnvalue::OK) {
|
||||||
|
Loading…
Reference in New Issue
Block a user