Merge remote-tracking branch 'origin/develop' into mueller/tmtc-stack-refactoring
Some checks failed
EIVE/eive-obsw/pipeline/pr-develop There was a failure building this commit

This commit is contained in:
Robin Müller 2022-08-16 17:39:35 +02:00
commit a669137d5c
No known key found for this signature in database
GPG Key ID: 71B58F8A3CDFA9AC
6 changed files with 20 additions and 8 deletions

View File

@ -10,6 +10,10 @@ list yields a list of all related PRs for each release.
# [unreleased] # [unreleased]
# [v1.13.0]
- Added first version of ACS Controller with gathers MGM data in a set
# [v1.12.1] 05.07.2022 # [v1.12.1] 05.07.2022
- Disable periodic TCS controller HK generation by default - Disable periodic TCS controller HK generation by default

View File

@ -18,7 +18,7 @@ enum commonObjects : uint32_t {
/* 0x43 ('C') for Controllers */ /* 0x43 ('C') for Controllers */
THERMAL_CONTROLLER = 0x43400001, THERMAL_CONTROLLER = 0x43400001,
ACS_CONTROLLER = 0x43100002, ACS_CONTROLLER = 0x43000002,
CORE_CONTROLLER = 0x43000003, CORE_CONTROLLER = 0x43000003,
/* 0x44 ('D') for device handlers */ /* 0x44 ('D') for device handlers */

2
fsfw

@ -1 +1 @@
Subproject commit d815f422c394bb87ccf9e9d306cb42bd01f162bc Subproject commit cdd0ca70edc3691e7d46677626e5c75d324ec1b4

View File

@ -29,9 +29,11 @@ void AcsController::performControlOperation() {
break; break;
} }
if (mgmData.read() == RETURN_OK) { {
copyMgmData(); PoolReadGuard pg(&mgmData);
mgmData.commit(); if (pg.getReadResult() == RETURN_OK) {
copyMgmData();
}
} }
} }
@ -43,10 +45,16 @@ ReturnValue_t AcsController::initializeLocalDataPool(localpool::DataPool &localD
localDataPoolMap.emplace(acsctrl::PoolIds::MGM_3_RM3100_UT, &mgm3PoolVec); localDataPoolMap.emplace(acsctrl::PoolIds::MGM_3_RM3100_UT, &mgm3PoolVec);
localDataPoolMap.emplace(acsctrl::PoolIds::MGM_IMTQ_CAL_NT, &imtqMgmPoolVec); localDataPoolMap.emplace(acsctrl::PoolIds::MGM_IMTQ_CAL_NT, &imtqMgmPoolVec);
localDataPoolMap.emplace(acsctrl::PoolIds::MGM_IMTQ_CAL_ACT_STATUS, &imtqCalActStatus); localDataPoolMap.emplace(acsctrl::PoolIds::MGM_IMTQ_CAL_ACT_STATUS, &imtqCalActStatus);
poolManager.subscribeForPeriodicPacket(mgmData.getSid(), false, 5.0, false);
return HasReturnvaluesIF::RETURN_OK; return HasReturnvaluesIF::RETURN_OK;
} }
LocalPoolDataSetBase *AcsController::getDataSetHandle(sid_t sid) { return nullptr; } LocalPoolDataSetBase *AcsController::getDataSetHandle(sid_t sid) {
if (sid == mgmData.getSid()) {
return &mgmData;
}
return nullptr;
}
ReturnValue_t AcsController::checkModeCommand(Mode_t mode, Submode_t submode, ReturnValue_t AcsController::checkModeCommand(Mode_t mode, Submode_t submode,
uint32_t *msToReachTheMode) { uint32_t *msToReachTheMode) {

View File

@ -49,7 +49,7 @@ class AcsController : public ExtendedControllerBase {
PoolEntry<float> mgm1PoolVec = PoolEntry<float>(3); PoolEntry<float> mgm1PoolVec = PoolEntry<float>(3);
PoolEntry<float> mgm2PoolVec = PoolEntry<float>(3); PoolEntry<float> mgm2PoolVec = PoolEntry<float>(3);
PoolEntry<float> mgm3PoolVec = PoolEntry<float>(3); PoolEntry<float> mgm3PoolVec = PoolEntry<float>(3);
PoolEntry<float> imtqMgmPoolVec = PoolEntry<float>(3); PoolEntry<int32_t> imtqMgmPoolVec = PoolEntry<int32_t>(3);
PoolEntry<uint8_t> imtqCalActStatus = PoolEntry<uint8_t>(); PoolEntry<uint8_t> imtqCalActStatus = PoolEntry<uint8_t>();
void copyMgmData(); void copyMgmData();

View File

@ -19,7 +19,7 @@ enum PoolIds : lp_id_t {
MGM_IMTQ_CAL_ACT_STATUS MGM_IMTQ_CAL_ACT_STATUS
}; };
static constexpr uint8_t MGM_SET_ENTRIES = 5; static constexpr uint8_t MGM_SET_ENTRIES = 10;
/** /**
* @brief This dataset can be used to store the collected temperatures of all temperature sensors * @brief This dataset can be used to store the collected temperatures of all temperature sensors