Paparazzi UAS  v5.14.0_stable-0-g3f680d1
Paparazzi is a free software Unmanned Aircraft System.
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
autopilot.c File Reference

Core autopilot interface common to all firmwares. More...

#include "autopilot.h"
#include "generated/modules.h"
#include "mcu_periph/uart.h"
#include "mcu_periph/sys_time.h"
#include "mcu_periph/gpio.h"
#include "subsystems/radio_control.h"
#include "subsystems/commands.h"
#include "subsystems/actuators.h"
#include "subsystems/datalink/telemetry.h"
#include "subsystems/settings.h"
#include "generated/settings.h"
#include "pprz_version.h"
+ Include dependency graph for autopilot.c:

Go to the source code of this file.

Functions

static void send_autopilot_version (struct transport_tx *trans, struct link_device *dev)
 
static void send_alive (struct transport_tx *trans, struct link_device *dev)
 
static void send_attitude (struct transport_tx *trans, struct link_device *dev)
 
static void send_dl_value (struct transport_tx *trans, struct link_device *dev)
 
static void send_rc (struct transport_tx *trans, struct link_device *dev)
 
void autopilot_init (void)
 Autopilot initialization function. More...
 
void autopilot_periodic (void)
 AP periodic call. More...
 
void WEAK autopilot_event (void)
 AP event call. More...
 
void autopilot_on_rc_frame (void)
 RC frame handler. More...
 
bool autopilot_set_mode (uint8_t new_autopilot_mode)
 set autopilot mode More...
 
void autopilot_SetModeHandler (float mode)
 AP mode setting handler. More...
 
uint8_t autopilot_get_mode (void)
 get autopilot mode More...
 
void autopilot_reset_flight_time (void)
 reset flight time and launch More...
 
void autopilot_set_motors_on (bool motors_on)
 turn motors on/off, eventually depending of the current mode set kill_throttle accordingly FIXME is it true for FW firmware ? More...
 
bool autopilot_get_motors_on (void)
 get motors status More...
 
void autopilot_set_kill_throttle (bool kill)
 set kill throttle More...
 
bool autopilot_throttle_killed (void)
 get kill status More...
 
void WEAK autopilot_check_in_flight (bool motors_on)
 in flight check utility function actual implementation is firmware dependent More...
 
void WEAK autopilot_reset_in_flight_counter (void)
 reset in_flight counter actual implementation is firmware dependent More...
 
void autopilot_set_in_flight (bool in_flight)
 set in_flight flag More...
 
bool autopilot_in_flight (void)
 get in_flight flag More...
 
void autopilot_set_power_switch (bool power_switch)
 set power switch More...
 
void autopilot_store_settings (void)
 store settings More...
 
void autopilot_clear_settings (void)
 clear settings More...
 
void autopilot_send_version (void)
 send autopilot version More...
 
void WEAK autopilot_send_mode (void)
 send autopilot mode actual implementation is firmware dependent More...
 

Variables

struct pprz_autopilot autopilot
 Global autopilot structure. More...
 

Detailed Description

Core autopilot interface common to all firmwares.

Using either static or generated autopilot logic, which depends on the firmware.

Definition in file autopilot.c.

Function Documentation

void WEAK autopilot_check_in_flight ( bool  motors_on)

in flight check utility function actual implementation is firmware dependent

Check if airframe is in flight.

Definition at line 237 of file autopilot.c.

Referenced by failsafe_check().

+ Here is the caller graph for this function:

void autopilot_clear_settings ( void  )

clear settings

Clear marked settings in flash try to make sure that we don't write to flash while flying Also provide macro for dl_setting backward compatibility.

Definition at line 287 of file autopilot.c.

References autopilot, pprz_autopilot::kill_throttle, settings_clear(), and settings_clear_flag.

+ Here is the call graph for this function:

void WEAK autopilot_event ( void  )

AP event call.

Autopilot event check function.

Definition at line 145 of file autopilot.c.

Referenced by event_task_ap(), and main_event().

+ Here is the caller graph for this function:

bool autopilot_in_flight ( void  )

get in_flight flag

Get in flight status.

Definition at line 256 of file autopilot.c.

References autopilot, and pprz_autopilot::in_flight.

Referenced by autopilot_generated_periodic(), autopilot_static_on_rc_frame(), autopilot_static_periodic(), gps_sim_hitl_event(), guidance_flip_run(), main_periodic(), nav_home(), and nav_is_in_flight().

+ Here is the caller graph for this function:

void autopilot_on_rc_frame ( void  )

RC frame handler.

Autopilot RC input event hadler.

Definition at line 149 of file autopilot.c.

References autopilot_generated_on_rc_frame(), and autopilot_static_on_rc_frame().

Referenced by event_task_ap(), and main_event().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void autopilot_periodic ( void  )

AP periodic call.

Autopilot periodic call at PERIODIC_FREQUENCY.

Definition at line 134 of file autopilot.c.

References autopilot_generated_periodic(), and autopilot_static_periodic().

Referenced by handle_periodic_tasks_ap(), main_periodic(), and sim_periodic_task().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void autopilot_reset_flight_time ( void  )

reset flight time and launch

Reset flight time and launch status Also provide macro for dl_setting backward compatibility.

Definition at line 190 of file autopilot.c.

References autopilot, pprz_autopilot::flight_time, and pprz_autopilot::launch.

void WEAK autopilot_reset_in_flight_counter ( void  )

reset in_flight counter actual implementation is firmware dependent

Definition at line 242 of file autopilot.c.

Referenced by autopilot_set_in_flight().

+ Here is the caller graph for this function:

void WEAK autopilot_send_mode ( void  )

send autopilot mode actual implementation is firmware dependent

Report autopilot mode on default downlink channel.

Definition at line 305 of file autopilot.c.

Referenced by autopilot_static_on_rc_frame(), and navigation_task().

+ Here is the caller graph for this function:

void autopilot_send_version ( void  )

send autopilot version

Report autopilot version on default downlink channel.

Definition at line 297 of file autopilot.c.

References DefaultChannel, DefaultDevice, and send_autopilot_version().

Referenced by reporting_task(), and telemetry_periodic().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void autopilot_set_in_flight ( bool  in_flight)

set in_flight flag

Set in flight status.

Definition at line 246 of file autopilot.c.

References autopilot, autopilot_reset_in_flight_counter(), and pprz_autopilot::in_flight.

Referenced by autopilot_arming_check_motors_on(), and autopilot_static_set_mode().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void autopilot_set_kill_throttle ( bool  kill)

set kill throttle

Enable or disable motor control from autopilot Also provide macro for dl_setting backward compatibility.

Definition at line 218 of file autopilot.c.

References autopilot_set_motors_on().

Referenced by actuators_disco_commit(), nav_bungee_takeoff_run(), nav_bungee_takeoff_setup(), and nav_skid_landing_run().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

bool autopilot_set_mode ( uint8_t  new_autopilot_mode)

set autopilot mode

Set new autopilot mode.

Definition at line 160 of file autopilot.c.

References autopilot, autopilot_generated_set_mode(), autopilot_static_set_mode(), and pprz_autopilot::mode.

Referenced by autopilot_static_on_rc_frame(), failsafe_check(), guidance_flip_run(), mavlink_common_message_handler(), nav_set_failsafe(), navigation_task(), and pprz_mode_update().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void autopilot_set_motors_on ( bool  motors_on)

turn motors on/off, eventually depending of the current mode set kill_throttle accordingly FIXME is it true for FW firmware ?

Start or stop motors May have no effect if motors has auto-start based on throttle setpoint.

Definition at line 199 of file autopilot.c.

References autopilot, autopilot_generated_set_motors_on(), autopilot_static_set_motors_on(), pprz_autopilot::kill_throttle, and pprz_autopilot::motors_on.

Referenced by actuators_ardrone_motor_status(), actuators_bebop_commit(), autopilot_set_kill_throttle(), autopilot_static_set_mode(), mavlink_common_message_handler(), NavKillThrottle(), and NavResurrect().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void autopilot_set_power_switch ( bool  power_switch)

set power switch

Set power switch state This will actually enable the switch if POWER_SWITCH_GPIO is defined Also provide macro for dl_setting backward compatibility.

Definition at line 263 of file autopilot.c.

References autopilot, gpio_clear(), gpio_set(), pprz_autopilot::power_switch, and POWER_SWITCH_GPIO.

Referenced by autopilot_init().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void autopilot_SetModeHandler ( float  mode)

AP mode setting handler.

Handler for setter function with dl_setting.

Definition at line 172 of file autopilot.c.

References autopilot_generated_SetModeHandler(), and autopilot_static_SetModeHandler().

+ Here is the call graph for this function:

void autopilot_store_settings ( void  )

store settings

Store marked settings in flash Try to make sure that we don't write to flash while flying Also provide macro for dl_setting backward compatibility.

Definition at line 277 of file autopilot.c.

References autopilot, pprz_autopilot::kill_throttle, settings_store(), and settings_store_flag.

+ Here is the call graph for this function:

bool autopilot_throttle_killed ( void  )

get kill status

Get kill status.

Definition at line 229 of file autopilot.c.

References autopilot, and pprz_autopilot::kill_throttle.

Referenced by electrical_periodic(), geo_mag_periodic(), mavlink_send_heartbeat(), nav_skid_landing_run(), v_ctl_climb_loop(), and v_ctl_landing_loop().

+ Here is the caller graph for this function:

static void send_alive ( struct transport_tx *  trans,
struct link_device *  dev 
)
static

Definition at line 60 of file autopilot.c.

Referenced by autopilot_init().

+ Here is the caller graph for this function:

static void send_attitude ( struct transport_tx *  trans,
struct link_device *  dev 
)
static

Definition at line 65 of file autopilot.c.

References FloatEulers::phi, FloatEulers::psi, stateGetNedToBodyEulers_f(), and FloatEulers::theta.

Referenced by autopilot_init().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void send_autopilot_version ( struct transport_tx *  trans,
struct link_device *  dev 
)
static

Definition at line 53 of file autopilot.c.

Referenced by autopilot_init(), and autopilot_send_version().

+ Here is the caller graph for this function:

static void send_dl_value ( struct transport_tx *  trans,
struct link_device *  dev 
)
static

Definition at line 71 of file autopilot.c.

Referenced by autopilot_init().

+ Here is the caller graph for this function:

static void send_rc ( struct transport_tx *  trans,
struct link_device *  dev 
)
static

Definition at line 77 of file autopilot.c.

References radio_control, RADIO_CONTROL_NB_CHANNEL, and RadioControl::values.

Referenced by autopilot_init().

+ Here is the caller graph for this function:

Variable Documentation