Also change Copter's option from Object Avoidance to Proximity Avoidance
due to impending AP_Avoidance stuff
RC_Channel: update aux switch param docs to add object avoidance
This will stop situations like we currently have where the
MANUAL_CONTROL GCS mavlink packets can still affect the vehicle
Also resolves an issue where has_new_overrides may not be set
appropriately
These are really, really expensive to run while your RC isn't
configured.
We now have a split between inputs (RC) and servos (SRV), so these
aren't as critical as they were. We also have range checks to ensure
they're roughly good enough to fly with.
RC_Channel: move handling of Rover's functions into RC_Channel
RC_Channel: move auxsw handling for camera to base RC_Channel
RC_Channel: add responsibility for servorelay events
RC_Channel: move mode switch handling to base class
rename all public data members of RC_Channnels with
leading underscore and make all data members private.
Provide get_xx and set_xx methods for access
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)
add function to save radio trim
(expression where c is an object of type RC_Channel)
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);
// other
c.min_max_configured() // return true if min and max are configured
c.save_radio_trim() // save radio trim to eeprom