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

R9M and R9M2

This commit is contained in:
3djc 2019-02-19 13:15:54 +01:00
parent 66a4276fb3
commit d80dc67bbd
20 changed files with 57 additions and 37 deletions

View file

@ -159,9 +159,8 @@ enum MenuModelSetupItems {
#define MODEL_SETUP_RANGE_OFS 4*FW+3
#define MODEL_SETUP_SET_FAILSAFE_OFS 7*FW-2
#define IS_PXX2_EXTERNAL_ENABLED() (isModulePXX2(EXTERNAL_MODULE))
#define IF_PXX2(xxx) (IS_PXX2_INTERNAL_ENABLED() ? (uint8_t)(xxx) : HIDDEN_ROW)
#define IF_NOT_PXX2(xxx) (IS_PXX2_INTERNAL_ENABLED() ? HIDDEN_ROW : (uint8_t)(xxx))
#define IF_PXX2(xxx) (isModulePXX2(INTERNAL_MODULE) ? (uint8_t)(xxx) : HIDDEN_ROW)
#define IF_NOT_PXX2(xxx) (isModulePXX2(INTERNAL_MODULE) ? HIDDEN_ROW : (uint8_t)(xxx))
#define IF_EXTERNAL_PXX2(xxx) (isModulePXX2(EXTERNAL_MODULE) ? (uint8_t)(xxx) : HIDDEN_ROW)
#define IF_NOT_EXTERNAL_PXX2(xxx) (isModulePXX2(EXTERNAL_MODULE) ? HIDDEN_ROW : (uint8_t)(xxx))
#define IF_PXX2_RECEIVER_DISPLAYED(module, idx, xxx) ((isModulePXX2(module) && g_model.moduleData[module].pxx2.receivers[idx].enabled) ? (uint8_t)(xxx) : HIDDEN_ROW)
@ -232,6 +231,17 @@ enum MenuModelSetupItems {
#define TRAINER_CHANNELS_ROW (IS_SLAVE_TRAINER() ? (uint8_t)1 : HIDDEN_ROW)
#define TRAINER_PARAMS_ROW (IS_SLAVE_TRAINER() ? (uint8_t)2 : HIDDEN_ROW)
#define TRAINER_ROWS LABEL(Trainer), 0, TRAINER_BLUETOOTH_ROW TRAINER_CHANNELS_ROW, TRAINER_PARAMS_ROW
#define DEF case ITEM_MODEL_INTERNAL_MODULE_PXX2_RECEIVER_1_NAME:\
case ITEM_MODEL_INTERNAL_MODULE_PXX2_RECEIVER_2_NAME:\
case ITEM_MODEL_EXTERNAL_MODULE_PXX2_RECEIVER_1_NAME:\
case ITEM_MODEL_EXTERNAL_MODULE_PXX2_RECEIVER_2_NAME:\
{\
uint8_t receiverIdx = CURRENT_RECEIVER_EDITED(k);\
uint8_t moduleIdx = CURRENT_MODULE_EDITED(k);\
\
lcdDrawTextAlignedLeft(y, STR_RECEIVER);\
lcdDrawSizedText(MODEL_SETUP_2ND_COLUMN, y, g_model.moduleData[moduleIdx].pxx2.receivers[receiverIdx].rxName, PXX2_LEN_RX_NAME, 0);\
}
#elif defined(PCBXLITES)
#define ANTENNA_ROW IF_INTERNAL_MODULE_ON(0),
#define IF_BT_TRAINER_ON(x) (g_eeGeneral.bluetoothMode == BLUETOOTH_TRAINER ? (uint8_t)(x) : HIDDEN_ROW)
@ -1208,17 +1218,7 @@ void menuModelSetup(event_t event)
}
break;
case ITEM_MODEL_INTERNAL_MODULE_PXX2_RECEIVER_1_NAME:
case ITEM_MODEL_INTERNAL_MODULE_PXX2_RECEIVER_2_NAME:
case ITEM_MODEL_EXTERNAL_MODULE_PXX2_RECEIVER_1_NAME:
case ITEM_MODEL_EXTERNAL_MODULE_PXX2_RECEIVER_2_NAME:
{
uint8_t receiverIdx = CURRENT_RECEIVER_EDITED(k);
uint8_t moduleIdx = CURRENT_MODULE_EDITED(k);
lcdDrawTextAlignedLeft(y, STR_RECEIVER);
lcdDrawSizedText(MODEL_SETUP_2ND_COLUMN, y, g_model.moduleData[moduleIdx].pxx2.receivers[receiverIdx].rxName, PXX2_LEN_RX_NAME, 0);
}
DEF
break;
case ITEM_MODEL_INTERNAL_MODULE_PXX2_RECEIVER_1_PINMAP:

View file

@ -77,7 +77,7 @@ void runPopupWarning(event_t event)
{
warningResult = false;
theme->drawMessageBox(warningText, warningInfoText, WARNING_TYPE_INFO ? STR_OK : (warningType == WARNING_TYPE_ASTERISK ? STR_EXIT : STR_POPUPS_ENTER_EXIT_ENTER_EXIT), warningType);
theme->drawMessageBox(warningText, warningInfoText, WARNING_TYPE_INFO ? STR_OK : (warningType == WARNING_TYPE_ASTERISK ? STR_EXIT : STR_POPUPS_ENTER_EXIT), warningType);
switch (event) {
case EVT_KEY_BREAK(KEY_ENTER):

View file

@ -156,7 +156,7 @@ const mm_protocol_definition *getMultiProtocolDefinition (uint8_t protocol);
#define IS_D8_RX(x) (g_model.moduleData[x].rfProtocol == RF_PROTO_D8)
#define IS_R9M_OR_XJTD16(x) ((isModuleXJT(x) && g_model.moduleData[x].rfProtocol== RF_PROTO_X16) || isModuleR9M(x))
#define FAILSAFE_ROWS(x) ((isModuleXJTVariant(x) && HAS_RF_PROTOCOL_FAILSAFE(g_model.moduleData[x].rfProtocol)) || MULTIMODULE_HASFAILSAFE(x) || isModuleR9M(x)) ? (g_model.moduleData[x].failsafeMode==FAILSAFE_CUSTOM ? (uint8_t)1 : (uint8_t)0) : HIDDEN_ROW
#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)

View file

@ -520,7 +520,7 @@ bool isInternalModuleAvailable(int module)
if (module == MODULE_TYPE_NONE)
return true;
if (module == (IS_PXX2_INTERNAL_ENABLED() ? MODULE_TYPE_XJT2 : MODULE_TYPE_XJT))
if ((module == (IS_PXX2_INTERNAL_ENABLED() ? MODULE_TYPE_XJT2 : MODULE_TYPE_XJT)) && !isModulePXX2(EXTERNAL_MODULE))
return true;
return false;
@ -561,6 +561,15 @@ bool isExternalModuleAvailable(int module)
if (module == MODULE_TYPE_R9M && g_model.moduleData[INTERNAL_MODULE].type != MODULE_TYPE_NONE) {
return false;
}
if (module == MODULE_TYPE_R9M2 && g_model.moduleData[INTERNAL_MODULE].type != MODULE_TYPE_NONE) {
return false;
}
if (module == MODULE_TYPE_XJT && g_model.moduleData[INTERNAL_MODULE].type != MODULE_TYPE_NONE) {
return false;
}
if (module == MODULE_TYPE_XJT2 && g_model.moduleData[INTERNAL_MODULE].type != MODULE_TYPE_NONE) {
return false;
}
#endif
return true;
@ -582,6 +591,9 @@ bool isRfProtocolAvailable(int protocol)
if (protocol != RF_PROTO_OFF && g_model.moduleData[EXTERNAL_MODULE].type == MODULE_TYPE_R9M) {
return false;
}
if (protocol != RF_PROTO_OFF && g_model.moduleData[EXTERNAL_MODULE].type == MODULE_TYPE_R9M2) {
return false;
}
#endif
return true;

View file

@ -407,6 +407,7 @@ enum ModuleTypes {
MODULE_TYPE_CROSSFIRE,
MODULE_TYPE_MULTIMODULE,
MODULE_TYPE_R9M,
MODULE_TYPE_R9M2,
MODULE_TYPE_SBUS,
MODULE_TYPE_MAX = MODULE_TYPE_SBUS,
MODULE_TYPE_COUNT

View file

@ -56,7 +56,7 @@ inline bool isModuleXJT(uint8_t idx)
inline bool isModuleXJT2(uint8_t idx)
{
return g_model.moduleData[idx].type == MODULE_TYPE_XJT2 || g_model.moduleData[idx].type == MODULE_TYPE_R9M;
return g_model.moduleData[idx].type == MODULE_TYPE_XJT2;
}
@ -146,6 +146,11 @@ inline bool isModuleR9M(uint8_t idx)
return g_model.moduleData[idx].type == MODULE_TYPE_R9M;
}
inline bool isModuleR9M2(uint8_t idx)
{
return g_model.moduleData[idx].type == MODULE_TYPE_R9M2;
}
inline bool isModuleR9M_FCC(uint8_t idx)
{
return isModuleR9M(idx) && g_model.moduleData[idx].r9m.region == MODULE_R9M_REGION_FCC;
@ -179,7 +184,7 @@ inline bool isModulePXX(uint8_t idx)
inline bool isModulePXX2(uint8_t idx)
{
return isModuleXJT2(idx) || isModuleR9M(idx);
return isModuleXJT2(idx) || isModuleR9M2(idx);
}
#if defined(DSM2)

View file

@ -50,11 +50,12 @@ uint8_t getRequiredProtocol(uint8_t module)
break;
case MODULE_TYPE_XJT:
case MODULE_TYPE_R9M:
protocol = PROTOCOL_CHANNELS_PXX1;
break;
case MODULE_TYPE_XJT2:
case MODULE_TYPE_R9M:
case MODULE_TYPE_R9M2:
protocol = PROTOCOL_CHANNELS_PXX2;
break;

View file

@ -29,6 +29,8 @@ extern "C" {
}
#endif
extern bool sticks_pwm_disabled;
HardwareOptions hardwareOptions;
void watchdogInit(unsigned int duration)
@ -194,7 +196,7 @@ void boardInit()
audioInit();
// we need to initialize g_FATFS_Obj here, because it is in .ram section (because of DMA access)
// we need to initialize g_FATFS_Obj here, because it is in .ram section (because of DMA access)
// and this section is un-initialized
memset(&g_FATFS_Obj, 0, sizeof(g_FATFS_Obj));

View file

@ -126,14 +126,13 @@ inline uint8_t modelTelemetryProtocol()
return g_model.telemetryProtocol;
}
if (!IS_INTERNAL_MODULE_ENABLED() && g_model.moduleData[EXTERNAL_MODULE].type == MODULE_TYPE_R9M) {
#if defined(PCBXLITE)
return PROTOCOL_TELEMETRY_FRSKY_SPORT;
#else
if (!IS_INTERNAL_MODULE_ENABLED() && isModulePXX2(EXTERNAL_MODULE)) {
return PROTOCOL_TELEMETRY_PXX2;
#endif
}
if (!IS_INTERNAL_MODULE_ENABLED() && isModulePXX(EXTERNAL_MODULE)) {
return PROTOCOL_TELEMETRY_FRSKY_SPORT;
}
#if defined(MULTIMODULE)
if (!IS_INTERNAL_MODULE_ENABLED() && g_model.moduleData[EXTERNAL_MODULE].type == MODULE_TYPE_MULTIMODULE) {
return PROTOCOL_TELEMETRY_MULTIMODULE;

View file

@ -103,7 +103,7 @@
#define TR_JACKMODES "Popup\0 ""Audio\0 ""Trainer"
#define LEN_TARANIS_PROTOCOLS "\004"
#define TR_TARANIS_PROTOCOLS "Vyp\0""PPM\0""XJT\0""DSM2""CRSF""MULT""R9M\0""SBUS"
#define TR_TARANIS_PROTOCOLS "Vyp\0""PPM\0""XJT\0""DSM2""CRSF""MULT""R9M\0""R9M2""SBUS"
#define LEN_TELEMETRY_PROTOCOLS "\017"
#define TR_TELEMETRY_PROTOCOLS "FrSky S.PORT\0 FrSky D\0 FrSky D (kabel)Spektrum\0 "

View file

@ -105,7 +105,7 @@
#define TR_JACKMODES "Popup\0 ""Audio\0 ""Trainer"
#define LEN_TARANIS_PROTOCOLS "\004"
#define TR_TARANIS_PROTOCOLS "AUS\0""PPM\0""XJT\0""DSM?""CRSF""MULT""R9M\0""SBUS"
#define TR_TARANIS_PROTOCOLS "AUS\0""PPM\0""XJT\0""DSM?""CRSF""MULT""R9M\0""R9M2""SBUS"
#define LEN_TELEMETRY_PROTOCOLS "\017"
#define TR_TELEMETRY_PROTOCOLS "FrSky S.PORT\0 ""FrSky D\0 ""FrSky D (Kabel)""TBS Crossfire\0 ""Spektrum\0 ""AFHDS2A IBUS\0 ""Multi Telemetry"

View file

@ -105,7 +105,7 @@
#define TR_JACKMODES "Ask\0 ""Audio\0 ""Trainer"
#define LEN_TARANIS_PROTOCOLS "\004"
#define TR_TARANIS_PROTOCOLS "OFF\0""PPM\0""XJT\0""XJT2""DSM2""CRSF""MULT""R9M\0""SBUS"
#define TR_TARANIS_PROTOCOLS "OFF\0""PPM\0""XJT\0""XJT2""DSM2""CRSF""MULT""R9M\0""R9M2""SBUS"
#define LEN_TELEMETRY_PROTOCOLS "\017"
#define TR_TELEMETRY_PROTOCOLS "FrSky S.PORT\0 ""FrSky D\0 ""FrSky D (cable)""TBS Crossfire\0 ""Spektrum\0 ""AFHDS2A IBUS\0 ""Multi Telemetry"

View file

@ -105,7 +105,7 @@
#define TR_JACKMODES "Ask\0 ""Audio\0 ""Trainer"
#define LEN_TARANIS_PROTOCOLS "\004"
#define TR_TARANIS_PROTOCOLS )"OFF\0""PPM\0""XJT\0""XJT2""DSM2""CRSF""MULT""R9M\0""SBUS"
#define TR_TARANIS_PROTOCOLS )"OFF\0""PPM\0""XJT\0""XJT2""DSM2""CRSF""MULT""R9M\0""R9M2""SBUS"
#define LEN_TELEMETRY_PROTOCOLS "\017"
#define TR_TELEMETRY_PROTOCOLS "FrSky S.PORT\0 ""FrSky D\0 ""FrSky D (cable)""TBS Crossfire\0 ""Spektrum\0 ""AFHDS2A IBUS\0 ""Multi Telemetry"

View file

@ -105,7 +105,7 @@
#define TR_JACKMODES "Ask\0 ""Audio\0 ""Trainer"
#define LEN_TARANIS_PROTOCOLS "\004"
#define TR_TARANIS_PROTOCOLS )"OFF\0""PPM\0""XJT\0""XJT2""DSM2""CRSF""MULT""R9M\0""SBUS"
#define TR_TARANIS_PROTOCOLS )"OFF\0""PPM\0""XJT\0""XJT2""DSM2""CRSF""MULT""R9M\0""R9M2""SBUS"
#define LEN_TELEMETRY_PROTOCOLS "\017"
#define TR_TELEMETRY_PROTOCOLS "FrSky S.PORT\0 ""FrSky D\0 ""FrSky D (cable)""TBS Crossfire\0 ""Spektrum\0 ""AFHDS2A IBUS\0 ""Multi Telemetry"

View file

@ -105,7 +105,7 @@
#define TR_JACKMODES "Ask\0 ""Audio\0 ""Trainer"
#define LEN_TARANIS_PROTOCOLS "\004"
#define TR_TARANIS_PROTOCOLS )"OFF\0""PPM\0""XJT\0""XJT2""DSM2""CRSF""MULT""R9M\0""SBUS"
#define TR_TARANIS_PROTOCOLS )"OFF\0""PPM\0""XJT\0""XJT2""DSM2""CRSF""MULT""R9M\0""R9M2""SBUS"
#define LEN_TELEMETRY_PROTOCOLS "\017"
#define TR_TELEMETRY_PROTOCOLS "FrSky S.PORT\0 ""FrSky D\0 ""FrSky D (cable)""TBS Crossfire\0 ""Spektrum\0 ""AFHDS2A IBUS\0 ""Multi Telemetry"

View file

@ -105,7 +105,7 @@
#define TR_JACKMODES "Ask\0 ""Audio\0 ""Trainer"
#define LEN_TARANIS_PROTOCOLS "\004"
#define TR_TARANIS_PROTOCOLS )"OFF\0""PPM\0""XJT\0""XJT2""DSM2""CRSF""MULT""R9M\0""SBUS"
#define TR_TARANIS_PROTOCOLS )"OFF\0""PPM\0""XJT\0""XJT2""DSM2""CRSF""MULT""R9M\0""R9M2""SBUS"
#define LEN_TELEMETRY_PROTOCOLS "\017"
#define TR_TELEMETRY_PROTOCOLS "FrSky S.PORT\0 ""FrSky D\0 ""FrSky D (cable)""TBS Crossfire\0 ""Spektrum\0 ""AFHDS2A IBUS\0 ""Multi Telemetry"

View file

@ -107,7 +107,7 @@
#define TR_JACKMODES "Popup\0 ""Audio\0 ""Trainer"
#define LEN_TARANIS_PROTOCOLS "\004"
#define TR_TARANIS_PROTOCOLS "UIT\0""PPM\0""XJT\0""DSM2""CRSF""MULT""R9M\0""SBUS"
#define TR_TARANIS_PROTOCOLS "UIT\0""PPM\0""XJT\0""DSM2""CRSF""MULT""R9M\0""R9M2""SBUS"
#define LEN_TELEMETRY_PROTOCOLS "\017"
#define TR_TELEMETRY_PROTOCOLS "FrSky S.PORT\0 ""FrSky D\0 ""FrSky D (cable)""TBS Crossfire\0 ""Spektrum\0 ""AFHDS2A IBUS\0 ""Multi Telemetry"

View file

@ -105,7 +105,7 @@
#define TR_JACKMODES "Ask\0 ""Audio\0 ""Trainer"
#define LEN_TARANIS_PROTOCOLS "\004"
#define TR_TARANIS_PROTOCOLS )"OFF\0""PPM\0""XJT\0""XJT2""DSM2""CRSF""MULT""R9M\0""SBUS"
#define TR_TARANIS_PROTOCOLS )"OFF\0""PPM\0""XJT\0""XJT2""DSM2""CRSF""MULT""R9M\0""R9M2""SBUS"
#define LEN_TELEMETRY_PROTOCOLS "\017"
#define TR_TELEMETRY_PROTOCOLS "FrSky S.PORT\0 ""FrSky D\0 ""FrSky D (cable)""TBS Crossfire\0 ""Spektrum\0 ""AFHDS2A IBUS\0 ""Multi Telemetry"

View file

@ -105,7 +105,7 @@
#define TR_JACKMODES "Popup\0 ""Audio\0 ""Trainer"
#define LEN_TARANIS_PROTOCOLS "\004"
#define TR_TARANIS_PROTOCOLS )"OFF\0""PPM\0""XJT\0""XJT2""DSM2""CRSF""MULT""R9M\0""SBUS"
#define TR_TARANIS_PROTOCOLS )"OFF\0""PPM\0""XJT\0""XJT2""DSM2""CRSF""MULT""R9M\0""R9M2""SBUS"
#define LEN_TELEMETRY_PROTOCOLS "\017"
#define TR_TELEMETRY_PROTOCOLS "FrSky S.PORT\0 ""FrSky D\0 ""FrSky D (cable)""TBS Crossfire\0 ""Spektrum\0 ""AFHDS2A IBUS\0 ""Multi Telemetry"

View file

@ -105,7 +105,7 @@
#define TR_JACKMODES "Ask\0 ""Audio\0 ""Trainer"
#define LEN_TARANIS_PROTOCOLS "\004"
#define TR_TARANIS_PROTOCOLS "Av\0 ""PPM\0""XJT\0""DSM2""CRSF""MULT""R9M\0""SBUS"
#define TR_TARANIS_PROTOCOLS "Av\0 ""PPM\0""XJT\0""DSM2""CRSF""MULT""R9M\0""R9M2""SBUS"
#define LEN_TELEMETRY_PROTOCOLS "\017"
#define TR_TELEMETRY_PROTOCOLS "FrSky S.PORT\0 ""FrSky D\0 ""FrSky D (cable)""TBS Crossfire\0 ""Spektrum\0 ""AFHDS2A IBUS\0 ""Multi Telemetry"