28#ifndef AUTOPILOT_RC_HELPERS_H 
   29#define AUTOPILOT_RC_HELPERS_H 
   31#include "generated/airframe.h" 
   33#include "generated/modules.h" 
   35#define AUTOPILOT_THROTTLE_THRESHOLD      (MAX_PPRZ / 20) 
   36#define AUTOPILOT_YAW_THRESHOLD           (MAX_PPRZ * 19 / 20) 
   37#ifndef AUTOPILOT_STICK_CENTER_THRESHOLD 
   38#define AUTOPILOT_STICK_CENTER_THRESHOLD  (MAX_PPRZ * 1 / 20) 
   41#define THROTTLE_STICK_DOWN()                                           \ 
   42  (radio_control.values[RADIO_THROTTLE] < AUTOPILOT_THROTTLE_THRESHOLD) 
 
   43#define YAW_STICK_PUSHED()                                      \ 
   44  (radio_control.values[RADIO_YAW] > AUTOPILOT_YAW_THRESHOLD ||  \ 
   45   radio_control.values[RADIO_YAW] < -AUTOPILOT_YAW_THRESHOLD) 
 
   46#define YAW_STICK_CENTERED()                                            \ 
   47  (radio_control.values[RADIO_YAW] < AUTOPILOT_STICK_CENTER_THRESHOLD && \ 
   48   radio_control.values[RADIO_YAW] > -AUTOPILOT_STICK_CENTER_THRESHOLD) 
 
   49#define PITCH_STICK_CENTERED()                                          \ 
   50  (radio_control.values[RADIO_PITCH] < AUTOPILOT_STICK_CENTER_THRESHOLD && \ 
   51   radio_control.values[RADIO_PITCH] > -AUTOPILOT_STICK_CENTER_THRESHOLD) 
 
   52#define ROLL_STICK_CENTERED()                                           \ 
   53  (radio_control.values[RADIO_ROLL] < AUTOPILOT_STICK_CENTER_THRESHOLD && \ 
   54   radio_control.values[RADIO_ROLL] > -AUTOPILOT_STICK_CENTER_THRESHOLD) 
 
   57#define THROTTLE_STICK_DOWN_FROM_RC(_rc)                                \ 
   58  (_rc->values[RADIO_THROTTLE] < AUTOPILOT_THROTTLE_THRESHOLD) 
 
   71  if (pos >= max) 
return false;
 
 
   82#define RCMode0() rc_mode_switch(RADIO_MODE, 0, 3) 
   83#define RCMode1() rc_mode_switch(RADIO_MODE, 1, 3) 
   84#define RCMode2() rc_mode_switch(RADIO_MODE, 2, 3) 
   88#define RCAP0() rc_mode_switch(AP_MODE_SWITCH, 0, 3) 
   89#define RCAP1() rc_mode_switch(AP_MODE_SWITCH, 1, 3) 
   90#define RCAP2() rc_mode_switch(AP_MODE_SWITCH, 2, 3) 
   98#ifdef RADIO_KILL_SWITCH 
  119  } 
else if (
per > 100) {
 
 
static bool rc_mode_switch(uint8_t chan, uint8_t pos, uint8_t max)
RC mode switch position helper switch positions threshold are evenly spaced.
struct RadioControl radio_control
Generic interface for radio control modules.
pprz_t values[RADIO_CONTROL_NB_CHANNEL]
#define RADIO_KILL_SWITCH
#define ROLL_STICK_CENTERED()
#define PITCH_STICK_CENTERED()
static uint8_t percent_from_rc(int channel)
#define YAW_STICK_CENTERED()
static bool kill_switch_is_on(void)
static bool rc_attitude_sticks_centered(void)
Convenience macro for 3way switch.
int int32_t
Typedef defining 32 bit int type.
unsigned char uint8_t
Typedef defining 8 bit unsigned char type.