// set_min_throttle - sets the minimum throttle that will be sent to the engines when they're not off (i.e. to prevents issues with some motors spinning and some not at very low throttle)
// output_min - sends minimum values out to the motors
virtualvoidoutput_min(){};
// get basic information about the platform
virtualuint8_tget_num_motors(){return0;};
// motor test
virtualvoidoutput_test(){};
// throttle_pass_through - passes throttle through to motors - dangerous but required for initialising ESCs
virtualvoidthrottle_pass_through();
// 1 if motor is enabled, 0 otherwise
AP_Int8motor_enabled[AP_MOTORS_MAX_NUM_MOTORS];
// final output values sent to the motors. public (for now) so that they can be access for logging
int16_tmotor_out[AP_MOTORS_MAX_NUM_MOTORS];
// power ratio of upper vs lower motors (only used by y6 and octa quad copters)
AP_Floattop_bottom_ratio;
// var_info for holding Parameter information
staticconststructAP_Param::GroupInfovar_info[];
protected:
// output functions that should be overloaded by child classes
virtualvoidoutput_armed(){};
virtualvoidoutput_disarmed(){};
APM_RC_Class*_rc;// APM_RC class used to send updates to ESCs/Servos
RC_Channel*_rc_roll,*_rc_pitch,*_rc_throttle,*_rc_yaw;// input in from users
uint8_t_motor_to_channel_map[AP_MOTORS_MAX_NUM_MOTORS];// mapping of motor number (as received from upper APM code) to RC channel output - used to account for differences between APM1 and APM2
uint16_t_speed_hz;// speed in hz to send updates to motors
bool_armed;// true if motors are armed
bool_auto_armed;// true is throttle is above zero, allows auto pilot to take control of throttle
int16_t_min_throttle;// the minimum throttle to be sent to the engines when they're on (prevents issues with some motors on while other off at very low throttle)
int16_t_max_throttle;// the minimum throttle to be sent to the engines when they're on (prevents issues with some motors on while other off at very low throttle)