From 49faf25c804752da024a3d20c1bb3d38855d86ef Mon Sep 17 00:00:00 2001 From: Bertrand Songis Date: Wed, 6 Mar 2019 13:42:57 +0100 Subject: [PATCH] New MODULES / RX VERSION screen should be OK now --- radio/src/telemetry/telemetry.cpp | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/radio/src/telemetry/telemetry.cpp b/radio/src/telemetry/telemetry.cpp index ff7c37f34..ff8ad7fb0 100644 --- a/radio/src/telemetry/telemetry.cpp +++ b/radio/src/telemetry/telemetry.cpp @@ -71,6 +71,23 @@ void processTelemetryData(uint8_t data) processFrskyTelemetryData(data); } +void processGetHardwareInfoFrame(uint8_t module, uint8_t * frame) +{ + if (moduleSettings[module].mode != MODULE_MODE_GET_HARDWARE_INFO) { + return; + } + + uint8_t index = frame[3]; + if (index == 0xFF) { + reusableBuffer.hardware.modules[module].hw_version = *((uint32_t *)&frame[4]); + reusableBuffer.hardware.modules[module].sw_version = *((uint32_t *)&frame[8]); + } + else if (index < PXX2_MAX_RECEIVERS_PER_MODULE){ + reusableBuffer.hardware.modules[module].receivers[index].hw_version = *((uint32_t *)&frame[4]); + reusableBuffer.hardware.modules[module].receivers[index].sw_version = *((uint32_t *)&frame[8]); + } +} + void processRegisterFrame(uint8_t module, uint8_t * frame) { if (moduleSettings[module].mode != MODULE_MODE_REGISTER) { @@ -151,6 +168,10 @@ void processSpectrumFrame(uint8_t module, uint8_t * frame) void processRadioFrame(uint8_t module, uint8_t * frame) { switch (frame[2]) { + case PXX2_TYPE_ID_HW_INFO: + processGetHardwareInfoFrame(module, frame); + break; + case PXX2_TYPE_ID_REGISTER: processRegisterFrame(module, frame); break;