28 lines
616 B
C++
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
|