Merge remote-tracking branch 'origin/main' into tcs-ctrl-bugfix
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
ec39dc05ae
@ -31,6 +31,13 @@ will consitute of a breaking change warranting a new major release:
|
|||||||
properly, which could lead to switch transitions being completed immediately. This can
|
properly, which could lead to switch transitions being completed immediately. This can
|
||||||
lead to weird bugs like heaters being commanded ON twice and can potentially lead to
|
lead to weird bugs like heaters being commanded ON twice and can potentially lead to
|
||||||
other bugs.
|
other bugs.
|
||||||
|
- TMP1075: Devices did not go to OFF mode when being set faulty.
|
||||||
|
- Update PL PCDU 1 in TCS mode tree on the EM.
|
||||||
|
- TMP1075: Possibly ignored health commands.
|
||||||
|
|
||||||
|
# Added
|
||||||
|
|
||||||
|
- Two events for heaters being commanded ON and OFF by the TCS controller
|
||||||
|
|
||||||
# [v6.0.0] 2023-07-02
|
# [v6.0.0] 2023-07-02
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/**
|
/**
|
||||||
* @brief Auto-generated event translation file. Contains 296 translations.
|
* @brief Auto-generated event translation file. Contains 298 translations.
|
||||||
* @details
|
* @details
|
||||||
* Generated on: 2023-06-21 19:01:02
|
* Generated on: 2023-07-06 19:00:21
|
||||||
*/
|
*/
|
||||||
#include "translateEvents.h"
|
#include "translateEvents.h"
|
||||||
|
|
||||||
@ -286,6 +286,8 @@ 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 *MGT_OVERHEATING_STRING = "MGT_OVERHEATING";
|
||||||
|
const char *TCS_SWITCHING_HEATER_ON_STRING = "TCS_SWITCHING_HEATER_ON";
|
||||||
|
const char *TCS_SWITCHING_HEATER_OFF_STRING = "TCS_SWITCHING_HEATER_OFF";
|
||||||
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";
|
||||||
@ -866,6 +868,10 @@ const char *translateEvents(Event event) {
|
|||||||
return HEATER_NOT_OFF_FOR_OFF_MODE_STRING;
|
return HEATER_NOT_OFF_FOR_OFF_MODE_STRING;
|
||||||
case (14108):
|
case (14108):
|
||||||
return MGT_OVERHEATING_STRING;
|
return MGT_OVERHEATING_STRING;
|
||||||
|
case (14109):
|
||||||
|
return TCS_SWITCHING_HEATER_ON_STRING;
|
||||||
|
case (14110):
|
||||||
|
return TCS_SWITCHING_HEATER_OFF_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-06-21 19:01:02
|
* Generated on: 2023-07-06 19:00:21
|
||||||
*/
|
*/
|
||||||
#include "translateObjects.h"
|
#include "translateObjects.h"
|
||||||
|
|
||||||
|
@ -168,5 +168,5 @@ void ObjectFactory::produce(void* args) {
|
|||||||
HeaterHandler* heaterHandler;
|
HeaterHandler* heaterHandler;
|
||||||
createHeaterComponents(gpioComIF, pwrSwitcher, healthTable, heaterHandler);
|
createHeaterComponents(gpioComIF, pwrSwitcher, healthTable, heaterHandler);
|
||||||
createThermalController(*heaterHandler, true);
|
createThermalController(*heaterHandler, true);
|
||||||
satsystem::init();
|
satsystem::init(true);
|
||||||
}
|
}
|
||||||
|
@ -133,5 +133,5 @@ void ObjectFactory::produce(void* args) {
|
|||||||
createMiscComponents();
|
createMiscComponents();
|
||||||
createThermalController(*heaterHandler, false);
|
createThermalController(*heaterHandler, false);
|
||||||
createAcsController(true, enableHkSets);
|
createAcsController(true, enableHkSets);
|
||||||
satsystem::init();
|
satsystem::init(false);
|
||||||
}
|
}
|
||||||
|
@ -172,10 +172,6 @@ void ObjectFactory::createTmpComponents(std::vector<std::pair<object_id_t, addre
|
|||||||
new Tmp1075Handler(tmpDevsToAdd[idx].first, objects::I2C_COM_IF, tmpDevCookies[idx]);
|
new Tmp1075Handler(tmpDevsToAdd[idx].first, objects::I2C_COM_IF, tmpDevCookies[idx]);
|
||||||
tmpDevHandler->setCustomFdir(new TmpDevFdir(tmpDevsToAdd[idx].first));
|
tmpDevHandler->setCustomFdir(new TmpDevFdir(tmpDevsToAdd[idx].first));
|
||||||
tmpDevHandler->connectModeTreeParent(satsystem::tcs::SUBSYSTEM);
|
tmpDevHandler->connectModeTreeParent(satsystem::tcs::SUBSYSTEM);
|
||||||
// TODO: Remove this after TCS subsystem was added
|
|
||||||
// These devices are connected to the 3V3 stack and should be powered permanently. Therefore,
|
|
||||||
// we set them to normal mode immediately here.
|
|
||||||
tmpDevHandler->setModeNormal();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -7,15 +7,21 @@ using namespace returnvalue;
|
|||||||
Max31865Dummy::Max31865Dummy(object_id_t objectId, object_id_t comif, CookieIF *comCookie)
|
Max31865Dummy::Max31865Dummy(object_id_t objectId, object_id_t comif, CookieIF *comCookie)
|
||||||
: DeviceHandlerBase(objectId, comif, comCookie), set(this, EiveMax31855::EXCHANGE_SET_ID) {}
|
: DeviceHandlerBase(objectId, comif, comCookie), set(this, EiveMax31855::EXCHANGE_SET_ID) {}
|
||||||
void Max31865Dummy::doStartUp() { setMode(MODE_ON); }
|
void Max31865Dummy::doStartUp() { setMode(MODE_ON); }
|
||||||
void Max31865Dummy::doShutDown() { setMode(_MODE_POWER_DOWN); }
|
void Max31865Dummy::doShutDown() {
|
||||||
|
PoolReadGuard pg(&set);
|
||||||
|
set.setValidity(false, true);
|
||||||
|
setMode(MODE_OFF);
|
||||||
|
}
|
||||||
ReturnValue_t Max31865Dummy::buildNormalDeviceCommand(DeviceCommandId_t *id) {
|
ReturnValue_t Max31865Dummy::buildNormalDeviceCommand(DeviceCommandId_t *id) {
|
||||||
return NOTHING_TO_SEND;
|
return NOTHING_TO_SEND;
|
||||||
}
|
}
|
||||||
ReturnValue_t Max31865Dummy::buildTransitionDeviceCommand(DeviceCommandId_t *id) { return OK; }
|
ReturnValue_t Max31865Dummy::buildTransitionDeviceCommand(DeviceCommandId_t *id) {
|
||||||
|
return NOTHING_TO_SEND;
|
||||||
|
}
|
||||||
ReturnValue_t Max31865Dummy::buildCommandFromCommand(DeviceCommandId_t deviceCommand,
|
ReturnValue_t Max31865Dummy::buildCommandFromCommand(DeviceCommandId_t deviceCommand,
|
||||||
const uint8_t *commandData,
|
const uint8_t *commandData,
|
||||||
size_t commandDataLen) {
|
size_t commandDataLen) {
|
||||||
return 0;
|
return NOTHING_TO_SEND;
|
||||||
}
|
}
|
||||||
ReturnValue_t Max31865Dummy::scanForReply(const uint8_t *start, size_t len,
|
ReturnValue_t Max31865Dummy::scanForReply(const uint8_t *start, size_t len,
|
||||||
DeviceCommandId_t *foundId, size_t *foundLen) {
|
DeviceCommandId_t *foundId, size_t *foundLen) {
|
||||||
|
@ -9,7 +9,11 @@ Tmp1075Dummy::Tmp1075Dummy(object_id_t objectId, object_id_t comif, CookieIF *co
|
|||||||
: DeviceHandlerBase(objectId, comif, comCookie), set(this) {}
|
: DeviceHandlerBase(objectId, comif, comCookie), set(this) {}
|
||||||
|
|
||||||
void Tmp1075Dummy::doStartUp() { setMode(MODE_ON); }
|
void Tmp1075Dummy::doStartUp() { setMode(MODE_ON); }
|
||||||
void Tmp1075Dummy::doShutDown() { setMode(MODE_OFF); }
|
void Tmp1075Dummy::doShutDown() {
|
||||||
|
PoolReadGuard pg(&set);
|
||||||
|
set.setValidity(false, true);
|
||||||
|
setMode(MODE_OFF);
|
||||||
|
}
|
||||||
|
|
||||||
ReturnValue_t Tmp1075Dummy::buildNormalDeviceCommand(DeviceCommandId_t *id) {
|
ReturnValue_t Tmp1075Dummy::buildNormalDeviceCommand(DeviceCommandId_t *id) {
|
||||||
return NOTHING_TO_SEND;
|
return NOTHING_TO_SEND;
|
||||||
@ -50,4 +54,11 @@ ReturnValue_t Tmp1075Dummy::initializeLocalDataPool(localpool::DataPool &localDa
|
|||||||
return OK;
|
return OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ReturnValue_t Tmp1075Dummy::setHealth(HealthState health) {
|
||||||
|
if (health == FAULTY or health == PERMANENT_FAULTY) {
|
||||||
|
setMode(_MODE_SHUT_DOWN);
|
||||||
|
}
|
||||||
|
return DeviceHandlerBase::setHealth(health);
|
||||||
|
}
|
||||||
|
|
||||||
LocalPoolDataSetBase *Tmp1075Dummy::getDataSetHandle(sid_t sid) { return &set; }
|
LocalPoolDataSetBase *Tmp1075Dummy::getDataSetHandle(sid_t sid) { return &set; }
|
||||||
|
@ -26,6 +26,7 @@ class Tmp1075Dummy : public DeviceHandlerBase {
|
|||||||
uint32_t getTransitionDelayMs(Mode_t modeFrom, Mode_t modeTo) override;
|
uint32_t getTransitionDelayMs(Mode_t modeFrom, Mode_t modeTo) override;
|
||||||
ReturnValue_t initializeLocalDataPool(localpool::DataPool &localDataPoolMap,
|
ReturnValue_t initializeLocalDataPool(localpool::DataPool &localDataPoolMap,
|
||||||
LocalDataPoolManager &poolManager) override;
|
LocalDataPoolManager &poolManager) override;
|
||||||
|
ReturnValue_t setHealth(HealthState health) override;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
LocalPoolDataSetBase *getDataSetHandle(sid_t sid) override;
|
LocalPoolDataSetBase *getDataSetHandle(sid_t sid) override;
|
||||||
|
@ -280,6 +280,8 @@ Event ID (dec); Event ID (hex); Name; Severity; Description; File Path
|
|||||||
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;HIGH;No description;mission/controller/tcsDefs.h
|
14108;0x371c;MGT_OVERHEATING;HIGH;No description;mission/controller/tcsDefs.h
|
||||||
|
14109;0x371d;TCS_SWITCHING_HEATER_ON;INFO;P1: Module index. P2: Heater index;mission/controller/tcsDefs.h
|
||||||
|
14110;0x371e;TCS_SWITCHING_HEATER_OFF;INFO;P1: Module index. P2: Heater index;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
|
||||||
|
|
@ -280,6 +280,8 @@ Event ID (dec); Event ID (hex); Name; Severity; Description; File Path
|
|||||||
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;HIGH;No description;mission/controller/tcsDefs.h
|
14108;0x371c;MGT_OVERHEATING;HIGH;No description;mission/controller/tcsDefs.h
|
||||||
|
14109;0x371d;TCS_SWITCHING_HEATER_ON;INFO;P1: Module index. P2: Heater index;mission/controller/tcsDefs.h
|
||||||
|
14110;0x371e;TCS_SWITCHING_HEATER_OFF;INFO;P1: Module index. P2: Heater index;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 296 translations.
|
* @brief Auto-generated event translation file. Contains 298 translations.
|
||||||
* @details
|
* @details
|
||||||
* Generated on: 2023-06-21 19:01:02
|
* Generated on: 2023-07-06 19:00:21
|
||||||
*/
|
*/
|
||||||
#include "translateEvents.h"
|
#include "translateEvents.h"
|
||||||
|
|
||||||
@ -286,6 +286,8 @@ 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 *MGT_OVERHEATING_STRING = "MGT_OVERHEATING";
|
||||||
|
const char *TCS_SWITCHING_HEATER_ON_STRING = "TCS_SWITCHING_HEATER_ON";
|
||||||
|
const char *TCS_SWITCHING_HEATER_OFF_STRING = "TCS_SWITCHING_HEATER_OFF";
|
||||||
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";
|
||||||
@ -866,6 +868,10 @@ const char *translateEvents(Event event) {
|
|||||||
return HEATER_NOT_OFF_FOR_OFF_MODE_STRING;
|
return HEATER_NOT_OFF_FOR_OFF_MODE_STRING;
|
||||||
case (14108):
|
case (14108):
|
||||||
return MGT_OVERHEATING_STRING;
|
return MGT_OVERHEATING_STRING;
|
||||||
|
case (14109):
|
||||||
|
return TCS_SWITCHING_HEATER_ON_STRING;
|
||||||
|
case (14110):
|
||||||
|
return TCS_SWITCHING_HEATER_OFF_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-06-21 19:01:02
|
* Generated on: 2023-07-06 19:00:21
|
||||||
*/
|
*/
|
||||||
#include "translateObjects.h"
|
#include "translateObjects.h"
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/**
|
/**
|
||||||
* @brief Auto-generated event translation file. Contains 296 translations.
|
* @brief Auto-generated event translation file. Contains 298 translations.
|
||||||
* @details
|
* @details
|
||||||
* Generated on: 2023-06-21 19:01:02
|
* Generated on: 2023-07-06 19:00:21
|
||||||
*/
|
*/
|
||||||
#include "translateEvents.h"
|
#include "translateEvents.h"
|
||||||
|
|
||||||
@ -286,6 +286,8 @@ 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 *MGT_OVERHEATING_STRING = "MGT_OVERHEATING";
|
||||||
|
const char *TCS_SWITCHING_HEATER_ON_STRING = "TCS_SWITCHING_HEATER_ON";
|
||||||
|
const char *TCS_SWITCHING_HEATER_OFF_STRING = "TCS_SWITCHING_HEATER_OFF";
|
||||||
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";
|
||||||
@ -866,6 +868,10 @@ const char *translateEvents(Event event) {
|
|||||||
return HEATER_NOT_OFF_FOR_OFF_MODE_STRING;
|
return HEATER_NOT_OFF_FOR_OFF_MODE_STRING;
|
||||||
case (14108):
|
case (14108):
|
||||||
return MGT_OVERHEATING_STRING;
|
return MGT_OVERHEATING_STRING;
|
||||||
|
case (14109):
|
||||||
|
return TCS_SWITCHING_HEATER_ON_STRING;
|
||||||
|
case (14110):
|
||||||
|
return TCS_SWITCHING_HEATER_OFF_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-06-21 19:01:02
|
* Generated on: 2023-07-06 19:00:21
|
||||||
*/
|
*/
|
||||||
#include "translateObjects.h"
|
#include "translateObjects.h"
|
||||||
|
|
||||||
|
@ -1008,7 +1008,7 @@ void ThermalController::ctrlAcsBoard() {
|
|||||||
heater::Switch redSwitchNr = heater::HEATER_3_OBC_BRD;
|
heater::Switch redSwitchNr = heater::HEATER_3_OBC_BRD;
|
||||||
|
|
||||||
// A side
|
// A side
|
||||||
thermalComponent = ACS_BOARD;
|
currThermalComponent = ACS_BOARD;
|
||||||
sensors[0].first = deviceTemperatures.gyro0SideA.isValid();
|
sensors[0].first = deviceTemperatures.gyro0SideA.isValid();
|
||||||
sensors[0].second = deviceTemperatures.gyro0SideA.value;
|
sensors[0].second = deviceTemperatures.gyro0SideA.value;
|
||||||
sensors[1].first = deviceTemperatures.gyro2SideB.isValid();
|
sensors[1].first = deviceTemperatures.gyro2SideB.isValid();
|
||||||
@ -1052,7 +1052,7 @@ void ThermalController::ctrlAcsBoard() {
|
|||||||
if (chooseHeater(switchNr, redSwitchNr)) {
|
if (chooseHeater(switchNr, redSwitchNr)) {
|
||||||
if (heaterHandler.getSwitchState(switchNr)) {
|
if (heaterHandler.getSwitchState(switchNr)) {
|
||||||
if (submode != SUBMODE_NO_HEATER_CTRL) {
|
if (submode != SUBMODE_NO_HEATER_CTRL) {
|
||||||
heaterSwitchHelper(switchNr, HeaterHandler::SwitchState::OFF, thermalComponent);
|
heaterSwitchHelper(switchNr, HeaterHandler::SwitchState::OFF, currThermalComponent);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1062,7 +1062,7 @@ void ThermalController::ctrlAcsBoard() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void ThermalController::ctrlMgt() {
|
void ThermalController::ctrlMgt() {
|
||||||
thermalComponent = MGT;
|
currThermalComponent = MGT;
|
||||||
sensors[0].first = sensorTemperatures.mgt.isValid();
|
sensors[0].first = sensorTemperatures.mgt.isValid();
|
||||||
sensors[0].second = sensorTemperatures.mgt.value;
|
sensors[0].second = sensorTemperatures.mgt.value;
|
||||||
sensors[1].first = deviceTemperatures.mgt.isValid();
|
sensors[1].first = deviceTemperatures.mgt.isValid();
|
||||||
@ -1087,7 +1087,7 @@ void ThermalController::ctrlRw() {
|
|||||||
std::array<uint32_t, 4> sensorTemps{};
|
std::array<uint32_t, 4> sensorTemps{};
|
||||||
|
|
||||||
// RW1
|
// RW1
|
||||||
thermalComponent = RW;
|
currThermalComponent = RW;
|
||||||
sensors[0].first = sensorTemperatures.rw1.isValid();
|
sensors[0].first = sensorTemperatures.rw1.isValid();
|
||||||
sensors[0].second = sensorTemperatures.rw1.value;
|
sensors[0].second = sensorTemperatures.rw1.value;
|
||||||
sensors[1].first = deviceTemperatures.rw1.isValid();
|
sensors[1].first = deviceTemperatures.rw1.isValid();
|
||||||
@ -1108,7 +1108,7 @@ void ThermalController::ctrlRw() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// RW2
|
// RW2
|
||||||
thermalComponent = RW;
|
currThermalComponent = RW;
|
||||||
sensors[0].first = deviceTemperatures.rw2.isValid();
|
sensors[0].first = deviceTemperatures.rw2.isValid();
|
||||||
sensors[0].second = deviceTemperatures.rw2.value;
|
sensors[0].second = deviceTemperatures.rw2.value;
|
||||||
sensors[1].first = deviceTemperatures.rw3.isValid();
|
sensors[1].first = deviceTemperatures.rw3.isValid();
|
||||||
@ -1130,7 +1130,7 @@ void ThermalController::ctrlRw() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// RW3
|
// RW3
|
||||||
thermalComponent = RW;
|
currThermalComponent = RW;
|
||||||
sensors[0].first = deviceTemperatures.rw3.isValid();
|
sensors[0].first = deviceTemperatures.rw3.isValid();
|
||||||
sensors[0].second = deviceTemperatures.rw3.value;
|
sensors[0].second = deviceTemperatures.rw3.value;
|
||||||
sensors[1].first = deviceTemperatures.rw4.isValid();
|
sensors[1].first = deviceTemperatures.rw4.isValid();
|
||||||
@ -1153,7 +1153,7 @@ void ThermalController::ctrlRw() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// RW4
|
// RW4
|
||||||
thermalComponent = RW;
|
currThermalComponent = RW;
|
||||||
sensors[0].first = deviceTemperatures.rw4.isValid();
|
sensors[0].first = deviceTemperatures.rw4.isValid();
|
||||||
sensors[0].second = deviceTemperatures.rw4.value;
|
sensors[0].second = deviceTemperatures.rw4.value;
|
||||||
sensors[1].first = deviceTemperatures.rw1.isValid();
|
sensors[1].first = deviceTemperatures.rw1.isValid();
|
||||||
@ -1187,7 +1187,7 @@ void ThermalController::ctrlRw() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void ThermalController::ctrlStr() {
|
void ThermalController::ctrlStr() {
|
||||||
thermalComponent = STR;
|
currThermalComponent = STR;
|
||||||
sensors[0].first = sensorTemperatures.startracker.isValid();
|
sensors[0].first = sensorTemperatures.startracker.isValid();
|
||||||
sensors[0].second = sensorTemperatures.startracker.value;
|
sensors[0].second = sensorTemperatures.startracker.value;
|
||||||
sensors[1].first = deviceTemperatures.startracker.isValid();
|
sensors[1].first = deviceTemperatures.startracker.isValid();
|
||||||
@ -1201,7 +1201,7 @@ void ThermalController::ctrlStr() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void ThermalController::ctrlIfBoard() {
|
void ThermalController::ctrlIfBoard() {
|
||||||
thermalComponent = IF_BOARD;
|
currThermalComponent = IF_BOARD;
|
||||||
sensors[0].first = sensorTemperatures.tmp1075IfBrd.isValid();
|
sensors[0].first = sensorTemperatures.tmp1075IfBrd.isValid();
|
||||||
sensors[0].second = sensorTemperatures.tmp1075IfBrd.value;
|
sensors[0].second = sensorTemperatures.tmp1075IfBrd.value;
|
||||||
sensors[1].first = sensorTemperatures.mgt.isValid();
|
sensors[1].first = sensorTemperatures.mgt.isValid();
|
||||||
@ -1215,7 +1215,7 @@ void ThermalController::ctrlIfBoard() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void ThermalController::ctrlTcsBoard() {
|
void ThermalController::ctrlTcsBoard() {
|
||||||
thermalComponent = TCS_BOARD;
|
currThermalComponent = TCS_BOARD;
|
||||||
sensors[0].first = sensorTemperatures.tcsBoard.isValid();
|
sensors[0].first = sensorTemperatures.tcsBoard.isValid();
|
||||||
sensors[0].second = sensorTemperatures.tcsBoard.value;
|
sensors[0].second = sensorTemperatures.tcsBoard.value;
|
||||||
sensors[1].first = sensorTemperatures.tmp1075Tcs0.isValid();
|
sensors[1].first = sensorTemperatures.tmp1075Tcs0.isValid();
|
||||||
@ -1229,7 +1229,7 @@ void ThermalController::ctrlTcsBoard() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void ThermalController::ctrlObc() {
|
void ThermalController::ctrlObc() {
|
||||||
thermalComponent = OBC;
|
currThermalComponent = OBC;
|
||||||
sensors[0].first = deviceTemperatures.q7s.isValid();
|
sensors[0].first = deviceTemperatures.q7s.isValid();
|
||||||
sensors[0].second = deviceTemperatures.q7s.value;
|
sensors[0].second = deviceTemperatures.q7s.value;
|
||||||
sensors[1].first = sensorTemperatures.tmp1075Tcs1.isValid();
|
sensors[1].first = sensorTemperatures.tmp1075Tcs1.isValid();
|
||||||
@ -1248,7 +1248,7 @@ void ThermalController::ctrlObc() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void ThermalController::ctrlObcIfBoard() {
|
void ThermalController::ctrlObcIfBoard() {
|
||||||
thermalComponent = OBCIF_BOARD;
|
currThermalComponent = OBCIF_BOARD;
|
||||||
sensors[0].first = deviceTemperatures.q7s.isValid();
|
sensors[0].first = deviceTemperatures.q7s.isValid();
|
||||||
sensors[0].second = deviceTemperatures.q7s.value;
|
sensors[0].second = deviceTemperatures.q7s.value;
|
||||||
sensors[1].first = sensorTemperatures.tmp1075Tcs0.isValid();
|
sensors[1].first = sensorTemperatures.tmp1075Tcs0.isValid();
|
||||||
@ -1267,7 +1267,7 @@ void ThermalController::ctrlObcIfBoard() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void ThermalController::ctrlSBandTransceiver() {
|
void ThermalController::ctrlSBandTransceiver() {
|
||||||
thermalComponent = SBAND_TRANSCEIVER;
|
currThermalComponent = SBAND_TRANSCEIVER;
|
||||||
sensors[0].first = deviceTemperatures.syrlinksPowerAmplifier.isValid();
|
sensors[0].first = deviceTemperatures.syrlinksPowerAmplifier.isValid();
|
||||||
sensors[0].second = deviceTemperatures.syrlinksPowerAmplifier.value;
|
sensors[0].second = deviceTemperatures.syrlinksPowerAmplifier.value;
|
||||||
sensors[1].first = deviceTemperatures.syrlinksBasebandBoard.isValid();
|
sensors[1].first = deviceTemperatures.syrlinksBasebandBoard.isValid();
|
||||||
@ -1285,7 +1285,7 @@ void ThermalController::ctrlSBandTransceiver() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
void ThermalController::ctrlPcduP60Board() {
|
void ThermalController::ctrlPcduP60Board() {
|
||||||
thermalComponent = PCDUP60_BOARD;
|
currThermalComponent = PCDUP60_BOARD;
|
||||||
sensors[0].first = deviceTemperatures.temp1P60dock.isValid();
|
sensors[0].first = deviceTemperatures.temp1P60dock.isValid();
|
||||||
sensors[0].second = deviceTemperatures.temp1P60dock.value;
|
sensors[0].second = deviceTemperatures.temp1P60dock.value;
|
||||||
sensors[1].first = deviceTemperatures.temp2P60dock.isValid();
|
sensors[1].first = deviceTemperatures.temp2P60dock.isValid();
|
||||||
@ -1302,7 +1302,7 @@ void ThermalController::ctrlPcduP60Board() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void ThermalController::ctrlPcduAcu() {
|
void ThermalController::ctrlPcduAcu() {
|
||||||
thermalComponent = PCDUACU;
|
currThermalComponent = PCDUACU;
|
||||||
heater::Switch switchNr = heater::HEATER_1_PCDU_PDU;
|
heater::Switch switchNr = heater::HEATER_1_PCDU_PDU;
|
||||||
heater::Switch redSwitchNr = heater::HEATER_2_ACS_BRD;
|
heater::Switch redSwitchNr = heater::HEATER_2_ACS_BRD;
|
||||||
|
|
||||||
@ -1318,7 +1318,7 @@ void ThermalController::ctrlPcduAcu() {
|
|||||||
} else if (sensorTemperatures.acu.isValid()) {
|
} else if (sensorTemperatures.acu.isValid()) {
|
||||||
sensorTemp = sensorTemperatures.acu.value;
|
sensorTemp = sensorTemperatures.acu.value;
|
||||||
} else {
|
} else {
|
||||||
triggerEvent(tcsCtrl::NO_VALID_SENSOR_TEMPERATURE, thermalComponent);
|
triggerEvent(tcsCtrl::NO_VALID_SENSOR_TEMPERATURE, currThermalComponent);
|
||||||
sensorTempAvailable = false;
|
sensorTempAvailable = false;
|
||||||
}
|
}
|
||||||
if (sensorTempAvailable) {
|
if (sensorTempAvailable) {
|
||||||
@ -1335,7 +1335,7 @@ void ThermalController::ctrlPcduAcu() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void ThermalController::ctrlPcduPdu() {
|
void ThermalController::ctrlPcduPdu() {
|
||||||
thermalComponent = PCDUPDU;
|
currThermalComponent = PCDUPDU;
|
||||||
sensors[0].first = deviceTemperatures.pdu1.isValid();
|
sensors[0].first = deviceTemperatures.pdu1.isValid();
|
||||||
sensors[0].second = deviceTemperatures.pdu1.value;
|
sensors[0].second = deviceTemperatures.pdu1.value;
|
||||||
sensors[1].first = deviceTemperatures.pdu2.isValid();
|
sensors[1].first = deviceTemperatures.pdu2.isValid();
|
||||||
@ -1354,7 +1354,7 @@ void ThermalController::ctrlPcduPdu() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void ThermalController::ctrlPlPcduBoard() {
|
void ThermalController::ctrlPlPcduBoard() {
|
||||||
thermalComponent = PLPCDU_BOARD;
|
currThermalComponent = PLPCDU_BOARD;
|
||||||
sensors[0].first = sensorTemperatures.tmp1075PlPcdu0.isValid();
|
sensors[0].first = sensorTemperatures.tmp1075PlPcdu0.isValid();
|
||||||
sensors[0].second = sensorTemperatures.tmp1075PlPcdu0.value;
|
sensors[0].second = sensorTemperatures.tmp1075PlPcdu0.value;
|
||||||
sensors[1].first = sensorTemperatures.tmp1075PlPcdu1.isValid();
|
sensors[1].first = sensorTemperatures.tmp1075PlPcdu1.isValid();
|
||||||
@ -1370,7 +1370,7 @@ void ThermalController::ctrlPlPcduBoard() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void ThermalController::ctrlPlocMissionBoard() {
|
void ThermalController::ctrlPlocMissionBoard() {
|
||||||
thermalComponent = PLOCMISSION_BOARD;
|
currThermalComponent = PLOCMISSION_BOARD;
|
||||||
sensors[0].first = sensorTemperatures.plocHeatspreader.isValid();
|
sensors[0].first = sensorTemperatures.plocHeatspreader.isValid();
|
||||||
sensors[0].second = sensorTemperatures.plocHeatspreader.value;
|
sensors[0].second = sensorTemperatures.plocHeatspreader.value;
|
||||||
sensors[1].first = sensorTemperatures.plocMissionboard.isValid();
|
sensors[1].first = sensorTemperatures.plocMissionboard.isValid();
|
||||||
@ -1385,7 +1385,7 @@ void ThermalController::ctrlPlocMissionBoard() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void ThermalController::ctrlPlocProcessingBoard() {
|
void ThermalController::ctrlPlocProcessingBoard() {
|
||||||
thermalComponent = PLOCPROCESSING_BOARD;
|
currThermalComponent = PLOCPROCESSING_BOARD;
|
||||||
sensors[0].first = sensorTemperatures.plocMissionboard.isValid();
|
sensors[0].first = sensorTemperatures.plocMissionboard.isValid();
|
||||||
sensors[0].second = sensorTemperatures.plocMissionboard.value;
|
sensors[0].second = sensorTemperatures.plocMissionboard.value;
|
||||||
sensors[1].first = sensorTemperatures.plocHeatspreader.isValid();
|
sensors[1].first = sensorTemperatures.plocHeatspreader.isValid();
|
||||||
@ -1400,7 +1400,7 @@ void ThermalController::ctrlPlocProcessingBoard() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void ThermalController::ctrlDac() {
|
void ThermalController::ctrlDac() {
|
||||||
thermalComponent = DAC;
|
currThermalComponent = DAC;
|
||||||
sensors[0].first = sensorTemperatures.dacHeatspreader.isValid();
|
sensors[0].first = sensorTemperatures.dacHeatspreader.isValid();
|
||||||
sensors[0].second = sensorTemperatures.dacHeatspreader.value;
|
sensors[0].second = sensorTemperatures.dacHeatspreader.value;
|
||||||
sensors[1].first = sensorTemperatures.plocMissionboard.isValid();
|
sensors[1].first = sensorTemperatures.plocMissionboard.isValid();
|
||||||
@ -1414,7 +1414,7 @@ void ThermalController::ctrlDac() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void ThermalController::ctrlCameraBody() {
|
void ThermalController::ctrlCameraBody() {
|
||||||
thermalComponent = CAMERA;
|
currThermalComponent = CAMERA;
|
||||||
sensors[0].first = sensorTemperatures.payload4kCamera.isValid();
|
sensors[0].first = sensorTemperatures.payload4kCamera.isValid();
|
||||||
sensors[0].second = sensorTemperatures.payload4kCamera.value;
|
sensors[0].second = sensorTemperatures.payload4kCamera.value;
|
||||||
sensors[1].first = sensorTemperatures.dro.isValid();
|
sensors[1].first = sensorTemperatures.dro.isValid();
|
||||||
@ -1440,7 +1440,7 @@ void ThermalController::ctrlCameraBody() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void ThermalController::ctrlDro() {
|
void ThermalController::ctrlDro() {
|
||||||
thermalComponent = DRO;
|
currThermalComponent = DRO;
|
||||||
sensors[0].first = sensorTemperatures.dro.isValid();
|
sensors[0].first = sensorTemperatures.dro.isValid();
|
||||||
sensors[0].second = sensorTemperatures.dro.value;
|
sensors[0].second = sensorTemperatures.dro.value;
|
||||||
sensors[1].first = sensorTemperatures.payload4kCamera.isValid();
|
sensors[1].first = sensorTemperatures.payload4kCamera.isValid();
|
||||||
@ -1454,7 +1454,7 @@ void ThermalController::ctrlDro() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void ThermalController::ctrlX8() {
|
void ThermalController::ctrlX8() {
|
||||||
thermalComponent = X8;
|
currThermalComponent = X8;
|
||||||
sensors[0].first = sensorTemperatures.x8.isValid();
|
sensors[0].first = sensorTemperatures.x8.isValid();
|
||||||
sensors[0].second = sensorTemperatures.x8.value;
|
sensors[0].second = sensorTemperatures.x8.value;
|
||||||
sensors[1].first = sensorTemperatures.hpa.isValid();
|
sensors[1].first = sensorTemperatures.hpa.isValid();
|
||||||
@ -1468,7 +1468,7 @@ void ThermalController::ctrlX8() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void ThermalController::ctrlTx() {
|
void ThermalController::ctrlTx() {
|
||||||
thermalComponent = TX;
|
currThermalComponent = TX;
|
||||||
sensors[0].first = sensorTemperatures.eBandTx.isValid();
|
sensors[0].first = sensorTemperatures.eBandTx.isValid();
|
||||||
sensors[0].second = sensorTemperatures.eBandTx.value;
|
sensors[0].second = sensorTemperatures.eBandTx.value;
|
||||||
sensors[1].first = sensorTemperatures.x8.isValid();
|
sensors[1].first = sensorTemperatures.x8.isValid();
|
||||||
@ -1482,7 +1482,7 @@ void ThermalController::ctrlTx() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void ThermalController::ctrlMpa() {
|
void ThermalController::ctrlMpa() {
|
||||||
thermalComponent = MPA;
|
currThermalComponent = MPA;
|
||||||
sensors[0].first = sensorTemperatures.mpa.isValid();
|
sensors[0].first = sensorTemperatures.mpa.isValid();
|
||||||
sensors[0].second = sensorTemperatures.mpa.value;
|
sensors[0].second = sensorTemperatures.mpa.value;
|
||||||
sensors[1].first = sensorTemperatures.hpa.isValid();
|
sensors[1].first = sensorTemperatures.hpa.isValid();
|
||||||
@ -1496,7 +1496,7 @@ void ThermalController::ctrlMpa() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void ThermalController::ctrlHpa() {
|
void ThermalController::ctrlHpa() {
|
||||||
thermalComponent = HPA;
|
currThermalComponent = HPA;
|
||||||
sensors[0].first = sensorTemperatures.hpa.isValid();
|
sensors[0].first = sensorTemperatures.hpa.isValid();
|
||||||
sensors[0].second = sensorTemperatures.hpa.value;
|
sensors[0].second = sensorTemperatures.hpa.value;
|
||||||
sensors[1].first = sensorTemperatures.x8.isValid();
|
sensors[1].first = sensorTemperatures.x8.isValid();
|
||||||
@ -1510,7 +1510,7 @@ void ThermalController::ctrlHpa() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void ThermalController::ctrlScexBoard() {
|
void ThermalController::ctrlScexBoard() {
|
||||||
thermalComponent = SCEX_BOARD;
|
currThermalComponent = SCEX_BOARD;
|
||||||
sensors[0].first = sensorTemperatures.scex.isValid();
|
sensors[0].first = sensorTemperatures.scex.isValid();
|
||||||
sensors[0].second = sensorTemperatures.scex.value;
|
sensors[0].second = sensorTemperatures.scex.value;
|
||||||
sensors[1].first = sensorTemperatures.x8.isValid();
|
sensors[1].first = sensorTemperatures.x8.isValid();
|
||||||
@ -1601,7 +1601,7 @@ void ThermalController::ctrlComponentTemperature(HeaterContext& htrCtx) {
|
|||||||
if (chooseHeater(htrCtx.switchNr, htrCtx.redSwitchNr)) {
|
if (chooseHeater(htrCtx.switchNr, htrCtx.redSwitchNr)) {
|
||||||
if (heaterCtrlAllowed() and
|
if (heaterCtrlAllowed() and
|
||||||
(heaterHandler.getSwitchState(htrCtx.switchNr) == HeaterHandler::SwitchState::ON)) {
|
(heaterHandler.getSwitchState(htrCtx.switchNr) == HeaterHandler::SwitchState::ON)) {
|
||||||
heaterSwitchHelper(htrCtx.switchNr, HeaterHandler::SwitchState::OFF, thermalComponent);
|
heaterSwitchHelper(htrCtx.switchNr, HeaterHandler::SwitchState::OFF, currThermalComponent);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1613,19 +1613,19 @@ bool ThermalController::selectAndReadSensorTemp(HeaterContext& htrCtx) {
|
|||||||
sensors[i].second > SANITY_LIMIT_LOWER_TEMP and
|
sensors[i].second > SANITY_LIMIT_LOWER_TEMP and
|
||||||
sensors[i].second < SANITY_LIMIT_UPPER_TEMP) {
|
sensors[i].second < SANITY_LIMIT_UPPER_TEMP) {
|
||||||
sensorTemp = sensors[i].second;
|
sensorTemp = sensors[i].second;
|
||||||
thermalStates[thermalComponent].errorCounter = 0;
|
thermalStates[currThermalComponent].errorCounter = 0;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
thermalStates[thermalComponent].errorCounter++;
|
thermalStates[currThermalComponent].errorCounter++;
|
||||||
if (thermalComponent != RW and thermalComponent != ACS_BOARD) {
|
if (currThermalComponent != RW and currThermalComponent != ACS_BOARD) {
|
||||||
if (thermalStates[thermalComponent].errorCounter <= 3) {
|
if (thermalStates[currThermalComponent].errorCounter <= 3) {
|
||||||
triggerEvent(tcsCtrl::NO_VALID_SENSOR_TEMPERATURE, thermalComponent);
|
triggerEvent(tcsCtrl::NO_VALID_SENSOR_TEMPERATURE, currThermalComponent);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (thermalStates[thermalComponent].errorCounter <= 8) {
|
if (thermalStates[currThermalComponent].errorCounter <= 8) {
|
||||||
triggerEvent(tcsCtrl::NO_VALID_SENSOR_TEMPERATURE, thermalComponent);
|
triggerEvent(tcsCtrl::NO_VALID_SENSOR_TEMPERATURE, currThermalComponent);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1658,14 +1658,14 @@ void ThermalController::heaterCtrlTempTooHighHandler(HeaterContext& htrCtx, cons
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (htrCtx.switchState == HeaterHandler::SwitchState::ON) {
|
if (htrCtx.switchState == HeaterHandler::SwitchState::ON) {
|
||||||
sif::info << "TCS: Component " << static_cast<int>(thermalComponent) << " too warm, above "
|
sif::info << "TCS: Component " << static_cast<int>(currThermalComponent) << " too warm, above "
|
||||||
<< whatLimit << ", switching off heater" << std::endl;
|
<< whatLimit << ", switching off heater" << std::endl;
|
||||||
heaterSwitchHelper(htrCtx.switchNr, HeaterHandler::SwitchState::OFF, thermalComponent);
|
heaterSwitchHelper(htrCtx.switchNr, HeaterHandler::SwitchState::OFF, currThermalComponent);
|
||||||
heaterStates[htrCtx.switchNr].switchTransition = true;
|
heaterStates[htrCtx.switchNr].switchTransition = true;
|
||||||
heaterStates[htrCtx.switchNr].target = HeaterHandler::SwitchState::OFF;
|
heaterStates[htrCtx.switchNr].target = HeaterHandler::SwitchState::OFF;
|
||||||
}
|
}
|
||||||
if (heaterHandler.getSwitchState(htrCtx.redSwitchNr) == HeaterHandler::SwitchState::ON) {
|
if (heaterHandler.getSwitchState(htrCtx.redSwitchNr) == HeaterHandler::SwitchState::ON) {
|
||||||
heaterSwitchHelper(htrCtx.redSwitchNr, HeaterHandler::SwitchState::OFF, thermalComponent);
|
heaterSwitchHelper(htrCtx.redSwitchNr, HeaterHandler::SwitchState::OFF, currThermalComponent);
|
||||||
heaterStates[htrCtx.redSwitchNr].switchTransition = true;
|
heaterStates[htrCtx.redSwitchNr].switchTransition = true;
|
||||||
heaterStates[htrCtx.redSwitchNr].target = HeaterHandler::SwitchState::OFF;
|
heaterStates[htrCtx.redSwitchNr].target = HeaterHandler::SwitchState::OFF;
|
||||||
}
|
}
|
||||||
@ -1688,13 +1688,13 @@ void ThermalController::checkLimitsAndCtrlHeater(HeaterContext& htrCtx) {
|
|||||||
if (htrCtx.switchState == HeaterHandler::SwitchState::OFF) {
|
if (htrCtx.switchState == HeaterHandler::SwitchState::OFF) {
|
||||||
if (sensorTemp < htrCtx.tempLimit.opLowerLimit and heaterCtrlAllowed()) {
|
if (sensorTemp < htrCtx.tempLimit.opLowerLimit and heaterCtrlAllowed()) {
|
||||||
sif::info << "TCS: Heater " << static_cast<int>(htrCtx.switchNr) << " for component "
|
sif::info << "TCS: Heater " << static_cast<int>(htrCtx.switchNr) << " for component "
|
||||||
<< static_cast<int>(thermalComponent) << " ON" << std::endl;
|
<< static_cast<int>(currThermalComponent) << " ON" << std::endl;
|
||||||
heaterSwitchHelper(htrCtx.switchNr, HeaterHandler::SwitchState::ON, thermalComponent);
|
heaterSwitchHelper(htrCtx.switchNr, HeaterHandler::SwitchState::ON, currThermalComponent);
|
||||||
heaterStates[htrCtx.switchNr].switchTransition = true;
|
heaterStates[htrCtx.switchNr].switchTransition = true;
|
||||||
heaterStates[htrCtx.switchNr].target = HeaterHandler::SwitchState::ON;
|
heaterStates[htrCtx.switchNr].target = HeaterHandler::SwitchState::ON;
|
||||||
} else {
|
} else {
|
||||||
// Even if heater control is now allowed, we can update the state.
|
// Even if heater control is now allowed, we can update the state.
|
||||||
thermalStates[thermalComponent].heating = false;
|
thermalStates[currThermalComponent].heating = false;
|
||||||
}
|
}
|
||||||
heaterCtrlCheckUpperLimits(htrCtx);
|
heaterCtrlCheckUpperLimits(htrCtx);
|
||||||
return;
|
return;
|
||||||
@ -1702,12 +1702,12 @@ void ThermalController::checkLimitsAndCtrlHeater(HeaterContext& htrCtx) {
|
|||||||
|
|
||||||
// Heater on
|
// Heater on
|
||||||
if (htrCtx.switchState == HeaterHandler::SwitchState::ON) {
|
if (htrCtx.switchState == HeaterHandler::SwitchState::ON) {
|
||||||
if (thermalStates[thermalComponent].heating) {
|
if (thermalStates[currThermalComponent].heating) {
|
||||||
// We are already in a heating cycle, so need to check whether heating task is complete.
|
// We are already in a heating cycle, so need to check whether heating task is complete.
|
||||||
if (sensorTemp >= htrCtx.tempLimit.opLowerLimit + TEMP_OFFSET and heaterCtrlAllowed()) {
|
if (sensorTemp >= htrCtx.tempLimit.opLowerLimit + TEMP_OFFSET and heaterCtrlAllowed()) {
|
||||||
sif::info << "TCS: Heater " << static_cast<int>(htrCtx.switchNr) << " for component "
|
sif::info << "TCS: Heater " << static_cast<int>(htrCtx.switchNr) << " for component "
|
||||||
<< static_cast<int>(thermalComponent) << " OFF" << std::endl;
|
<< static_cast<int>(currThermalComponent) << " OFF" << std::endl;
|
||||||
heaterSwitchHelper(htrCtx.switchNr, HeaterHandler::SwitchState::OFF, thermalComponent);
|
heaterSwitchHelper(htrCtx.switchNr, HeaterHandler::SwitchState::OFF, currThermalComponent);
|
||||||
heaterStates[htrCtx.switchNr].switchTransition = true;
|
heaterStates[htrCtx.switchNr].switchTransition = true;
|
||||||
heaterStates[htrCtx.switchNr].target = HeaterHandler::SwitchState::OFF;
|
heaterStates[htrCtx.switchNr].target = HeaterHandler::SwitchState::OFF;
|
||||||
}
|
}
|
||||||
@ -1749,7 +1749,7 @@ void ThermalController::resetSensorsArray() {
|
|||||||
validValuePair.first = false;
|
validValuePair.first = false;
|
||||||
validValuePair.second = INVALID_TEMPERATURE;
|
validValuePair.second = INVALID_TEMPERATURE;
|
||||||
}
|
}
|
||||||
thermalComponent = NONE;
|
currThermalComponent = NONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ThermalController::heaterTransitionControl(const HeaterSwitchStates& currentHeaterStates) {
|
void ThermalController::heaterTransitionControl(const HeaterSwitchStates& currentHeaterStates) {
|
||||||
@ -1812,10 +1812,14 @@ void ThermalController::heaterSwitchHelper(heater::Switch switchNr,
|
|||||||
Clock::getClockMonotonic(¤tTime);
|
Clock::getClockMonotonic(¤tTime);
|
||||||
if (state == HeaterHandler::SwitchState::ON) {
|
if (state == HeaterHandler::SwitchState::ON) {
|
||||||
heaterHandler.switchHeater(switchNr, state);
|
heaterHandler.switchHeater(switchNr, state);
|
||||||
|
triggerEvent(tcsCtrl::TCS_SWITCHING_HEATER_ON, static_cast<uint32_t>(currThermalComponent),
|
||||||
|
static_cast<uint32_t>(switchNr));
|
||||||
thermalStates[componentIdx].heating = true;
|
thermalStates[componentIdx].heating = true;
|
||||||
thermalStates[componentIdx].heaterStartTime = currentTime.tv_sec;
|
thermalStates[componentIdx].heaterStartTime = currentTime.tv_sec;
|
||||||
} else {
|
} else {
|
||||||
heaterHandler.switchHeater(switchNr, state);
|
heaterHandler.switchHeater(switchNr, state);
|
||||||
|
triggerEvent(tcsCtrl::TCS_SWITCHING_HEATER_OFF, static_cast<uint32_t>(currThermalComponent),
|
||||||
|
static_cast<uint32_t>(switchNr));
|
||||||
thermalStates[componentIdx].heating = false;
|
thermalStates[componentIdx].heating = false;
|
||||||
thermalStates[componentIdx].heaterEndTime = currentTime.tv_sec;
|
thermalStates[componentIdx].heaterEndTime = currentTime.tv_sec;
|
||||||
}
|
}
|
||||||
|
@ -256,7 +256,7 @@ class ThermalController : public ExtendedControllerBase {
|
|||||||
TempLimits scexBoardLimits = TempLimits(-60.0, -40.0, 80.0, 85.0, 150.0);
|
TempLimits scexBoardLimits = TempLimits(-60.0, -40.0, 80.0, 85.0, 150.0);
|
||||||
|
|
||||||
double sensorTemp = INVALID_TEMPERATURE;
|
double sensorTemp = INVALID_TEMPERATURE;
|
||||||
ThermalComponents thermalComponent = NONE;
|
ThermalComponents currThermalComponent = NONE;
|
||||||
bool redSwitchNrInUse = false;
|
bool redSwitchNrInUse = false;
|
||||||
MessageQueueId_t camId = MessageQueueIF::NO_QUEUE;
|
MessageQueueId_t camId = MessageQueueIF::NO_QUEUE;
|
||||||
bool componentAboveCutOffLimit = false;
|
bool componentAboveCutOffLimit = false;
|
||||||
|
@ -18,6 +18,10 @@ 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);
|
static constexpr Event MGT_OVERHEATING = MAKE_EVENT(8, severity::HIGH);
|
||||||
|
//! [EXPORT] : [COMMENT] P1: Module index. P2: Heater index
|
||||||
|
static constexpr Event TCS_SWITCHING_HEATER_ON = MAKE_EVENT(9, severity::INFO);
|
||||||
|
//! [EXPORT] : [COMMENT] P1: Module index. P2: Heater index
|
||||||
|
static constexpr Event TCS_SWITCHING_HEATER_OFF = MAKE_EVENT(10, severity::INFO);
|
||||||
|
|
||||||
enum SetId : uint32_t {
|
enum SetId : uint32_t {
|
||||||
SENSOR_TEMPERATURES = 0,
|
SENSOR_TEMPERATURES = 0,
|
||||||
|
@ -31,12 +31,12 @@ void buildPtgInertialSequence(Subsystem& ss, ModeListEntry& eh);
|
|||||||
static const auto OFF = HasModesIF::MODE_OFF;
|
static const auto OFF = HasModesIF::MODE_OFF;
|
||||||
static const auto NML = DeviceHandlerIF::MODE_NORMAL;
|
static const auto NML = DeviceHandlerIF::MODE_NORMAL;
|
||||||
|
|
||||||
void satsystem::init() {
|
void satsystem::init(bool commandPlPcdu1) {
|
||||||
auto& acsSubsystem = acs::init();
|
auto& acsSubsystem = acs::init();
|
||||||
acsSubsystem.connectModeTreeParent(EIVE_SYSTEM);
|
acsSubsystem.connectModeTreeParent(EIVE_SYSTEM);
|
||||||
auto& payloadSubsystem = payload::init();
|
auto& payloadSubsystem = payload::init();
|
||||||
payloadSubsystem.connectModeTreeParent(EIVE_SYSTEM);
|
payloadSubsystem.connectModeTreeParent(EIVE_SYSTEM);
|
||||||
auto& tcsSubsystem = tcs::init();
|
auto& tcsSubsystem = tcs::init(commandPlPcdu1);
|
||||||
tcsSubsystem.connectModeTreeParent(EIVE_SYSTEM);
|
tcsSubsystem.connectModeTreeParent(EIVE_SYSTEM);
|
||||||
auto& comSubsystem = com::init();
|
auto& comSubsystem = com::init();
|
||||||
comSubsystem.connectModeTreeParent(EIVE_SYSTEM);
|
comSubsystem.connectModeTreeParent(EIVE_SYSTEM);
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
namespace satsystem {
|
namespace satsystem {
|
||||||
|
|
||||||
void init();
|
void init(bool commandPlPcdu1);
|
||||||
|
|
||||||
extern EiveSystem EIVE_SYSTEM;
|
extern EiveSystem EIVE_SYSTEM;
|
||||||
|
|
||||||
|
@ -10,8 +10,8 @@ TcsSubsystem satsystem::tcs::SUBSYSTEM(objects::TCS_SUBSYSTEM, 12, 24);
|
|||||||
namespace {
|
namespace {
|
||||||
// Alias for checker function
|
// Alias for checker function
|
||||||
const auto check = subsystem::checkInsert;
|
const auto check = subsystem::checkInsert;
|
||||||
void buildOffSequence(Subsystem& ss, ModeListEntry& eh);
|
void buildOffSequence(Subsystem& ss, ModeListEntry& eh, bool commandPlPcdu1);
|
||||||
void buildNormalSequence(Subsystem& ss, ModeListEntry& eh);
|
void buildNormalSequence(Subsystem& ss, ModeListEntry& eh, bool commandPlPcdu1);
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|
||||||
static const auto OFF = HasModesIF::MODE_OFF;
|
static const auto OFF = HasModesIF::MODE_OFF;
|
||||||
@ -27,17 +27,17 @@ auto TCS_TABLE_NORMAL_TGT = std::make_pair((NML << 24) | 1, FixedArrayList<ModeL
|
|||||||
auto TCS_TABLE_NORMAL_TRANS_0 = std::make_pair((NML << 24) | 2, FixedArrayList<ModeListEntry, 7>());
|
auto TCS_TABLE_NORMAL_TRANS_0 = std::make_pair((NML << 24) | 2, FixedArrayList<ModeListEntry, 7>());
|
||||||
auto TCS_TABLE_NORMAL_TRANS_1 = std::make_pair((NML << 24) | 3, FixedArrayList<ModeListEntry, 2>());
|
auto TCS_TABLE_NORMAL_TRANS_1 = std::make_pair((NML << 24) | 3, FixedArrayList<ModeListEntry, 2>());
|
||||||
|
|
||||||
Subsystem& satsystem::tcs::init() {
|
Subsystem& satsystem::tcs::init(bool commandPlPcdu1) {
|
||||||
ModeListEntry entry;
|
ModeListEntry entry;
|
||||||
buildOffSequence(SUBSYSTEM, entry);
|
buildOffSequence(SUBSYSTEM, entry, commandPlPcdu1);
|
||||||
buildNormalSequence(SUBSYSTEM, entry);
|
buildNormalSequence(SUBSYSTEM, entry, commandPlPcdu1);
|
||||||
SUBSYSTEM.setInitialMode(OFF);
|
SUBSYSTEM.setInitialMode(OFF);
|
||||||
return SUBSYSTEM;
|
return SUBSYSTEM;
|
||||||
}
|
}
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
|
|
||||||
void buildOffSequence(Subsystem& ss, ModeListEntry& eh) {
|
void buildOffSequence(Subsystem& ss, ModeListEntry& eh, bool commandPlPcdu1) {
|
||||||
std::string context = "satsystem::tcs::buildOffSequence";
|
std::string context = "satsystem::tcs::buildOffSequence";
|
||||||
auto ctxc = context.c_str();
|
auto ctxc = context.c_str();
|
||||||
// Insert Helper Table
|
// Insert Helper Table
|
||||||
@ -67,7 +67,9 @@ void buildOffSequence(Subsystem& ss, ModeListEntry& eh) {
|
|||||||
iht(objects::TMP1075_HANDLER_TCS_0, OFF, 0, TCS_TABLE_OFF_TRANS_1.second);
|
iht(objects::TMP1075_HANDLER_TCS_0, OFF, 0, TCS_TABLE_OFF_TRANS_1.second);
|
||||||
iht(objects::TMP1075_HANDLER_TCS_1, OFF, 0, TCS_TABLE_OFF_TRANS_1.second);
|
iht(objects::TMP1075_HANDLER_TCS_1, OFF, 0, TCS_TABLE_OFF_TRANS_1.second);
|
||||||
iht(objects::TMP1075_HANDLER_PLPCDU_0, OFF, 0, TCS_TABLE_OFF_TRANS_1.second);
|
iht(objects::TMP1075_HANDLER_PLPCDU_0, OFF, 0, TCS_TABLE_OFF_TRANS_1.second);
|
||||||
// TMP PL PCDU 1 is damaged
|
if (commandPlPcdu1) {
|
||||||
|
iht(objects::TMP1075_HANDLER_PLPCDU_1, OFF, 0, TCS_TABLE_OFF_TRANS_1.second);
|
||||||
|
}
|
||||||
iht(objects::TMP1075_HANDLER_IF_BOARD, OFF, 0, TCS_TABLE_OFF_TRANS_1.second);
|
iht(objects::TMP1075_HANDLER_IF_BOARD, OFF, 0, TCS_TABLE_OFF_TRANS_1.second);
|
||||||
check(ss.addTable(TableEntry(TCS_TABLE_OFF_TRANS_1.first, &TCS_TABLE_OFF_TRANS_1.second)), ctxc);
|
check(ss.addTable(TableEntry(TCS_TABLE_OFF_TRANS_1.first, &TCS_TABLE_OFF_TRANS_1.second)), ctxc);
|
||||||
|
|
||||||
@ -79,7 +81,7 @@ void buildOffSequence(Subsystem& ss, ModeListEntry& eh) {
|
|||||||
ctxc);
|
ctxc);
|
||||||
}
|
}
|
||||||
|
|
||||||
void buildNormalSequence(Subsystem& ss, ModeListEntry& eh) {
|
void buildNormalSequence(Subsystem& ss, ModeListEntry& eh, bool commandPlPcdu1) {
|
||||||
std::string context = "satsystem::tcs::buildNormalSequence";
|
std::string context = "satsystem::tcs::buildNormalSequence";
|
||||||
auto ctxc = context.c_str();
|
auto ctxc = context.c_str();
|
||||||
// Insert Helper Table
|
// Insert Helper Table
|
||||||
@ -105,7 +107,9 @@ void buildNormalSequence(Subsystem& ss, ModeListEntry& eh) {
|
|||||||
iht(objects::TMP1075_HANDLER_TCS_0, NML, 0, TCS_TABLE_NORMAL_TRANS_0.second);
|
iht(objects::TMP1075_HANDLER_TCS_0, NML, 0, TCS_TABLE_NORMAL_TRANS_0.second);
|
||||||
iht(objects::TMP1075_HANDLER_TCS_1, NML, 0, TCS_TABLE_NORMAL_TRANS_0.second);
|
iht(objects::TMP1075_HANDLER_TCS_1, NML, 0, TCS_TABLE_NORMAL_TRANS_0.second);
|
||||||
iht(objects::TMP1075_HANDLER_PLPCDU_0, NML, 0, TCS_TABLE_NORMAL_TRANS_0.second);
|
iht(objects::TMP1075_HANDLER_PLPCDU_0, NML, 0, TCS_TABLE_NORMAL_TRANS_0.second);
|
||||||
// TMP PL PCDU 1 is damaged
|
if (commandPlPcdu1) {
|
||||||
|
iht(objects::TMP1075_HANDLER_PLPCDU_1, NML, 0, TCS_TABLE_NORMAL_TRANS_0.second);
|
||||||
|
}
|
||||||
iht(objects::TMP1075_HANDLER_IF_BOARD, NML, 0, TCS_TABLE_NORMAL_TRANS_0.second);
|
iht(objects::TMP1075_HANDLER_IF_BOARD, NML, 0, TCS_TABLE_NORMAL_TRANS_0.second);
|
||||||
check(ss.addTable(TableEntry(TCS_TABLE_NORMAL_TRANS_0.first, &TCS_TABLE_NORMAL_TRANS_0.second)),
|
check(ss.addTable(TableEntry(TCS_TABLE_NORMAL_TRANS_0.first, &TCS_TABLE_NORMAL_TRANS_0.second)),
|
||||||
ctxc);
|
ctxc);
|
||||||
|
@ -7,7 +7,7 @@ namespace satsystem {
|
|||||||
namespace tcs {
|
namespace tcs {
|
||||||
|
|
||||||
extern TcsSubsystem SUBSYSTEM;
|
extern TcsSubsystem SUBSYSTEM;
|
||||||
Subsystem& init();
|
Subsystem& init(bool commandPlPcdu1);
|
||||||
|
|
||||||
} // namespace tcs
|
} // namespace tcs
|
||||||
} // namespace satsystem
|
} // namespace satsystem
|
||||||
|
@ -133,12 +133,14 @@ ReturnValue_t Tmp1075Handler::initializeLocalDataPool(localpool::DataPool &local
|
|||||||
return returnvalue::OK;
|
return returnvalue::OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Tmp1075Handler::setModeNormal() { setMode(_MODE_TO_NORMAL); }
|
|
||||||
|
|
||||||
ReturnValue_t Tmp1075Handler::setHealth(HealthState health) {
|
ReturnValue_t Tmp1075Handler::setHealth(HealthState health) {
|
||||||
if (health != FAULTY and health != PERMANENT_FAULTY and health != HEALTHY and
|
if (health != FAULTY and health != PERMANENT_FAULTY and health != HEALTHY and
|
||||||
health != EXTERNAL_CONTROL) {
|
health != EXTERNAL_CONTROL) {
|
||||||
return returnvalue::FAILED;
|
return returnvalue::FAILED;
|
||||||
}
|
}
|
||||||
return returnvalue::OK;
|
// Required because we do not have an assembly.
|
||||||
|
if (health == FAULTY or health == PERMANENT_FAULTY) {
|
||||||
|
setMode(_MODE_SHUT_DOWN);
|
||||||
|
}
|
||||||
|
return DeviceHandlerBase::setHealth(health);
|
||||||
}
|
}
|
||||||
|
@ -20,8 +20,6 @@ class Tmp1075Handler : public DeviceHandlerBase {
|
|||||||
Tmp1075Handler(object_id_t objectId, object_id_t comIF, CookieIF *comCookie);
|
Tmp1075Handler(object_id_t objectId, object_id_t comIF, CookieIF *comCookie);
|
||||||
virtual ~Tmp1075Handler();
|
virtual ~Tmp1075Handler();
|
||||||
|
|
||||||
void setModeNormal();
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void doStartUp() override;
|
void doStartUp() override;
|
||||||
void doShutDown() override;
|
void doShutDown() override;
|
||||||
|
2
tmtc
2
tmtc
@ -1 +1 @@
|
|||||||
Subproject commit c48f04eed5152f319b217870292968fb67b763d4
|
Subproject commit 069f84d2207c03e8d334cfce3f7dd530babe17b0
|
Loading…
Reference in New Issue
Block a user