From 61970b028e6ed4aa034e394e44c3dcf830e4de56 Mon Sep 17 00:00:00 2001 From: pascallanger Date: Sat, 26 Oct 2019 15:40:46 +0200 Subject: [PATCH] AFHDS2A: Fix LQI to channel --- Multiprotocol/AFHDS2A_a7105.ino | 19 +++++++++++++------ Multiprotocol/Multiprotocol.h | 2 +- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/Multiprotocol/AFHDS2A_a7105.ino b/Multiprotocol/AFHDS2A_a7105.ino index 3c7b844..d0ec349 100644 --- a/Multiprotocol/AFHDS2A_a7105.ino +++ b/Multiprotocol/AFHDS2A_a7105.ino @@ -122,7 +122,8 @@ static void AFHDS2A_update_telemetry() telemetry_link=1; break; case AFHDS2A_SENSOR_RX_ERR_RATE: - RX_LQI=packet[index+2]; + if(packet[index+2]<=100) + RX_LQI=packet[index+2]; break; case AFHDS2A_SENSOR_RX_RSSI: RX_RSSI = -packet[index+2]; @@ -346,11 +347,17 @@ uint16_t ReadAFHDS2A() if(!memcmp(&packet[1], rx_tx_addr, 4)) { // Validate TX address #ifdef AFHDS2A_LQI_CH - for(uint8_t sensor=0; sensor<7; sensor++) - {//read LQI value for RX output - uint8_t index = 9+(4*sensor); - if(packet[index]==AFHDS2A_SENSOR_RX_ERR_RATE) - RX_LQI=packet[index+2]; + if(packet[0]==0xAA && packet[9]!=0xFD) + {// Normal telemetry packet + for(uint8_t sensor=0; sensor<7; sensor++) + {//read LQI value for RX output + uint8_t index = 9+(4*sensor); + if(packet[index]==AFHDS2A_SENSOR_RX_ERR_RATE && packet[index+2]<=100) + { + RX_LQI=packet[index+2]; + break; + } + } } #endif #if defined(AFHDS2A_FW_TELEMETRY) || defined(AFHDS2A_HUB_TELEMETRY) diff --git a/Multiprotocol/Multiprotocol.h b/Multiprotocol/Multiprotocol.h index d407479..a312a87 100644 --- a/Multiprotocol/Multiprotocol.h +++ b/Multiprotocol/Multiprotocol.h @@ -19,7 +19,7 @@ #define VERSION_MAJOR 1 #define VERSION_MINOR 2 #define VERSION_REVISION 1 -#define VERSION_PATCH_LEVEL 85 +#define VERSION_PATCH_LEVEL 86 //****************** // Protocols