Paparazzi UAS  v5.0.5_stable-7-g4b8bbb7
Paparazzi is a free software Unmanned Aircraft System.
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules 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 
29 #ifndef AUTOPILOT_ARMING_THROTTLE_H
30 #define AUTOPILOT_ARMING_THROTTLE_H
31 
32 #include "autopilot_rc_helpers.h"
33 
34 #define AUTOPILOT_ARMING_DELAY 10
35 
43 };
44 
48 
49 static inline void autopilot_arming_init(void) {
53 }
54 
55 static inline void autopilot_arming_set(bool_t motors_on) {
56  if (motors_on) {
58  }
59  else {
62  }
63  }
64 }
65 
74 static inline void autopilot_arming_check_motors_on( void ) {
75 
76  /* only allow switching motor if not in FAILSAFE or KILL mode */
78 
79  switch(autopilot_arming_state) {
80  case STATE_UNINIT:
83  if (THROTTLE_STICK_DOWN()) {
85  }
86  else {
88  }
89  break;
90  case STATE_WAITING:
93  if (THROTTLE_STICK_DOWN()) {
95  }
96  break;
100  if (!THROTTLE_STICK_DOWN() &&
104  }
105  break;
106  case STATE_ARMING:
109  if (THROTTLE_STICK_DOWN() ||
113  }
116  }
117  break;
118  case STATE_MOTORS_ON:
121  if (THROTTLE_STICK_DOWN()) {
123  }
124  break;
125  case STATE_UNARMING:
128  if (!THROTTLE_STICK_DOWN()) {
130  }
131  else if (autopilot_arming_delay_counter == 0) {
133  if (autopilot_mode != MODE_MANUAL) {
135  }
136  else {
138  }
139  }
140  break;
141  default:
142  break;
143  }
144  }
145 
146 }
147 
148 #endif /* AUTOPILOT_ARMING_THROTTLE_H */
#define AP_MODE_KILL
Definition: autopilot.h:40
enum arming_throttle_state autopilot_arming_state
uint8_t autopilot_mode
Definition: autopilot.c:39
bool_t autopilot_motors_on
Definition: autopilot.c:46
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
#define AUTOPILOT_ARMING_DELAY
#define TRUE
Definition: imu_chimu.h:144
Some helper functions to check RC sticks.
unsigned char uint8_t
Definition: types.h:14
static void autopilot_arming_init(void)
#define MODE_MANUAL
Default RC mode.
Definition: autopilot.h:79