Pluto-IDE is the professional development environment required to build, flash, and monitor firmware using the MagisV2 library on Pluto Drones.
Flight control system for managing flight status, modes, and commands.
flightstatus_etypedef enum {
FS_ACCEL_GYRO_CALIBRATION = 0,
FS_MAG_CALIBARATION,
FS_LOW_BATTERY,
FS_INFLIGHT_LOW_BATTERY,
FS_CRASHED,
FS_SIGNAL_LOSS,
FS_NOT_OK_TO_ARM,
FS_OK_TO_ARM,
FS_ARMED
} flightstatus_e;
flight_mode_etypedef enum {
ANGLE, // Angle mode: stabilized flight
RATE, // Rate mode: manual rate control
MAGHOLD, // Magnetic hold: maintain heading
HEADFREE, // Head-free mode: orientation-independent
ATLTITUDEHOLD, // Altitude hold: maintain altitude
THROTTLE_MODE // Throttle mode configuration
} flight_mode_e;
flip_direction_etypedef enum {
BACK_FLIP // Back flip direction
} flip_direction_e;
flightstatus_e FlightStatus_Get(void) - Get current flight statusbool FlightStatus_Check(flightstatus_e status) - Check specific statusbool FlightMode_Check(flight_mode_e MODE) - Check if mode activevoid FlightMode_Set(flight_mode_e MODE) - Set flight modevoid Command_TakeOff(uint16_t height = 150) - Takeoff to heightvoid Command_Land(uint8_t landSpeed = 105) - Land at speedvoid Command_Flip(flip_direction_e direction) - Perform flipbool Command_Arm(void) - Arm systembool Command_DisArm(void) - Disarm systemvoid setheadFreeModeHeading(int16_t heading) - Set head-free reference// Check system status
if (FlightStatus_Check(FS_OK_TO_ARM)) {
Command_Arm();
}
// Set flight mode and takeoff
if (FlightStatus_Check(FS_ARMED)) {
FlightMode_Set(ANGLE);
Command_TakeOff(200);
}
// Check current mode
if (FlightMode_Check(ATLTITUDEHOLD)) {
// Altitude hold is active
}
// Emergency landing
Command_Land(120);
