AP_Tuning: Fix up after RC_Channels refactor

Further to refactor of RC_Channel class which included
adding get_xx set_xx methods, change reads and writes to the public members
to calls to  get and set functionsss

old public member(int16_t)   get function -> int16_t     set function (int16_t)
(expression where c is an object of type RC_Channel)
c.radio_in                     c.get_radio_in()           c.set_radio_in(v)
c.control_in                   c.get_control_in()         c.set_control_in(v)
c.servo_out                    c.get_servo_out()          c.set_servo_out(v)
c.pwm_out                      c.get_pwm_out()            // use existing
c.radio_out                    c.get_radio_out()          c.set_radio_out(v)
c.radio_max                    c.get_radio_max()          c.set_radio_max(v)
c.radio_min                    c.get_radio_min()          c.set_radio_min(v)
c.radio_trim                   c.get_radio_trim()         c.set_radio_trim(v);

c.min_max_configured() // return true if min and max are configured

Because data members of RC_Channels are now private and so cannot be written directly
 some overloads are provided in the Plane classes to provide the old functionality

new overload Plane::stick_mix_channel(RC_Channel *channel)
which forwards to the previously existing
void stick_mix_channel(RC_Channel *channel, int16_t &servo_out);

new overload Plane::channel_output_mixer(Rc_Channel* , RC_Channel*)const
which forwards to
(uint8_t mixing_type, int16_t & chan1, int16_t & chan2)const;

Rename functions

 RC_Channel_aux::set_radio_trim(Aux_servo_function_t function)
    to RC_Channel_aux::set_trim_to_radio_in_for(Aux_servo_function_t function)

 RC_Channel_aux::set_servo_out(Aux_servo_function_t function, int16_t value)
    to RC_Channel_aux::set_servo_out_for(Aux_servo_function_t function, int16_t value)

 Rationale:

        RC_Channel is a complicated class, which combines
        several functionalities dealing with stick inputs
        in pwm and logical units, logical and actual actuator
        outputs, unit conversion etc, etc
        The intent of this PR is to clarify existing use of
        the class. At the basic level it should now be possible
        to grep all places where private variable is set by
        searching for the set_xx function.

        (The wider purpose is to provide a more generic and
        logically simpler method of output mixing. This is a small step)
This commit is contained in:
skyscraper 2016-05-08 10:46:34 +01:00 committed by Andrew Tridgell
parent 662cefd086
commit 12cf65baed
1 changed files with 2 additions and 2 deletions

View File

@ -56,7 +56,7 @@ void AP_Tuning::check_selector_switch(void)
if (selchan == nullptr) { if (selchan == nullptr) {
return; return;
} }
uint16_t selector_in = selchan->radio_in; uint16_t selector_in = selchan->get_radio_in();
if (selector_in >= 1700) { if (selector_in >= 1700) {
// high selector // high selector
if (selector_start_ms == 0) { if (selector_start_ms == 0) {
@ -164,7 +164,7 @@ void AP_Tuning::check_input(uint8_t flightmode)
if (chan == nullptr) { if (chan == nullptr) {
return; return;
} }
float chan_value = linear_interpolate(-1, 1, chan->radio_in, channel_min, channel_max); float chan_value = linear_interpolate(-1, 1, chan->get_radio_in(), channel_min, channel_max);
if (dt_ms > 500) { if (dt_ms > 500) {
last_channel_value = chan_value; last_channel_value = chan_value;
} }