SDC manager and core controller refactoring
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good

This commit is contained in:
2021-08-05 18:13:32 +02:00
parent 7f327c3900
commit 05088ce02c
7 changed files with 303 additions and 102 deletions

View File

@ -8,6 +8,8 @@
#include "events/subsystemIdRanges.h"
class Timer;
class SdCardManager;
class CoreController: public ExtendedControllerBase {
public:
@ -32,6 +34,7 @@ public:
CoreController(object_id_t objectId);
virtual~ CoreController();
ReturnValue_t initialize() override;
@ -56,11 +59,32 @@ private:
ReturnValue_t checkModeCommand(Mode_t mode, Submode_t submode,
uint32_t *msToReachTheMode);
ReturnValue_t initSdCard();
ReturnValue_t sdCardSetup(SdCardManager& sdcMan, SdCardManager::SdStatusPair& statusPair,
sd::SdCard sdCard, sd::SdStatus status, std::string sdString);
// States for non-blocking setup
enum class SdStates {
NONE,
START,
GET_INFO,
SET_STATE,
MOUNT,
UPDATE_INFO,
DONE
};
static constexpr bool BLOCKING_SD_INIT = true;
SdCardManager* sdcMan = nullptr;
uint16_t sdcInitCycleCount = 0;
ReturnValue_t initSdCardBlocking();
ReturnValue_t initSdCardNonBlocking();
sd::SdCard preferredSdCard = sd::SdCard::NONE;
SdStates state = SdStates::START;
SdCardManager::SdStatusPair statusPair;
bool commandExecuted = true;
bool sdInitFinished = false;
ReturnValue_t sdCardSetup(SdCardManager::SdStatusPair& statusPair,
sd::SdCard sdCard, std::string sdString);
ReturnValue_t sdCardColdRedundantInit(SdCardManager* sdcMan,
SdCardManager::SdStatusPair& statusPair);
SdCardManager::SdStatusPair& statusPair, SdStates step = SdStates::NONE);
void determinePreferredSdCard();
ReturnValue_t initVersionFile();
ReturnValue_t initBootCopy();