From f65f139f1247def921063f483a26d6cb84b253f3 Mon Sep 17 00:00:00 2001 From: richardclli Date: Wed, 22 Mar 2023 09:29:00 +0800 Subject: [PATCH] fix(mpm): MPM status showing invalid protocol for XK (#3369) * Fixed the last definition. * Upper 2 bits calculated wrong because of Frsky mess. * fix: More Frsky defintion corrections --- radio/src/gui/gui_common.cpp | 6 +++--- radio/src/pulses/modules_constants.h | 2 +- radio/src/pulses/multi.cpp | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/radio/src/gui/gui_common.cpp b/radio/src/gui/gui_common.cpp index d768825bf..6764514b3 100644 --- a/radio/src/gui/gui_common.cpp +++ b/radio/src/gui/gui_common.cpp @@ -1163,7 +1163,7 @@ const char* const STR_SUBTYPE_REDPINE[] = {"Fast","Slow"}; const char* const STR_SUBTYPE_POTENSIC[] = {"A20"}; const char* const STR_SUBTYPE_ZSX[] = {"280JJRC"}; const char* const STR_SUBTYPE_HEIGHT[] = {"5ch","8ch"}; -const char* const STR_SUBTYPE_FRSKYX_RX[] = {"RX","CloneTX"}; +const char* const STR_SUBTYPE_FRSKYX_RX[] = {"Multi","CloneTX","EraseTX","CPPM"}; const char* const STR_SUBTYPE_HOTT[] = {"Sync","No_Sync"}; const char* const STR_SUBTYPE_FX816[] = {"P38"}; const char* const STR_SUBTYPE_PELIKAN[] = {"Pro","Lite","SCX24"}; @@ -1249,14 +1249,14 @@ const mm_protocol_definition multi_protocols[] = { {MODULE_SUBTYPE_MULTI_POTENSIC, 0, false, false, STR_SUBTYPE_POTENSIC, nullptr}, {MODULE_SUBTYPE_MULTI_ZSX, 0, false, false, STR_SUBTYPE_ZSX, nullptr}, {MODULE_SUBTYPE_MULTI_HEIGHT, 1, false, false, STR_SUBTYPE_HEIGHT, nullptr}, - {MODULE_SUBTYPE_MULTI_FRSKYX_RX, 1, false, false, STR_SUBTYPE_FRSKYX_RX, STR_MULTI_RFTUNE}, + {MODULE_SUBTYPE_MULTI_FRSKYX_RX, 3, false, false, STR_SUBTYPE_FRSKYX_RX, STR_MULTI_RFTUNE}, {MODULE_SUBTYPE_MULTI_HOTT, 1, true, false, STR_SUBTYPE_HOTT, STR_MULTI_RFTUNE}, {MODULE_SUBTYPE_MULTI_FX816, 0, false, false, STR_SUBTYPE_FX816, nullptr}, {MODULE_SUBTYPE_MULTI_PELIKAN, 2, false, true, STR_SUBTYPE_PELIKAN, nullptr}, {MODULE_SUBTYPE_MULTI_XK, 1, false, false, STR_SUBTYPE_XK, STR_MULTI_RFTUNE}, {MODULE_SUBTYPE_MULTI_XN297DUMP, 5, false, false, STR_SUBTYPE_XN297DUMP, STR_MULTI_RFCHAN}, {MODULE_SUBTYPE_MULTI_FRSKYX2, 5, true, false, STR_SUBTYPE_FRSKYX, STR_MULTI_RFTUNE}, - {MODULE_SUBTYPE_MULTI_FRSKY_R9, 6, true, false, STR_SUBTYPE_FRSKYR9, nullptr}, + {MODULE_SUBTYPE_MULTI_FRSKY_R9, 7, true, false, STR_SUBTYPE_FRSKYR9, nullptr}, {MODULE_SUBTYPE_MULTI_PROPEL, 0, false, false, STR_SUBTYPE_PROPEL, nullptr}, {MODULE_SUBTYPE_MULTI_FRSKYL, 1, false, false, STR_SUBTYPE_FRSKYL, STR_MULTI_RFTUNE}, {MODULE_SUBTYPE_MULTI_SKYARTEC, 0, false, true, NO_SUBTYPE, STR_MULTI_RFTUNE}, diff --git a/radio/src/pulses/modules_constants.h b/radio/src/pulses/modules_constants.h index c1a6b21cf..0d7223023 100644 --- a/radio/src/pulses/modules_constants.h +++ b/radio/src/pulses/modules_constants.h @@ -199,7 +199,7 @@ enum ModuleSubtypeMulti { MODULE_SUBTYPE_MULTI_XERALL, //90 MODULE_SUBTYPE_MULTI_MT99XX2, MODULE_SUBTYPE_MULTI_KYOSHO2, - MODULE_SUBTYPE_MULTI_LAST = MODULE_SUBTYPE_MULTI_MT99XX2 + MODULE_SUBTYPE_MULTI_LAST = MODULE_SUBTYPE_MULTI_KYOSHO2 }; enum MMDSM2Subtypes { diff --git a/radio/src/pulses/multi.cpp b/radio/src/pulses/multi.cpp index 2550f23e6..a9df018d2 100644 --- a/radio/src/pulses/multi.cpp +++ b/radio/src/pulses/multi.cpp @@ -166,7 +166,7 @@ static void setupPulsesMulti(uint8_t*& p_buf, uint8_t module) sendMulti(p_buf, invert[module] & 0x08); } else { - sendMulti(p_buf, (uint8_t) (((g_model.moduleData[module].multi.rfProtocol + 3) & 0xC0) + sendMulti(p_buf, (uint8_t) (((g_model.moduleData[module].multi.rfProtocol + 1) & 0xC0) | (g_model.header.modelId[module] & 0x30) | (invert[module] & 0x08) //| 0x04 // Future use