Robin Mueller
164bfc3521
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
40 lines
1.2 KiB
C++
40 lines
1.2 KiB
C++
#include "Stack5VHandler.h"
|
|
|
|
Stack5VHandler::Stack5VHandler(PowerSwitchIF& switcher) : switcher(switcher) {
|
|
stackLock = MutexFactory::instance()->createMutex();
|
|
}
|
|
|
|
ReturnValue_t Stack5VHandler::deviceToOn(StackCommander commander) {
|
|
MutexGuard mg(stackLock);
|
|
if (radSensorIsOn or plPcduIsOn) {
|
|
return returnvalue::OK;
|
|
}
|
|
if (commander == StackCommander::PL_PCDU) {
|
|
plPcduCommandedOn = true;
|
|
} else if (commander == StackCommander::RAD_SENSOR) {
|
|
radSensorCommandedOn = true;
|
|
}
|
|
return switcher.sendSwitchCommand(stackSwitch, PowerSwitchIF::SWITCH_ON);
|
|
}
|
|
|
|
ReturnValue_t Stack5VHandler::deviceToOff(StackCommander commander) {
|
|
MutexGuard mg(stackLock);
|
|
if (not radSensorIsOn and not plPcduIsOn and not plPcduCommandedOn and not radSensorCommandedOn) {
|
|
return returnvalue::OK;
|
|
}
|
|
if (commander == StackCommander::PL_PCDU) {
|
|
plPcduCommandedOn = true;
|
|
} else if (commander == StackCommander::RAD_SENSOR) {
|
|
radSensorCommandedOn = true;
|
|
}
|
|
return switcher.sendSwitchCommand(stackSwitch, PowerSwitchIF::SWITCH_OFF);
|
|
}
|
|
|
|
bool Stack5VHandler::isSwitchOn() {
|
|
MutexGuard mg(stackLock);
|
|
if (switcher.getSwitchState(stackSwitch) == PowerSwitchIF::SWITCH_ON) {
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|