From dbba9adb14b5210498287168396333d57ffb2fb9 Mon Sep 17 00:00:00 2001 From: Alexander Lerach Date: Fri, 11 Oct 2024 22:17:54 +0200 Subject: [PATCH] lib/rc/ghst: Added differentiation between GHST and CRSF (#23805) --- src/lib/rc/ghst.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/lib/rc/ghst.cpp b/src/lib/rc/ghst.cpp index 1af68e8da0..a0bce68718 100644 --- a/src/lib/rc/ghst.cpp +++ b/src/lib/rc/ghst.cpp @@ -69,6 +69,7 @@ #define GHST_FRAME_CRC_SIZE (1U) #define GHST_FRAME_TYPE_SIZE (1U) #define GHST_TYPE_DATA_CRC_SIZE (12U) +#define GHST_ADDR_FC (130U) #define GHST_MAX_NUM_CHANNELS (16) enum class ghst_parser_state_t : uint8_t { @@ -251,7 +252,8 @@ static bool ghst_parse_buffer(uint16_t *values, int8_t *rssi, uint16_t *num_valu if ((ghst_frame.type >= static_cast(ghstFrameType::frameTypeFirst)) && (ghst_frame.type <= static_cast(ghstFrameType::frameTypeLast)) && - (ghst_frame.header.length == GHST_TYPE_DATA_CRC_SIZE)) { + (ghst_frame.header.length == GHST_TYPE_DATA_CRC_SIZE) && + (ghst_frame.header.device_address == GHST_ADDR_FC)) { const uint8_t crc = ghst_frame.payload[ghst_frame.header.length - 2U]; if (crc == ghst_frame_CRC(ghst_frame)) {