A lot of stuff
All checks were successful
EIVE/eive-obsw/pipeline/pr-develop This commit looks good

- refactored and simplified RW assemblies
- create separate SPI Com IF for RWs
- Update .cproject file: Fixed to decrease indexer parsing times
This commit is contained in:
2022-05-11 01:48:26 +02:00
parent df7e0007d0
commit 91b69eacf6
12 changed files with 192 additions and 1059 deletions

View File

@ -32,6 +32,7 @@ void RwAssembly::performChildOperation() {
ReturnValue_t RwAssembly::commandChildren(Mode_t mode, Submode_t submode) {
ReturnValue_t result = RETURN_OK;
modeTransitionFailedSwitch = true;
// Initialize the mode table to ensure all devices are in a defined state
for (uint8_t idx = 0; idx < NUMBER_RWS; idx++) {
modeTable[idx].setMode(MODE_OFF);
@ -51,7 +52,7 @@ ReturnValue_t RwAssembly::checkChildrenStateOn(Mode_t wantedMode, Submode_t want
int devsInCorrectMode = 0;
try {
for (uint8_t idx = 0; idx < NUMBER_RWS; idx++) {
if (childrenMap.at(helper.rwIds[idx]).mode != wantedMode) {
if (childrenMap.at(helper.rwIds[idx]).mode == wantedMode) {
devsInCorrectMode++;
}
}
@ -181,7 +182,10 @@ void RwAssembly::handleModeTransitionFailed(ReturnValue_t result) {
if (targetMode == MODE_OFF) {
AssemblyBase::handleModeTransitionFailed(result);
} else {
// To avoid transitioning back to off
triggerEvent(MODE_TRANSITION_FAILED, result);
if (modeTransitionFailedSwitch) {
// To avoid transitioning back to off
triggerEvent(MODE_TRANSITION_FAILED, result);
modeTransitionFailedSwitch = false;
}
}
}