ManualControl: avoid scheduling based on unchosen input

This commit is contained in:
Matthias Grob
2021-10-29 09:11:32 +02:00
parent 48869ed03e
commit 2b29df06fd
2 changed files with 13 additions and 2 deletions
+12 -2
View File
@@ -226,8 +226,18 @@ void ManualControl::Run()
// If it's valid, this should really be valid but better safe than sorry.
const int instance = _selector.instance();
if (instance >= 0 && instance < MAX_MANUAL_INPUT_COUNT) {
_manual_control_input_subs[instance].registerCallback();
// Attach scheduling to new samples of the chosen input
if (instance != _previous_manual_control_input_instance) {
if ((0 <= _previous_manual_control_input_instance)
&& (_previous_manual_control_input_instance < MAX_MANUAL_INPUT_COUNT)) {
_manual_control_input_subs[_previous_manual_control_input_instance].unregisterCallback();
}
if ((0 <= instance) && (instance < MAX_MANUAL_INPUT_COUNT)) {
_manual_control_input_subs[instance].registerCallback();
}
_previous_manual_control_input_instance = instance;
}
_manual_control_switches_sub.registerCallback();