2021-07-13 20:22:54 +02:00
|
|
|
#include "fsfw/thermal/RedundantHeater.h"
|
2018-07-12 16:29:32 +02:00
|
|
|
|
2022-02-02 10:29:30 +01:00
|
|
|
RedundantHeater::~RedundantHeater() {}
|
2018-07-12 16:29:32 +02:00
|
|
|
|
2022-02-02 10:29:30 +01:00
|
|
|
RedundantHeater::RedundantHeater(Parameters parameters)
|
|
|
|
: heater0(parameters.objectIdHeater0, parameters.switch0Heater0, parameters.switch1Heater0),
|
|
|
|
heater1(parameters.objectIdHeater1, parameters.switch0Heater1, parameters.switch1Heater1) {}
|
2018-07-12 16:29:32 +02:00
|
|
|
|
|
|
|
void RedundantHeater::performOperation(uint8_t opCode) {
|
2022-02-02 10:29:30 +01:00
|
|
|
heater0.performOperation(0);
|
|
|
|
heater1.performOperation(0);
|
2018-07-12 16:29:32 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
void RedundantHeater::set(bool on, bool both, bool passive) {
|
2022-02-02 10:29:30 +01:00
|
|
|
if (on) {
|
|
|
|
ReturnValue_t result = heater0.set();
|
2022-08-16 01:08:26 +02:00
|
|
|
if (result != returnvalue::OK || both) {
|
2022-02-02 10:29:30 +01:00
|
|
|
heater1.set();
|
|
|
|
} else {
|
|
|
|
heater1.clear(passive);
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
heater0.clear(passive);
|
|
|
|
heater1.clear(passive);
|
|
|
|
}
|
2018-07-12 16:29:32 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
void RedundantHeater::triggerHeaterEvent(Event event) {
|
2022-02-02 10:29:30 +01:00
|
|
|
heater0.triggerEvent(event);
|
|
|
|
heater1.triggerEvent(event);
|
2018-07-12 16:29:32 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
void RedundantHeater::setPowerSwitcher(PowerSwitchIF* powerSwitch) {
|
2022-02-02 10:29:30 +01:00
|
|
|
heater0.setPowerSwitcher(powerSwitch);
|
|
|
|
heater1.setPowerSwitcher(powerSwitch);
|
2018-07-12 16:29:32 +02:00
|
|
|
}
|