From 1f0e48dd2729e7725862008086a4343f5d4be70d Mon Sep 17 00:00:00 2001 From: cruwaller Date: Tue, 25 May 2021 12:54:29 +0300 Subject: [PATCH 1/3] rx,crsf: fix CRSFv3 the numOfChannels calculation --- src/main/rx/crsf.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/rx/crsf.c b/src/main/rx/crsf.c index 9816a1ecf6..c7c3ae45cb 100644 --- a/src/main/rx/crsf.c +++ b/src/main/rx/crsf.c @@ -551,7 +551,7 @@ STATIC_UNIT_TESTED uint8_t crsfFrameStatus(rxRuntimeState_t *rxRuntimeState) configByte >>= CRSF_SUBSET_RC_RESERVED_CONFIGURATION_BITS; // calculate the number of channels packed - uint8_t numOfChannels = ((crsfChannelDataFrame.frame.frameLength - CRSF_FRAME_LENGTH_TYPE_CRC) * 8 - CRSF_SUBSET_RC_STARTING_CHANNEL_BITS) / channelBits; + uint8_t numOfChannels = ((crsfChannelDataFrame.frame.frameLength - CRSF_FRAME_LENGTH_TYPE_CRC - 1) * 8) / channelBits; // unpack the channel data uint8_t bitsMerged = 0; From 8bf8a0177016878d3bf49df410c546fa531af53f Mon Sep 17 00:00:00 2001 From: cruwaller Date: Tue, 25 May 2021 12:55:03 +0300 Subject: [PATCH 2/3] rx,crsf: fix CRSFv3 uplink link statistic debug --- src/main/rx/crsf.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/main/rx/crsf.c b/src/main/rx/crsf.c index c7c3ae45cb..5f73d17873 100644 --- a/src/main/rx/crsf.c +++ b/src/main/rx/crsf.c @@ -301,6 +301,13 @@ static void handleCrsfLinkStatisticsTxFrame(const crsfLinkStatisticsTx_t* statsP setLinkQualityDirect(stats.uplink_Link_quality); } #endif + + if (debugMode == DEBUG_CRSF_LINK_STATISTICS_UPLINK) { + DEBUG_SET(DEBUG_CRSF_LINK_STATISTICS_UPLINK, 0, stats.uplink_RSSI); + DEBUG_SET(DEBUG_CRSF_LINK_STATISTICS_UPLINK, 1, stats.uplink_SNR); + DEBUG_SET(DEBUG_CRSF_LINK_STATISTICS_UPLINK, 2, stats.uplink_Link_quality); + DEBUG_SET(DEBUG_CRSF_LINK_STATISTICS_UPLINK, 3, stats.uplink_RSSI_percentage); + } } #endif #endif From e8bde80f7b25d750467b918a60e52936ea55ac0b Mon Sep 17 00:00:00 2001 From: cruwaller Date: Mon, 13 Sep 2021 14:06:14 +0300 Subject: [PATCH 3/3] rx,crsf: fix DEBUG_SET macro usage --- src/main/rx/crsf.c | 39 +++++++++++++++------------------------ 1 file changed, 15 insertions(+), 24 deletions(-) diff --git a/src/main/rx/crsf.c b/src/main/rx/crsf.c index 5f73d17873..0ee5df3535 100644 --- a/src/main/rx/crsf.c +++ b/src/main/rx/crsf.c @@ -258,25 +258,18 @@ static void handleCrsfLinkStatisticsFrame(const crsfLinkStatistics_t* statsPtr, rxSetUplinkTxPwrMw(uplinkTXPowerStatesMw[crsfUplinkPowerStatesItemIndex]); #endif - switch (debugMode) { - case DEBUG_CRSF_LINK_STATISTICS_UPLINK: - DEBUG_SET(DEBUG_CRSF_LINK_STATISTICS_UPLINK, 0, stats.uplink_RSSI_1); - DEBUG_SET(DEBUG_CRSF_LINK_STATISTICS_UPLINK, 1, stats.uplink_RSSI_2); - DEBUG_SET(DEBUG_CRSF_LINK_STATISTICS_UPLINK, 2, stats.uplink_Link_quality); - DEBUG_SET(DEBUG_CRSF_LINK_STATISTICS_UPLINK, 3, stats.rf_Mode); - break; - case DEBUG_CRSF_LINK_STATISTICS_PWR: - DEBUG_SET(DEBUG_CRSF_LINK_STATISTICS_PWR, 0, stats.active_antenna); - DEBUG_SET(DEBUG_CRSF_LINK_STATISTICS_PWR, 1, stats.uplink_SNR); - DEBUG_SET(DEBUG_CRSF_LINK_STATISTICS_PWR, 2, stats.uplink_TX_Power); - break; - case DEBUG_CRSF_LINK_STATISTICS_DOWN: - DEBUG_SET(DEBUG_CRSF_LINK_STATISTICS_DOWN, 0, stats.downlink_RSSI); - DEBUG_SET(DEBUG_CRSF_LINK_STATISTICS_DOWN, 1, stats.downlink_Link_quality); - DEBUG_SET(DEBUG_CRSF_LINK_STATISTICS_DOWN, 2, stats.downlink_SNR); - break; - } + DEBUG_SET(DEBUG_CRSF_LINK_STATISTICS_UPLINK, 0, stats.uplink_RSSI_1); + DEBUG_SET(DEBUG_CRSF_LINK_STATISTICS_UPLINK, 1, stats.uplink_RSSI_2); + DEBUG_SET(DEBUG_CRSF_LINK_STATISTICS_UPLINK, 2, stats.uplink_Link_quality); + DEBUG_SET(DEBUG_CRSF_LINK_STATISTICS_UPLINK, 3, stats.rf_Mode); + DEBUG_SET(DEBUG_CRSF_LINK_STATISTICS_PWR, 0, stats.active_antenna); + DEBUG_SET(DEBUG_CRSF_LINK_STATISTICS_PWR, 1, stats.uplink_SNR); + DEBUG_SET(DEBUG_CRSF_LINK_STATISTICS_PWR, 2, stats.uplink_TX_Power); + + DEBUG_SET(DEBUG_CRSF_LINK_STATISTICS_DOWN, 0, stats.downlink_RSSI); + DEBUG_SET(DEBUG_CRSF_LINK_STATISTICS_DOWN, 1, stats.downlink_Link_quality); + DEBUG_SET(DEBUG_CRSF_LINK_STATISTICS_DOWN, 2, stats.downlink_SNR); } #if defined(USE_CRSF_V3) @@ -302,12 +295,10 @@ static void handleCrsfLinkStatisticsTxFrame(const crsfLinkStatisticsTx_t* statsP } #endif - if (debugMode == DEBUG_CRSF_LINK_STATISTICS_UPLINK) { - DEBUG_SET(DEBUG_CRSF_LINK_STATISTICS_UPLINK, 0, stats.uplink_RSSI); - DEBUG_SET(DEBUG_CRSF_LINK_STATISTICS_UPLINK, 1, stats.uplink_SNR); - DEBUG_SET(DEBUG_CRSF_LINK_STATISTICS_UPLINK, 2, stats.uplink_Link_quality); - DEBUG_SET(DEBUG_CRSF_LINK_STATISTICS_UPLINK, 3, stats.uplink_RSSI_percentage); - } + DEBUG_SET(DEBUG_CRSF_LINK_STATISTICS_UPLINK, 0, stats.uplink_RSSI); + DEBUG_SET(DEBUG_CRSF_LINK_STATISTICS_UPLINK, 1, stats.uplink_SNR); + DEBUG_SET(DEBUG_CRSF_LINK_STATISTICS_UPLINK, 2, stats.uplink_Link_quality); + DEBUG_SET(DEBUG_CRSF_LINK_STATISTICS_UPLINK, 3, stats.uplink_RSSI_percentage); } #endif #endif