diff --git a/companion/src/firmwares/moduledata.h b/companion/src/firmwares/moduledata.h index 1993fc701..808047463 100644 --- a/companion/src/firmwares/moduledata.h +++ b/companion/src/firmwares/moduledata.h @@ -153,7 +153,9 @@ enum MultiModuleRFProtocols { MODULE_SUBTYPE_MULTI_WILLIFM, MODULE_SUBTYPE_MULTI_LOSI, MODULE_SUBTYPE_MULTI_MOULDKG, - MODULE_SUBTYPE_MULTI_LAST = MODULE_SUBTYPE_MULTI_MOULDKG + MODULE_SUBTYPE_MULTI_XERALL, + MODULE_SUBTYPE_MULTI_MT99XX2, + MODULE_SUBTYPE_MULTI_LAST = MODULE_SUBTYPE_MULTI_MT99XX2 }; enum ModuleSubtypeR9M { diff --git a/companion/src/firmwares/multiprotocols.cpp b/companion/src/firmwares/multiprotocols.cpp index 9a0a3ce95..7d474ee3f 100644 --- a/companion/src/firmwares/multiprotocols.cpp +++ b/companion/src/firmwares/multiprotocols.cpp @@ -54,7 +54,7 @@ static const QStringList STR_SUBTYPE_CX10 {"Green", "Blue", "DM007", "-", " static const QStringList STR_SUBTYPE_CG023 {"Standard", "YD829"}; static const QStringList STR_SUBTYPE_BAYANG {"Standard", "H8S3D", "X16 AH", "IRDRONE", "DHD D4", "QX100"}; static const QStringList STR_SUBTYPE_ESky {"Standard", "ET4"}; -static const QStringList STR_SUBTYPE_MT99 {"MT99", "H7", "YZ", "LS", "FY805", "A180", "Dragon"}; +static const QStringList STR_SUBTYPE_MT99 {"MT99", "H7", "YZ", "LS", "FY805", "A180", "Dragon""F949G"}; static const QStringList STR_SUBTYPE_MJXQ {"WLH08", "X600", "X800", "H26D", "E010", "H26WH", "Phoenix"}; static const QStringList STR_SUBTYPE_FY326 {"Standard", "FY319"}; static const QStringList STR_SUBTYPE_FUTABA {"SFHSS"}; @@ -75,6 +75,7 @@ static const QStringList STR_SUBTYPE_E01X {"E012", "E015"}; static const QStringList STR_SUBTYPE_V911S {"Standard", "E119"}; static const QStringList STR_SUBTYPE_GD00X {"GD V1", "GD V2"}; static const QStringList STR_SUBTYPE_V761 {"3 Channel", "4 Channel"}; +static const QStringList STR_SUBTYPE_KF606 {"Standard", "MIG320"}; static const QStringList STR_SUBTYPE_REDPINE {"Fast", "Slow"}; static const QStringList STR_SUBTYPE_POTENSIC {"A20 Firefly"}; static const QStringList STR_SUBTYPE_ZSX {"JJRC ZSX-280"}; @@ -97,6 +98,7 @@ static const QStringList STR_SUBTYPE_ELRS {"Not Available WIP"}; static const QStringList STR_SUBTYPE_REALACC {"R11"}; static const QStringList STR_SUBTYPE_WFLY2 {"RF20x"}; static const QStringList STR_SUBTYPE_MOULDKG {"Analog", "Digital"}; +static const QStringList STR_SUBTYPE_MT992 {"PA18"}; static const QStringList NO_SUBTYPE {STR_MULTI_DEFAULT}; @@ -119,7 +121,7 @@ const Multiprotocols multiProtocols { {MODULE_SUBTYPE_MULTI_CG023, 1, false, STR_SUBTYPE_CG023, nullptr}, {MODULE_SUBTYPE_MULTI_BAYANG, 5, false, STR_SUBTYPE_BAYANG, STR_MULTI_TELEMETRY}, {MODULE_SUBTYPE_MULTI_ESky, 1, false, STR_SUBTYPE_ESky, nullptr}, - {MODULE_SUBTYPE_MULTI_MT99XX, 6, false, STR_SUBTYPE_MT99, nullptr}, + {MODULE_SUBTYPE_MULTI_MT99XX, 7, false, STR_SUBTYPE_MT99, nullptr}, {MODULE_SUBTYPE_MULTI_MJXQ, 6, false, STR_SUBTYPE_MJXQ, nullptr}, {MODULE_SUBTYPE_MULTI_FY326, 1, false, STR_SUBTYPE_FY326, nullptr}, {MODULE_SUBTYPE_MULTI_FUTABA, 0, true, STR_SUBTYPE_FUTABA, STR_MULTI_RFTUNE}, @@ -138,11 +140,11 @@ const Multiprotocols multiProtocols { {MODULE_SUBTYPE_MULTI_WFLY, 0, false, STR_SUBTYPE_WFLY, nullptr}, {MODULE_SUBTYPE_MULTI_BUGS_MINI, 1, false, STR_SUBTYPE_BUGS_MINI, nullptr}, {MODULE_SUBTYPE_MULTI_TRAXXAS, 0, false, STR_SUBTYPE_TRAXXAS, nullptr}, - {MODULE_SUBTYPE_MULTI_E01X, 1, false, STR_SUBTYPE_E01X, STR_MULTI_OPTION}, + {MODULE_SUBTYPE_MULTI_E01X, 1, false, STR_SUBTYPE_E01X, nullptr}, {MODULE_SUBTYPE_MULTI_V911S, 1, false, STR_SUBTYPE_V911S, STR_MULTI_RFTUNE}, {MODULE_SUBTYPE_MULTI_GD00X, 1, false, STR_SUBTYPE_GD00X, STR_MULTI_RFTUNE}, {MODULE_SUBTYPE_MULTI_V761, 1, false, STR_SUBTYPE_V761, nullptr}, - {MODULE_SUBTYPE_MULTI_KF606, 0, false, NO_SUBTYPE, STR_MULTI_RFTUNE}, + {MODULE_SUBTYPE_MULTI_KF606, 1, false, STR_SUBTYPE_KF606, STR_MULTI_RFTUNE}, {MODULE_SUBTYPE_MULTI_REDPINE, 1, false, STR_SUBTYPE_REDPINE, STR_MULTI_RFTUNE}, {MODULE_SUBTYPE_MULTI_POTENSIC, 0, false, STR_SUBTYPE_POTENSIC, nullptr}, {MODULE_SUBTYPE_MULTI_ZSX, 0, false, STR_SUBTYPE_ZSX, nullptr}, @@ -170,7 +172,8 @@ const Multiprotocols multiProtocols { {MODULE_SUBTYPE_MULTI_WFLY2, 0, false, STR_SUBTYPE_WFLY2, STR_MULTI_OPTION}, {MODULE_SUBTYPE_MULTI_E016HV2, 0, false, NO_SUBTYPE, STR_MULTI_RFTUNE}, {MODULE_SUBTYPE_MULTI_LOLI, 0, true, NO_SUBTYPE, nullptr}, - {MODULE_SUBTYPE_MULTI_MOULDKG, 1, false, STR_SUBTYPE_MOULDKG, nullptr}, + {MODULE_SUBTYPE_MULTI_MOULDKG, 1, false, STR_SUBTYPE_MOULDKG, STR_MULTI_OPTION}, + {MODULE_SUBTYPE_MULTI_MT99XX2, 0, false, STR_SUBTYPE_MT992, nullptr}, {MM_RF_CUSTOM_SELECTED, 7, true, STR_SUBTYPE_CUSTOM, STR_MULTI_OPTION}, // Sentinel and default for protocols not listed above (MM_RF_CUSTOM is 0xff) diff --git a/radio/src/gui/gui_common.cpp b/radio/src/gui/gui_common.cpp index bf4e22a64..3aa88642c 100644 --- a/radio/src/gui/gui_common.cpp +++ b/radio/src/gui/gui_common.cpp @@ -981,7 +981,7 @@ const char STR_SUBTYPE_CX10[] = "\007""Green\0 ""Blue\0 ""DM007\0 ""-\0 const char STR_SUBTYPE_CG023[] = "\005""Std\0 ""YD829"; const char STR_SUBTYPE_BAYANG[] = "\007""Std\0 ""H8S3D\0 ""X16 AH\0""IRDrone""DHD D4\0""QX100\0 "; const char STR_SUBTYPE_ESky[] = "\003""Std""ET4"; -const char STR_SUBTYPE_MT99[] = "\006""MT99\0 ""H7\0 ""YZ\0 ""LS\0 ""FY805\0""A180\0 ""Dragon"; +const char STR_SUBTYPE_MT99[] = "\006""MT99\0 ""H7\0 ""YZ\0 ""LS\0 ""FY805\0""A180\0 ""Dragon""F949G\0"; const char STR_SUBTYPE_MJXQ[] = "\007""WLH08\0 ""X600\0 ""X800\0 ""H26D\0 ""E010\0 ""H26WH\0 ""Phoenix"; const char STR_SUBTYPE_FY326[] = "\005""Std\0 ""FY319"; const char STR_SUBTYPE_FUTABA[] = "\005""SFHSS"; @@ -1002,6 +1002,7 @@ const char STR_SUBTYPE_E01X[] = "\004""E012""E015"; const char STR_SUBTYPE_V911S[] = "\004""Std\0""E119"; const char STR_SUBTYPE_GD00X[] = "\005""GD_V1""GD_V2"; const char STR_SUBTYPE_V761[] = "\003""3ch""4ch"; +const char STR_SUBTYPE_KF606[] = "\006""KF606\0""MIG320"; const char STR_SUBTYPE_REDPINE[] = "\004""Fast""Slow"; const char STR_SUBTYPE_POTENSIC[] = "\003""A20"; const char STR_SUBTYPE_ZSX[] = "\007""280JJRC"; @@ -1024,6 +1025,7 @@ const char STR_SUBTYPE_ELRS[] = "\007""N/A WIP"; const char STR_SUBTYPE_REALACC[] = "\003""R11"; const char STR_SUBTYPE_WFLY2[] = "\005""RF20x"; const char STR_SUBTYPE_MOULDKG[] = "\007""Analog\0""Digital"; +const char STR_SUBTYPE_MT992[] = "\004""PA18"; const char* mm_options_strings::options[] = { nullptr, @@ -1061,7 +1063,7 @@ const mm_protocol_definition multi_protocols[] = { {MODULE_SUBTYPE_MULTI_CG023, 1, false, false, STR_SUBTYPE_CG023, nullptr}, {MODULE_SUBTYPE_MULTI_BAYANG, 5, false, false, STR_SUBTYPE_BAYANG, STR_MULTI_TELEMETRY}, {MODULE_SUBTYPE_MULTI_ESky, 1, false, true, STR_SUBTYPE_ESky, nullptr}, - {MODULE_SUBTYPE_MULTI_MT99XX, 6, false, false, STR_SUBTYPE_MT99, nullptr}, + {MODULE_SUBTYPE_MULTI_MT99XX, 7, false, false, STR_SUBTYPE_MT99, nullptr}, {MODULE_SUBTYPE_MULTI_MJXQ, 6, false, false, STR_SUBTYPE_MJXQ, nullptr}, {MODULE_SUBTYPE_MULTI_FY326, 1, false, false, STR_SUBTYPE_FY326, nullptr}, {MODULE_SUBTYPE_MULTI_FUTABA, 0, true, true, STR_SUBTYPE_FUTABA, STR_MULTI_RFTUNE}, @@ -1080,11 +1082,11 @@ const mm_protocol_definition multi_protocols[] = { {MODULE_SUBTYPE_MULTI_WFLY, 0, true, false, STR_SUBTYPE_WFLY, nullptr}, {MODULE_SUBTYPE_MULTI_BUGS_MINI, 1, false, false, STR_SUBTYPE_BUGS_MINI, nullptr}, {MODULE_SUBTYPE_MULTI_TRAXXAS, 0, false, false, STR_SUBTYPE_TRAXXAS, nullptr}, - {MODULE_SUBTYPE_MULTI_E01X, 1, false, false, STR_SUBTYPE_E01X, STR_MULTI_OPTION}, + {MODULE_SUBTYPE_MULTI_E01X, 1, false, false, STR_SUBTYPE_E01X, nullptr}, {MODULE_SUBTYPE_MULTI_V911S, 1, false, false, STR_SUBTYPE_V911S, STR_MULTI_RFTUNE}, {MODULE_SUBTYPE_MULTI_GD00X, 1, false, false, STR_SUBTYPE_GD00X, STR_MULTI_RFTUNE}, {MODULE_SUBTYPE_MULTI_V761, 1, false, false, STR_SUBTYPE_V761, nullptr}, - {MODULE_SUBTYPE_MULTI_KF606, 0, false, false, NO_SUBTYPE, STR_MULTI_RFTUNE}, + {MODULE_SUBTYPE_MULTI_KF606, 1, false, false, STR_SUBTYPE_KF606, STR_MULTI_RFTUNE}, {MODULE_SUBTYPE_MULTI_REDPINE, 1, false, false, STR_SUBTYPE_REDPINE, STR_MULTI_RFTUNE}, {MODULE_SUBTYPE_MULTI_POTENSIC, 0, false, false, STR_SUBTYPE_POTENSIC, nullptr}, {MODULE_SUBTYPE_MULTI_ZSX, 0, false, false, STR_SUBTYPE_ZSX, nullptr}, @@ -1112,7 +1114,8 @@ const mm_protocol_definition multi_protocols[] = { {MODULE_SUBTYPE_MULTI_WFLY2, 0, true, false, STR_SUBTYPE_WFLY2, STR_MULTI_OPTION}, {MODULE_SUBTYPE_MULTI_E016HV2, 0, false, false, NO_SUBTYPE, STR_MULTI_RFTUNE}, {MODULE_SUBTYPE_MULTI_LOLI, 0, true, false, NO_SUBTYPE, nullptr}, - {MODULE_SUBTYPE_MULTI_MOULDKG, 1, false, false, STR_SUBTYPE_MOULDKG, nullptr}, + {MODULE_SUBTYPE_MULTI_MOULDKG, 1, false, false, STR_SUBTYPE_MOULDKG, STR_MULTI_OPTION}, + {MODULE_SUBTYPE_MULTI_MT99XX2, 0, false, false, STR_SUBTYPE_MT992, nullptr}, {MM_RF_CUSTOM_SELECTED, 7, true, true, NO_SUBTYPE, STR_MULTI_OPTION}, // Sentinel and default for protocols not listed above (MM_RF_CUSTOM is 0xff) diff --git a/radio/src/pulses/modules_constants.h b/radio/src/pulses/modules_constants.h index 325cbeb05..fdb3b598c 100644 --- a/radio/src/pulses/modules_constants.h +++ b/radio/src/pulses/modules_constants.h @@ -190,7 +190,9 @@ enum ModuleSubtypeMulti { MODULE_SUBTYPE_MULTI_WILLIFM, //85 MODULE_SUBTYPE_MULTI_LOSI, MODULE_SUBTYPE_MULTI_MOULDKG, - MODULE_SUBTYPE_MULTI_LAST = MODULE_SUBTYPE_MULTI_MOULDKG + MODULE_SUBTYPE_MULTI_XERALL, + MODULE_SUBTYPE_MULTI_MT99XX2, + MODULE_SUBTYPE_MULTI_LAST = MODULE_SUBTYPE_MULTI_MT99XX2 }; enum MMDSM2Subtypes { diff --git a/radio/src/translations/untranslated.h b/radio/src/translations/untranslated.h index 0450779c1..020b5fd19 100644 --- a/radio/src/translations/untranslated.h +++ b/radio/src/translations/untranslated.h @@ -149,7 +149,7 @@ #define TR_DSM_PROTOCOLS "LP45""DSM2""DSMX" #define LEN_MULTI_PROTOCOLS "\007" -#define TR_MULTI_PROTOCOLS "FlySky\0""Hubsan\0""FrSky\0 ""Hisky\0 ""V2x2\0 ""DSM\0 ""Devo\0 ""YD717\0 ""KN\0 ""SymaX\0 ""SLT\0 ""CX10\0 ""CG023\0 ""Bayang\0""ESky\0 ""MT99XX\0""MJXq\0 ""Shenqi\0""FY326\0 ""Futaba\0""J6 Pro\0""FQ777\0 ""Assan\0 ""Hontai\0""OpenLrs""FlSky2A""Q2x2\0 ""Walkera""Q303\0 ""GW008\0 ""DM002\0 ""Cabell\0""Esky150""H8 3D\0 ""Corona\0""CFlie\0 ""Hitec\0 ""WFly\0 ""Bugs\0 ""BugMini""Traxxas""NCC1701""E01X\0 ""V911S\0 ""GD00X\0 ""V761\0 ""KF606\0 ""Redpine""Potensi""ZSX\0 ""Height\0""Scanner""FrSkyRX""FS2A_RX""HoTT\0 ""FX816\0 ""BayanRX""Pelikan""Tiger\0 ""XK\0 ""XN297DU""FrSkyX2""FrSkyR9""Propel\0""FrSkyL\0""Skyartc""ESky-v2""DSM RX\0""JJRC345""Q90C\0 ""Kyosho\0""RadLink""ExpLRS\0""Realacc""OMP\0 ""M-Link\0""Wfly 2\0""E016Hv2""E010r5 ""LOLI\0 ""E129\0 ""JOYSWAY""E016H\0 ""Config\0""IKEA\0 ""WILLIFM""Losi\0 ""MouldKg" +#define TR_MULTI_PROTOCOLS "FlySky\0""Hubsan\0""FrSky\0 ""Hisky\0 ""V2x2\0 ""DSM\0 ""Devo\0 ""YD717\0 ""KN\0 ""SymaX\0 ""SLT\0 ""CX10\0 ""CG023\0 ""Bayang\0""ESky\0 ""MT99XX\0""MJXq\0 ""Shenqi\0""FY326\0 ""Futaba\0""J6 Pro\0""FQ777\0 ""Assan\0 ""Hontai\0""OpenLrs""FlSky2A""Q2x2\0 ""Walkera""Q303\0 ""GW008\0 ""DM002\0 ""Cabell\0""Esky150""H8 3D\0 ""Corona\0""CFlie\0 ""Hitec\0 ""WFly\0 ""Bugs\0 ""BugMini""Traxxas""NCC1701""E01X\0 ""V911S\0 ""GD00X\0 ""V761\0 ""KF606\0 ""Redpine""Potensi""ZSX\0 ""Height\0""Scanner""FrSkyRX""FS2A_RX""HoTT\0 ""FX816\0 ""BayanRX""Pelikan""Tiger\0 ""XK\0 ""XN297DU""FrSkyX2""FrSkyR9""Propel\0""FrSkyL\0""Skyartc""ESky-v2""DSM RX\0""JJRC345""Q90C\0 ""Kyosho\0""RadLink""ExpLRS\0""Realacc""OMP\0 ""M-Link\0""Wfly 2\0""E016Hv2""E010r5 ""LOLI\0 ""E129\0 ""JOYSWAY""E016H\0 ""Config\0""IKEA\0 ""WILLIFM""Losi\0 ""MouldKg""Xerall\0""MT99XX2" #define LEN_MULTI_POWER "\005" #define TR_MULTI_POWER "1.6mW""2.0mW""2.5mW""3.2mW""4.0mW""5.0mW""6.3mW""7.9mW""10mW\0""13mW\0""16mW\0""20mW\0""25mW\0""32mW\0""40mW\0""50mW\0"