From c291caba7dc270faba10b40ae47a76b793101f72 Mon Sep 17 00:00:00 2001 From: Jakob Meier Date: Thu, 19 Jan 2023 11:01:59 +0100 Subject: [PATCH 01/16] comment --- linux/ipcore/PdecConfig.cpp | 4 ++++ mission/devices/Max31865EiveHandler.cpp | 1 + 2 files changed, 5 insertions(+) diff --git a/linux/ipcore/PdecConfig.cpp b/linux/ipcore/PdecConfig.cpp index 321e5940..21de4610 100644 --- a/linux/ipcore/PdecConfig.cpp +++ b/linux/ipcore/PdecConfig.cpp @@ -9,8 +9,12 @@ PdecConfig::~PdecConfig() {} void PdecConfig::initialize() { uint32_t word = 0; word |= (VERSION_ID << 30); + + // Setting the bypass flag and the control command flag should not have any + // implication on the operation of the PDEC IP Core word |= (BYPASS_FLAG << 29); word |= (CONTROL_COMMAND_FLAG << 28); + word |= (RESERVED_FIELD_A << 26); word |= (SPACECRAFT_ID << 16); word |= (VIRTUAL_CHANNEL << 10); diff --git a/mission/devices/Max31865EiveHandler.cpp b/mission/devices/Max31865EiveHandler.cpp index db6f5a83..95dbe214 100644 --- a/mission/devices/Max31865EiveHandler.cpp +++ b/mission/devices/Max31865EiveHandler.cpp @@ -100,6 +100,7 @@ void Max31865EiveHandler::simpleCommand(EiveMax31855::RtdCommands cmd) { rawPacket = cmdBuf.data(); rawPacketLen = 1; } + void Max31865EiveHandler::doTransition(Mode_t modeFrom, Submode_t subModeFrom) { if (getMode() == _MODE_TO_NORMAL) { if (state != InternalState::ACTIVE) { From cc6c25cba6caaf05a6fb6925e7d56aff5265afc4 Mon Sep 17 00:00:00 2001 From: Jakob Meier Date: Thu, 19 Jan 2023 13:20:24 +0100 Subject: [PATCH 02/16] command to rewrite config of RTDs --- linux/devices/Max31865RtdLowlevelHandler.cpp | 10 ++++++++-- mission/devices/Max31865EiveHandler.cpp | 7 +++---- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/linux/devices/Max31865RtdLowlevelHandler.cpp b/linux/devices/Max31865RtdLowlevelHandler.cpp index 38a9ac11..e75dfbee 100644 --- a/linux/devices/Max31865RtdLowlevelHandler.cpp +++ b/linux/devices/Max31865RtdLowlevelHandler.cpp @@ -143,7 +143,7 @@ ReturnValue_t Max31865RtdReader::periodicReadHandling() { auto result = returnvalue::OK; MutexGuard mg(readerMutex); if (mg.getLockResult() != returnvalue::OK) { - sif::warning << "Max31865RtdReader::periodicReadReqHandling: Mutex lock failed" << std::endl; + sif::warning << "Max31865RtdReader::periodicReadHandling: Mutex lock failed" << std::endl; return returnvalue::FAILED; } // Now read the RTD values @@ -282,7 +282,13 @@ ReturnValue_t Max31865RtdReader::sendMessage(CookieIF* cookie, const uint8_t* se } break; } - case (EiveMax31855::RtdCommands::CFG): + case (EiveMax31855::RtdCommands::CFG): { + ReturnValue_t result = writeCfgReg(rtdCookie->spiCookie, BASE_CFG); + if (result != returnvalue::OK) { + handleSpiError(rtdCookie, result, "writeCfgReg"); + } + break; + } default: { // TODO: Only implement if needed break; diff --git a/mission/devices/Max31865EiveHandler.cpp b/mission/devices/Max31865EiveHandler.cpp index 95dbe214..433f7b58 100644 --- a/mission/devices/Max31865EiveHandler.cpp +++ b/mission/devices/Max31865EiveHandler.cpp @@ -69,7 +69,8 @@ ReturnValue_t Max31865EiveHandler::buildCommandFromCommand(DeviceCommandId_t dev switch (cmdTyped) { case (EiveMax31855::RtdCommands::ON): case (EiveMax31855::RtdCommands::ACTIVE): - case (EiveMax31855::RtdCommands::OFF): { + case (EiveMax31855::RtdCommands::OFF): + case (EiveMax31855::RtdCommands::CFG): { simpleCommand(cmdTyped); break; } @@ -77,9 +78,6 @@ ReturnValue_t Max31865EiveHandler::buildCommandFromCommand(DeviceCommandId_t dev case (EiveMax31855::RtdCommands::HIGH_TRESHOLD): { break; } - case (EiveMax31855::RtdCommands::CFG): { - break; - } default: return NOTHING_TO_SEND; } @@ -118,6 +116,7 @@ void Max31865EiveHandler::fillCommandAndReplyMap() { insertInCommandMap(EiveMax31855::RtdCommands::ON); insertInCommandMap(EiveMax31855::RtdCommands::ACTIVE); insertInCommandMap(EiveMax31855::RtdCommands::OFF); + insertInCommandMap(EiveMax31855::RtdCommands::CFG); insertInReplyMap(EiveMax31855::RtdCommands::EXCHANGE_SET_ID, 200, &sensorDataset, 0, true); } From 586cca2f39a294e52d54bdc62b8198cb998c5e6a Mon Sep 17 00:00:00 2001 From: Jakob Meier Date: Thu, 19 Jan 2023 13:22:05 +0100 Subject: [PATCH 03/16] tmtc update --- tmtc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tmtc b/tmtc index 43e6f0ce..88731237 160000 --- a/tmtc +++ b/tmtc @@ -1 +1 @@ -Subproject commit 43e6f0cefa2fd5dfe1f885ca9b818e1486dda568 +Subproject commit 887312371bbc7aad5f8fba1532cf5fc0d2d0470d From 111a91d98e3e120426047533922a6b046069bb42 Mon Sep 17 00:00:00 2001 From: Jakob Meier Date: Thu, 19 Jan 2023 16:42:47 +0100 Subject: [PATCH 04/16] periodically rewrite config byte --- linux/devices/Max31865RtdLowlevelHandler.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/linux/devices/Max31865RtdLowlevelHandler.cpp b/linux/devices/Max31865RtdLowlevelHandler.cpp index e75dfbee..eb15f8f8 100644 --- a/linux/devices/Max31865RtdLowlevelHandler.cpp +++ b/linux/devices/Max31865RtdLowlevelHandler.cpp @@ -154,6 +154,10 @@ ReturnValue_t Max31865RtdReader::periodicReadHandling() { if (rtdIsActive(rtd->idx)) { uint16_t rtdVal = 0; bool faultBitSet = false; + result = writeCfgReg(rtd->spiCookie, BASE_CFG); + if (result != returnvalue::OK) { + handleSpiError(rtd, result, "writeCfgReg"); + } result = readRtdVal(rtd->spiCookie, rtdVal, faultBitSet); if (result != returnvalue::OK) { handleSpiError(rtd, result, "readRtdVal"); From 3751646c2ba7d7265aacbd01707071050f0a425a Mon Sep 17 00:00:00 2001 From: Jakob Meier Date: Thu, 19 Jan 2023 17:04:43 +0100 Subject: [PATCH 05/16] tmtc update --- tmtc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tmtc b/tmtc index 88731237..f3c0b756 160000 --- a/tmtc +++ b/tmtc @@ -1 +1 @@ -Subproject commit 887312371bbc7aad5f8fba1532cf5fc0d2d0470d +Subproject commit f3c0b7567aec22db02a07d76548617b8d163fb29 From 5670af71988b4c960ab402570f5113eff9462af9 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Fri, 20 Jan 2023 10:44:44 +0100 Subject: [PATCH 06/16] bump changelog --- CHANGELOG.md | 1 + linux/devices/Max31865RtdLowlevelHandler.cpp | 12 ++++++------ 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 152bbead..495842c3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -22,6 +22,7 @@ list yields a list of all related PRs for each release. - The ACS Controller Gyro Sets (raw and processed) and the MEKF dataset are diagnostics now. - Bumped FSFW for Service 11 improvement which includes size and CRC check for contained TC - Syrlinks module now always included for both EM and FM +- RTD: Config is now written before each temperature request. ## Fixed diff --git a/linux/devices/Max31865RtdLowlevelHandler.cpp b/linux/devices/Max31865RtdLowlevelHandler.cpp index eb15f8f8..14ef9659 100644 --- a/linux/devices/Max31865RtdLowlevelHandler.cpp +++ b/linux/devices/Max31865RtdLowlevelHandler.cpp @@ -156,7 +156,7 @@ ReturnValue_t Max31865RtdReader::periodicReadHandling() { bool faultBitSet = false; result = writeCfgReg(rtd->spiCookie, BASE_CFG); if (result != returnvalue::OK) { - handleSpiError(rtd, result, "writeCfgReg"); + handleSpiError(rtd, result, "writeCfgReg"); } result = readRtdVal(rtd->spiCookie, rtdVal, faultBitSet); if (result != returnvalue::OK) { @@ -287,11 +287,11 @@ ReturnValue_t Max31865RtdReader::sendMessage(CookieIF* cookie, const uint8_t* se break; } case (EiveMax31855::RtdCommands::CFG): { - ReturnValue_t result = writeCfgReg(rtdCookie->spiCookie, BASE_CFG); - if (result != returnvalue::OK) { - handleSpiError(rtdCookie, result, "writeCfgReg"); - } - break; + ReturnValue_t result = writeCfgReg(rtdCookie->spiCookie, BASE_CFG); + if (result != returnvalue::OK) { + handleSpiError(rtdCookie, result, "writeCfgReg"); + } + break; } default: { // TODO: Only implement if needed From 694d6260817f0c5fb8448dffa6731e9967736705 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Fri, 20 Jan 2023 11:51:29 +0100 Subject: [PATCH 07/16] some fixes, this should work now --- common/config/eive/definitions.h | 2 +- fsfw | 2 +- .../devices/SolarArrayDeploymentHandler.cpp | 12 ++++++--- mission/devices/SolarArrayDeploymentHandler.h | 26 ++++++++++++++----- tmtc | 2 +- 5 files changed, 30 insertions(+), 14 deletions(-) diff --git a/common/config/eive/definitions.h b/common/config/eive/definitions.h index 33d37812..1bf2fc77 100644 --- a/common/config/eive/definitions.h +++ b/common/config/eive/definitions.h @@ -39,7 +39,7 @@ static constexpr uint32_t SA_DEPL_INIT_BUFFER_SECS = 120; static constexpr uint32_t SA_DEPL_BURN_TIME_SECS = 180; static constexpr uint32_t SA_DEPL_WAIT_TIME_SECS = 45 * 60; // HW constraints (current limit) mean that the GPIO channels need to be switched on in alternation -static constexpr uint32_t SA_DEPL_CHANNEL_ALTERNATION_INTERVAL_SECS = 5; +static constexpr uint32_t LEGACY_SA_DEPL_CHANNEL_ALTERNATION_INTERVAL_SECS = 5; // Maximum allowed burn time allowed by the software. static constexpr uint32_t SA_DEPL_MAX_BURN_TIME = 180; diff --git a/fsfw b/fsfw index accaf855..bd189518 160000 --- a/fsfw +++ b/fsfw @@ -1 +1 @@ -Subproject commit accaf855ee53d3dc429d7bcdf1b7b89768c166b6 +Subproject commit bd189518b6f91f25db1845e2657101e6bf46eec0 diff --git a/mission/devices/SolarArrayDeploymentHandler.cpp b/mission/devices/SolarArrayDeploymentHandler.cpp index 5656692d..26ae987f 100644 --- a/mission/devices/SolarArrayDeploymentHandler.cpp +++ b/mission/devices/SolarArrayDeploymentHandler.cpp @@ -103,6 +103,7 @@ void SolarArrayDeploymentHandler::handleStateMachine() { } sif::info << "S/A Deployment: Burning" << std::endl; triggerEvent(BURN_PHASE_START, fsmInfo.burnCountdownMs, fsmInfo.dryRun); + channelAlternationCd.resetTimer(); stateMachine = BURNING; } if (stateMachine == BURNING) { @@ -219,7 +220,8 @@ bool SolarArrayDeploymentHandler::autonomousDeplForFile(sd::SdCard sdCard, const if (stateSwitch or firstAutonomousCycle) { if (deplState == AutonomousDeplState::FIRST_BURN or deplState == AutonomousDeplState::SECOND_BURN) { - startFsmOn(config::SA_DEPL_BURN_TIME_SECS, dryRun); + startFsmOn(config::SA_DEPL_BURN_TIME_SECS, (config::SA_DEPL_BURN_TIME_SECS / 2) * 1000, + dryRun); } else if (deplState == AutonomousDeplState::WAIT or deplState == AutonomousDeplState::DONE or deplState == AutonomousDeplState::INIT) { startFsmOff(); @@ -283,10 +285,12 @@ bool SolarArrayDeploymentHandler::checkMainPower(bool onOff) { return false; } -bool SolarArrayDeploymentHandler::startFsmOn(uint32_t burnCountdownSecs, bool dryRun) { +bool SolarArrayDeploymentHandler::startFsmOn(uint32_t burnCountdownSecs, + uint32_t channelAlternationIntervalMs, bool dryRun) { if (stateMachine != StateMachine::IDLE) { return false; } + channelAlternationCd.setTimeout(channelAlternationIntervalMs); if (burnCountdownSecs > config::SA_DEPL_MAX_BURN_TIME) { burnCountdownSecs = config::SA_DEPL_MAX_BURN_TIME; } @@ -354,8 +358,8 @@ ReturnValue_t SolarArrayDeploymentHandler::executeAction(ActionId_t actionId, if (result != returnvalue::OK) { return result; } - uint32_t burnCountdown = cmd.getBurnTime(); - if (not startFsmOn(burnCountdown, cmd.isDryRun())) { + uint32_t burnCountdown = cmd.getBurnTimeSecs(); + if (not startFsmOn(burnCountdown, cmd.getSwitchIntervalMs(), cmd.isDryRun())) { return HasActionsIF::IS_BUSY; } actionActive = true; diff --git a/mission/devices/SolarArrayDeploymentHandler.h b/mission/devices/SolarArrayDeploymentHandler.h index b935b096..ddb91ab9 100644 --- a/mission/devices/SolarArrayDeploymentHandler.h +++ b/mission/devices/SolarArrayDeploymentHandler.h @@ -28,16 +28,20 @@ class ManualDeploymentCommand : public SerialLinkedListAdapter { ManualDeploymentCommand() { setLinks(); } void setLinks() { - setStart(&burnTime); - burnTime.setNext(&dryRun); + setStart(&burnTimeSecs); + burnTimeSecs.setNext(&switchIntervalMs); + burnTimeSecs.setNext(&dryRun); } - uint32_t getBurnTime() const { return burnTime.entry; } + uint32_t getBurnTimeSecs() const { return burnTimeSecs.entry; } + + uint32_t getSwitchIntervalMs() const { return switchIntervalMs.entry; }; bool isDryRun() const { return dryRun.entry; } private: - SerializeElement burnTime; + SerializeElement burnTimeSecs; + SerializeElement switchIntervalMs; SerializeElement dryRun; }; @@ -50,7 +54,14 @@ class SolarArrayDeploymentHandler : public ExecutableObjectIF, public SystemObject, public HasActionsIF { public: - //! Manual deployment of the solar arrays. Burn time and channels are supplied with TC parameters + //! Manual deployment of the solar arrays. Burn time, channel switch interval and dry run flag + //! are supplied as parameters. There are following cases to consider + //! + //! - Channel switch interval greater or equal to burn time: Only burn one channel + //! - Channel switch interval half of burn time: Burn each channel for half of the burn time. + //! + //! The dry run flag can be used to avoid actually toggling IO pins and only test the + //! application logic. static constexpr DeviceCommandId_t DEPLOY_SOLAR_ARRAYS_MANUALLY = 0x05; static constexpr DeviceCommandId_t SWITCH_OFF_DEPLOYMENT = 0x06; @@ -157,7 +168,7 @@ class SolarArrayDeploymentHandler : public ExecutableObjectIF, PeriodicOperationDivider opDivider = PeriodicOperationDivider(5); uint8_t retryCounter = 3; - bool startFsmOn(uint32_t burnCountdownSecs, bool dryRun); + bool startFsmOn(uint32_t burnCountdownSecs, uint32_t channelAlternationIntervalMs, bool dryRun); void startFsmOff(); void finishFsm(ReturnValue_t resultForActionHelper); @@ -175,8 +186,9 @@ class SolarArrayDeploymentHandler : public ExecutableObjectIF, */ Countdown burnCountdown; + // Only initial value, new approach is to burn each channel half of the total burn time. Countdown channelAlternationCd = - Countdown(config::SA_DEPL_CHANNEL_ALTERNATION_INTERVAL_SECS * 1000); + Countdown(config::LEGACY_SA_DEPL_CHANNEL_ALTERNATION_INTERVAL_SECS * 1000); /** * The message queue id of the component commanding an action will be stored in this variable. diff --git a/tmtc b/tmtc index f3c0b756..2b5ad32f 160000 --- a/tmtc +++ b/tmtc @@ -1 +1 @@ -Subproject commit f3c0b7567aec22db02a07d76548617b8d163fb29 +Subproject commit 2b5ad32fdd56d38e8318027b67d091d9e0ea3aba From f8196de0891351c2aa2f32d22bb7539b43fe1231 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Fri, 20 Jan 2023 12:24:19 +0100 Subject: [PATCH 08/16] update changelog --- CHANGELOG.md | 5 +++++ .../devices/SolarArrayDeploymentHandler.cpp | 21 +++++++++++++------ mission/devices/SolarArrayDeploymentHandler.h | 10 +++++++-- tmtc | 2 +- 4 files changed, 29 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 152bbead..6a857d28 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -22,6 +22,11 @@ list yields a list of all related PRs for each release. - The ACS Controller Gyro Sets (raw and processed) and the MEKF dataset are diagnostics now. - Bumped FSFW for Service 11 improvement which includes size and CRC check for contained TC - Syrlinks module now always included for both EM and FM +- SA Deployment: Allow specifying the switch interval and the initial channel. This allows testing + the new deployment procedure where each channel is burned for half of the whole burn duration. + It also allows burning only one channel for the whole burn duration. The autonomous mechanism + was adapted to burn each channel for half of the burn time by default. + PR: ## Fixed diff --git a/mission/devices/SolarArrayDeploymentHandler.cpp b/mission/devices/SolarArrayDeploymentHandler.cpp index 26ae987f..2b4e22ac 100644 --- a/mission/devices/SolarArrayDeploymentHandler.cpp +++ b/mission/devices/SolarArrayDeploymentHandler.cpp @@ -97,9 +97,15 @@ void SolarArrayDeploymentHandler::handleStateMachine() { // This should never fail channelAlternationCd.resetTimer(); if (not fsmInfo.dryRun) { - sa2Off(); - sa1On(); - fsmInfo.alternationDummy = true; + if (fsmInfo.initChannel == 0) { + sa2Off(); + sa1On(); + fsmInfo.alternationDummy = true; + } else { + sa1Off(); + sa2On(); + fsmInfo.alternationDummy = false; + } } sif::info << "S/A Deployment: Burning" << std::endl; triggerEvent(BURN_PHASE_START, fsmInfo.burnCountdownMs, fsmInfo.dryRun); @@ -220,7 +226,7 @@ bool SolarArrayDeploymentHandler::autonomousDeplForFile(sd::SdCard sdCard, const if (stateSwitch or firstAutonomousCycle) { if (deplState == AutonomousDeplState::FIRST_BURN or deplState == AutonomousDeplState::SECOND_BURN) { - startFsmOn(config::SA_DEPL_BURN_TIME_SECS, (config::SA_DEPL_BURN_TIME_SECS / 2) * 1000, + startFsmOn(config::SA_DEPL_BURN_TIME_SECS, (config::SA_DEPL_BURN_TIME_SECS / 2) * 1000, 0, dryRun); } else if (deplState == AutonomousDeplState::WAIT or deplState == AutonomousDeplState::DONE or deplState == AutonomousDeplState::INIT) { @@ -286,7 +292,8 @@ bool SolarArrayDeploymentHandler::checkMainPower(bool onOff) { } bool SolarArrayDeploymentHandler::startFsmOn(uint32_t burnCountdownSecs, - uint32_t channelAlternationIntervalMs, bool dryRun) { + uint32_t channelAlternationIntervalMs, + uint8_t initChannel, bool dryRun) { if (stateMachine != StateMachine::IDLE) { return false; } @@ -296,6 +303,7 @@ bool SolarArrayDeploymentHandler::startFsmOn(uint32_t burnCountdownSecs, } fsmInfo.dryRun = dryRun; fsmInfo.burnCountdownMs = burnCountdownSecs * 1000; + fsmInfo.initChannel = initChannel; stateMachine = StateMachine::MAIN_POWER_ON; retryCounter = 0; return true; @@ -359,7 +367,8 @@ ReturnValue_t SolarArrayDeploymentHandler::executeAction(ActionId_t actionId, return result; } uint32_t burnCountdown = cmd.getBurnTimeSecs(); - if (not startFsmOn(burnCountdown, cmd.getSwitchIntervalMs(), cmd.isDryRun())) { + if (not startFsmOn(burnCountdown, cmd.getSwitchIntervalMs(), cmd.getInitChannel(), + cmd.isDryRun())) { return HasActionsIF::IS_BUSY; } actionActive = true; diff --git a/mission/devices/SolarArrayDeploymentHandler.h b/mission/devices/SolarArrayDeploymentHandler.h index ddb91ab9..8e5c32ad 100644 --- a/mission/devices/SolarArrayDeploymentHandler.h +++ b/mission/devices/SolarArrayDeploymentHandler.h @@ -30,18 +30,22 @@ class ManualDeploymentCommand : public SerialLinkedListAdapter { void setLinks() { setStart(&burnTimeSecs); burnTimeSecs.setNext(&switchIntervalMs); - burnTimeSecs.setNext(&dryRun); + switchIntervalMs.setNext(&initChannel); + initChannel.setNext(&dryRun); } uint32_t getBurnTimeSecs() const { return burnTimeSecs.entry; } uint32_t getSwitchIntervalMs() const { return switchIntervalMs.entry; }; + uint8_t getInitChannel() const { return initChannel.entry; }; + bool isDryRun() const { return dryRun.entry; } private: SerializeElement burnTimeSecs; SerializeElement switchIntervalMs; + SerializeElement initChannel; SerializeElement dryRun; }; @@ -130,6 +134,7 @@ class SolarArrayDeploymentHandler : public ExecutableObjectIF, // DeploymentChannels channel; bool dryRun; bool alternationDummy = false; + uint8_t initChannel = 0; uint32_t burnCountdownMs = config::SA_DEPL_MAX_BURN_TIME; }; @@ -168,7 +173,8 @@ class SolarArrayDeploymentHandler : public ExecutableObjectIF, PeriodicOperationDivider opDivider = PeriodicOperationDivider(5); uint8_t retryCounter = 3; - bool startFsmOn(uint32_t burnCountdownSecs, uint32_t channelAlternationIntervalMs, bool dryRun); + bool startFsmOn(uint32_t burnCountdownSecs, uint32_t channelAlternationIntervalMs, + uint8_t initChannel, bool dryRun); void startFsmOff(); void finishFsm(ReturnValue_t resultForActionHelper); diff --git a/tmtc b/tmtc index 2b5ad32f..91272847 160000 --- a/tmtc +++ b/tmtc @@ -1 +1 @@ -Subproject commit 2b5ad32fdd56d38e8318027b67d091d9e0ea3aba +Subproject commit 912728474a11b6ccb86ce61c3aa802d931caac68 From 09381ee86bd7a8a9048404ef5109a4310056712a Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Fri, 20 Jan 2023 12:25:14 +0100 Subject: [PATCH 09/16] update changelog --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6a857d28..87cf0178 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -26,7 +26,7 @@ list yields a list of all related PRs for each release. the new deployment procedure where each channel is burned for half of the whole burn duration. It also allows burning only one channel for the whole burn duration. The autonomous mechanism was adapted to burn each channel for half of the burn time by default. - PR: + PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/347 ## Fixed From fee8282cc5fb400ba629621526be89ca68ef24e0 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Fri, 20 Jan 2023 12:26:45 +0100 Subject: [PATCH 10/16] bump changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 87cf0178..56cf7e33 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -27,6 +27,7 @@ list yields a list of all related PRs for each release. It also allows burning only one channel for the whole burn duration. The autonomous mechanism was adapted to burn each channel for half of the burn time by default. PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/347 + TMTC PR: https://egit.irs.uni-stuttgart.de/eive/eive-tmtc/pulls/127 ## Fixed From d2fe685a74c8e5a45b207ff0dced4ccc0c8d8481 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Fri, 20 Jan 2023 12:28:09 +0100 Subject: [PATCH 11/16] bump submodules --- fsfw | 2 +- tmtc | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/fsfw b/fsfw index accaf855..bd189518 160000 --- a/fsfw +++ b/fsfw @@ -1 +1 @@ -Subproject commit accaf855ee53d3dc429d7bcdf1b7b89768c166b6 +Subproject commit bd189518b6f91f25db1845e2657101e6bf46eec0 diff --git a/tmtc b/tmtc index f3c0b756..2b5ad32f 160000 --- a/tmtc +++ b/tmtc @@ -1 +1 @@ -Subproject commit f3c0b7567aec22db02a07d76548617b8d163fb29 +Subproject commit 2b5ad32fdd56d38e8318027b67d091d9e0ea3aba From fecfa4b1c3fbde3e86d0833cdade30bf440e1b31 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Fri, 20 Jan 2023 12:29:17 +0100 Subject: [PATCH 12/16] update changelog --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 495842c3..afe50bc2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -31,6 +31,9 @@ list yields a list of all related PRs for each release. previous range setting was wrong. Also fixed a small error properly set internal state on shut-down. PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/342 +- `Max31865RtdLowlevelHandler.cpp`: For each RTD device, the config is now re-written before + every read. This seems to fix some issue with invalid temperature sensor readings. + PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/345 # [v1.19.0] 10.01.2023 From 45413726e7b3528b1fb96869a4f5ef12d767f3e7 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Fri, 20 Jan 2023 12:31:42 +0100 Subject: [PATCH 13/16] update docs --- mission/devices/SolarArrayDeploymentHandler.h | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/mission/devices/SolarArrayDeploymentHandler.h b/mission/devices/SolarArrayDeploymentHandler.h index 8e5c32ad..63f1d3de 100644 --- a/mission/devices/SolarArrayDeploymentHandler.h +++ b/mission/devices/SolarArrayDeploymentHandler.h @@ -58,10 +58,12 @@ class SolarArrayDeploymentHandler : public ExecutableObjectIF, public SystemObject, public HasActionsIF { public: - //! Manual deployment of the solar arrays. Burn time, channel switch interval and dry run flag - //! are supplied as parameters. There are following cases to consider + //! Manual deployment of the solar arrays. Burn time, channel switch interval, initial + //! burn channel and dry run flag are supplied as parameters. There are following cases to + //! consider. //! - //! - Channel switch interval greater or equal to burn time: Only burn one channel + //! - Channel switch interval greater or equal to burn time: Only burn one channel. The init + //! burn channel parameter can be used to select which channel is burned. //! - Channel switch interval half of burn time: Burn each channel for half of the burn time. //! //! The dry run flag can be used to avoid actually toggling IO pins and only test the From 96525d4aef34241d273255d14191530061776103 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Fri, 20 Jan 2023 13:55:21 +0100 Subject: [PATCH 14/16] bump tmtc --- tmtc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tmtc b/tmtc index 91272847..5a0feff2 160000 --- a/tmtc +++ b/tmtc @@ -1 +1 @@ -Subproject commit 912728474a11b6ccb86ce61c3aa802d931caac68 +Subproject commit 5a0feff2847e033ad65b5d1619c398869ead5fd4 From c03b6c92687e08c050972187c360e49f9e9236b7 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Fri, 20 Jan 2023 14:23:09 +0100 Subject: [PATCH 15/16] bump tmtc --- tmtc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tmtc b/tmtc index 5a0feff2..2f33a439 160000 --- a/tmtc +++ b/tmtc @@ -1 +1 @@ -Subproject commit 5a0feff2847e033ad65b5d1619c398869ead5fd4 +Subproject commit 2f33a4393774a3d6905f2239bd72cb0c4cc2060a From 6e0f2c0dee7f6d2613ef38a8a4665b53554c3afb Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Fri, 20 Jan 2023 14:25:21 +0100 Subject: [PATCH 16/16] changelog --- CHANGELOG.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d67d6130..d42efd7e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,7 +12,7 @@ list yields a list of all related PRs for each release. ## Added -- The Q7S SW now checks for a file named `boot_delay_secs.stxt` in the home directory. +- The Q7S SW now checks for a file named `boot_delay_secs.txt` in the home directory. If it exists and the file is empty, it will delay for 6 seconds before continuing with the regular boot. It can also try to read delay seconds from the file. PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/340. @@ -40,7 +40,7 @@ list yields a list of all related PRs for each release. on shut-down. PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/342 -# [v1.19.0] 10.01.2023 +# [v1.19.0] 2023-01-10 ## Changed @@ -62,7 +62,7 @@ list yields a list of all related PRs for each release. - Add automatic 5V stack commanding for all connected devices PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/335 -# [v1.18.0] 01.12.2022 +# [v1.18.0] 2022-12-01 ## Changed @@ -71,7 +71,7 @@ list yields a list of all related PRs for each release. - Renamed `/dev/i2c_eive` to `/dev/i2c_pl` and `/dev/i2c-2` to `/dev/i2c_ps`. PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/328 -# [v1.17.0] 28.11.2022 +# [v1.17.0] 2022-11-28 ## Added @@ -80,7 +80,7 @@ list yields a list of all related PRs for each release. PR 2: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/324 PR 3: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/326 -# [v1.16.0] 18.11.2022 +# [v1.16.0] 2022-11-18 - It is now possible to compile Linux components for the hosted build conditionally PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/322 @@ -97,7 +97,7 @@ list yields a list of all related PRs for each release. - Add remaining missing TMP1075 device handlers. PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/318 -# [v1.15.0] 27.10.2022 +# [v1.15.0] 2022-10-27 - Consistent device file naming - Remove rad sensor from EM build, lead to weird bugs on EM which