diff --git a/CHANGELOG.md b/CHANGELOG.md index 5b13424d..98bd8bdf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,6 +16,16 @@ will consitute of a breaking change warranting a new major release: # [unreleased] +## Changed + +- Telemetry relevant datasets for the RWs are now set invalid and partially reset on shotdown. +- Bump FSFW: merged upstream. + +# [v1.37.2] 2023-03-14 + +- Changed `PoolManager` bugfix implementation in the FSFW. +- Some tweaks for IPC and TM store configuration + # [v1.37.1] 2023-03-14 This version works on the EM as well. diff --git a/CMakeLists.txt b/CMakeLists.txt index 11836eda..9844510b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -11,7 +11,7 @@ cmake_minimum_required(VERSION 3.13) set(OBSW_VERSION_MAJOR 1) set(OBSW_VERSION_MINOR 37) -set(OBSW_VERSION_REVISION 1) +set(OBSW_VERSION_REVISION 2) # set(CMAKE_VERBOSE TRUE) diff --git a/fsfw b/fsfw index 5250423d..43fd0b2f 160000 --- a/fsfw +++ b/fsfw @@ -1 +1 @@ -Subproject commit 5250423d1d61c318110d4e111e141d5863546149 +Subproject commit 43fd0b2f59c3aeb2d3f4db10cfad56ee3709d68d diff --git a/mission/core/GenericFactory.cpp b/mission/core/GenericFactory.cpp index 3cbb727c..53ca6904 100644 --- a/mission/core/GenericFactory.cpp +++ b/mission/core/GenericFactory.cpp @@ -108,23 +108,23 @@ void ObjectFactory::produceGenericObjects(HealthTableIF** healthTable_, PusTmFun { PoolManager::LocalPoolConfig poolCfg = {{250, 16}, {250, 32}, {250, 64}, {150, 128}, {120, 1024}, {120, 2048}}; - tcStore = new PoolManager(objects::TC_STORE, poolCfg, true); + tcStore = new PoolManager(objects::TC_STORE, poolCfg); } { - PoolManager::LocalPoolConfig poolCfg = {{600, 32}, {400, 64}, {400, 128}, {300, 512}, - {150, 1024}, {150, 1024}, {150, 2048}}; - *tmStore = new PoolManager(objects::TM_STORE, poolCfg, true); + PoolManager::LocalPoolConfig poolCfg = {{600, 32}, {400, 64}, {400, 128}, + {300, 512}, {250, 1024}, {150, 2048}}; + *tmStore = new PoolManager(objects::TM_STORE, poolCfg); } { - PoolManager::LocalPoolConfig poolCfg = {{300, 16}, {200, 32}, {150, 64}, {150, 128}, + PoolManager::LocalPoolConfig poolCfg = {{300, 16}, {250, 32}, {150, 64}, {150, 128}, {100, 256}, {50, 512}, {50, 1024}, {10, 2048}}; - *ipcStore = new PoolManager(objects::IPC_STORE, poolCfg, true); + *ipcStore = new PoolManager(objects::IPC_STORE, poolCfg); } PoolManager::LocalPoolConfig poolCfg = {{300, 32}, {400, 64}, {250, 128}, {150, 512}, {150, 1024}, {150, 2048}}; - auto* ramToFileStore = new PoolManager(objects::DOWNLINK_RAM_STORE, poolCfg, true); + auto* ramToFileStore = new PoolManager(objects::DOWNLINK_RAM_STORE, poolCfg); #if OBSW_ADD_TCPIP_SERVERS == 1 #if OBSW_ADD_TMTC_UDP_SERVER == 1 @@ -254,8 +254,8 @@ void ObjectFactory::produceGenericObjects(HealthTableIF** healthTable_, PusTmFun pus::PUS_SERVICE_20); new CService200ModeCommanding(objects::PUS_SERVICE_200_MODE_MGMT, config::EIVE_PUS_APID, pus::PUS_SERVICE_200, 8); - HealthServiceCfg healthCfg(objects::PUS_SERVICE_201_HEALTH, config::EIVE_PUS_APID, *healthTable, - 20); + HealthServiceCfg healthCfg(objects::PUS_SERVICE_201_HEALTH, config::EIVE_PUS_APID, + objects::HEALTH_TABLE, 20); new CServiceHealthCommanding(healthCfg); #if OBSW_ADD_CFDP_COMPONENTS == 1 diff --git a/mission/devices/RwHandler.cpp b/mission/devices/RwHandler.cpp index 7f82b202..e70152dd 100644 --- a/mission/devices/RwHandler.cpp +++ b/mission/devices/RwHandler.cpp @@ -24,7 +24,6 @@ RwHandler::RwHandler(object_id_t objectId, object_id_t comIF, CookieIF* comCooki sif::error << "RwHandler: Invalid gpio communication interface" << std::endl; } } - RwHandler::~RwHandler() {} void RwHandler::doStartUp() { @@ -43,6 +42,17 @@ void RwHandler::doShutDown() { } internalState = InternalState::DEFAULT; updatePeriodicReply(false, rws::REPLY_ID); + { + PoolReadGuard pg(&statusSet); + statusSet.currSpeed = 0.0; + statusSet.referenceSpeed = 0.0; + statusSet.state = 0; + statusSet.setValidity(false, true); + } + { + PoolReadGuard pg(&tmDataset); + tmDataset.setValidity(false, true); + } // The power switch is handled by the assembly, so we can go off here directly. setMode(MODE_OFF); } diff --git a/unittest/testEnvironment.cpp b/unittest/testEnvironment.cpp index ec6adac9..72726f39 100644 --- a/unittest/testEnvironment.cpp +++ b/unittest/testEnvironment.cpp @@ -33,7 +33,7 @@ void factory(void* args) { { PoolManager::LocalPoolConfig poolCfg = {{300, 16}, {200, 32}, {150, 64}, {150, 128}, {100, 256}, {50, 512}, {50, 1024}, {10, 2048}}; - new PoolManager(objects::IPC_STORE, poolCfg, true); + new PoolManager(objects::IPC_STORE, poolCfg); } }