mirror of
https://github.com/PX4/PX4-Autopilot.git
synced 2026-06-02 03:49:12 +08:00
rc_update: require consecutive valid input_rc before publishing
This commit is contained in:
@@ -424,11 +424,12 @@ void RCUpdate::Run()
|
||||
/* publish rc_channels topic even if signal is invalid, for debug */
|
||||
_rc_channels_pub.publish(_rc);
|
||||
|
||||
/* only publish manual control if the signal is present */
|
||||
if (input_source_stable && channel_count_stable && !signal_lost
|
||||
&& (input_rc.timestamp_last_signal > _last_timestamp_signal)) {
|
||||
// only publish manual control if the signal is present and regularly updating
|
||||
if (input_source_stable && channel_count_stable && !signal_lost) {
|
||||
|
||||
if ((input_rc.timestamp_last_signal > _last_timestamp_signal)
|
||||
&& (input_rc.timestamp_last_signal - _last_timestamp_signal < 1_s)) {
|
||||
|
||||
_last_timestamp_signal = input_rc.timestamp_last_signal;
|
||||
perf_count(_valid_data_interval_perf);
|
||||
|
||||
// check if channels actually updated
|
||||
@@ -455,6 +456,9 @@ void RCUpdate::Run()
|
||||
}
|
||||
}
|
||||
|
||||
_last_timestamp_signal = input_rc.timestamp_last_signal;
|
||||
}
|
||||
|
||||
memcpy(_rc_values_previous, input_rc.values, sizeof(input_rc.values[0]) * channel_count_limited);
|
||||
static_assert(sizeof(_rc_values_previous) == sizeof(input_rc.values), "check sizeof(_rc_values_previous)");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user