Plane: removed ancient "mix_mode" type elevon mixing

this has been deprecated for a long time
This commit is contained in:
Andrew Tridgell 2017-07-01 21:14:46 +10:00
parent 725244ff8a
commit 51b39ea3a1
4 changed files with 11 additions and 74 deletions

View File

@ -692,35 +692,6 @@ const AP_Param::Info Plane::var_info[] = {
// @User: Standard
GSCALAR(auto_trim, "TRIM_AUTO", AUTO_TRIM),
// @Param: ELEVON_MIXING
// @DisplayName: Elevon mixing
// @Description: This enables an older form of elevon mixing which is now deprecated. Please see the ELEVON_OUTPUT option for setting up elevons. The ELEVON_MIXING option should be set to 0 for elevon planes except for backwards compatibility with older setups.
// @Values: 0:Disabled,1:Enabled
// @User: User
GSCALAR(mix_mode, "ELEVON_MIXING", ELEVON_MIXING),
// @Param: ELEVON_REVERSE
// @DisplayName: Elevon reverse
// @Description: Reverse elevon mixing
// @Values: 0:Disabled,1:Enabled
// @User: User
GSCALAR(reverse_elevons, "ELEVON_REVERSE", ELEVON_REVERSE),
// @Param: ELEVON_CH1_REV
// @DisplayName: Elevon reverse
// @Description: Reverse elevon channel 1
// @Values: -1:Disabled,1:Enabled
// @User: User
GSCALAR(reverse_ch1_elevon, "ELEVON_CH1_REV", ELEVON_CH1_REVERSE),
// @Param: ELEVON_CH2_REV
// @DisplayName: Elevon reverse
// @Description: Reverse elevon channel 2
// @Values: -1:Disabled,1:Enabled
// @User: User
GSCALAR(reverse_ch2_elevon, "ELEVON_CH2_REV", ELEVON_CH2_REVERSE),
// @Param: VTAIL_OUTPUT
// @DisplayName: VTail output
// @Description: Enable VTail output in software. If enabled then the APM will provide software VTail mixing on the elevator and rudder channels. There are 8 different mixing modes available, which refer to the 8 ways the elevator can be mapped to the two VTail servos. Please also see the MIXING_GAIN parameter for the output gain of the mixer.

View File

@ -60,9 +60,9 @@ public:
k_param_log_bitmask_old, // unused
k_param_pitch_trim_cd,
k_param_mix_mode,
k_param_reverse_elevons,
k_param_reverse_ch1_elevon,
k_param_reverse_ch2_elevon,
k_param_reverse_elevons, // unused
k_param_reverse_ch1_elevon, // unused
k_param_reverse_ch2_elevon, // unused
k_param_flap_1_percent,
k_param_flap_1_speed,
k_param_flap_2_percent,
@ -457,14 +457,10 @@ public:
// Misc
//
AP_Int8 auto_trim;
AP_Int8 mix_mode;
AP_Int8 vtail_output;
AP_Int8 elevon_output;
AP_Int8 rudder_only;
AP_Float mixing_gain;
AP_Int8 reverse_elevons;
AP_Int8 reverse_ch1_elevon;
AP_Int8 reverse_ch2_elevon;
AP_Int16 mixing_offset;
AP_Int16 dspoiler_rud_rate;
AP_Int16 num_resets;

View File

@ -187,15 +187,8 @@ void Plane::read_radio()
elevon.ch2_temp = channel_pitch->read();
uint16_t pwm_roll, pwm_pitch;
if (g.mix_mode == 0) {
pwm_roll = elevon.ch1_temp;
pwm_pitch = elevon.ch2_temp;
}else{
pwm_roll = BOOL_TO_SIGN(g.reverse_elevons) * (BOOL_TO_SIGN(g.reverse_ch2_elevon) * int16_t(elevon.ch2_temp - elevon.trim2)
- BOOL_TO_SIGN(g.reverse_ch1_elevon) * int16_t(elevon.ch1_temp - elevon.trim1)) / 2 + 1500;
pwm_pitch = (BOOL_TO_SIGN(g.reverse_ch2_elevon) * int16_t(elevon.ch2_temp - elevon.trim2)
+ BOOL_TO_SIGN(g.reverse_ch1_elevon) * int16_t(elevon.ch1_temp - elevon.trim1)) / 2 + 1500;
}
pwm_roll = elevon.ch1_temp;
pwm_pitch = elevon.ch2_temp;
RC_Channels::set_pwm_all();

View File

@ -356,25 +356,6 @@ void Plane::set_servos_manual_passthrough(void)
SRV_Channels::copy_radio_in_out(SRV_Channel::k_elevator_with_input);
}
/*
old (deprecated) elevon support
*/
void Plane::set_servos_old_elevons(void)
{
/*Elevon mode*/
float ch1;
float ch2;
int16_t roll = SRV_Channels::get_output_scaled(SRV_Channel::k_aileron);
int16_t pitch = SRV_Channels::get_output_scaled(SRV_Channel::k_elevator);
ch1 = pitch - (BOOL_TO_SIGN(g.reverse_elevons) * roll);
ch2 = pitch + (BOOL_TO_SIGN(g.reverse_elevons) * roll);
// directly set the radio_out values for elevon mode
SRV_Channels::set_output_pwm_first(SRV_Channel::k_aileron, elevon.trim1 + (BOOL_TO_SIGN(g.reverse_ch1_elevon) * (ch1 * 500.0f/ SERVO_MAX)));
SRV_Channels::set_output_pwm_first(SRV_Channel::k_elevator, elevon.trim2 + (BOOL_TO_SIGN(g.reverse_ch2_elevon) * (ch2 * 500.0f/ SERVO_MAX)));
}
/*
calculate any throttle limits based on the watt limiter
*/
@ -430,17 +411,13 @@ void Plane::throttle_watt_limiter(int8_t &min_throttle, int8_t &max_throttle)
*/
void Plane::set_servos_controlled(void)
{
if (g.mix_mode != 0) {
set_servos_old_elevons();
} else {
// both types of secondary aileron are slaved to the roll servo out
SRV_Channels::set_output_scaled(SRV_Channel::k_aileron_with_input,
SRV_Channels::get_output_scaled(SRV_Channel::k_aileron));
// both types of secondary aileron are slaved to the roll servo out
SRV_Channels::set_output_scaled(SRV_Channel::k_aileron_with_input,
SRV_Channels::get_output_scaled(SRV_Channel::k_aileron));
// both types of secondary elevator are slaved to the pitch servo out
SRV_Channels::set_output_scaled(SRV_Channel::k_elevator_with_input,
SRV_Channels::get_output_scaled(SRV_Channel::k_elevator));
}
// both types of secondary elevator are slaved to the pitch servo out
SRV_Channels::set_output_scaled(SRV_Channel::k_elevator_with_input,
SRV_Channels::get_output_scaled(SRV_Channel::k_elevator));
if (flight_stage == AP_Vehicle::FixedWing::FLIGHT_LAND) {
// allow landing to override servos if it would like to