From 61aec54ea77f7ffc3cadb60aa504e7907c193884 Mon Sep 17 00:00:00 2001 From: olliw42 Date: Wed, 8 Nov 2023 18:42:46 +0100 Subject: [PATCH] AP_RCTelemetry: throttle CRSF request RX device info messages --- libraries/AP_RCTelemetry/AP_CRSF_Telem.cpp | 6 +++++- libraries/AP_RCTelemetry/AP_CRSF_Telem.h | 1 + 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/libraries/AP_RCTelemetry/AP_CRSF_Telem.cpp b/libraries/AP_RCTelemetry/AP_CRSF_Telem.cpp index cd21896afe7..43f68c4c6a1 100644 --- a/libraries/AP_RCTelemetry/AP_CRSF_Telem.cpp +++ b/libraries/AP_RCTelemetry/AP_CRSF_Telem.cpp @@ -468,7 +468,11 @@ void AP_CRSF_Telem::process_packet(uint8_t idx) GCS_SEND_TEXT(MAV_SEVERITY_DEBUG,"%s: RX device ping failed", get_protocol_string()); } else { calc_device_ping(AP_RCProtocol_CRSF::CRSF_ADDRESS_CRSF_RECEIVER); - GCS_SEND_TEXT(MAV_SEVERITY_DEBUG,"%s: requesting RX device info", get_protocol_string()); + uint32_t tnow_ms = AP_HAL::millis(); + if ((tnow_ms - _crsf_version.last_request_info_ms) > 5000) { + _crsf_version.last_request_info_ms = tnow_ms; + GCS_SEND_TEXT(MAV_SEVERITY_DEBUG,"%s: requesting RX device info", get_protocol_string()); + } } break; case DEVICE_PING: diff --git a/libraries/AP_RCTelemetry/AP_CRSF_Telem.h b/libraries/AP_RCTelemetry/AP_CRSF_Telem.h index 9bbeeaf03a2..431ceebff7a 100644 --- a/libraries/AP_RCTelemetry/AP_CRSF_Telem.h +++ b/libraries/AP_RCTelemetry/AP_CRSF_Telem.h @@ -335,6 +335,7 @@ private: bool use_rf_mode; AP_RCProtocol_CRSF::ProtocolType protocol; bool pending = true; + uint32_t last_request_info_ms; } _crsf_version; struct {