@ -148,6 +148,14 @@ void Plane::channel_function_mixer(SRV_Channel::Aux_servo_function_t func1_in, S
@@ -148,6 +148,14 @@ void Plane::channel_function_mixer(SRV_Channel::Aux_servo_function_t func1_in, S
// reversal as needed
float in1 = SRV_Channels : : get_output_scaled ( func1_in ) ;
float in2 = SRV_Channels : : get_output_scaled ( func2_in ) ;
// apply MIXING_OFFSET to input channels
if ( g . mixing_offset < 0 ) {
in2 * = ( 100 - g . mixing_offset ) * 0.01 ;
} else if ( g . mixing_offset > 0 ) {
in1 * = ( 100 + g . mixing_offset ) * 0.01 ;
}
float out1 = constrain_float ( ( in2 - in1 ) * g . mixing_gain , - 4500 , 4500 ) ;
float out2 = constrain_float ( ( in2 + in1 ) * g . mixing_gain , - 4500 , 4500 ) ;
SRV_Channels : : set_output_scaled ( func1_out , out1 ) ;
@ -191,7 +199,8 @@ void Plane::dspoiler_update(void)
@@ -191,7 +199,8 @@ void Plane::dspoiler_update(void)
}
float elevon_left = SRV_Channels : : get_output_scaled ( SRV_Channel : : k_elevon_left ) ;
float elevon_right = SRV_Channels : : get_output_scaled ( SRV_Channel : : k_elevon_right ) ;
float rudder = SRV_Channels : : get_output_scaled ( SRV_Channel : : k_rudder ) ;
float rudder_rate = g . dspoiler_rud_rate * 0.01f ;
float rudder = SRV_Channels : : get_output_scaled ( SRV_Channel : : k_rudder ) * rudder_rate ;
float dspoiler1_left = elevon_left ;
float dspoiler2_left = elevon_left ;
float dspoiler1_right = elevon_right ;