Paparazzi UAS v7.0_unstable
Paparazzi is a free software Unmanned Aircraft System.
Loading...
Searching...
No Matches
autopilot.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 2003 Pascal Brisset, Antoine Drouin
3 * Copyright (C) 2008-2009 Antoine Drouin <poinix@gmail.com>
4 * Copyright (C) 2016-2017 Gautier Hattenberger <gautier.hattenberger@enac.fr>
5 *
6 * This file is part of paparazzi.
7 *
8 * paparazzi is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License as published by
10 * the Free Software Foundation; either version 2, or (at your option)
11 * any later version.
12 *
13 * paparazzi is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * You should have received a copy of the GNU General Public License
19 * along with paparazzi; see the file COPYING. If not, see
20 * <http://www.gnu.org/licenses/>.
21 */
22
32#ifndef AUTOPILOT_H
33#define AUTOPILOT_H
34
35#ifdef __cplusplus
36extern "C" {
37#endif
38
39#include "std.h"
40#include "paparazzi.h"
41#include "generated/airframe.h"
42#include "state.h"
43#include "autopilot_utils.h"
44
45// include firmware specific header
46#include "autopilot_firmware.h"
47
48// include static or generated autopilot
49// static version by default
50#ifndef USE_GENERATED_AUTOPILOT
51#define USE_GENERATED_AUTOPILOT FALSE
52#endif
53
54#if USE_GENERATED_AUTOPILOT
55#include "autopilot_generated.h"
56#else
57#include "autopilot_static.h"
58#endif
59
76
77
80extern struct pprz_autopilot autopilot;
81
84extern void autopilot_init(void);
85
88extern void autopilot_periodic(void);
89
92extern void autopilot_event(void);
93
96extern void autopilot_on_rc_frame(void);
97
100extern void autopilot_failsafe_checks(void);
101
108
112
117extern uint8_t autopilot_get_mode(void);
118
122extern void autopilot_reset_flight_time(void);
123#define autopilot_ResetFlightTimeAndLaunch(_) autopilot_reset_flight_time()
124
131extern void autopilot_force_motors_on(bool motors_on);
132
141extern bool autopilot_set_motors_on(bool motors_on);
142
147extern bool autopilot_arming_motors_on(bool motors_on);
148
153extern bool autopilot_get_motors_on(void);
154
160extern void autopilot_set_kill_throttle(bool kill);
161#define autopilot_KillThrottle(_kill) autopilot_set_kill_throttle(_kill)
162
167extern bool autopilot_throttle_killed(void);
168
173extern void autopilot_check_in_flight(bool motors_on);
174
179extern void autopilot_set_in_flight(bool in_flight);
180
185extern bool autopilot_in_flight(void);
186
190extern void autopilot_reset_in_flight_counter(void);
191
196extern void autopilot_store_settings(void);
197#define autopilot_StoreSettings(_) autopilot_store_settings()
198
203extern void autopilot_clear_settings(void);
204#define autopilot_ClearSettings(_) autopilot_clear_settings()
205
208extern void autopilot_send_version(void);
209
212extern void autopilot_send_mode(void);
213
214#ifdef __cplusplus
215}
216#endif
217
218#endif /* AUTOPILOT_H */
219
void autopilot_event(void)
Autopilot event check function.
Definition autopilot.c:174
bool motors_on
motor status
Definition autopilot.h:68
bool ground_detected
automatic detection of landing
Definition autopilot.h:73
uint8_t mode_auto2
FIXME hide this in a private part ?
Definition autopilot.h:64
uint8_t arming_status
arming status
Definition autopilot.h:67
void autopilot_periodic(void)
Autopilot periodic call at PERIODIC_FREQUENCY.
Definition autopilot.c:146
bool autopilot_set_mode(uint8_t new_autopilot_mode)
Set new autopilot mode.
Definition autopilot.c:193
bool launch
request launch
Definition autopilot.h:71
uint8_t autopilot_get_mode(void)
Get autopilot mode.
Definition autopilot.c:222
pprz_t throttle
throttle level as will be displayed in GCS
Definition autopilot.h:66
void autopilot_set_in_flight(bool in_flight)
Set in flight status.
Definition autopilot.c:330
bool use_rc
enable/disable RC input
Definition autopilot.h:72
void autopilot_send_mode(void)
Report autopilot mode on default downlink channel.
Definition autopilot.c:375
bool autopilot_set_motors_on(bool motors_on)
Start or stop motors May have no effect if motors has auto-start based on throttle setpoint or when t...
Definition autopilot.c:250
struct pprz_autopilot autopilot
Global autopilot structure.
Definition autopilot.c:49
bool detect_ground_once
enable automatic detection of ground (one shot)
Definition autopilot.h:74
void autopilot_SetModeHandler(float new_autopilot_mode)
Handler for setter function with dl_setting.
Definition autopilot.c:211
bool autopilot_get_motors_on(void)
Get motor status.
Definition autopilot.c:295
void autopilot_on_rc_frame(void)
Autopilot RC input event hadler.
Definition autopilot.c:178
bool kill_throttle
allow autopilot to use throttle
Definition autopilot.h:69
void autopilot_check_in_flight(bool motors_on)
Check if airframe is in flight.
Definition autopilot.c:321
uint8_t mode
current autopilot mode
Definition autopilot.h:63
bool autopilot_arming_motors_on(bool motors_on)
Start or stop the motors during arming May not happen when preflight checks are failing.
Definition autopilot.c:273
void autopilot_init(void)
Autopilot initialization function.
Definition autopilot.c:107
bool autopilot_in_flight(void)
Get in flight status.
Definition autopilot.c:340
void autopilot_force_motors_on(bool motors_on)
Force start/stop the motors WARNING This will skip he preflight checks.
Definition autopilot.c:237
bool in_flight
in flight status
Definition autopilot.h:70
void autopilot_set_kill_throttle(bool kill)
Enable or disable motor control from autopilot Also provide macro for dl_setting backward compatibili...
Definition autopilot.c:302
void autopilot_send_version(void)
Report autopilot version on default downlink channel.
Definition autopilot.c:367
bool autopilot_throttle_killed(void)
Get kill status.
Definition autopilot.c:313
void autopilot_store_settings(void)
Store marked settings in flash Try to make sure that we don't write to flash while flying Also provid...
Definition autopilot.c:347
void autopilot_clear_settings(void)
Clear marked settings in flash try to make sure that we don't write to flash while flying Also provid...
Definition autopilot.c:357
void autopilot_failsafe_checks(void)
Autopilot periodic failsafe checks.
Definition autopilot.c:189
void autopilot_reset_in_flight_counter(void)
reset in_flight counter actual implementation is firmware dependent
Definition autopilot.c:326
void autopilot_reset_flight_time(void)
Reset flight time and launch status Also provide macro for dl_setting backward compatibility.
Definition autopilot.c:229
uint16_t flight_time
flight time in seconds
Definition autopilot.h:65
PPRZ Autopilot structure definition.
Definition autopilot.h:62
uint16_t foo
Definition main_demo5.c:58
int16_t pprz_t
Definition paparazzi.h:6
API to get/set the generic vehicle states.
unsigned short uint16_t
Typedef defining 16 bit unsigned short type.
unsigned char uint8_t
Typedef defining 8 bit unsigned char type.