1
0
Fork 0
mirror of https://github.com/opentx/opentx.git synced 2025-07-23 16:25:16 +03:00

R9M continued

This commit is contained in:
3djc 2019-04-24 14:10:27 +02:00
parent c490b1abae
commit 2415cd8588
6 changed files with 12 additions and 44 deletions

View file

@ -435,7 +435,6 @@ PACK(struct ModuleData {
struct {
uint8_t failsafeMode:4; // only 3 bits used
uint8_t freq:2;
uint8_t region:2;
} r9m;
};

View file

@ -187,7 +187,7 @@ enum MenuModelSetupItems {
#define EXTERNAL_MODULE_MODE_ROWS (isModuleXJT(EXTERNAL_MODULE) || isModuleR9M(EXTERNAL_MODULE) || isModuleDSM2(EXTERNAL_MODULE) || isModuleMultimodule(EXTERNAL_MODULE)) ? (uint8_t)1 : (uint8_t)0
#define EXTERNAL_MODULE_FREQ_ROW isR9MMFlex(EXTERNAL_MODULE) ? (uint8_t)1: (uint8_t)HIDDEN_ROW,
#define EXTERNAL_MODULE_FREQ_ROW (isModuleR9M_EUPLUS(EXTERNAL_MODULE) || isModuleR9M_AU_PLUS(EXTERNAL_MODULE)) ? (uint8_t)1: (uint8_t)HIDDEN_ROW,
#define CURSOR_ON_CELL (true)

View file

@ -530,13 +530,13 @@ bool isR9MModeAvailable(int mode)
#else
bool isR9MModeAvailable(int mode)
{
return mode <= MODULE_SUBTYPE_R9M_EUPLUS;
#if defined(MODULE_R9M_FLEX_FW)
return mode < MODULE_SUBTYPE_R9M_EUPLUS;
#else
return true;
#endif
}
#endif
bool isR9MMFlex(int module)
{
return g_model.moduleData[module].r9m.region == MODULE_R9M_REGION_FLEX;
}
bool isPXX2ChannelsCountAllowed(int channels)
{

View file

@ -54,7 +54,6 @@ bool isSwitchAvailableInCustomFunctions(int swtch);
bool isSwitchAvailableInMixes(int swtch);
bool isSwitchAvailableInTimers(int swtch);
bool isR9MModeAvailable(int mode);
bool isR9MMFlex(int module);
bool isPXX2ChannelsCountAllowed(int channels);
bool isExternalModuleAvailable(int moduleType);
bool isInternalModuleAvailable(int module);
@ -159,11 +158,7 @@ const mm_protocol_definition *getMultiProtocolDefinition (uint8_t protocol);
#define FAILSAFE_ROWS(x) ((isModuleXJTVariant(x) && HAS_RF_PROTOCOL_FAILSAFE(g_model.moduleData[x].rfProtocol)) || MULTIMODULE_HASFAILSAFE(x) || isModuleR9M(x) || isModuleR9M2(x)) ? (g_model.moduleData[x].failsafeMode==FAILSAFE_CUSTOM ? (uint8_t)1 : (uint8_t)0) : HIDDEN_ROW
#if defined(PCBXLITE)
#define EXTERNAL_MODULE_OPTION_ROW (isModuleR9M(EXTERNAL_MODULE) || isModuleSBUS(EXTERNAL_MODULE) ? TITLE_ROW : MULTIMODULE_OPTIONS_ROW)
#else
#define EXTERNAL_MODULE_OPTION_ROW (isModuleR9M(EXTERNAL_MODULE) || isModuleSBUS(EXTERNAL_MODULE) ? TITLE_ROW : MULTIMODULE_OPTIONS_ROW)
#endif
#if defined(PCBXLITE) && !defined(MODULE_R9M_FULLSIZE)
#define EXTERNAL_MODULE_POWER_ROW (isModuleMultimodule(EXTERNAL_MODULE) || isModuleR9M(EXTERNAL_MODULE)) ? (isModuleR9M_FCC_VARIANT(EXTERNAL_MODULE) ? TITLE_ROW : (uint8_t) 0) : HIDDEN_ROW

View file

@ -112,7 +112,7 @@ inline bool isModuleR9M2(uint8_t idx)
return g_model.moduleData[idx].type == MODULE_TYPE_R9M2 || g_model.moduleData[idx].type == MODULE_TYPE_R9M_LITE2 || g_model.moduleData[idx].type == MODULE_TYPE_R9M_LITE_PRO2;
}
#if defined(PCBXLITE)
inline bool isModuleR9M_FCC(uint8_t idx)
{
return isModuleR9M(idx) && g_model.moduleData[idx].subType == MODULE_SUBTYPE_R9M_FCC;
@ -130,39 +130,13 @@ inline bool isModuleR9M_FCC_VARIANT(uint8_t idx)
inline bool isModuleR9M_EUPLUS(uint8_t idx)
{
return isModuleR9M(idx) && g_model.moduleData[idx].subType != MODULE_SUBTYPE_R9M_EUPLUS;
return isModuleR9M(idx) && g_model.moduleData[idx].subType == MODULE_SUBTYPE_R9M_EUPLUS;
}
inline bool isModuleR9M_AU_PLUS(uint8_t idx)
{
return isModuleR9M(idx) && g_model.moduleData[idx].subType != MODULE_SUBTYPE_R9M_AUPLUS;
return isModuleR9M(idx) && g_model.moduleData[idx].subType == MODULE_SUBTYPE_R9M_AUPLUS;
}
#else
inline bool isModuleR9M_FCC(uint8_t idx)
{
return isModuleR9M(idx) && g_model.moduleData[idx].r9m.region == MODULE_R9M_REGION_FCC;
}
inline bool isModuleR9M_LBT(uint8_t idx)
{
return isModuleR9M(idx) && g_model.moduleData[idx].r9m.region == MODULE_R9M_REGION_EU;
}
inline bool isModuleR9M_FCC_VARIANT(uint8_t idx)
{
return isModuleR9M(idx) && g_model.moduleData[idx].r9m.region != MODULE_R9M_REGION_EU;
}
inline bool isModuleR9M_EUPLUS(uint8_t idx)
{
return isModuleR9M(idx) && g_model.moduleData[idx].r9m.region == MODULE_R9M_REGION_FLEX && g_model.moduleData[idx].r9m.freq == MODULE_R9M_FREQ_868MHZ;
}
inline bool isModuleR9M_AU_PLUS(uint8_t idx)
{
return isModuleR9M(idx) && g_model.moduleData[idx].r9m.region == MODULE_R9M_REGION_FLEX && g_model.moduleData[idx].r9m.freq == MODULE_R9M_FREQ_915MHZ;
}
#endif
inline bool isModulePXX(uint8_t idx)
{

View file

@ -352,8 +352,8 @@ enum R9MLBTPowerValues {
#else
#define LEN_R9M_REGION "\004"
#define TR_R9M_REGION "FCC\0""EU\0 ""FLEX"
#define LEN_R9M_REGION "\006"
#define TR_R9M_REGION "FCC\0""EU\0 ""868MHz""915MHz"
#define LEN_R9MFLEX_FREQ "\006"
#define TR_R9MFLEX_FREQ "868Mhz""915Mhz"
#define LEN_R9M_FCC_POWER_VALUES "\006"