Browse Source

RC_Channel: allow for pass-thru from low channels to any channel

this makes it easier to setup things like ignition cut or bottle drop
with a 8 channel radio
master
Andrew Tridgell 9 years ago
parent
commit
ed2f26d7b8
  1. 7
      libraries/RC_Channel/RC_Channel_aux.cpp
  2. 8
      libraries/RC_Channel/RC_Channel_aux.h

7
libraries/RC_Channel/RC_Channel_aux.cpp

@ -35,6 +35,9 @@ RC_Channel_aux::output_ch(void) @@ -35,6 +35,9 @@ RC_Channel_aux::output_ch(void)
case k_manual: // manual
radio_out = radio_in;
break;
case k_rcin1 ... k_rcin8: // rc pass-thru
radio_out = hal.rcin->read(function-k_rcin1);
break;
case k_motor1 ... k_motor8:
// handled by AP_Motors::rc_write()
return;
@ -342,6 +345,10 @@ RC_Channel_aux::set_servo_limit(RC_Channel_aux::Aux_servo_function_t function, R @@ -342,6 +345,10 @@ RC_Channel_aux::set_servo_limit(RC_Channel_aux::Aux_servo_function_t function, R
// also have to override radio_in
ch->radio_in = pwm;
}
if (ch->function.get() >= k_rcin1 && ch->function.get() <= k_rcin8) {
// save for k_rcin*
ch->radio_in = pwm;
}
}
}
}

8
libraries/RC_Channel/RC_Channel_aux.h

@ -74,6 +74,14 @@ public: @@ -74,6 +74,14 @@ public:
k_motor6 = 38,
k_motor7 = 39,
k_motor8 = 40,
k_rcin1 = 51, ///< these are for pass-thru from arbitrary rc inputs
k_rcin2 = 52,
k_rcin3 = 53,
k_rcin4 = 54,
k_rcin5 = 55,
k_rcin6 = 56,
k_rcin7 = 57,
k_rcin8 = 58,
k_nr_aux_servo_functions ///< This must be the last enum value (only add new values _before_ this one)
} Aux_servo_function_t;

Loading…
Cancel
Save