1
0
Fork 0
mirror of https://github.com/opentx/opentx.git synced 2025-07-26 17:55:19 +03:00

Add q303 multi protocols and fix subtype selection on 128x64 ui (#4286)

* Multi: add Q303 protocol and variants (CX10D/CX10WD)

* Fix subType selection on 128x64 UIs

* Fix options display on other radios for custom photo as well
This commit is contained in:
Arne Schwabe 2017-01-25 16:23:21 +01:00 committed by Bertrand Songis
parent 6e2474081f
commit 51d1e6e94a
21 changed files with 67 additions and 23 deletions

View file

@ -1857,6 +1857,7 @@ unsigned int getNumSubtypes(MultiModuleRFProtocols type)
case MM_RF_PROTO_MT99XX: case MM_RF_PROTO_MT99XX:
case MM_RF_PROTO_HONTAI: case MM_RF_PROTO_HONTAI:
case MM_RF_PROTO_AFHDS2A: case MM_RF_PROTO_AFHDS2A:
case MM_RF_PROTO_Q303:
return 4; return 4;
case MM_RF_PROTO_FLYSKY: case MM_RF_PROTO_FLYSKY:

View file

@ -131,7 +131,7 @@ QString ModelPrinter::printMultiRfProtocol(int rfProtocol, bool custom)
static const char *strings[] = { static const char *strings[] = {
"FlySky", "Hubsan", "FrSky", "Hisky", "V2x2", "DSM", "Devo", "YD717", "KN", "SymaX", "SLT", "CX10", "CG023", "FlySky", "Hubsan", "FrSky", "Hisky", "V2x2", "DSM", "Devo", "YD717", "KN", "SymaX", "SLT", "CX10", "CG023",
"Bayang", "ESky", "MT99XX", "MJXQ", "Shenqi", "FY326", "SFHSS", "J6 PRO","FQ777","Assan","Hontai","OLRS", "Bayang", "ESky", "MT99XX", "MJXQ", "Shenqi", "FY326", "SFHSS", "J6 PRO","FQ777","Assan","Hontai","OLRS",
"FlySky AFHDS2A", "Q2x2" "FlySky AFHDS2A", "Q2x2", "Q303"
}; };
if (custom) if (custom)
return "Custom - proto " + QString::number(rfProtocol); return "Custom - proto " + QString::number(rfProtocol);
@ -161,6 +161,7 @@ QString ModelPrinter::printMultiSubType(int rfProtocol, bool custom, int subType
static const char *afhds2a_strings[] = {"PWM and IBUS", "PPM and IBUS", "PWM and SBUS", "PPM and SBUS"}; static const char *afhds2a_strings[] = {"PWM and IBUS", "PPM and IBUS", "PWM and SBUS", "PPM and SBUS"};
static const char *q2x2_strings[] = {"Q222", "Q242", "Q282"}; static const char *q2x2_strings[] = {"Q222", "Q242", "Q282"};
static const char *walkera_wk2x01_strings[] = {"WK2801", "WK2401", "W6_5_1", "W6_6_1", "W6_HEL", "W6_HEL_I"}; static const char *walkera_wk2x01_strings[] = {"WK2801", "WK2401", "W6_5_1", "W6_6_1", "W6_HEL", "W6_HEL_I"};
static const char *q303_strings[] = { "Q303", "CX35", "CX10D", "CX10WD"};
if (custom) if (custom)
return CHECK_IN_ARRAY(custom_subtype_strings, subType); return CHECK_IN_ARRAY(custom_subtype_strings, subType);
@ -204,6 +205,8 @@ QString ModelPrinter::printMultiSubType(int rfProtocol, bool custom, int subType
return CHECK_IN_ARRAY(q2x2_strings, subType); return CHECK_IN_ARRAY(q2x2_strings, subType);
case MM_RF_PROTO_WK_2X01: case MM_RF_PROTO_WK_2X01:
return CHECK_IN_ARRAY(walkera_wk2x01_strings, subType); return CHECK_IN_ARRAY(walkera_wk2x01_strings, subType);
case MM_RF_PROTO_Q303:
return CHECK_IN_ARRAY(q303_strings, subType);
default: default:
return "DEFAULT"; return "DEFAULT";
} }

View file

@ -794,7 +794,8 @@ enum MultiModuleRFProtocols {
MM_RF_PROTO_AFHDS2A, MM_RF_PROTO_AFHDS2A,
MM_RF_PROTO_Q2X2, MM_RF_PROTO_Q2X2,
MM_RF_PROTO_WK_2X01, MM_RF_PROTO_WK_2X01,
MM_RF_PROTO_LAST=MM_RF_PROTO_WK_2X01 MM_RF_PROTO_Q303,
MM_RF_PROTO_LAST=MM_RF_PROTO_Q303
}; };
unsigned int getNumSubtypes(MultiModuleRFProtocols type); unsigned int getNumSubtypes(MultiModuleRFProtocols type);

View file

@ -665,7 +665,7 @@ void menuModelSetup(event_t event)
g_model.moduleData[EXTERNAL_MODULE].setMultiProtocol(checkIncDec(event, g_model.moduleData[EXTERNAL_MODULE].getMultiProtocol(false), 0, 63, EE_MODEL)); g_model.moduleData[EXTERNAL_MODULE].setMultiProtocol(checkIncDec(event, g_model.moduleData[EXTERNAL_MODULE].getMultiProtocol(false), 0, 63, EE_MODEL));
else if (pdef->maxSubtype > 0) else if (pdef->maxSubtype > 0)
CHECK_INCDEC_MODELVAR(event, g_model.moduleData[EXTERNAL_MODULE].subType, 0, pdef->maxSubtype); CHECK_INCDEC_MODELVAR(event, g_model.moduleData[EXTERNAL_MODULE].subType, 0, pdef->maxSubtype);
break;
case 1: case 1:
// Custom protocol, third column is subtype // Custom protocol, third column is subtype
CHECK_INCDEC_MODELVAR(event, g_model.moduleData[EXTERNAL_MODULE].subType, 0, 7); CHECK_INCDEC_MODELVAR(event, g_model.moduleData[EXTERNAL_MODULE].subType, 0, 7);
@ -859,7 +859,7 @@ void menuModelSetup(event_t event)
else if (IS_MODULE_MULTIMODULE(moduleIdx)) { else if (IS_MODULE_MULTIMODULE(moduleIdx)) {
int optionValue = g_model.moduleData[moduleIdx].multi.optionValue; int optionValue = g_model.moduleData[moduleIdx].multi.optionValue;
const uint8_t multi_proto = g_model.moduleData[EXTERNAL_MODULE].getMultiProtocol(false); const uint8_t multi_proto = g_model.moduleData[EXTERNAL_MODULE].getMultiProtocol(true);
const mm_protocol_definition* pdef = getMultiProtocolDefinition(multi_proto); const mm_protocol_definition* pdef = getMultiProtocolDefinition(multi_proto);
if (pdef->optionsstr) if (pdef->optionsstr)
lcdDrawTextAlignedLeft(y, pdef->optionsstr); lcdDrawTextAlignedLeft(y, pdef->optionsstr);

View file

@ -936,7 +936,7 @@ void menuModelSetup(event_t event)
else if (IS_MODULE_MULTIMODULE(moduleIdx)) { else if (IS_MODULE_MULTIMODULE(moduleIdx)) {
int optionValue = g_model.moduleData[moduleIdx].multi.optionValue; int optionValue = g_model.moduleData[moduleIdx].multi.optionValue;
const uint8_t multi_proto = g_model.moduleData[EXTERNAL_MODULE].getMultiProtocol(false); const uint8_t multi_proto = g_model.moduleData[EXTERNAL_MODULE].getMultiProtocol(true);
const mm_protocol_definition* pdef = getMultiProtocolDefinition(multi_proto); const mm_protocol_definition* pdef = getMultiProtocolDefinition(multi_proto);
if (pdef->optionsstr) if (pdef->optionsstr)
lcdDrawTextAlignedLeft(y, pdef->optionsstr); lcdDrawTextAlignedLeft(y, pdef->optionsstr);

View file

@ -847,7 +847,7 @@ bool menuModelSetup(event_t event)
else if (IS_MODULE_MULTIMODULE(moduleIdx)) { else if (IS_MODULE_MULTIMODULE(moduleIdx)) {
int optionValue = g_model.moduleData[moduleIdx].multi.optionValue; int optionValue = g_model.moduleData[moduleIdx].multi.optionValue;
const uint8_t multi_proto = g_model.moduleData[EXTERNAL_MODULE].getMultiProtocol(false); const uint8_t multi_proto = g_model.moduleData[EXTERNAL_MODULE].getMultiProtocol(true);
const mm_protocol_definition* pdef = getMultiProtocolDefinition(multi_proto); const mm_protocol_definition* pdef = getMultiProtocolDefinition(multi_proto);
if (pdef->optionsstr) if (pdef->optionsstr)
lcdDrawText(MENUS_MARGIN_LEFT, y, pdef->optionsstr); lcdDrawText(MENUS_MARGIN_LEFT, y, pdef->optionsstr);
@ -857,9 +857,9 @@ bool menuModelSetup(event_t event)
lcdDrawNumber(MODEL_SETUP_2ND_COLUMN, y, optionValue, LEFT | attr); lcdDrawNumber(MODEL_SETUP_2ND_COLUMN, y, optionValue, LEFT | attr);
if (attr) { if (attr) {
if (g_model.moduleData[EXTERNAL_MODULE].getMultiProtocol(true) == MM_RF_PROTO_FS_AFHDS2A) { if (multi_proto == MM_RF_PROTO_FS_AFHDS2A) {
CHECK_INCDEC_MODELVAR(event, g_model.moduleData[moduleIdx].multi.optionValue, 0, 70); CHECK_INCDEC_MODELVAR(event, g_model.moduleData[moduleIdx].multi.optionValue, 0, 70);
} else if (g_model.moduleData[EXTERNAL_MODULE].getMultiProtocol(true) == MM_RF_PROTO_OLRS) { } else if (multi_proto == MM_RF_PROTO_OLRS) {
CHECK_INCDEC_MODELVAR(event, g_model.moduleData[moduleIdx].multi.optionValue, -1, 7); CHECK_INCDEC_MODELVAR(event, g_model.moduleData[moduleIdx].multi.optionValue, -1, 7);
} else { } else {
CHECK_INCDEC_MODELVAR(event, g_model.moduleData[moduleIdx].multi.optionValue, -128, 127); CHECK_INCDEC_MODELVAR(event, g_model.moduleData[moduleIdx].multi.optionValue, -128, 127);

View file

@ -595,6 +595,7 @@ int getFirstAvailable(int min, int max, IsValueAvailable isValueAvailable)
return retval; return retval;
} }
#if defined(MULTIMODULE) #if defined(MULTIMODULE)
// Third row is number of subtypes -1 (max valid subtype)
const mm_protocol_definition multi_protocols[] = { const mm_protocol_definition multi_protocols[] = {
{ MM_RF_PROTO_FLYSKY, STR_SUBTYPE_FLYSKY, 4, nullptr }, { MM_RF_PROTO_FLYSKY, STR_SUBTYPE_FLYSKY, 4, nullptr },
{ MM_RF_PROTO_HUBSAN, nullptr, 0, STR_MULTI_VIDFREQ }, { MM_RF_PROTO_HUBSAN, nullptr, 0, STR_MULTI_VIDFREQ },
@ -618,6 +619,7 @@ const mm_protocol_definition multi_protocols[] = {
{ MM_RF_PROTO_FS_AFHDS2A, STR_SUBTYPE_AFHDS2A, 3, STR_MULTI_SERVOFREQ }, { MM_RF_PROTO_FS_AFHDS2A, STR_SUBTYPE_AFHDS2A, 3, STR_MULTI_SERVOFREQ },
{ MM_RF_PROTO_Q2X2, STR_SUBTYPE_Q2X2, 1, nullptr }, { MM_RF_PROTO_Q2X2, STR_SUBTYPE_Q2X2, 1, nullptr },
{ MM_RF_PROTO_WK_2X01, STR_SUBTYPE_WK2x01, 5, nullptr }, { MM_RF_PROTO_WK_2X01, STR_SUBTYPE_WK2x01, 5, nullptr },
{ MM_RF_PROTO_Q303, STR_SUBTYPE_Q303, 3, nullptr },
{ MM_RF_CUSTOM_SELECTED, nullptr, 7, STR_MULTI_OPTION }, { MM_RF_CUSTOM_SELECTED, nullptr, 7, STR_MULTI_OPTION },
//Sential and default for protocols not listed above (MM_RF_CUSTOM is 0xff() //Sential and default for protocols not listed above (MM_RF_CUSTOM is 0xff()

View file

@ -530,7 +530,8 @@ enum MultiModuleRFProtocols {
MM_RF_PROTO_FS_AFHDS2A, MM_RF_PROTO_FS_AFHDS2A,
MM_RF_PROTO_Q2X2, MM_RF_PROTO_Q2X2,
MM_RF_PROTO_WK_2X01, MM_RF_PROTO_WK_2X01,
MM_RF_PROTO_LAST= MM_RF_PROTO_WK_2X01 MM_RF_PROTO_Q303,
MM_RF_PROTO_LAST= MM_RF_PROTO_Q303
}; };
enum MMDSM2Subtypes { enum MMDSM2Subtypes {

View file

@ -127,6 +127,7 @@ const pm_char STR_OPEN9X[] PROGMEM =
ISTR(SUBTYPE_HONTAI) ISTR(SUBTYPE_HONTAI)
ISTR(SUBTYPE_AFHDS2A) ISTR(SUBTYPE_AFHDS2A)
ISTR(SUBTYPE_Q2X2) ISTR(SUBTYPE_Q2X2)
ISTR(SUBTYPE_Q303)
ISTR(SUBTYPE_WK2x01) ISTR(SUBTYPE_WK2x01)
ISTR(SUBTYPE_V2X2) ISTR(SUBTYPE_V2X2)
ISTR(SUBTYPE_BAYANG) ISTR(SUBTYPE_BAYANG)

View file

@ -228,8 +228,9 @@ extern const pm_char STR_OPEN9X[];
#define OFS_SUBTYPE_HONTAI (OFS_SUBTYPE_MJXQ + sizeof(TR_SUBTYPE_MJXQ)) #define OFS_SUBTYPE_HONTAI (OFS_SUBTYPE_MJXQ + sizeof(TR_SUBTYPE_MJXQ))
#define OFS_SUBTYPE_AFHDS2A (OFS_SUBTYPE_HONTAI + sizeof(TR_SUBTYPE_HONTAI)) #define OFS_SUBTYPE_AFHDS2A (OFS_SUBTYPE_HONTAI + sizeof(TR_SUBTYPE_HONTAI))
#define OFS_SUBTYPE_Q2X2 (OFS_SUBTYPE_AFHDS2A + sizeof(TR_SUBTYPE_AFHDS2A)) #define OFS_SUBTYPE_Q2X2 (OFS_SUBTYPE_AFHDS2A + sizeof(TR_SUBTYPE_AFHDS2A))
#define OFS_SUBTYPE_WK2x01 (OFS_SUBTYPE_Q2X2 + sizeof(TR_SUBTYPE_Q2X2)) #define OFS_SUBTYPE_Q303 (OFS_SUBTYPE_Q2X2 + sizeof(TR_SUBTYPE_Q2X2))
#define OFS_SUBTYPE_V2X2 (OFS_SUBTYPE_WK2x01 + sizeof(TR_SUBTYPE_WK2x01)) #define OFS_SUBTYPE_WK2x01 (OFS_SUBTYPE_Q303 + sizeof(TR_SUBTYPE_Q303))
#define OFS_SUBTYPE_V2X2 (OFS_SUBTYPE_WK2x01 + sizeof(TR_SUBTYPE_WK2x01))
#define OFS_SUBTYPE_BAYANG (OFS_SUBTYPE_V2X2 + sizeof(TR_SUBTYPE_V2X2)) #define OFS_SUBTYPE_BAYANG (OFS_SUBTYPE_V2X2 + sizeof(TR_SUBTYPE_V2X2))
#define OFS_SUBTYPE_FY326 (OFS_SUBTYPE_BAYANG + sizeof(TR_SUBTYPE_BAYANG)) #define OFS_SUBTYPE_FY326 (OFS_SUBTYPE_BAYANG + sizeof(TR_SUBTYPE_BAYANG))
#define OFS_VOLTSRC (OFS_SUBTYPE_FY326 + sizeof(TR_SUBTYPE_FY326)) #define OFS_VOLTSRC (OFS_SUBTYPE_FY326 + sizeof(TR_SUBTYPE_FY326))
@ -369,7 +370,8 @@ extern const pm_char STR_OPEN9X[];
#define STR_SUBTYPE_HONTAI (STR_OPEN9X + OFS_SUBTYPE_HONTAI) #define STR_SUBTYPE_HONTAI (STR_OPEN9X + OFS_SUBTYPE_HONTAI)
#define STR_SUBTYPE_AFHDS2A (STR_OPEN9X + OFS_SUBTYPE_AFHDS2A) #define STR_SUBTYPE_AFHDS2A (STR_OPEN9X + OFS_SUBTYPE_AFHDS2A)
#define STR_SUBTYPE_Q2X2 (STR_OPEN9X + OFS_SUBTYPE_Q2X2) #define STR_SUBTYPE_Q2X2 (STR_OPEN9X + OFS_SUBTYPE_Q2X2)
#define STR_SUBTYPE_WK2x01 (STR_OPEN9X + OFS_SUBTYPE_WK2x01) #define STR_SUBTYPE_Q303 (STR_OPEN9X + OFS_SUBTYPE_Q303)
#define STR_SUBTYPE_WK2x01 (STR_OPEN9X + OFS_SUBTYPE_WK2x01)
#define STR_SUBTYPE_V2X2 (STR_OPEN9X + OFS_SUBTYPE_V2X2) #define STR_SUBTYPE_V2X2 (STR_OPEN9X + OFS_SUBTYPE_V2X2)
#define STR_SUBTYPE_BAYANG (STR_OPEN9X + OFS_SUBTYPE_BAYANG) #define STR_SUBTYPE_BAYANG (STR_OPEN9X + OFS_SUBTYPE_BAYANG)
#define STR_SUBTYPE_FY326 (STR_OPEN9X + OFS_SUBTYPE_FY326) #define STR_SUBTYPE_FY326 (STR_OPEN9X + OFS_SUBTYPE_FY326)
@ -614,7 +616,7 @@ extern const pm_char STR_MULTI_OPTION[];
extern const pm_char STR_MULTI_VIDFREQ[]; extern const pm_char STR_MULTI_VIDFREQ[];
extern const pm_char STR_MULTI_RFPOWER[]; extern const pm_char STR_MULTI_RFPOWER[];
extern const pm_char STR_MULTI_RFTUNE[]; extern const pm_char STR_MULTI_RFTUNE[];
extern const pm_char STR_MULTI_TELEMETRY[]; extern const pm_char STR_MULTI_TELEMETRY[];
extern const pm_char STR_MULTI_AUTOBIND[]; extern const pm_char STR_MULTI_AUTOBIND[];
extern const pm_char STR_MULTI_DSM_AUTODTECT[]; extern const pm_char STR_MULTI_DSM_AUTODTECT[];
extern const pm_char STR_MULTI_LOWPOWER[]; extern const pm_char STR_MULTI_LOWPOWER[];

View file

@ -107,7 +107,7 @@
#define TR_DSM_PROTOCOLS "LP45""DSM2""DSMX" #define TR_DSM_PROTOCOLS "LP45""DSM2""DSMX"
#define LEN_MULTI_PROTOCOLS "\006" #define LEN_MULTI_PROTOCOLS "\006"
#define TR_MULTI_PROTOCOLS "FlySky""Hubsan""FrSky\0""Hisky\0""V2x2\0 ""DSM\0 ""Devo\0 ""YD717\0""KN\0 ""SymaX\0""SLT\0 ""CX10\0 ""CG023\0""Bayang""ESky\0 ""MT99XX""MJXQ\0 ""Shenqi""FY326\0""SFHSS\0""J6 PRO""FQ777\0""Assan\0""Hontai""OLRS\0 ""FS 2A\0""Q2x2\0 ""Walk.\0" #define TR_MULTI_PROTOCOLS "FlySky""Hubsan""FrSky\0""Hisky\0""V2x2\0 ""DSM\0 ""Devo\0 ""YD717\0""KN\0 ""SymaX\0""SLT\0 ""CX10\0 ""CG023\0""Bayang""ESky\0 ""MT99XX""MJXQ\0 ""Shenqi""FY326\0""SFHSS\0""J6 PRO""FQ777\0""Assan\0""Hontai""OLRS\0 ""FS 2A\0""Q2x2\0 ""Walk.\0""Q303\0 "
#define TR_MULTI_CUSTOM "Custom" #define TR_MULTI_CUSTOM "Custom"
@ -159,6 +159,9 @@
#define LEN_SUBTYPE_WK2x01 "\006" #define LEN_SUBTYPE_WK2x01 "\006"
#define TR_SUBTYPE_WK2x01 "WK2801""WK2401""W6_5_1""W6_6_1""W6_Hel""W6_HeI" #define TR_SUBTYPE_WK2x01 "WK2801""WK2401""W6_5_1""W6_6_1""W6_Hel""W6_HeI"
#define LEN_SUBTYPE_Q303 "\006"
#define TR_SUBTYPE_Q303 "Q303\0 ""CX35\0 ""CX10D\0""CX10WD"
#define LEN_SUBTYPE_V2X2 "\006" #define LEN_SUBTYPE_V2X2 "\006"
#define TR_SUBTYPE_V2X2 "V2x2\0 ""JXD506" #define TR_SUBTYPE_V2X2 "V2x2\0 ""JXD506"

View file

@ -164,6 +164,9 @@
#define LEN_SUBTYPE_WK2x01 "\006" #define LEN_SUBTYPE_WK2x01 "\006"
#define TR_SUBTYPE_WK2x01 "WK2801""WK2401""W6_5_1""W6_6_1""W6_Hel""W6_HeI" #define TR_SUBTYPE_WK2x01 "WK2801""WK2401""W6_5_1""W6_6_1""W6_Hel""W6_HeI"
#define LEN_SUBTYPE_Q303 "\006"
#define TR_SUBTYPE_Q303 "Q303\0 ""CX35\0 ""CX10D\0""CX10WD"
#define LEN_SUBTYPE_V2X2 "\006" #define LEN_SUBTYPE_V2X2 "\006"
#define TR_SUBTYPE_V2X2 "V2x2\0 ""JXD506" #define TR_SUBTYPE_V2X2 "V2x2\0 ""JXD506"

View file

@ -111,7 +111,7 @@
#define TR_DSM_PROTOCOLS "LP45""DSM2""DSMX" #define TR_DSM_PROTOCOLS "LP45""DSM2""DSMX"
#define LEN_MULTI_PROTOCOLS "\006" #define LEN_MULTI_PROTOCOLS "\006"
#define TR_MULTI_PROTOCOLS "FlySky""Hubsan""FrSky\0""Hisky\0""V2x2\0 ""DSM\0 ""Devo\0 ""YD717\0""KN\0 ""SymaX\0""SLT\0 ""CX10\0 ""CG023\0""Bayang""ESky\0 ""MT99XX""MJXQ\0 ""Shenqi""FY326\0""SFHSS\0""J6 PRO""FQ777\0""Assan\0""Hontai""OLRS\0 ""FS 2A\0""Q2x2\0 ""Walk.\0" #define TR_MULTI_PROTOCOLS "FlySky""Hubsan""FrSky\0""Hisky\0""V2x2\0 ""DSM\0 ""Devo\0 ""YD717\0""KN\0 ""SymaX\0""SLT\0 ""CX10\0 ""CG023\0""Bayang""ESky\0 ""MT99XX""MJXQ\0 ""Shenqi""FY326\0""SFHSS\0""J6 PRO""FQ777\0""Assan\0""Hontai""OLRS\0 ""FS 2A\0""Q2x2\0 ""Walk.\0""Q303\0 "
#define TR_MULTI_CUSTOM "Custom" #define TR_MULTI_CUSTOM "Custom"
@ -160,6 +160,9 @@
#define LEN_SUBTYPE_Q2X2 "\004" #define LEN_SUBTYPE_Q2X2 "\004"
#define TR_SUBTYPE_Q2X2 "Q222""Q242""Q282" #define TR_SUBTYPE_Q2X2 "Q222""Q242""Q282"
#define LEN_SUBTYPE_Q303 "\006"
#define TR_SUBTYPE_Q303 "Q303\0 ""CX35\0 ""CX10D\0""CX10WD"
#define LEN_SUBTYPE_WK2x01 "\006" #define LEN_SUBTYPE_WK2x01 "\006"
#define TR_SUBTYPE_WK2x01 "WK2801""WK2401""W6_5_1""W6_6_1""W6_Hel""W6_HeI" #define TR_SUBTYPE_WK2x01 "WK2801""WK2401""W6_5_1""W6_6_1""W6_Hel""W6_HeI"

View file

@ -107,7 +107,7 @@
#define TR_DSM_PROTOCOLS "LP45""DSM2""DSMX" #define TR_DSM_PROTOCOLS "LP45""DSM2""DSMX"
#define LEN_MULTI_PROTOCOLS "\006" #define LEN_MULTI_PROTOCOLS "\006"
#define TR_MULTI_PROTOCOLS "FlySky""Hubsan""FrSky\0""Hisky\0""V2x2\0 ""DSM\0 ""Devo\0 ""YD717\0""KN\0 ""SymaX\0""SLT\0 ""CX10\0 ""CG023\0""Bayang""ESky\0 ""MT99XX""MJXQ\0 ""Shenqi""FY326\0""SFHSS\0""J6 PRO""FQ777\0""Assan\0""Hontai""OLRS\0 ""FS 2A\0""Q2x2\0 ""Walk.\0"" #define TR_MULTI_PROTOCOLS "FlySky""Hubsan""FrSky\0""Hisky\0""V2x2\0 ""DSM\0 ""Devo\0 ""YD717\0""KN\0 ""SymaX\0""SLT\0 ""CX10\0 ""CG023\0""Bayang""ESky\0 ""MT99XX""MJXQ\0 ""Shenqi""FY326\0""SFHSS\0""J6 PRO""FQ777\0""Assan\0""Hontai""OLRS\0 ""FS 2A\0""Q2x2\0 ""Walk.\0""Q303\0 ""
#define TR_MULTI_CUSTOM "Custom" #define TR_MULTI_CUSTOM "Custom"
@ -159,6 +159,9 @@
#define LEN_SUBTYPE_WK2x01 "\006" #define LEN_SUBTYPE_WK2x01 "\006"
#define TR_SUBTYPE_WK2x01 "WK2801""WK2401""W6_5_1""W6_6_1""W6_Hel""W6_HeI" #define TR_SUBTYPE_WK2x01 "WK2801""WK2401""W6_5_1""W6_6_1""W6_Hel""W6_HeI"
#define LEN_SUBTYPE_Q303 "\006"
#define TR_SUBTYPE_Q303 "Q303\0 ""CX35\0 ""CX10D\0""CX10WD"
#define LEN_SUBTYPE_V2X2 "\006" #define LEN_SUBTYPE_V2X2 "\006"
#define TR_SUBTYPE_V2X2 "V2x2\0 ""JXD506" #define TR_SUBTYPE_V2X2 "V2x2\0 ""JXD506"

View file

@ -107,7 +107,7 @@
#define TR_DSM_PROTOCOLS "LP45""DSM2""DSMX" #define TR_DSM_PROTOCOLS "LP45""DSM2""DSMX"
#define LEN_MULTI_PROTOCOLS "\006" #define LEN_MULTI_PROTOCOLS "\006"
#define TR_MULTI_PROTOCOLS "FlySky""Hubsan""FrSky\0""Hisky\0""V2x2\0 ""DSM\0 ""Devo\0 ""YD717\0""KN\0 ""SymaX\0""SLT\0 ""CX10\0 ""CG023\0""Bayang""ESky\0 ""MT99XX""MJXQ\0 ""Shenqi""FY326\0""SFHSS\0""J6 PRO""FQ777\0""Assan\0""Hontai""OLRS\0 ""FS 2A\0""Q2x2\0 ""Walk.\0" #define TR_MULTI_PROTOCOLS "FlySky""Hubsan""FrSky\0""Hisky\0""V2x2\0 ""DSM\0 ""Devo\0 ""YD717\0""KN\0 ""SymaX\0""SLT\0 ""CX10\0 ""CG023\0""Bayang""ESky\0 ""MT99XX""MJXQ\0 ""Shenqi""FY326\0""SFHSS\0""J6 PRO""FQ777\0""Assan\0""Hontai""OLRS\0 ""FS 2A\0""Q2x2\0 ""Walk.\0""Q303\0 "
#define TR_MULTI_CUSTOM "Custom" #define TR_MULTI_CUSTOM "Custom"
@ -159,6 +159,9 @@
#define LEN_SUBTYPE_WK2x01 "\006" #define LEN_SUBTYPE_WK2x01 "\006"
#define TR_SUBTYPE_WK2x01 "WK2801""WK2401""W6_5_1""W6_6_1""W6_Hel""W6_HeI" #define TR_SUBTYPE_WK2x01 "WK2801""WK2401""W6_5_1""W6_6_1""W6_Hel""W6_HeI"
#define LEN_SUBTYPE_Q303 "\006"
#define TR_SUBTYPE_Q303 "Q303\0 ""CX35\0 ""CX10D\0""CX10WD"
#define LEN_SUBTYPE_V2X2 "\006" #define LEN_SUBTYPE_V2X2 "\006"
#define TR_SUBTYPE_V2X2 "V2x2\0 ""JXD506" #define TR_SUBTYPE_V2X2 "V2x2\0 ""JXD506"

View file

@ -107,7 +107,7 @@
#define TR_DSM_PROTOCOLS "LP45""DSM2""DSMX" #define TR_DSM_PROTOCOLS "LP45""DSM2""DSMX"
#define LEN_MULTI_PROTOCOLS "\006" #define LEN_MULTI_PROTOCOLS "\006"
#define TR_MULTI_PROTOCOLS "FlySky""Hubsan""FrSky\0""Hisky\0""V2x2\0 ""DSM\0 ""Devo\0 ""YD717\0""KN\0 ""SymaX\0""SLT\0 ""CX10\0 ""CG023\0""Bayang""ESky\0 ""MT99XX""MJXQ\0 ""Shenqi""FY326\0""SFHSS\0""J6 PRO""FQ777\0""Assan\0""Hontai""OLRS\0 ""FS 2A\0""Q2x2\0 ""Walk.\0" #define TR_MULTI_PROTOCOLS "FlySky""Hubsan""FrSky\0""Hisky\0""V2x2\0 ""DSM\0 ""Devo\0 ""YD717\0""KN\0 ""SymaX\0""SLT\0 ""CX10\0 ""CG023\0""Bayang""ESky\0 ""MT99XX""MJXQ\0 ""Shenqi""FY326\0""SFHSS\0""J6 PRO""FQ777\0""Assan\0""Hontai""OLRS\0 ""FS 2A\0""Q2x2\0 ""Walk.\0""Q303\0 "
#define TR_MULTI_CUSTOM "Perso" #define TR_MULTI_CUSTOM "Perso"
@ -159,6 +159,9 @@
#define LEN_SUBTYPE_WK2x01 "\006" #define LEN_SUBTYPE_WK2x01 "\006"
#define TR_SUBTYPE_WK2x01 "WK2801""WK2401""W6_5_1""W6_6_1""W6_Hel""W6_HeI" #define TR_SUBTYPE_WK2x01 "WK2801""WK2401""W6_5_1""W6_6_1""W6_Hel""W6_HeI"
#define LEN_SUBTYPE_Q303 "\006"
#define TR_SUBTYPE_Q303 "Q303\0 ""CX35\0 ""CX10D\0""CX10WD"
#define LEN_SUBTYPE_V2X2 "\006" #define LEN_SUBTYPE_V2X2 "\006"
#define TR_SUBTYPE_V2X2 "V2x2\0 ""JXD506" #define TR_SUBTYPE_V2X2 "V2x2\0 ""JXD506"

View file

@ -107,7 +107,7 @@
#define TR_DSM_PROTOCOLS "LP45""DSM2""DSMX" #define TR_DSM_PROTOCOLS "LP45""DSM2""DSMX"
#define LEN_MULTI_PROTOCOLS "\006" #define LEN_MULTI_PROTOCOLS "\006"
#define TR_MULTI_PROTOCOLS "FlySky""Hubsan""FrSky\0""Hisky\0""V2x2\0 ""DSM\0 ""Devo\0 ""YD717\0""KN\0 ""SymaX\0""SLT\0 ""CX10\0 ""CG023\0""Bayang""ESky\0 ""MT99XX""MJXQ\0 ""Shenqi""FY326\0""SFHSS\0""J6 PRO""FQ777\0""Assan\0""Hontai""OLRS\0 ""FS 2A\0""Q2x2\0 ""Walk.\0" #define TR_MULTI_PROTOCOLS "FlySky""Hubsan""FrSky\0""Hisky\0""V2x2\0 ""DSM\0 ""Devo\0 ""YD717\0""KN\0 ""SymaX\0""SLT\0 ""CX10\0 ""CG023\0""Bayang""ESky\0 ""MT99XX""MJXQ\0 ""Shenqi""FY326\0""SFHSS\0""J6 PRO""FQ777\0""Assan\0""Hontai""OLRS\0 ""FS 2A\0""Q2x2\0 ""Walk.\0""Q303\0 "
#define TR_MULTI_CUSTOM "Custom" #define TR_MULTI_CUSTOM "Custom"
@ -159,6 +159,9 @@
#define LEN_SUBTYPE_WK2x01 "\006" #define LEN_SUBTYPE_WK2x01 "\006"
#define TR_SUBTYPE_WK2x01 "WK2801""WK2401""W6_5_1""W6_6_1""W6_Hel""W6_HeI" #define TR_SUBTYPE_WK2x01 "WK2801""WK2401""W6_5_1""W6_6_1""W6_Hel""W6_HeI"
#define LEN_SUBTYPE_Q303 "\006"
#define TR_SUBTYPE_Q303 "Q303\0 ""CX35\0 ""CX10D\0""CX10WD"
#define LEN_SUBTYPE_V2X2 "\006" #define LEN_SUBTYPE_V2X2 "\006"
#define TR_SUBTYPE_V2X2 "V2x2\0 ""JXD506" #define TR_SUBTYPE_V2X2 "V2x2\0 ""JXD506"

View file

@ -112,7 +112,7 @@
#define TR_DSM_PROTOCOLS "LP45""DSM2""DSMX" #define TR_DSM_PROTOCOLS "LP45""DSM2""DSMX"
#define LEN_MULTI_PROTOCOLS "\006" #define LEN_MULTI_PROTOCOLS "\006"
#define TR_MULTI_PROTOCOLS "FlySky""Hubsan""FrSky\0""Hisky\0""V2x2\0 ""DSM\0 ""Devo\0 ""YD717\0""KN\0 ""SymaX\0""SLT\0 ""CX10\0 ""CG023\0""Bayang""ESky\0 ""MT99XX""MJXQ\0 ""Shenqi""FY326\0""SFHSS\0""J6 PRO""FQ777\0""Assan\0""Hontai""OLRS\0 ""FS 2A\0""Q2x2\0 ""Walk.\0" #define TR_MULTI_PROTOCOLS "FlySky""Hubsan""FrSky\0""Hisky\0""V2x2\0 ""DSM\0 ""Devo\0 ""YD717\0""KN\0 ""SymaX\0""SLT\0 ""CX10\0 ""CG023\0""Bayang""ESky\0 ""MT99XX""MJXQ\0 ""Shenqi""FY326\0""SFHSS\0""J6 PRO""FQ777\0""Assan\0""Hontai""OLRS\0 ""FS 2A\0""Q2x2\0 ""Walk.\0""Q303\0 "
#define TR_MULTI_CUSTOM "Custom" #define TR_MULTI_CUSTOM "Custom"
@ -164,6 +164,9 @@
#define LEN_SUBTYPE_WK2x01 "\006" #define LEN_SUBTYPE_WK2x01 "\006"
#define TR_SUBTYPE_WK2x01 "WK2801""WK2401""W6_5_1""W6_6_1""W6_Hel""W6_HeI" #define TR_SUBTYPE_WK2x01 "WK2801""WK2401""W6_5_1""W6_6_1""W6_Hel""W6_HeI"
#define LEN_SUBTYPE_Q303 "\006"
#define TR_SUBTYPE_Q303 "Q303\0 ""CX35\0 ""CX10D\0""CX10WD"
#define LEN_SUBTYPE_V2X2 "\006" #define LEN_SUBTYPE_V2X2 "\006"
#define TR_SUBTYPE_V2X2 "V2x2\0 ""JXD506" #define TR_SUBTYPE_V2X2 "V2x2\0 ""JXD506"

View file

@ -108,7 +108,7 @@
#define TR_DSM_PROTOCOLS "LP45""DSM2""DSMX" #define TR_DSM_PROTOCOLS "LP45""DSM2""DSMX"
#define LEN_MULTI_PROTOCOLS "\006" #define LEN_MULTI_PROTOCOLS "\006"
#define TR_MULTI_PROTOCOLS "FlySky""Hubsan""FrSky\0""Hisky\0""V2x2\0 ""DSM\0 ""Devo\0 ""YD717\0""KN\0 ""SymaX\0""SLT\0 ""CX10\0 ""CG023\0""Bayang""ESky\0 ""MT99XX""MJXQ\0 ""Shenqi""FY326\0""SFHSS\0""J6 PRO""FQ777\0""Assan\0""Hontai""OLRS\0 ""FS 2A\0""Q2x2\0 ""Walk.\0" #define TR_MULTI_PROTOCOLS "FlySky""Hubsan""FrSky\0""Hisky\0""V2x2\0 ""DSM\0 ""Devo\0 ""YD717\0""KN\0 ""SymaX\0""SLT\0 ""CX10\0 ""CG023\0""Bayang""ESky\0 ""MT99XX""MJXQ\0 ""Shenqi""FY326\0""SFHSS\0""J6 PRO""FQ777\0""Assan\0""Hontai""OLRS\0 ""FS 2A\0""Q2x2\0 ""Walk.\0""Q303\0 "
#define TR_MULTI_CUSTOM "Custom" #define TR_MULTI_CUSTOM "Custom"
@ -160,6 +160,9 @@
#define LEN_SUBTYPE_WK2x01 "\006" #define LEN_SUBTYPE_WK2x01 "\006"
#define TR_SUBTYPE_WK2x01 "WK2801""WK2401""W6_5_1""W6_6_1""W6_Hel""W6_HeI" #define TR_SUBTYPE_WK2x01 "WK2801""WK2401""W6_5_1""W6_6_1""W6_Hel""W6_HeI"
#define LEN_SUBTYPE_Q303 "\006"
#define TR_SUBTYPE_Q303 "Q303\0 ""CX35\0 ""CX10D\0""CX10WD"
#define LEN_SUBTYPE_V2X2 "\006" #define LEN_SUBTYPE_V2X2 "\006"
#define TR_SUBTYPE_V2X2 "V2x2\0 ""JXD506" #define TR_SUBTYPE_V2X2 "V2x2\0 ""JXD506"

View file

@ -107,7 +107,7 @@
#define TR_DSM_PROTOCOLS "LP45""DSM2""DSMX" #define TR_DSM_PROTOCOLS "LP45""DSM2""DSMX"
#define LEN_MULTI_PROTOCOLS "\006" #define LEN_MULTI_PROTOCOLS "\006"
#define TR_MULTI_PROTOCOLS "FlySky""Hubsan""FrSky\0""Hisky\0""V2x2\0 ""DSM\0 ""Devo\0 ""YD717\0""KN\0 ""SymaX\0""SLT\0 ""CX10\0 ""CG023\0""Bayang""ESky\0 ""MT99XX""MJXQ\0 ""Shenqi""FY326\0""SFHSS\0""J6 PRO""FQ777\0""Assan\0""Hontai""OLRS\0 ""FS 2A\0""Q2x2\0 ""Walk.\0" #define TR_MULTI_PROTOCOLS "FlySky""Hubsan""FrSky\0""Hisky\0""V2x2\0 ""DSM\0 ""Devo\0 ""YD717\0""KN\0 ""SymaX\0""SLT\0 ""CX10\0 ""CG023\0""Bayang""ESky\0 ""MT99XX""MJXQ\0 ""Shenqi""FY326\0""SFHSS\0""J6 PRO""FQ777\0""Assan\0""Hontai""OLRS\0 ""FS 2A\0""Q2x2\0 ""Walk.\0""Q303\0 "
#define TR_MULTI_CUSTOM "Custom" #define TR_MULTI_CUSTOM "Custom"
@ -160,6 +160,9 @@
#define LEN_SUBTYPE_WK2x01 "\006" #define LEN_SUBTYPE_WK2x01 "\006"
#define TR_SUBTYPE_WK2x01 "WK2801""WK2401""W6_5_1""W6_6_1""W6_Hel""W6_HeI" #define TR_SUBTYPE_WK2x01 "WK2801""WK2401""W6_5_1""W6_6_1""W6_Hel""W6_HeI"
#define LEN_SUBTYPE_Q303 "\006"
#define TR_SUBTYPE_Q303 "Q303\0 ""CX35\0 ""CX10D\0""CX10WD"
#define LEN_SUBTYPE_V2X2 "\006" #define LEN_SUBTYPE_V2X2 "\006"
#define TR_SUBTYPE_V2X2 "V2x2\0 ""JXD506" #define TR_SUBTYPE_V2X2 "V2x2\0 ""JXD506"

View file

@ -107,7 +107,7 @@
#define TR_DSM_PROTOCOLS "LP45""DSM2""DSMX" #define TR_DSM_PROTOCOLS "LP45""DSM2""DSMX"
#define LEN_MULTI_PROTOCOLS "\006" #define LEN_MULTI_PROTOCOLS "\006"
#define TR_MULTI_PROTOCOLS "FlySky""Hubsan""FrSky\0""Hisky\0""V2x2\0 ""DSM\0 ""Devo\0 ""YD717\0""KN\0 ""SymaX\0""SLT\0 ""CX10\0 ""CG023\0""Bayang""ESky\0 ""MT99XX""MJXQ\0 ""Shenqi""FY326\0""SFHSS\0""J6 PRO""FQ777\0""Assan\0""Hontai""OLRS\0 ""FS 2A\0""Q2x2\0 ""Walk.\0" #define TR_MULTI_PROTOCOLS "FlySky""Hubsan""FrSky\0""Hisky\0""V2x2\0 ""DSM\0 ""Devo\0 ""YD717\0""KN\0 ""SymaX\0""SLT\0 ""CX10\0 ""CG023\0""Bayang""ESky\0 ""MT99XX""MJXQ\0 ""Shenqi""FY326\0""SFHSS\0""J6 PRO""FQ777\0""Assan\0""Hontai""OLRS\0 ""FS 2A\0""Q2x2\0 ""Walk.\0""Q303\0 "
#define TR_MULTI_CUSTOM "Custom" #define TR_MULTI_CUSTOM "Custom"
@ -159,6 +159,9 @@
#define LEN_SUBTYPE_WK2x01 "\006" #define LEN_SUBTYPE_WK2x01 "\006"
#define TR_SUBTYPE_WK2x01 "WK2801""WK2401""W6_5_1""W6_6_1""W6_Hel""W6_HeI" #define TR_SUBTYPE_WK2x01 "WK2801""WK2401""W6_5_1""W6_6_1""W6_Hel""W6_HeI"
#define LEN_SUBTYPE_Q303 "\006"
#define TR_SUBTYPE_Q303 "Q303\0 ""CX35\0 ""CX10D\0""CX10WD"
#define LEN_SUBTYPE_V2X2 "\006" #define LEN_SUBTYPE_V2X2 "\006"
#define TR_SUBTYPE_V2X2 "V2x2\0 ""JXD506" #define TR_SUBTYPE_V2X2 "V2x2\0 ""JXD506"