33#define INT32_MIN (-2147483647-1) 
   37#define INT32_MAX (2147483647) 
   40#if defined MOTOR_MIXING_MIN_MOTOR || defined MOTOR_MIXING_MAX_MOTOR 
   41#error MIN_MOTOR and MAX_MOTOR have to be set via neutral/max of the respective servo 
   43#define MOTOR_MIXING_MIN_MOTOR 0 
   44#define MOTOR_MIXING_MAX_MOTOR MAX_PPRZ 
   46#ifndef MOTOR_MIXING_STOP_MOTOR 
   47#define MOTOR_MIXING_STOP_MOTOR -MAX_PPRZ 
   50#ifndef MOTOR_MIXING_TRIM_ROLL 
   51#define MOTOR_MIXING_TRIM_ROLL 0 
   54#ifndef MOTOR_MIXING_TRIM_PITCH 
   55#define MOTOR_MIXING_TRIM_PITCH 0 
   58#ifndef MOTOR_MIXING_TRIM_YAW 
   59#define MOTOR_MIXING_TRIM_YAW 0 
   68#ifndef MOTOR_MIXING_MAX_SATURATION_OFFSET 
   69#define MOTOR_MIXING_MAX_SATURATION_OFFSET MAX_PPRZ/10 
   72#ifndef MOTOR_MIXING_MIN_MOTOR_STARTUP 
   73#define MOTOR_MIXING_MIN_MOTOR_STARTUP MOTOR_MIXING_MIN_MOTOR 
   76#if defined (MOTOR_MIXING_MAX_NEGATIVE_MOTOR_STEP) || defined (MOTOR_MIXING_MAX_POSITIVE_MOTOR_STEP) 
   77#define MOTOR_MIXING_USE_MAX_MOTOR_STEP_BINDING 
   79#ifndef MOTOR_MIXING_MAX_NEGATIVE_MOTOR_STEP 
   80#define MOTOR_MIXING_MAX_NEGATIVE_MOTOR_STEP INT32_MIN 
  123#if PERIODIC_TELEMETRY 
 
  146#ifdef MOTOR_MIXING_USE_MAX_MOTOR_STEP_BINDING 
  149  static uint8_t initialized = 0;
 
  151  if (initialized == 1) {
 
 
  172#ifdef MOTOR_MIXING_STARTUP_DELAY 
 
static const float offset[]
static void offset_commands(int32_t offset)
static const int32_t pitch_coef[MOTOR_MIXING_NB_MOTOR]
static const int32_t yaw_coef[MOTOR_MIXING_NB_MOTOR]
static void bound_commands_step(void)
#define MOTOR_MIXING_TRIM_YAW
#define MOTOR_MIXING_TRIM_ROLL
void motor_mixing_run_spinup(uint32_t counter, uint32_t max_counter)
struct MotorMixing motor_mixing
#define MOTOR_MIXING_MIN_MOTOR
static void send_motor_mixing(struct transport_tx *trans, struct link_device *dev)
#define MOTOR_MIXING_MIN_MOTOR_STARTUP
#define MOTOR_MIXING_MAX_SATURATION_OFFSET
Maximum offset in case of saturation.
static const int32_t thrust_coef[MOTOR_MIXING_NB_MOTOR]
void motor_mixing_run(bool motors_on, bool override_on, pprz_t in_cmd[])
void motor_mixing_init(void)
#define MOTOR_MIXING_MAX_MOTOR
#define MOTOR_MIXING_STOP_MOTOR
static const int32_t roll_coef[MOTOR_MIXING_NB_MOTOR]
#define MOTOR_MIXING_TRIM_PITCH
static void bound_commands(void)
int32_t override_value[MOTOR_MIXING_NB_MOTOR]
int32_t trim[MOTOR_MIXING_NB_MOTOR]
int32_t commands[MOTOR_MIXING_NB_MOTOR]
bool override_enabled[MOTOR_MIXING_NB_MOTOR]
#define MOTOR_MIXING_NB_MOTOR
#define MOTOR_MIXING_THRUST_COEF
#define MOTOR_MIXING_YAW_COEF
#define MOTOR_MIXING_ROLL_COEF
#define MOTOR_MIXING_PITCH_COEF
#define MOTOR_MIXING_SCALE
static const struct usb_device_descriptor dev
int16_t register_periodic_telemetry(struct periodic_telemetry *_pt, uint16_t _id, telemetry_cb _cb)
Register a telemetry callback function.
Periodic telemetry system header (includes downlink utility and generated code).
#define DefaultPeriodic
Set default periodic telemetry.
int int32_t
Typedef defining 32 bit int type.
unsigned int uint32_t
Typedef defining 32 bit unsigned int type.
short int16_t
Typedef defining 16 bit short type.
unsigned char uint8_t
Typedef defining 8 bit unsigned char type.