Paparazzi UAS  v5.15_devel-59-g8c145b7
Paparazzi is a free software Unmanned Aircraft System.
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
autopilot_arming_yaw.h File Reference

Arm the motors by with max yaw stick. More...

#include "autopilot_rc_helpers.h"
#include "autopilot_firmware.h"
#include "autopilot.h"
+ Include dependency graph for autopilot_arming_yaw.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define MOTOR_ARMING_DELAY   40
 Delay until motors are armed/disarmed. More...
 
#define YAW_MUST_BE_CENTERED   true
 
#define YAW_MUST_BE_PUSHED   false
 

Enumerations

enum  arming_state {
  STATE_UNINIT, STATE_WAITING, STATE_STARTABLE, STATE_MOTORS_ON,
  STATUS_INITIALISE_RC, STATUS_MOTORS_AUTOMATICALLY_OFF, STATUS_MOTORS_AUTOMATICALLY_OFF_SAFETY_WAIT, STATUS_MOTORS_OFF,
  STATUS_M_OFF_STICK_PUSHED, STATUS_START_MOTORS, STATUS_MOTORS_ON, STATUS_M_ON_STICK_PUSHED,
  STATUS_STOP_MOTORS
}
 Motors ON check state machine states. More...
 

Functions

static void autopilot_arming_init (void)
 
static void autopilot_arming_set (bool motors_on)
 Update the status of the check_motors state machine. More...
 
static bool autopilot_arming_check_valid (bool yaw_must_be_centered)
 Checks all arm requirements and returns true if OK and false otherwise. More...
 
static void autopilot_arming_check_motors_on (void)
 State machine to check if motors should be turned ON or OFF. More...
 

Variables

uint32_t autopilot_motors_on_counter
 
enum arming_state autopilot_check_motor_status
 

Detailed Description

Arm the motors by with max yaw stick.

Definition in file autopilot_arming_yaw.h.

Macro Definition Documentation

#define MOTOR_ARMING_DELAY   40

Delay until motors are armed/disarmed.

In number of rc frames received. So 40 is usually ~1s.

Definition at line 41 of file autopilot_arming_yaw.h.

Referenced by autopilot_arming_check_motors_on().

#define YAW_MUST_BE_CENTERED   true

Definition at line 79 of file autopilot_arming_yaw.h.

Referenced by autopilot_arming_check_motors_on().

#define YAW_MUST_BE_PUSHED   false

Definition at line 80 of file autopilot_arming_yaw.h.

Referenced by autopilot_arming_check_motors_on().

Enumeration Type Documentation

Motors ON check state machine states.

Enumerator
STATE_UNINIT 
STATE_WAITING 
STATE_STARTABLE 
STATE_MOTORS_ON 
STATUS_INITIALISE_RC 
STATUS_MOTORS_AUTOMATICALLY_OFF 
STATUS_MOTORS_AUTOMATICALLY_OFF_SAFETY_WAIT 
STATUS_MOTORS_OFF 
STATUS_M_OFF_STICK_PUSHED 
STATUS_START_MOTORS 
STATUS_MOTORS_ON 
STATUS_M_ON_STICK_PUSHED 
STATUS_STOP_MOTORS 

Definition at line 45 of file autopilot_arming_yaw.h.

Function Documentation

static void autopilot_arming_check_motors_on ( void  )
inlinestatic

State machine to check if motors should be turned ON or OFF.

The motors start/stop when pushing the yaw stick without throttle until MOTOR_ARMING_DELAY is reached. An intermediate state prevents oscillating between ON and OFF while keeping the stick pushed. The stick must return to a neutral position before starting/stoping again.

Definition at line 113 of file autopilot_arming_yaw.h.

References AP_ARMING_STATUS_ARMED, AP_ARMING_STATUS_DISARMING, AP_ARMING_STATUS_KILLED, AP_ARMING_STATUS_WAITING, AP_MODE_KILL, pprz_autopilot::arming_status, autopilot, autopilot_arming_check_valid(), autopilot_check_motor_status, autopilot_get_mode(), autopilot_motors_on_counter, autopilot_set_in_flight(), MOTOR_ARMING_DELAY, pprz_autopilot::motors_on, STATUS_INITIALISE_RC, STATUS_M_OFF_STICK_PUSHED, STATUS_M_ON_STICK_PUSHED, STATUS_MOTORS_AUTOMATICALLY_OFF, STATUS_MOTORS_AUTOMATICALLY_OFF_SAFETY_WAIT, STATUS_MOTORS_OFF, STATUS_MOTORS_ON, STATUS_START_MOTORS, STATUS_STOP_MOTORS, THROTTLE_STICK_DOWN, YAW_MUST_BE_CENTERED, YAW_MUST_BE_PUSHED, YAW_STICK_CENTERED, and YAW_STICK_PUSHED.

+ Here is the call graph for this function:

static bool autopilot_arming_check_valid ( bool  yaw_must_be_centered)
inlinestatic

Checks all arm requirements and returns true if OK and false otherwise.

Also sets the arming status to provide information to the user

Parameters
[in]yaw_must_be_centeredcheck is vallid of a yaw stick centered (true) or pushed (false)
Returns
true if arming checks are all valid

Definition at line 87 of file autopilot_arming_yaw.h.

References AP_ARMING_STATUS_PITCH_NOT_CENTERED, AP_ARMING_STATUS_ROLL_NOT_CENTERED, AP_ARMING_STATUS_THROTTLE_NOT_DOWN, AP_ARMING_STATUS_YAW_CENTERED, AP_ARMING_STATUS_YAW_NOT_CENTERED, pprz_autopilot::arming_status, autopilot, PITCH_STICK_CENTERED, ROLL_STICK_CENTERED, THROTTLE_STICK_DOWN, and YAW_STICK_CENTERED.

Referenced by autopilot_arming_check_motors_on().

+ Here is the caller graph for this function:

static void autopilot_arming_init ( void  )
inlinestatic
static void autopilot_arming_set ( bool  motors_on)
inlinestatic

Update the status of the check_motors state machine.

Definition at line 70 of file autopilot_arming_yaw.h.

References autopilot_check_motor_status, STATUS_MOTORS_AUTOMATICALLY_OFF, and STATUS_MOTORS_ON.

Variable Documentation

enum arming_state autopilot_check_motor_status
uint32_t autopilot_motors_on_counter