This commit is contained in:
parent
2c3c3c76af
commit
ff243fa46c
@ -217,14 +217,16 @@ ReturnValue_t CoreController::executeAction(ActionId_t actionId, MessageQueueId_
|
||||
return executeSwUpdate(SwUpdateSources::TMP_DIR, data, size);
|
||||
}
|
||||
case (SWITCH_TO_SD_0): {
|
||||
if (not startSdStateMachine(sd::SdCard::SLOT_0, SdCfgMode::COLD_REDUNDANT)) {
|
||||
if (not startSdStateMachine(sd::SdCard::SLOT_0, SdCfgMode::COLD_REDUNDANT, commandedBy,
|
||||
actionId)) {
|
||||
return HasActionsIF::IS_BUSY;
|
||||
}
|
||||
// Completion will be reported by SD card state machine
|
||||
return returnvalue::OK;
|
||||
}
|
||||
case (SWITCH_TO_SD_1): {
|
||||
if (not startSdStateMachine(sd::SdCard::SLOT_1, SdCfgMode::COLD_REDUNDANT)) {
|
||||
if (not startSdStateMachine(sd::SdCard::SLOT_1, SdCfgMode::COLD_REDUNDANT, commandedBy,
|
||||
actionId)) {
|
||||
return HasActionsIF::IS_BUSY;
|
||||
}
|
||||
// Completion will be reported by SD card state machine
|
||||
@ -240,7 +242,7 @@ ReturnValue_t CoreController::executeAction(ActionId_t actionId, MessageQueueId_
|
||||
return HasActionsIF::INVALID_PARAMETERS;
|
||||
}
|
||||
auto active = static_cast<sd::SdCard>(data[0]);
|
||||
if (not startSdStateMachine(active, SdCfgMode::HOT_REDUNDANT)) {
|
||||
if (not startSdStateMachine(active, SdCfgMode::HOT_REDUNDANT, commandedBy, actionId)) {
|
||||
return HasActionsIF::IS_BUSY;
|
||||
}
|
||||
// Completion will be reported by SD card state machine
|
||||
@ -393,7 +395,7 @@ ReturnValue_t CoreController::sdStateMachine() {
|
||||
sif::warning << "Getting SD card activity status failed" << std::endl;
|
||||
}
|
||||
if (sdInfo.cfgMode == SdCfgMode::COLD_REDUNDANT) {
|
||||
sif::info << "Cold redundant SD card configuration, preferred SD card: "
|
||||
sif::info << "Cold redundant SD card configuration, target SD card: "
|
||||
<< static_cast<int>(sdInfo.active) << std::endl;
|
||||
}
|
||||
if (sdInfo.activeState == sd::SdState::MOUNTED) {
|
||||
@ -1958,13 +1960,16 @@ ReturnValue_t CoreController::executeSwUpdate(SwUpdateSources sourceDir, const u
|
||||
return HasActionsIF::EXECUTION_FINISHED;
|
||||
}
|
||||
|
||||
bool CoreController::startSdStateMachine(sd::SdCard targetActiveSd, SdCfgMode mode) {
|
||||
bool CoreController::startSdStateMachine(sd::SdCard targetActiveSd, SdCfgMode mode,
|
||||
MessageQueueId_t commander, DeviceCommandId_t actionId) {
|
||||
if (sdFsmState != SdStates::IDLE or sdCommandingInfo.cmdPending) {
|
||||
return false;
|
||||
}
|
||||
sdFsmState = SdStates::START;
|
||||
sdInfo.active = targetActiveSd;
|
||||
sdInfo.cfgMode = mode;
|
||||
sdCommandingInfo.actionId = actionId;
|
||||
sdCommandingInfo.commander = commander;
|
||||
sdCommandingInfo.cmdPending = true;
|
||||
return true;
|
||||
}
|
||||
|
@ -233,7 +233,8 @@ class CoreController : public ExtendedControllerBase {
|
||||
ReturnValue_t initBootCopy();
|
||||
ReturnValue_t initWatchdogFifo();
|
||||
ReturnValue_t initSdCardBlocking();
|
||||
bool startSdStateMachine(sd::SdCard targetActiveSd, SdCfgMode mode);
|
||||
bool startSdStateMachine(sd::SdCard targetActiveSd, SdCfgMode mode, MessageQueueId_t commander,
|
||||
DeviceCommandId_t actionId);
|
||||
void initPrint();
|
||||
|
||||
ReturnValue_t sdStateMachine();
|
||||
|
Loading…
Reference in New Issue
Block a user