From 9518dca3f928e05a9110fa6b3c7da256f4ecbcdd Mon Sep 17 00:00:00 2001 From: Raphael Coeffic Date: Mon, 8 Jul 2024 13:41:43 +0200 Subject: [PATCH] feat: telemetry buffer for all internal modules (#5267) --- radio/src/targets/common/arm/CMakeLists.txt | 2 -- radio/src/telemetry/telemetry.cpp | 30 +++++++-------------- 2 files changed, 10 insertions(+), 22 deletions(-) diff --git a/radio/src/targets/common/arm/CMakeLists.txt b/radio/src/targets/common/arm/CMakeLists.txt index 45201938e69..3c7cf9056ca 100644 --- a/radio/src/targets/common/arm/CMakeLists.txt +++ b/radio/src/targets/common/arm/CMakeLists.txt @@ -50,13 +50,11 @@ endif() if(INTERNAL_MODULE_MULTI) add_definitions(-DHARDWARE_INTERNAL_MODULE) add_definitions(-DINTERNAL_MODULE_MULTI) - add_definitions(-DINTERNAL_MODULE_SERIAL_TELEMETRY) endif() if(INTERNAL_MODULE_CRSF) add_definitions(-DHARDWARE_INTERNAL_MODULE) add_definitions(-DINTERNAL_MODULE_CRSF) - add_definitions(-DINTERNAL_MODULE_SERIAL_TELEMETRY) endif() if(INTERNAL_MODULE_AFHDS2A) diff --git a/radio/src/telemetry/telemetry.cpp b/radio/src/telemetry/telemetry.cpp index 94a4ed3fc9b..ad60dcfb922 100644 --- a/radio/src/telemetry/telemetry.cpp +++ b/radio/src/telemetry/telemetry.cpp @@ -60,37 +60,27 @@ #include "flysky_ibus.h" #endif -uint8_t telemetryStreaming = 0; -uint8_t telemetryRxBuffer[TELEMETRY_RX_PACKET_SIZE]; -uint8_t telemetryRxBufferCount = 0; +struct telemetry_buffer { + uint8_t buffer[TELEMETRY_RX_PACKET_SIZE]; + uint8_t length; +}; +uint8_t telemetryStreaming = 0; uint8_t telemetryState = TELEMETRY_INIT; TelemetryData telemetryData; - -#if defined(INTERNAL_MODULE_SERIAL_TELEMETRY) -static uint8_t intTelemetryRxBuffer[TELEMETRY_RX_PACKET_SIZE]; -static uint8_t intTelemetryRxBufferCount; -#endif - static rxStatStruct rxStat; -uint8_t * getTelemetryRxBuffer(uint8_t moduleIdx) +telemetry_buffer _telemetry_rx_buffer[NUM_MODULES]; + +uint8_t* getTelemetryRxBuffer(uint8_t moduleIdx) { -#if defined(INTERNAL_MODULE_SERIAL_TELEMETRY) - if (moduleIdx == INTERNAL_MODULE) - return intTelemetryRxBuffer; -#endif - return telemetryRxBuffer; + return _telemetry_rx_buffer[moduleIdx].buffer; } uint8_t &getTelemetryRxBufferCount(uint8_t moduleIdx) { -#if defined(INTERNAL_MODULE_SERIAL_TELEMETRY) - if (moduleIdx == INTERNAL_MODULE) - return intTelemetryRxBufferCount; -#endif - return telemetryRxBufferCount; + return _telemetry_rx_buffer[moduleIdx].length; } rxStatStruct *getRxStatLabels() {