Merge remote-tracking branch 'origin/develop' into update_ptme_code
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
This commit is contained in:
commit
e22f2a53ea
19
CHANGELOG.md
19
CHANGELOG.md
@ -26,6 +26,25 @@ TODO: New firmware package version.
|
|||||||
|
|
||||||
- Important bugfixes for PTME. See `q7s-package` CHANGELOG.
|
- Important bugfixes for PTME. See `q7s-package` CHANGELOG.
|
||||||
|
|
||||||
|
# [v2.0.3] 2023-04-17
|
||||||
|
|
||||||
|
- eive-tmtc: v3.1.1
|
||||||
|
|
||||||
|
## Fixed
|
||||||
|
|
||||||
|
- Fixed shadowing within the `SafeCtrl`, which prevented actuator commands to be calculated during
|
||||||
|
eclipse phase.
|
||||||
|
- EM build idle mode fixes for RW dummy.
|
||||||
|
|
||||||
|
## Added
|
||||||
|
|
||||||
|
- Add `MGT_OVERHEATING` event and fallback to system SAFE mode if the MGT is overheating for
|
||||||
|
whatever reason.
|
||||||
|
|
||||||
|
## Changed
|
||||||
|
|
||||||
|
- Low-pass filters can no longer be executed if no actual data is available.
|
||||||
|
|
||||||
# [v2.0.2] 2023-04-16
|
# [v2.0.2] 2023-04-16
|
||||||
|
|
||||||
- Bump patch version to 2.
|
- Bump patch version to 2.
|
||||||
|
@ -11,7 +11,7 @@ cmake_minimum_required(VERSION 3.13)
|
|||||||
|
|
||||||
set(OBSW_VERSION_MAJOR 2)
|
set(OBSW_VERSION_MAJOR 2)
|
||||||
set(OBSW_VERSION_MINOR 0)
|
set(OBSW_VERSION_MINOR 0)
|
||||||
set(OBSW_VERSION_REVISION 2)
|
set(OBSW_VERSION_REVISION 3)
|
||||||
|
|
||||||
# set(CMAKE_VERBOSE TRUE)
|
# set(CMAKE_VERBOSE TRUE)
|
||||||
|
|
||||||
|
6
automation/Jenkinsfile
vendored
6
automation/Jenkinsfile
vendored
@ -22,7 +22,7 @@ pipeline {
|
|||||||
steps {
|
steps {
|
||||||
dir(BUILDDIR_Q7S) {
|
dir(BUILDDIR_Q7S) {
|
||||||
sh 'cmake -DTGT_BSP="arm/q7s" -DCMAKE_BUILD_TYPE=Debug ..'
|
sh 'cmake -DTGT_BSP="arm/q7s" -DCMAKE_BUILD_TYPE=Debug ..'
|
||||||
sh 'cmake --build . -j6'
|
sh 'cmake --build . -j8'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -30,7 +30,7 @@ pipeline {
|
|||||||
steps {
|
steps {
|
||||||
dir(BUILDDIR_Q7S_EM) {
|
dir(BUILDDIR_Q7S_EM) {
|
||||||
sh 'cmake -DTGT_BSP="arm/q7s" -DEIVE_Q7S_EM=ON -DCMAKE_BUILD_TYPE=Debug ..'
|
sh 'cmake -DTGT_BSP="arm/q7s" -DEIVE_Q7S_EM=ON -DCMAKE_BUILD_TYPE=Debug ..'
|
||||||
sh 'cmake --build . -j6'
|
sh 'cmake --build . -j8'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -38,7 +38,7 @@ pipeline {
|
|||||||
steps {
|
steps {
|
||||||
dir(BUILDDIR_LINUX) {
|
dir(BUILDDIR_LINUX) {
|
||||||
sh 'cmake ..'
|
sh 'cmake ..'
|
||||||
sh 'cmake --build . -j6'
|
sh 'cmake --build . -j8'
|
||||||
sh './eive-unittest'
|
sh './eive-unittest'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/**
|
/**
|
||||||
* @brief Auto-generated event translation file. Contains 290 translations.
|
* @brief Auto-generated event translation file. Contains 291 translations.
|
||||||
* @details
|
* @details
|
||||||
* Generated on: 2023-04-14 20:23:17
|
* Generated on: 2023-04-17 11:34:19
|
||||||
*/
|
*/
|
||||||
#include "translateEvents.h"
|
#include "translateEvents.h"
|
||||||
|
|
||||||
@ -280,6 +280,7 @@ const char *OBC_OVERHEATING_STRING = "OBC_OVERHEATING";
|
|||||||
const char *CAMERA_OVERHEATING_STRING = "CAMERA_OVERHEATING";
|
const char *CAMERA_OVERHEATING_STRING = "CAMERA_OVERHEATING";
|
||||||
const char *PCDU_SYSTEM_OVERHEATING_STRING = "PCDU_SYSTEM_OVERHEATING";
|
const char *PCDU_SYSTEM_OVERHEATING_STRING = "PCDU_SYSTEM_OVERHEATING";
|
||||||
const char *HEATER_NOT_OFF_FOR_OFF_MODE_STRING = "HEATER_NOT_OFF_FOR_OFF_MODE";
|
const char *HEATER_NOT_OFF_FOR_OFF_MODE_STRING = "HEATER_NOT_OFF_FOR_OFF_MODE";
|
||||||
|
const char *MGT_OVERHEATING_STRING = "MGT_OVERHEATING";
|
||||||
const char *TX_TIMER_EXPIRED_STRING = "TX_TIMER_EXPIRED";
|
const char *TX_TIMER_EXPIRED_STRING = "TX_TIMER_EXPIRED";
|
||||||
const char *BIT_LOCK_TX_ON_STRING = "BIT_LOCK_TX_ON";
|
const char *BIT_LOCK_TX_ON_STRING = "BIT_LOCK_TX_ON";
|
||||||
const char *POSSIBLE_FILE_CORRUPTION_STRING = "POSSIBLE_FILE_CORRUPTION";
|
const char *POSSIBLE_FILE_CORRUPTION_STRING = "POSSIBLE_FILE_CORRUPTION";
|
||||||
@ -848,6 +849,8 @@ const char *translateEvents(Event event) {
|
|||||||
return PCDU_SYSTEM_OVERHEATING_STRING;
|
return PCDU_SYSTEM_OVERHEATING_STRING;
|
||||||
case (14107):
|
case (14107):
|
||||||
return HEATER_NOT_OFF_FOR_OFF_MODE_STRING;
|
return HEATER_NOT_OFF_FOR_OFF_MODE_STRING;
|
||||||
|
case (14108):
|
||||||
|
return MGT_OVERHEATING_STRING;
|
||||||
case (14201):
|
case (14201):
|
||||||
return TX_TIMER_EXPIRED_STRING;
|
return TX_TIMER_EXPIRED_STRING;
|
||||||
case (14202):
|
case (14202):
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* @brief Auto-generated object translation file.
|
* @brief Auto-generated object translation file.
|
||||||
* @details
|
* @details
|
||||||
* Contains 171 translations.
|
* Contains 171 translations.
|
||||||
* Generated on: 2023-04-14 20:23:17
|
* Generated on: 2023-04-17 11:34:19
|
||||||
*/
|
*/
|
||||||
#include "translateObjects.h"
|
#include "translateObjects.h"
|
||||||
|
|
||||||
|
@ -37,6 +37,9 @@ uint32_t RwDummy::getTransitionDelayMs(Mode_t modeFrom, Mode_t modeTo) { return
|
|||||||
|
|
||||||
ReturnValue_t RwDummy::initializeLocalDataPool(localpool::DataPool &localDataPoolMap,
|
ReturnValue_t RwDummy::initializeLocalDataPool(localpool::DataPool &localDataPoolMap,
|
||||||
LocalDataPoolManager &poolManager) {
|
LocalDataPoolManager &poolManager) {
|
||||||
|
localDataPoolMap.emplace(rws::RW_SPEED, &rwSpeed);
|
||||||
|
localDataPoolMap.emplace(rws::RAMP_TIME, &rampTime);
|
||||||
|
|
||||||
localDataPoolMap.emplace(rws::TEMPERATURE_C, new PoolEntry<int32_t>({0}));
|
localDataPoolMap.emplace(rws::TEMPERATURE_C, new PoolEntry<int32_t>({0}));
|
||||||
|
|
||||||
localDataPoolMap.emplace(rws::CURR_SPEED, new PoolEntry<int32_t>({0}));
|
localDataPoolMap.emplace(rws::CURR_SPEED, new PoolEntry<int32_t>({0}));
|
||||||
|
@ -15,6 +15,9 @@ class RwDummy : public DeviceHandlerBase {
|
|||||||
virtual ~RwDummy();
|
virtual ~RwDummy();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
PoolEntry<int32_t> rwSpeed = PoolEntry<int32_t>({0});
|
||||||
|
PoolEntry<uint16_t> rampTime = PoolEntry<uint16_t>({10});
|
||||||
|
|
||||||
void doStartUp() override;
|
void doStartUp() override;
|
||||||
void doShutDown() override;
|
void doShutDown() override;
|
||||||
ReturnValue_t buildNormalDeviceCommand(DeviceCommandId_t *id) override;
|
ReturnValue_t buildNormalDeviceCommand(DeviceCommandId_t *id) override;
|
||||||
|
@ -96,6 +96,16 @@ ReturnValue_t TemperatureSensorInserter::performOperation(uint8_t opCode) {
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case (TestCase::COLD_CAMERA): {
|
||||||
|
if (cycles == 15) {
|
||||||
|
sif::debug << "Setting cold CAM temperature" << std::endl;
|
||||||
|
max31865DummyMap[objects::RTD_2_IC5_4K_CAMERA]->setTemperature(-40, true);
|
||||||
|
}
|
||||||
|
if (cycles == 30) {
|
||||||
|
sif::debug << "Setting CAM temperature back to normal" << std::endl;
|
||||||
|
max31865DummyMap[objects::RTD_2_IC5_4K_CAMERA]->setTemperature(0, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
cycles++;
|
cycles++;
|
||||||
return returnvalue::OK;
|
return returnvalue::OK;
|
||||||
|
@ -31,6 +31,7 @@ class TemperatureSensorInserter : public ExecutableObjectIF, public SystemObject
|
|||||||
COLD_MGT = 3,
|
COLD_MGT = 3,
|
||||||
COLD_STR = 4,
|
COLD_STR = 4,
|
||||||
COLD_STR_CONSECUTIVE = 5,
|
COLD_STR_CONSECUTIVE = 5,
|
||||||
|
COLD_CAMERA = 6,
|
||||||
};
|
};
|
||||||
int iteration = 0;
|
int iteration = 0;
|
||||||
uint32_t cycles = 0;
|
uint32_t cycles = 0;
|
||||||
|
@ -274,6 +274,7 @@ Event ID (dec); Event ID (hex); Name; Severity; Description; File Path
|
|||||||
14105;0x3719;CAMERA_OVERHEATING;HIGH;No description;mission/controller/tcsDefs.h
|
14105;0x3719;CAMERA_OVERHEATING;HIGH;No description;mission/controller/tcsDefs.h
|
||||||
14106;0x371a;PCDU_SYSTEM_OVERHEATING;HIGH;No description;mission/controller/tcsDefs.h
|
14106;0x371a;PCDU_SYSTEM_OVERHEATING;HIGH;No description;mission/controller/tcsDefs.h
|
||||||
14107;0x371b;HEATER_NOT_OFF_FOR_OFF_MODE;MEDIUM;No description;mission/controller/tcsDefs.h
|
14107;0x371b;HEATER_NOT_OFF_FOR_OFF_MODE;MEDIUM;No description;mission/controller/tcsDefs.h
|
||||||
|
14108;0x371c;MGT_OVERHEATING;MEDIUM;No description;mission/controller/tcsDefs.h
|
||||||
14201;0x3779;TX_TIMER_EXPIRED;INFO;The transmit timer to protect the Syrlinks expired P1: The current timer value;mission/system/com/ComSubsystem.h
|
14201;0x3779;TX_TIMER_EXPIRED;INFO;The transmit timer to protect the Syrlinks expired P1: The current timer value;mission/system/com/ComSubsystem.h
|
||||||
14202;0x377a;BIT_LOCK_TX_ON;INFO;Transmitter will be turned on due to detection of bitlock;mission/system/com/ComSubsystem.h
|
14202;0x377a;BIT_LOCK_TX_ON;INFO;Transmitter will be turned on due to detection of bitlock;mission/system/com/ComSubsystem.h
|
||||||
14300;0x37dc;POSSIBLE_FILE_CORRUPTION;LOW;P1: Result code of TM packet parser. P2: Timestamp of possibly corrupt file as a unix timestamp.;mission/persistentTmStoreDefs.h
|
14300;0x37dc;POSSIBLE_FILE_CORRUPTION;LOW;P1: Result code of TM packet parser. P2: Timestamp of possibly corrupt file as a unix timestamp.;mission/persistentTmStoreDefs.h
|
||||||
|
|
@ -274,6 +274,7 @@ Event ID (dec); Event ID (hex); Name; Severity; Description; File Path
|
|||||||
14105;0x3719;CAMERA_OVERHEATING;HIGH;No description;mission/controller/tcsDefs.h
|
14105;0x3719;CAMERA_OVERHEATING;HIGH;No description;mission/controller/tcsDefs.h
|
||||||
14106;0x371a;PCDU_SYSTEM_OVERHEATING;HIGH;No description;mission/controller/tcsDefs.h
|
14106;0x371a;PCDU_SYSTEM_OVERHEATING;HIGH;No description;mission/controller/tcsDefs.h
|
||||||
14107;0x371b;HEATER_NOT_OFF_FOR_OFF_MODE;MEDIUM;No description;mission/controller/tcsDefs.h
|
14107;0x371b;HEATER_NOT_OFF_FOR_OFF_MODE;MEDIUM;No description;mission/controller/tcsDefs.h
|
||||||
|
14108;0x371c;MGT_OVERHEATING;MEDIUM;No description;mission/controller/tcsDefs.h
|
||||||
14201;0x3779;TX_TIMER_EXPIRED;INFO;The transmit timer to protect the Syrlinks expired P1: The current timer value;mission/system/com/ComSubsystem.h
|
14201;0x3779;TX_TIMER_EXPIRED;INFO;The transmit timer to protect the Syrlinks expired P1: The current timer value;mission/system/com/ComSubsystem.h
|
||||||
14202;0x377a;BIT_LOCK_TX_ON;INFO;Transmitter will be turned on due to detection of bitlock;mission/system/com/ComSubsystem.h
|
14202;0x377a;BIT_LOCK_TX_ON;INFO;Transmitter will be turned on due to detection of bitlock;mission/system/com/ComSubsystem.h
|
||||||
14300;0x37dc;POSSIBLE_FILE_CORRUPTION;LOW;P1: Result code of TM packet parser. P2: Timestamp of possibly corrupt file as a unix timestamp.;mission/persistentTmStoreDefs.h
|
14300;0x37dc;POSSIBLE_FILE_CORRUPTION;LOW;P1: Result code of TM packet parser. P2: Timestamp of possibly corrupt file as a unix timestamp.;mission/persistentTmStoreDefs.h
|
||||||
|
|
@ -1,7 +1,7 @@
|
|||||||
/**
|
/**
|
||||||
* @brief Auto-generated event translation file. Contains 290 translations.
|
* @brief Auto-generated event translation file. Contains 291 translations.
|
||||||
* @details
|
* @details
|
||||||
* Generated on: 2023-04-14 20:23:17
|
* Generated on: 2023-04-17 11:34:19
|
||||||
*/
|
*/
|
||||||
#include "translateEvents.h"
|
#include "translateEvents.h"
|
||||||
|
|
||||||
@ -280,6 +280,7 @@ const char *OBC_OVERHEATING_STRING = "OBC_OVERHEATING";
|
|||||||
const char *CAMERA_OVERHEATING_STRING = "CAMERA_OVERHEATING";
|
const char *CAMERA_OVERHEATING_STRING = "CAMERA_OVERHEATING";
|
||||||
const char *PCDU_SYSTEM_OVERHEATING_STRING = "PCDU_SYSTEM_OVERHEATING";
|
const char *PCDU_SYSTEM_OVERHEATING_STRING = "PCDU_SYSTEM_OVERHEATING";
|
||||||
const char *HEATER_NOT_OFF_FOR_OFF_MODE_STRING = "HEATER_NOT_OFF_FOR_OFF_MODE";
|
const char *HEATER_NOT_OFF_FOR_OFF_MODE_STRING = "HEATER_NOT_OFF_FOR_OFF_MODE";
|
||||||
|
const char *MGT_OVERHEATING_STRING = "MGT_OVERHEATING";
|
||||||
const char *TX_TIMER_EXPIRED_STRING = "TX_TIMER_EXPIRED";
|
const char *TX_TIMER_EXPIRED_STRING = "TX_TIMER_EXPIRED";
|
||||||
const char *BIT_LOCK_TX_ON_STRING = "BIT_LOCK_TX_ON";
|
const char *BIT_LOCK_TX_ON_STRING = "BIT_LOCK_TX_ON";
|
||||||
const char *POSSIBLE_FILE_CORRUPTION_STRING = "POSSIBLE_FILE_CORRUPTION";
|
const char *POSSIBLE_FILE_CORRUPTION_STRING = "POSSIBLE_FILE_CORRUPTION";
|
||||||
@ -848,6 +849,8 @@ const char *translateEvents(Event event) {
|
|||||||
return PCDU_SYSTEM_OVERHEATING_STRING;
|
return PCDU_SYSTEM_OVERHEATING_STRING;
|
||||||
case (14107):
|
case (14107):
|
||||||
return HEATER_NOT_OFF_FOR_OFF_MODE_STRING;
|
return HEATER_NOT_OFF_FOR_OFF_MODE_STRING;
|
||||||
|
case (14108):
|
||||||
|
return MGT_OVERHEATING_STRING;
|
||||||
case (14201):
|
case (14201):
|
||||||
return TX_TIMER_EXPIRED_STRING;
|
return TX_TIMER_EXPIRED_STRING;
|
||||||
case (14202):
|
case (14202):
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* @brief Auto-generated object translation file.
|
* @brief Auto-generated object translation file.
|
||||||
* @details
|
* @details
|
||||||
* Contains 175 translations.
|
* Contains 175 translations.
|
||||||
* Generated on: 2023-04-14 20:23:17
|
* Generated on: 2023-04-17 11:34:19
|
||||||
*/
|
*/
|
||||||
#include "translateObjects.h"
|
#include "translateObjects.h"
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/**
|
/**
|
||||||
* @brief Auto-generated event translation file. Contains 290 translations.
|
* @brief Auto-generated event translation file. Contains 291 translations.
|
||||||
* @details
|
* @details
|
||||||
* Generated on: 2023-04-14 20:23:17
|
* Generated on: 2023-04-17 11:34:19
|
||||||
*/
|
*/
|
||||||
#include "translateEvents.h"
|
#include "translateEvents.h"
|
||||||
|
|
||||||
@ -280,6 +280,7 @@ const char *OBC_OVERHEATING_STRING = "OBC_OVERHEATING";
|
|||||||
const char *CAMERA_OVERHEATING_STRING = "CAMERA_OVERHEATING";
|
const char *CAMERA_OVERHEATING_STRING = "CAMERA_OVERHEATING";
|
||||||
const char *PCDU_SYSTEM_OVERHEATING_STRING = "PCDU_SYSTEM_OVERHEATING";
|
const char *PCDU_SYSTEM_OVERHEATING_STRING = "PCDU_SYSTEM_OVERHEATING";
|
||||||
const char *HEATER_NOT_OFF_FOR_OFF_MODE_STRING = "HEATER_NOT_OFF_FOR_OFF_MODE";
|
const char *HEATER_NOT_OFF_FOR_OFF_MODE_STRING = "HEATER_NOT_OFF_FOR_OFF_MODE";
|
||||||
|
const char *MGT_OVERHEATING_STRING = "MGT_OVERHEATING";
|
||||||
const char *TX_TIMER_EXPIRED_STRING = "TX_TIMER_EXPIRED";
|
const char *TX_TIMER_EXPIRED_STRING = "TX_TIMER_EXPIRED";
|
||||||
const char *BIT_LOCK_TX_ON_STRING = "BIT_LOCK_TX_ON";
|
const char *BIT_LOCK_TX_ON_STRING = "BIT_LOCK_TX_ON";
|
||||||
const char *POSSIBLE_FILE_CORRUPTION_STRING = "POSSIBLE_FILE_CORRUPTION";
|
const char *POSSIBLE_FILE_CORRUPTION_STRING = "POSSIBLE_FILE_CORRUPTION";
|
||||||
@ -848,6 +849,8 @@ const char *translateEvents(Event event) {
|
|||||||
return PCDU_SYSTEM_OVERHEATING_STRING;
|
return PCDU_SYSTEM_OVERHEATING_STRING;
|
||||||
case (14107):
|
case (14107):
|
||||||
return HEATER_NOT_OFF_FOR_OFF_MODE_STRING;
|
return HEATER_NOT_OFF_FOR_OFF_MODE_STRING;
|
||||||
|
case (14108):
|
||||||
|
return MGT_OVERHEATING_STRING;
|
||||||
case (14201):
|
case (14201):
|
||||||
return TX_TIMER_EXPIRED_STRING;
|
return TX_TIMER_EXPIRED_STRING;
|
||||||
case (14202):
|
case (14202):
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* @brief Auto-generated object translation file.
|
* @brief Auto-generated object translation file.
|
||||||
* @details
|
* @details
|
||||||
* Contains 175 translations.
|
* Contains 175 translations.
|
||||||
* Generated on: 2023-04-14 20:23:17
|
* Generated on: 2023-04-17 11:34:19
|
||||||
*/
|
*/
|
||||||
#include "translateObjects.h"
|
#include "translateObjects.h"
|
||||||
|
|
||||||
|
@ -435,8 +435,7 @@ ReturnValue_t PdecHandler::releasePdec() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
ReturnValue_t PdecHandler::pdecToReset() {
|
ReturnValue_t PdecHandler::pdecToReset() {
|
||||||
ReturnValue_t result = returnvalue::OK;
|
ReturnValue_t result = gpioComIF->pullLow(pdecReset);
|
||||||
result = gpioComIF->pullLow(pdecReset);
|
|
||||||
if (result != returnvalue::OK) {
|
if (result != returnvalue::OK) {
|
||||||
sif::error << "PdecHandler::pdecToReset: Failed to pull PDEC reset line"
|
sif::error << "PdecHandler::pdecToReset: Failed to pull PDEC reset line"
|
||||||
" to low"
|
" to low"
|
||||||
|
@ -20,6 +20,8 @@
|
|||||||
#define LOWER_SYRLINKS_UPPER_LIMITS 0
|
#define LOWER_SYRLINKS_UPPER_LIMITS 0
|
||||||
#define LOWER_EBAND_UPPER_LIMITS 0
|
#define LOWER_EBAND_UPPER_LIMITS 0
|
||||||
#define LOWER_PLOC_UPPER_LIMITS 0
|
#define LOWER_PLOC_UPPER_LIMITS 0
|
||||||
|
#define LOWER_MGT_UPPER_LIMITS 0
|
||||||
|
#define LOWER_RW_UPPER_LIMITS 0
|
||||||
|
|
||||||
ThermalController::ThermalController(object_id_t objectId, HeaterHandler& heater,
|
ThermalController::ThermalController(object_id_t objectId, HeaterHandler& heater,
|
||||||
const std::atomic_bool& tcsBoardShortUnavailable)
|
const std::atomic_bool& tcsBoardShortUnavailable)
|
||||||
@ -111,7 +113,7 @@ void ThermalController::performControlOperation() {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (cycles == 50) {
|
if (cycles == 40) {
|
||||||
bool changedLimits = false;
|
bool changedLimits = false;
|
||||||
#if LOWER_SYRLINKS_UPPER_LIMITS == 1
|
#if LOWER_SYRLINKS_UPPER_LIMITS == 1
|
||||||
changedLimits = true;
|
changedLimits = true;
|
||||||
@ -130,9 +132,21 @@ void ThermalController::performControlOperation() {
|
|||||||
hpaLimits.cutOffLimit = 0;
|
hpaLimits.cutOffLimit = 0;
|
||||||
hpaLimits.opUpperLimit = 0;
|
hpaLimits.opUpperLimit = 0;
|
||||||
hpaLimits.nopUpperLimit = 0;
|
hpaLimits.nopUpperLimit = 0;
|
||||||
|
#endif
|
||||||
|
#if LOWER_MGT_UPPER_LIMITS == 1
|
||||||
|
changedLimits = true;
|
||||||
|
mgtLimits.cutOffLimit = 0;
|
||||||
|
mgtLimits.opUpperLimit = 0;
|
||||||
|
mgtLimits.nopUpperLimit = 0;
|
||||||
|
#endif
|
||||||
|
#if LOWER_RW_UPPER_LIMITS == 1
|
||||||
|
changedLimits = true;
|
||||||
|
rwLimits.cutOffLimit = 0;
|
||||||
|
rwLimits.opUpperLimit = 0;
|
||||||
|
rwLimits.nopUpperLimit = 0;
|
||||||
#endif
|
#endif
|
||||||
if (changedLimits) {
|
if (changedLimits) {
|
||||||
sif::debug << "ThermalController: changing limits" << std::endl; // TODO: rausschmeissen
|
sif::debug << "ThermalController: changing limits" << std::endl;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1055,7 +1069,12 @@ void ThermalController::ctrlMgt() {
|
|||||||
numSensors = 3;
|
numSensors = 3;
|
||||||
HeaterContext htrCtx(heater::HEATER_2_ACS_BRD, heater::HEATER_3_PCDU_PDU, mgtLimits);
|
HeaterContext htrCtx(heater::HEATER_2_ACS_BRD, heater::HEATER_3_PCDU_PDU, mgtLimits);
|
||||||
ctrlComponentTemperature(htrCtx);
|
ctrlComponentTemperature(htrCtx);
|
||||||
// TODO: trigger special event
|
if (componentAboveUpperLimit and not mgtTooHotFlag) {
|
||||||
|
triggerEvent(tcsCtrl::MGT_OVERHEATING, tempFloatToU32());
|
||||||
|
mgtTooHotFlag = true;
|
||||||
|
} else if (not componentAboveUpperLimit) {
|
||||||
|
mgtTooHotFlag = false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void ThermalController::ctrlRw() {
|
void ThermalController::ctrlRw() {
|
||||||
@ -1240,7 +1259,7 @@ void ThermalController::ctrlObcIfBoard() {
|
|||||||
triggerEvent(tcsCtrl::OBC_OVERHEATING, tempFloatToU32());
|
triggerEvent(tcsCtrl::OBC_OVERHEATING, tempFloatToU32());
|
||||||
obcTooHotFlag = true;
|
obcTooHotFlag = true;
|
||||||
} else if (not componentAboveUpperLimit) {
|
} else if (not componentAboveUpperLimit) {
|
||||||
obcTooHotFlag = false; // TODO: !!
|
obcTooHotFlag = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -267,6 +267,7 @@ class ThermalController : public ExtendedControllerBase {
|
|||||||
bool pcduSystemTooHotFlag = false;
|
bool pcduSystemTooHotFlag = false;
|
||||||
bool syrlinksTooHotFlag = false;
|
bool syrlinksTooHotFlag = false;
|
||||||
bool obcTooHotFlag = false;
|
bool obcTooHotFlag = false;
|
||||||
|
bool mgtTooHotFlag = false;
|
||||||
bool strTooHotFlag = false;
|
bool strTooHotFlag = false;
|
||||||
bool rwTooHotFlag = false;
|
bool rwTooHotFlag = false;
|
||||||
|
|
||||||
|
@ -150,7 +150,8 @@ void SensorProcessing::processMgm(const float *mgm0Value, bool mgm0valid, const
|
|||||||
}
|
}
|
||||||
timeOfSavedMagFieldEst = timeOfMgmMeasurement;
|
timeOfSavedMagFieldEst = timeOfMgmMeasurement;
|
||||||
|
|
||||||
if (mgmDataProcessed->mgmVecTotDerivative.isValid()) {
|
if (VectorOperations<double>::norm(mgmVecTotDerivative, 3) != 0 and
|
||||||
|
mgmDataProcessed->mgmVecTotDerivative.isValid()) {
|
||||||
lowPassFilter(mgmVecTotDerivative, mgmDataProcessed->mgmVecTotDerivative.value,
|
lowPassFilter(mgmVecTotDerivative, mgmDataProcessed->mgmVecTotDerivative.value,
|
||||||
mgmParameters->mgmDerivativeFilterWeight);
|
mgmParameters->mgmDerivativeFilterWeight);
|
||||||
}
|
}
|
||||||
@ -533,7 +534,7 @@ void SensorProcessing::processGyr(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (gyrDataProcessed->gyrVecTot.isValid()) {
|
if (VectorOperations<double>::norm(gyrVecTot, 3) != 0 and gyrDataProcessed->gyrVecTot.isValid()) {
|
||||||
lowPassFilter(gyrVecTot, gyrDataProcessed->gyrVecTot.value, gyrParameters->gyrFilterWeight);
|
lowPassFilter(gyrVecTot, gyrDataProcessed->gyrVecTot.value, gyrParameters->gyrFilterWeight);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -95,7 +95,6 @@ void SafeCtrl::safeRateDamping(const double *magFieldB, const double *satRotRate
|
|||||||
acsParameters->safeModeControllerParameters.k_orthoNonMekf);
|
acsParameters->safeModeControllerParameters.k_orthoNonMekf);
|
||||||
|
|
||||||
// sum of all torques
|
// sum of all torques
|
||||||
double cmdTorque[3] = {0, 0, 0};
|
|
||||||
VectorOperations<double>::add(cmdParallel, cmdOrtho, cmdTorque, 3);
|
VectorOperations<double>::add(cmdParallel, cmdOrtho, cmdTorque, 3);
|
||||||
|
|
||||||
// calculate magnetic moment to command
|
// calculate magnetic moment to command
|
||||||
|
@ -17,6 +17,7 @@ static constexpr Event OBC_OVERHEATING = MAKE_EVENT(4, severity::HIGH);
|
|||||||
static constexpr Event CAMERA_OVERHEATING = MAKE_EVENT(5, severity::HIGH);
|
static constexpr Event CAMERA_OVERHEATING = MAKE_EVENT(5, severity::HIGH);
|
||||||
static constexpr Event PCDU_SYSTEM_OVERHEATING = MAKE_EVENT(6, severity::HIGH);
|
static constexpr Event PCDU_SYSTEM_OVERHEATING = MAKE_EVENT(6, severity::HIGH);
|
||||||
static constexpr Event HEATER_NOT_OFF_FOR_OFF_MODE = MAKE_EVENT(7, severity::MEDIUM);
|
static constexpr Event HEATER_NOT_OFF_FOR_OFF_MODE = MAKE_EVENT(7, severity::MEDIUM);
|
||||||
|
static constexpr Event MGT_OVERHEATING = MAKE_EVENT(8, severity::HIGH);
|
||||||
|
|
||||||
enum SetId : uint32_t {
|
enum SetId : uint32_t {
|
||||||
SENSOR_TEMPERATURES = 0,
|
SENSOR_TEMPERATURES = 0,
|
||||||
|
@ -114,6 +114,7 @@ ReturnValue_t EiveSystem::initialize() {
|
|||||||
manager->subscribeToEvent(eventQueue->getId(),
|
manager->subscribeToEvent(eventQueue->getId(),
|
||||||
event::getEventId(tcsCtrl::PCDU_SYSTEM_OVERHEATING));
|
event::getEventId(tcsCtrl::PCDU_SYSTEM_OVERHEATING));
|
||||||
manager->subscribeToEvent(eventQueue->getId(), event::getEventId(tcsCtrl::OBC_OVERHEATING));
|
manager->subscribeToEvent(eventQueue->getId(), event::getEventId(tcsCtrl::OBC_OVERHEATING));
|
||||||
|
manager->subscribeToEvent(eventQueue->getId(), event::getEventId(tcsCtrl::MGT_OVERHEATING));
|
||||||
manager->subscribeToEvent(eventQueue->getId(), event::getEventId(pdec::INVALID_TC_FRAME));
|
manager->subscribeToEvent(eventQueue->getId(), event::getEventId(pdec::INVALID_TC_FRAME));
|
||||||
return Subsystem::initialize();
|
return Subsystem::initialize();
|
||||||
}
|
}
|
||||||
@ -132,6 +133,7 @@ void EiveSystem::handleEventMessages() {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case tcsCtrl::OBC_OVERHEATING:
|
case tcsCtrl::OBC_OVERHEATING:
|
||||||
|
case tcsCtrl::MGT_OVERHEATING:
|
||||||
case tcsCtrl::PCDU_SYSTEM_OVERHEATING: {
|
case tcsCtrl::PCDU_SYSTEM_OVERHEATING: {
|
||||||
if (isInTransition) {
|
if (isInTransition) {
|
||||||
performSafeRecovery = true;
|
performSafeRecovery = true;
|
||||||
|
Loading…
Reference in New Issue
Block a user