Paparazzi UAS  v6.2_unstable
Paparazzi is a free software Unmanned Aircraft System.
autopilot.c File Reference
#include "autopilot.h"
#include "generated/modules.h"
#include "mcu_periph/uart.h"
#include "mcu_periph/sys_time.h"
#include "mcu_periph/gpio.h"
#include "modules/core/commands.h"
#include "modules/datalink/telemetry.h"
#include "modules/core/abi.h"
#include "modules/core/settings.h"
#include "generated/settings.h"
#include "pprz_version.h"
+ Include dependency graph for autopilot.c:

Go to the source code of this file.

Macros

#define AUTOPILOT_RC_ID   ABI_BROADCAST
 

Functions

static void rc_cb (uint8_t sender_id, struct RadioControl *rc)
 
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_minimal_com (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...
 
void WEAK autopilot_failsafe_checks (void)
 Failsafe checks. 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_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...
 
static abi_event rc_ev
 

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.

Macro Definition Documentation

◆ AUTOPILOT_RC_ID

#define AUTOPILOT_RC_ID   ABI_BROADCAST

Definition at line 51 of file autopilot.c.

Function Documentation

◆ autopilot_check_in_flight()

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 270 of file autopilot.c.

Referenced by autopilot_periodic().

+ Here is the caller graph for this function:

◆ autopilot_clear_settings()

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 306 of file autopilot.c.

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

+ Here is the call graph for this function:

◆ autopilot_event()

void WEAK autopilot_event ( void  )

AP event call.

Autopilot event check function.

Definition at line 173 of file autopilot.c.

◆ autopilot_failsafe_checks()

void WEAK autopilot_failsafe_checks ( void  )

Failsafe checks.

Autopilot periodic failsafe checks.

Definition at line 188 of file autopilot.c.

Referenced by autopilot_periodic(), and main_ap_init().

+ Here is the caller graph for this function:

◆ autopilot_get_mode()

◆ autopilot_get_motors_on()

◆ autopilot_in_flight()

◆ autopilot_init()

◆ autopilot_on_rc_frame()

void autopilot_on_rc_frame ( void  )

RC frame handler.

Autopilot RC input event hadler.

Definition at line 177 of file autopilot.c.

References autopilot_generated_on_rc_frame(), and autopilot_static_on_rc_frame().

Referenced by rc_cb().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ autopilot_periodic()

void autopilot_periodic ( void  )

AP periodic call.

Autopilot periodic call at PERIODIC_FREQUENCY.

Definition at line 145 of file autopilot.c.

References autopilot, autopilot_check_in_flight(), autopilot_failsafe_checks(), autopilot_generated_periodic(), autopilot_get_motors_on(), autopilot_in_flight(), autopilot_static_periodic(), and pprz_autopilot::flight_time.

+ Here is the call graph for this function:

◆ autopilot_reset_flight_time()

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 223 of file autopilot.c.

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

◆ autopilot_reset_in_flight_counter()

void WEAK autopilot_reset_in_flight_counter ( void  )

reset in_flight counter actual implementation is firmware dependent

Definition at line 275 of file autopilot.c.

Referenced by autopilot_set_in_flight().

+ Here is the caller graph for this function:

◆ autopilot_send_mode()

void WEAK autopilot_send_mode ( void  )

send autopilot mode actual implementation is firmware dependent

Report autopilot mode on default downlink channel.

Definition at line 324 of file autopilot.c.

Referenced by autopilot_failsafe_checks().

+ Here is the caller graph for this function:

◆ autopilot_send_version()

void autopilot_send_version ( void  )

send autopilot version

Report autopilot version on default downlink channel.

Definition at line 316 of file autopilot.c.

References DefaultChannel, DefaultDevice, and send_autopilot_version().

Referenced by telemetry_reporting_task().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ autopilot_set_in_flight()

void autopilot_set_in_flight ( bool  in_flight)

set in_flight flag

Set in flight status.

Definition at line 279 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:

◆ autopilot_set_kill_throttle()

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 251 of file autopilot.c.

References autopilot_set_motors_on().

Referenced by actuators_disco_commit(), autopilot_failsafe_checks(), 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:

◆ autopilot_set_mode()

bool autopilot_set_mode ( uint8_t  new_autopilot_mode)

set autopilot mode

Set new autopilot mode.

Definition at line 192 of file autopilot.c.

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

Referenced by autopilot_failsafe_checks(), guidance_flip_run(), mavlink_common_message_handler(), nav_set_failsafe(), and pprz_mode_update().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ autopilot_set_motors_on()

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 232 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:

◆ autopilot_SetModeHandler()

void autopilot_SetModeHandler ( float  mode)

AP mode setting handler.

Handler for setter function with dl_setting.

Definition at line 205 of file autopilot.c.

References autopilot_generated_SetModeHandler(), autopilot_static_SetModeHandler(), and mode.

+ Here is the call graph for this function:

◆ autopilot_store_settings()

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 296 of file autopilot.c.

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

+ Here is the call graph for this function:

◆ autopilot_throttle_killed()

bool autopilot_throttle_killed ( void  )

get kill status

Get kill status.

Definition at line 262 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:

◆ rc_cb()

static void rc_cb ( uint8_t  sender_id,
struct RadioControl rc 
)
static

Definition at line 56 of file autopilot.c.

References autopilot_on_rc_frame().

Referenced by autopilot_init().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ send_alive()

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

Definition at line 70 of file autopilot.c.

References dev.

Referenced by autopilot_init().

+ Here is the caller graph for this function:

◆ send_attitude()

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

Definition at line 75 of file autopilot.c.

References dev, 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:

◆ send_autopilot_version()

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

Definition at line 63 of file autopilot.c.

References dev.

Referenced by autopilot_init(), and autopilot_send_version().

+ Here is the caller graph for this function:

◆ send_dl_value()

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

Definition at line 81 of file autopilot.c.

References dev.

Referenced by autopilot_init().

+ Here is the caller graph for this function:

◆ send_minimal_com()

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

Variable Documentation

◆ autopilot

struct pprz_autopilot autopilot

Global autopilot structure.

Definition at line 48 of file autopilot.c.

Referenced by attitude_loop(), autopilot_arming_check_motors_on(), autopilot_arming_check_valid(), autopilot_check_in_flight(), autopilot_clear_settings(), autopilot_event(), autopilot_failsafe_checks(), autopilot_generated_init(), autopilot_generated_on_rc_frame(), autopilot_generated_periodic(), autopilot_generated_set_mode(), autopilot_generated_set_motors_on(), autopilot_get_mode(), autopilot_get_motors_on(), autopilot_in_flight(), autopilot_init(), autopilot_periodic(), autopilot_reset_flight_time(), autopilot_set_in_flight(), autopilot_set_mode(), autopilot_set_motors_on(), autopilot_static_init(), autopilot_static_on_rc_frame(), autopilot_static_periodic(), autopilot_static_set_mode(), autopilot_static_set_motors_on(), autopilot_store_settings(), autopilot_throttle_killed(), calc_flight_time_left(), draw_osd(), Drift_correction(), e_identification_fr_periodic(), gazebo_write(), generic_com_periodic(), gsm_send_report_continue(), guidance_h_module_enter(), guidance_h_module_read_rc(), guidance_indi_run(), h_ctl_course_loop(), h_ctl_pitch_loop(), h_ctl_roll_loop(), main_recovery_init(), mf_daq_send_state(), monitor_task(), nav_bungee_takeoff_run(), nav_catapult_highrate_module(), nav_check_wp_time(), nav_detect_ground(), nav_home(), nps_autopilot_run_step(), parse_mf_daq_msg(), send_energy(), send_fp(), send_minimal_com(), send_mode(), send_status(), takeoff_detect_periodic(), uav_recovery_periodic(), v_ctl_climb_loop(), v_ctl_guidance_loop(), v_ctl_set_pitch(), and v_ctl_set_throttle().

◆ rc_ev

abi_event rc_ev
static

Definition at line 54 of file autopilot.c.

Referenced by autopilot_init().