1
0
Fork 0
mirror of https://github.com/EdgeTX/edgetx.git synced 2025-07-21 07:15:09 +03:00

R9M ACCESS / ACCST refactoring

This commit is contained in:
Bertrand Songis 2019-05-28 11:00:12 +02:00
parent 15c65a6c91
commit d8dbe5abda
No known key found for this signature in database
GPG key ID: F189F79290FEC50F
9 changed files with 32 additions and 43 deletions

View file

@ -46,7 +46,7 @@ option(TRACE_LUA_INTERNALS "Turn on traces for Lua internals" OFF)
option(FRSKY_STICKS "Reverse sticks for FrSky sticks" OFF)
option(NANO "Use nano newlib and binalloc")
option(NIGHTLY_BUILD_WARNING "Warn this is a nightly build" OFF)
option(MODULE_R9M_FLEX "Add R9M options for non certified firmwwares" OFF)
option(R9M_PROTO_FLEX "Add R9M options for non certified firmwwares" OFF)
option(FRSKY_RELEASE "Used to build FrSky released firmware" OFF)
# since we reset all default CMAKE compiler flags for firmware builds, provide an alternate way for user to specify additional flags.
@ -308,8 +308,8 @@ if(NIGHTLY_BUILD_WARNING)
add_definitions(-DNIGHTLY_BUILD_WARNING)
endif()
if(MODULE_R9M_FLEX)
add_definitions(-DMODULE_R9M_FLEX)
if(R9M_PROTO_FLEX)
add_definitions(-DR9M_PROTO_FLEX)
endif()
if(FRSKY_RELEASE)

View file

@ -1015,7 +1015,6 @@ void menuModelSetup(event_t event)
case ITEM_MODEL_SETUP_INTERNAL_MODULE_TYPE: {
lcdDrawTextAlignedLeft(y, STR_MODE);
#if defined(PXX1)
lcdDrawTextAtIndex(MODEL_SETUP_2ND_COLUMN, y, STR_MODULE_PROTOCOLS, g_model.moduleData[INTERNAL_MODULE].type, menuHorizontalPosition==0 ? attr : 0);
if (isModuleXJT(INTERNAL_MODULE))
lcdDrawTextAtIndex(lcdNextPos + 3, y, STR_ACCST_RF_PROTOCOLS, 1+g_model.moduleData[INTERNAL_MODULE].rfProtocol, menuHorizontalPosition==1 ? attr : 0);
@ -1043,24 +1042,6 @@ void menuModelSetup(event_t event)
g_model.moduleData[INTERNAL_MODULE].subType = checkIncDec(event, g_model.moduleData[INTERNAL_MODULE].subType, 0, MODULE_SUBTYPE_ISRM_PXX2_LAST, EE_MODEL, isRfProtocolAvailable);
}
}
#else
uint8_t index = 0;
if (g_model.moduleData[INTERNAL_MODULE].type == MODULE_TYPE_PXX2_ISRM) {
index = 1 + g_model.moduleData[INTERNAL_MODULE].subType;
}
lcdDrawTextAtIndex(MODEL_SETUP_2ND_COLUMN, y, STR_ISRM_PXX2_RF_PROTOCOLS, index, attr);
if (attr) {
index = checkIncDec(event, index, 0, 3, EE_MODEL);
if (checkIncDec_Ret) {
memclear(&g_model.moduleData[INTERNAL_MODULE], sizeof(ModuleData));
if (index > 0) {
g_model.moduleData[INTERNAL_MODULE].type = MODULE_TYPE_PXX2_ISRM;
g_model.moduleData[INTERNAL_MODULE].subType = index - 1;
g_model.moduleData[INTERNAL_MODULE].channelsCount = defaultModuleChannels_M8(INTERNAL_MODULE);
}
}
}
#endif
break;
}
#endif
@ -1078,8 +1059,6 @@ void menuModelSetup(event_t event)
case ITEM_MODEL_SETUP_EXTERNAL_MODULE_TYPE:
lcdDrawTextAlignedLeft(y, STR_MODE);
lcdDrawTextAtIndex(MODEL_SETUP_2ND_COLUMN, y, STR_MODULE_PROTOCOLS, g_model.moduleData[EXTERNAL_MODULE].type, menuHorizontalPosition==0 ? attr : 0);
if (isModuleR9M2(EXTERNAL_MODULE))
lcdDrawTextAtIndex(lcdNextPos + 3, y, STR_R9M_PXX2_RF_PROTOCOLS, g_model.moduleData[EXTERNAL_MODULE].subType, menuHorizontalPosition==1 ? attr : 0);
if (isModuleXJT(EXTERNAL_MODULE))
lcdDrawTextAtIndex(lcdNextPos + 3, y, STR_ACCST_RF_PROTOCOLS, 1+g_model.moduleData[EXTERNAL_MODULE].rfProtocol, menuHorizontalPosition==1 ? attr : 0);
else if (isModuleDSM2(EXTERNAL_MODULE))
@ -1117,8 +1096,6 @@ void menuModelSetup(event_t event)
}
break;
case 1:
if (isModuleR9M2(EXTERNAL_MODULE))
CHECK_INCDEC_MODELVAR(event, g_model.moduleData[EXTERNAL_MODULE].subType, 0, MODULE_SUBTYPE_R9M_PXX2_LAST);
if (isModuleDSM2(EXTERNAL_MODULE))
CHECK_INCDEC_MODELVAR(event, g_model.moduleData[EXTERNAL_MODULE].rfProtocol, DSM2_PROTO_LP45, DSM2_PROTO_DSMX);
else if (isModuleR9M(EXTERNAL_MODULE)) {

View file

@ -514,7 +514,7 @@ bool isSourceAvailableInResetSpecialFunction(int index)
#if defined(PCBXLITE)
bool isR9MModeAvailable(int mode)
{
#if defined(MODULE_R9M_FLEX)
#if defined(R9M_PROTO_FLEX)
return mode >= MODULE_SUBTYPE_R9M_EUPLUS;
#else
return mode <= MODULE_SUBTYPE_R9M_EU;
@ -524,7 +524,7 @@ bool isR9MModeAvailable(int mode)
#else
bool isR9MModeAvailable(int mode)
{
#if defined(MODULE_R9M_FLEX)
#if defined(R9M_PROTO_FLEX)
return mode < MODULE_SUBTYPE_R9M_EUPLUS;
#else
return true;
@ -611,7 +611,12 @@ bool isExternalModuleAvailable(int moduleType)
return false;
#endif
#if defined(FRSKY_RELEASE)
#if !defined(XJT)
if (moduleType == MODULE_TYPE_PXX1_XJT)
return false;
#endif
#if !defined(R9M_SIZE_STD)
if (moduleType == MODULE_TYPE_PXX1_R9M)
return false;
#endif

View file

@ -37,7 +37,7 @@ enum ModuleSubtypeR9M_PXX2 {
MODULE_SUBTYPE_R9M_PXX2_ACCESS,
MODULE_SUBTYPE_R9M_PXX2_FCC,
MODULE_SUBTYPE_R9M_PXX2_EU,
#if defined(MODULE_R9M_FLEX)
#if defined(R9M_PROTO_FLEX)
MODULE_SUBTYPE_R9M_PXX2_FLEX,
#endif
MODULE_SUBTYPE_R9M_PXX2_COUNT,

View file

@ -155,7 +155,7 @@ inline bool isModuleRFAccess(uint8_t idx)
return g_model.moduleData[idx].subType == MODULE_SUBTYPE_ISRM_PXX2_ACCESS;
}
else if (isModuleR9M2(idx)) {
return g_model.moduleData[idx].subType == MODULE_SUBTYPE_R9M_PXX2_ACCESS;
return true;
}
else {
return false;

View file

@ -227,10 +227,7 @@ void Pxx2Pulses::setupAccstBindFrame(uint8_t module)
for (uint8_t i=0; i<PXX2_LEN_RX_NAME; i++) {
Pxx2Transport::addByte(0x00);
}
if (g_model.moduleData[module].type == MODULE_TYPE_PXX2_ISRM)
Pxx2Transport::addByte((g_model.moduleData[module].pxx.receiver_telem_off << 7) + (g_model.moduleData[module].pxx.receiver_telem_off << 6));
else
Pxx2Transport::addByte(0x00);
Pxx2Transport::addByte(g_model.header.modelId[module]);
}
@ -357,10 +354,10 @@ void Pxx2Pulses::setupFrame(uint8_t module)
setupRegisterFrame(module);
break;
case MODULE_MODE_BIND:
if (g_model.moduleData[module].subType == MODULE_SUBTYPE_ISRM_PXX2_ACCESS || g_model.moduleData[module].subType == MODULE_SUBTYPE_R9M_PXX2_ACCESS)
setupAccessBindFrame(module);
else
if (g_model.moduleData[module].type == MODULE_TYPE_PXX2_ISRM && g_model.moduleData[module].subType != MODULE_SUBTYPE_ISRM_PXX2_ACCESS)
setupAccstBindFrame(module);
else
setupAccessBindFrame(module);
break;
case MODULE_MODE_RESET:
setupResetFrame(module);

View file

@ -7,6 +7,8 @@ option(TRACE_SD_CARD "Traces SD enabled" OFF)
option(TRACE_FATFS "Traces FatFS enabled" OFF)
option(TRACE_AUDIO "Traces audio enabled" OFF)
option(DEBUG_TRACE_BUFFER "Debug Trace Screen" OFF)
option(XJT "XJT TX Module" ON)
option(R9M_SIZE_STD "R9M standard size TX Module" ON)
option(PPM "PPM TX Module" ON)
option(DSM2 "DSM2 TX Module" ON)
option(SBUS "SBUS TX Module" ON)
@ -117,6 +119,14 @@ if(PXX2)
)
endif()
if(XJT)
add_definitions(-DXJT)
endif()
if(R9M_SIZE_STD)
add_definitions(-DR9M_SIZE_STD)
endif()
if(MULTIMODULE)
add_definitions(-DMULTIMODULE)
set(SRC ${SRC} pulses/multi.cpp telemetry/spektrum.cpp telemetry/flysky_ibus.cpp telemetry/multi.cpp)

View file

@ -82,9 +82,9 @@
#define TR_VSRCRAW "---\0" TR_STICKS_VSRCRAW TR_POTS_VSRCRAW TR_ROTARY_ENCODERS TR_GYR_VSRCRAW "MAX\0" TR_CYC_VSRCRAW TR_TRIMS_VSRCRAW TR_SW_VSRCRAW TR_EXTRA_VSRCRAW
#if defined(PXX1)
#define LEN_MODULE_PROTOCOLS "\010"
#define TR_MODULE_PROTOCOLS "OFF\0 ""PPM\0 ""XJT\0 ""ISRM\0 ""DSM2\0 ""CRSF\0 ""MULT\0 ""R9M\0 ""R9M2\0 ""R9MLite\0""R9ML2\0 ""R9MLP\0 ""SBUS"
#if 1 // defined(PXX1)
#define LEN_MODULE_PROTOCOLS "\014"
#define TR_MODULE_PROTOCOLS "OFF\0 ""PPM\0 ""XJT\0 ""ISRM\0 ""DSM2\0 ""CRSF\0 ""MULT\0 ""R9M\0 ""R9M ACCESS\0 ""R9MLite\0 ""R9ML ACCESS\0""R9MLP ACCESS""SBUS"
#else
#define LEN_MODULE_PROTOCOLS "\010"
#define TR_MODULE_PROTOCOLS "OFF\0 ""PPM\0 ""ACCST\0 ""ISRM\0 ""DSM2\0 ""CRSF\0 ""MULT\0 ""---\0 ""R9M\0 ""---\0 ""R9ML\0 ""R9MLP\0 ""SBUS\0"

View file

@ -41,7 +41,7 @@ options_sky9x = {
"faichoice": ("FAI", "CHOICE", None),
"nooverridech": ("OVERRIDE_CHANNEL_FUNCTION", "NO", "YES"),
"multimodule": ("MULTIMODULE", "YES", "NO"),
"flexr9m": ("MODULE_R9M_FLEX", "YES", None)
"flexr9m": ("R9M_PROTO_FLEX", "YES", None)
}
options_ar9x = {
@ -63,7 +63,7 @@ options_ar9x = {
"nooverridech": ("OVERRIDE_CHANNEL_FUNCTION", "NO", "YES"),
# "rtc": ("RTCLOCK", "YES", "NO"),
"multimodule": ("MULTIMODULE", "YES", "NO"),
"flexr9m": ("MODULE_R9M_FLEX", "YES", None)
"flexr9m": ("R9M_PROTO_FLEX", "YES", None)
}
options_taranis_x9d = {