Files
archive
arduino
automation
bsp_egse
bsp_hosted
bsp_linux_board
bsp_q7s
bsp_te0720_1cfa
cmake
common
doc
dummies
fsfw
generators
linux
misc
mission
cfdp
controller
core
csp
devices
devicedefinitions
ACUHandler.cpp
ACUHandler.h
BpxBatteryHandler.cpp
BpxBatteryHandler.h
CMakeLists.txt
GPSHyperionHandler.cpp
GPSHyperionHandler.h
GomspaceDeviceHandler.cpp
GomspaceDeviceHandler.h
GyroADIS1650XHandler.cpp
GyroADIS1650XHandler.h
HeaterHandler.cpp
HeaterHandler.h
ImtqHandler.cpp
ImtqHandler.h
Max31865EiveHandler.cpp
Max31865EiveHandler.h
Max31865PT1000Handler.cpp
Max31865PT1000Handler.h
P60DockHandler.cpp
P60DockHandler.h
PDU1Handler.cpp
PDU1Handler.h
PDU2Handler.cpp
PDU2Handler.h
PayloadPcduHandler.cpp
PayloadPcduHandler.h
PcduHandler.cpp
PcduHandler.h
RadiationSensorHandler.cpp
RadiationSensorHandler.h
RwHandler.cpp
RwHandler.h
ScexDeviceHandler.cpp
ScexDeviceHandler.h
SolarArrayDeploymentHandler.cpp
SolarArrayDeploymentHandler.h
SusHandler.cpp
SusHandler.h
SyrlinksHkHandler.cpp
SyrlinksHkHandler.h
Tmp1075Handler.cpp
Tmp1075Handler.h
max1227.cpp
max1227.h
torquer.cpp
torquer.h
memory
system
tmtc
utility
CMakeLists.txt
mission.mk
scripts
test
thirdparty
tmtc
unittest
watchdog
.clang-format
.dockerignore
.gitignore
.gitmodules
CHANGELOG.md
CMakeLists.txt
Justfile
LICENSE
NOTICE
README.md
clone-submodules-no-privlibs.sh
docker-compose.yml
q7s-env-em.sh
q7s-env.sh
eive-obsw/mission/devices/torquer.cpp

28 lines
616 B
C++

#include "torquer.h"
#include <fsfw/ipc/MutexGuard.h>
MutexIF* TORQUE_LOCK = nullptr;
namespace torquer {
bool TORQUEING = false;
bool NEW_ACTUATION_FLAG = false;
Countdown TORQUE_COUNTDOWN = Countdown();
bool mgtIsTorqueing(dur_millis_t* remainingTorqueDuration) {
if (TORQUEING and remainingTorqueDuration != nullptr) {
*remainingTorqueDuration = TORQUE_COUNTDOWN.getRemainingMillis() + TORQUE_BUFFER_TIME_MS;
}
return TORQUEING;
}
MutexIF* lazyLock() {
if (TORQUE_LOCK == nullptr) {
TORQUE_LOCK = MutexFactory::instance()->createMutex();
}
return TORQUE_LOCK;
}
} // namespace torquer