Paparazzi UAS  v4.0.4_stable-3-gf39211a
Paparazzi is a free software Unmanned Aircraft System.
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
autopilot_arming_throttle.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2012 The Paparazzi Team
3  *
4  * This file is part of paparazzi.
5  *
6  * paparazzi is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation; either version 2, or (at your option)
9  * any later version.
10  *
11  * paparazzi is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with paparazzi; see the file COPYING. If not, write to
18  * the Free Software Foundation, 59 Temple Place - Suite 330,
19  * Boston, MA 02111-1307, USA.
20  */
21 
22 #ifndef AUTOPILOT_ARMING_THROTTLE_H
23 #define AUTOPILOT_ARMING_THROTTLE_H
24 
25 #include "autopilot_rc_helpers.h"
26 
27 #define AUTOPILOT_ARMING_DELAY 10
28 
36 };
37 
41 
42 static inline void autopilot_arming_init(void) {
46 }
47 
48 static inline void autopilot_arming_set(bool_t motors_on) {
49  if (motors_on) {
51  }
52  else {
55  }
56  }
57 }
58 
67 static inline void autopilot_arming_check_motors_on( void ) {
68 
69  /* only allow switching motor if not in FAILSAFE or KILL mode */
71 
72  switch(autopilot_arming_state) {
73  case STATE_UNINIT:
76  if (THROTTLE_STICK_DOWN()) {
78  }
79  else {
81  }
82  break;
83  case STATE_WAITING:
86  if (THROTTLE_STICK_DOWN()) {
88  }
89  break;
93  if (!THROTTLE_STICK_DOWN() &&
97  }
98  break;
99  case STATE_ARMING:
102  if (THROTTLE_STICK_DOWN() ||
106  }
109  }
110  break;
111  case STATE_MOTORS_ON:
114  if (THROTTLE_STICK_DOWN()) {
116  }
117  break;
118  case STATE_UNARMING:
121  if (!THROTTLE_STICK_DOWN()) {
123  }
124  else if (autopilot_arming_delay_counter == 0) {
126  if (autopilot_mode != MODE_MANUAL) {
128  }
129  else {
131  }
132  }
133  break;
134  default:
135  break;
136  }
137  }
138 
139 }
140 
141 #endif /* AUTOPILOT_ARMING_THROTTLE_H */
uint8_t autopilot_mode
Definition: autopilot.c:31
#define AP_MODE_KILL
Definition: autopilot.h:33
enum arming_throttle_state autopilot_arming_state
static void autopilot_arming_set(bool_t motors_on)
uint8_t autopilot_arming_delay_counter
static void autopilot_arming_check_motors_on(void)
State machine to check if motors should be turned ON or OFF.
static bool_t rc_attitude_sticks_centered(void)
bool_t autopilot_unarmed_in_auto
#define THROTTLE_STICK_DOWN()
#define FALSE
Definition: imu_chimu.h:141
bool_t autopilot_motors_on
Definition: autopilot.c:38
#define AUTOPILOT_ARMING_DELAY
#define TRUE
Definition: imu_chimu.h:144
unsigned char uint8_t
Definition: types.h:14
static void autopilot_arming_init(void)
#define MODE_MANUAL
Definition: autopilot.h:71