36 lines
923 B
C
36 lines
923 B
C
#include "flight_app.h"
|
|
|
|
void Actuator_Init(ActuatorState *actuator) {
|
|
actuator->throttle = 0.0f;
|
|
actuator->elevator = 0.0f;
|
|
actuator->armed = 0U;
|
|
}
|
|
|
|
void Actuator_Arm(ActuatorState *actuator) {
|
|
actuator->armed = 1U;
|
|
}
|
|
|
|
void Actuator_WriteThrottle(ActuatorState *actuator, float throttle) {
|
|
if (actuator->armed) {
|
|
actuator->throttle = Filter_Limit(throttle, 0.0f, 1.0f);
|
|
}
|
|
}
|
|
|
|
void Actuator_WriteElevator(ActuatorState *actuator, float elevator) {
|
|
if (actuator->armed) {
|
|
actuator->elevator = Filter_Limit(elevator, -20.0f, 20.0f);
|
|
}
|
|
}
|
|
|
|
void Actuator_UpdateOutputs(ActuatorState *actuator) {
|
|
Actuator_Arm(actuator);
|
|
Actuator_WriteThrottle(actuator, actuator->throttle);
|
|
Actuator_WriteElevator(actuator, actuator->elevator);
|
|
}
|
|
|
|
void Actuator_Disarm(ActuatorState *actuator) {
|
|
actuator->armed = 0U;
|
|
actuator->throttle = 0.0f;
|
|
actuator->elevator = 0.0f;
|
|
}
|