From 55bd87abb6283ffec95d00fbbc0f8623827d8b7e Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Thu, 9 Mar 2023 23:33:53 +0100 Subject: [PATCH 1/5] smaller tweaks --- bsp_q7s/core/scheduling.cpp | 1 - bsp_q7s/fs/SdCardManager.h | 2 +- linux/devices/ImtqPollingTask.cpp | 5 +++++ mission/system/objects/AcsSubsystem.cpp | 1 + 4 files changed, 7 insertions(+), 2 deletions(-) diff --git a/bsp_q7s/core/scheduling.cpp b/bsp_q7s/core/scheduling.cpp index ec47232d..616e7fe9 100644 --- a/bsp_q7s/core/scheduling.cpp +++ b/bsp_q7s/core/scheduling.cpp @@ -235,7 +235,6 @@ void scheduling::initTasks() { PeriodicTaskIF* acsSysTask = factory->createPeriodicTask( "ACS_SYS_TASK", 55, PeriodicTaskIF::MINIMUM_STACK_SIZE * 2, 0.4, missedDeadlineFunc); - static_cast(acsSysTask); result = acsSysTask->addComponent(objects::ACS_SUBSYSTEM); if (result != returnvalue::OK) { scheduling::printAddObjectError("ACS_SUBSYSTEM", objects::ACS_SUBSYSTEM); diff --git a/bsp_q7s/fs/SdCardManager.h b/bsp_q7s/fs/SdCardManager.h index 1cd09d7d..874fd786 100644 --- a/bsp_q7s/fs/SdCardManager.h +++ b/bsp_q7s/fs/SdCardManager.h @@ -227,7 +227,7 @@ class SdCardManager : public SystemObject, public SdCardMountedIF { MutexIF* prefLock = nullptr; MutexIF* defaultLock = nullptr; static constexpr MutexIF::TimeoutType LOCK_TYPE = MutexIF::TimeoutType::WAITING; - static constexpr uint32_t SD_LOCK_TIMEOUT = 250; + static constexpr uint32_t SD_LOCK_TIMEOUT = 400; static constexpr uint32_t OTHER_TIMEOUT = 20; static constexpr char LOCK_CTX[] = "SdCardManager"; diff --git a/linux/devices/ImtqPollingTask.cpp b/linux/devices/ImtqPollingTask.cpp index ad4b80ac..c15acd29 100644 --- a/linux/devices/ImtqPollingTask.cpp +++ b/linux/devices/ImtqPollingTask.cpp @@ -120,6 +120,11 @@ void ImtqPollingTask::handleMeasureStep() { } } + // The I2C IP core on EIVE sometimes glitches out. Send start MTM measurement twice. + cmdBuf[0] = imtq::CC::START_MTM_MEASUREMENT; + if (i2cCmdExecMeasure(imtq::CC::START_MTM_MEASUREMENT) != returnvalue::OK) { + return; + } cmdBuf[0] = imtq::CC::START_MTM_MEASUREMENT; if (i2cCmdExecMeasure(imtq::CC::START_MTM_MEASUREMENT) != returnvalue::OK) { return; diff --git a/mission/system/objects/AcsSubsystem.cpp b/mission/system/objects/AcsSubsystem.cpp index e4969ac1..3bab5273 100644 --- a/mission/system/objects/AcsSubsystem.cpp +++ b/mission/system/objects/AcsSubsystem.cpp @@ -56,6 +56,7 @@ ReturnValue_t AcsSubsystem::initialize() { } void AcsSubsystem::performChildOperation() { + // sif::debug << "ACS system thread running" << std::endl; handleEventMessages(); return Subsystem::performChildOperation(); } From a9b514ddc80dcfd409754bb10cc9e24a1d8edddb Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Fri, 10 Mar 2023 11:12:44 +0100 Subject: [PATCH 2/5] solved in different PR --- bsp_q7s/fs/SdCardManager.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bsp_q7s/fs/SdCardManager.h b/bsp_q7s/fs/SdCardManager.h index 874fd786..1cd09d7d 100644 --- a/bsp_q7s/fs/SdCardManager.h +++ b/bsp_q7s/fs/SdCardManager.h @@ -227,7 +227,7 @@ class SdCardManager : public SystemObject, public SdCardMountedIF { MutexIF* prefLock = nullptr; MutexIF* defaultLock = nullptr; static constexpr MutexIF::TimeoutType LOCK_TYPE = MutexIF::TimeoutType::WAITING; - static constexpr uint32_t SD_LOCK_TIMEOUT = 400; + static constexpr uint32_t SD_LOCK_TIMEOUT = 250; static constexpr uint32_t OTHER_TIMEOUT = 20; static constexpr char LOCK_CTX[] = "SdCardManager"; From cca8734908168e42943eda1efc85652b4ae48165 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Fri, 10 Mar 2023 11:15:08 +0100 Subject: [PATCH 3/5] add it at actuate step as well --- linux/devices/ImtqPollingTask.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/linux/devices/ImtqPollingTask.cpp b/linux/devices/ImtqPollingTask.cpp index c15acd29..fbd5f847 100644 --- a/linux/devices/ImtqPollingTask.cpp +++ b/linux/devices/ImtqPollingTask.cpp @@ -182,6 +182,11 @@ void ImtqPollingTask::handleActuateStep() { TaskFactory::delayTask(10); cmdLen = 1; + // The I2C IP core on EIVE sometimes glitches out. Send start MTM measurement twice. + cmdBuf[0] = imtq::CC::START_MTM_MEASUREMENT; + if (i2cCmdExecActuate(imtq::CC::START_MTM_MEASUREMENT) != returnvalue::OK) { + return; + } cmdBuf[0] = imtq::CC::START_MTM_MEASUREMENT; if (i2cCmdExecActuate(imtq::CC::START_MTM_MEASUREMENT) != returnvalue::OK) { return; From 86e48eea6deb048bbe00a7d64913bda28717ccea Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Fri, 10 Mar 2023 11:16:02 +0100 Subject: [PATCH 4/5] changelog update --- CHANGELOG.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4d2e2cbb..b601b8bd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,6 +20,11 @@ will consitute of a breaking change warranting a new major release: - Fix for heater names: HPA heater (index 7) is now the Syrlinks heater. +## Changed + +- Request raw MTM measurement twice for IMTQ, might reduce number of times measurement could not + be retrieved. + # [v1.36.0] 2023-03-08 eive-tmtc: v2.17.2 From 3caa9dea75b6de4ef84fc0df63591a006afc7cb2 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Fri, 10 Mar 2023 11:18:34 +0100 Subject: [PATCH 5/5] changelog --- CHANGELOG.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4d2e2cbb..bfcb003c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,6 +20,13 @@ will consitute of a breaking change warranting a new major release: - Fix for heater names: HPA heater (index 7) is now the Syrlinks heater. +## Changed + +- More fixes and improvements for SD card handling. Extend SD card setup in core controller to + create full initial state for SD card manager are core controller as early as possible, turn + execution of setup file update blocking. This might solve the issue with the SD card manager + sometimes blocking for a long time. + # [v1.36.0] 2023-03-08 eive-tmtc: v2.17.2