SDC manager and core controller refactoring
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
This commit is contained in:
@ -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();
|
||||
|
Reference in New Issue
Block a user