diff --git a/radio/src/gui/128x64/model_setup.cpp b/radio/src/gui/128x64/model_setup.cpp index ff9a5378f4..e70fc47731 100644 --- a/radio/src/gui/128x64/model_setup.cpp +++ b/radio/src/gui/128x64/model_setup.cpp @@ -1194,7 +1194,7 @@ void menuModelSetup(event_t event) drawReceiverName(MODEL_SETUP_2ND_COLUMN, y, moduleIdx, receiverIdx, attr); - if (s_editMode && isModuleR9M2(moduleIdx) && moduleState[moduleIdx].mode == MODULE_MODE_NORMAL && moduleInformation.information.modelID) { + if (s_editMode && isModuleR9MAccess(moduleIdx) && moduleState[moduleIdx].mode == MODULE_MODE_NORMAL && moduleInformation.information.modelID) { moduleInformation.information.modelID = 0; moduleState[moduleIdx].startBind(&reusableBuffer.moduleSetup.bindInformation); } @@ -1338,7 +1338,7 @@ void menuModelSetup(event_t event) if (attr && l_posHorz > 0) { if (s_editMode > 0) { if (l_posHorz == 1) { - if (isModuleR9M(moduleIdx) || (isModuleXJT(moduleIdx) && g_model.moduleData[moduleIdx].rfProtocol == MODULE_SUBTYPE_PXX1_ACCST_D16) || (isModuleXJT2(moduleIdx) && g_model.moduleData[moduleIdx].subType == MODULE_SUBTYPE_ISRM_PXX2_ACCST_D16) || (isModuleR9M2(moduleIdx) && g_model.moduleData[moduleIdx].subType != MODULE_SUBTYPE_R9M_PXX2_ACCESS)) { + if (isModuleR9M(moduleIdx) || (isModuleXJT(moduleIdx) && g_model.moduleData[moduleIdx].rfProtocol == MODULE_SUBTYPE_PXX1_ACCST_D16) || (isModuleXJT2(moduleIdx) && g_model.moduleData[moduleIdx].subType == MODULE_SUBTYPE_ISRM_PXX2_ACCST_D16) || (isModuleR9MAccess(moduleIdx) && g_model.moduleData[moduleIdx].subType != MODULE_SUBTYPE_R9M_PXX2_ACCESS)) { #if defined(PCBXLITE) if (EVT_KEY_MASK(event) == KEY_ENTER) { #elif defined(PCBSKY9X) || defined(PCBAR9X) diff --git a/radio/src/gui/212x64/model_setup.cpp b/radio/src/gui/212x64/model_setup.cpp index 38b7cf8648..2650579a74 100644 --- a/radio/src/gui/212x64/model_setup.cpp +++ b/radio/src/gui/212x64/model_setup.cpp @@ -1414,7 +1414,7 @@ void menuModelSetup(event_t event) drawReceiverName(MODEL_SETUP_2ND_COLUMN, y, moduleIdx, receiverIdx, attr); - if (s_editMode && isModuleR9M2(moduleIdx) && moduleState[moduleIdx].mode == MODULE_MODE_NORMAL && moduleInformation.information.modelID) { + if (s_editMode && isModuleR9MAccess(moduleIdx) && moduleState[moduleIdx].mode == MODULE_MODE_NORMAL && moduleInformation.information.modelID) { moduleInformation.information.modelID = 0; moduleState[moduleIdx].startBind(&reusableBuffer.moduleSetup.bindInformation); } diff --git a/radio/src/gui/common/stdlcd/model_receiver_options.cpp b/radio/src/gui/common/stdlcd/model_receiver_options.cpp index f5c7990957..7d1be30bdc 100644 --- a/radio/src/gui/common/stdlcd/model_receiver_options.cpp +++ b/radio/src/gui/common/stdlcd/model_receiver_options.cpp @@ -111,7 +111,7 @@ void menuModelReceiverOptions(event_t event) break; case ITEM_RECEIVER_PWM_RATE: - reusableBuffer.hardwareAndSettings.receiverSettings.pwmRate = editCheckBox(reusableBuffer.hardwareAndSettings.receiverSettings.pwmRate, RECEIVER_OPTIONS_2ND_COLUMN, y, isModuleR9M2(g_moduleIdx) ? "6.67ms PWM": "9ms PWM", attr, event); + reusableBuffer.hardwareAndSettings.receiverSettings.pwmRate = editCheckBox(reusableBuffer.hardwareAndSettings.receiverSettings.pwmRate, RECEIVER_OPTIONS_2ND_COLUMN, y, isModuleR9MAccess(g_moduleIdx) ? "6.67ms PWM": "9ms PWM", attr, event); if (attr && checkIncDec_Ret) { reusableBuffer.hardwareAndSettings.receiverSettings.dirty = true; } diff --git a/radio/src/gui/common/stdlcd/model_setup_pxx2.cpp b/radio/src/gui/common/stdlcd/model_setup_pxx2.cpp index 36f82ba6a9..d865d1aecf 100644 --- a/radio/src/gui/common/stdlcd/model_setup_pxx2.cpp +++ b/radio/src/gui/common/stdlcd/model_setup_pxx2.cpp @@ -50,10 +50,10 @@ void onPXX2R9MBindModeMenu(const char * result) else if (result == STR_16CH_WITHOUT_TELEMETRY) { reusableBuffer.moduleSetup.bindInformation.lbtMode = 2; } - else if (result == STR_FLEX_868) { + else if (result == STR_FLEX_915) { reusableBuffer.moduleSetup.bindInformation.flexMode = 0; } - else if (result == STR_FLEX_915) { + else if (result == STR_FLEX_868) { reusableBuffer.moduleSetup.bindInformation.flexMode = 1; } else { @@ -83,14 +83,14 @@ void onPXX2BindMenu(const char * result) if (result != STR_EXIT) { uint8_t moduleIdx = CURRENT_MODULE_EDITED(menuVerticalPosition - HEADER_LINE); reusableBuffer.moduleSetup.bindInformation.selectedReceiverIndex = (result - reusableBuffer.moduleSetup.bindInformation.candidateReceiversNames[0]) / sizeof(reusableBuffer.moduleSetup.bindInformation.candidateReceiversNames[0]); - if (isModuleR9M2(moduleIdx) && reusableBuffer.moduleSetup.pxx2.moduleInformation.information.variant == PXX2_VARIANT_EU) { + if (isModuleR9MAccess(moduleIdx) && reusableBuffer.moduleSetup.pxx2.moduleInformation.information.variant == PXX2_VARIANT_EU) { reusableBuffer.moduleSetup.bindInformation.step = BIND_RX_NAME_SELECTED; POPUP_MENU_ADD_ITEM(STR_8CH_WITH_TELEMETRY); POPUP_MENU_ADD_ITEM(STR_16CH_WITH_TELEMETRY); POPUP_MENU_ADD_ITEM(STR_16CH_WITHOUT_TELEMETRY); POPUP_MENU_START(onPXX2R9MBindModeMenu); } - else if (isModuleR9M2(moduleIdx) && reusableBuffer.moduleSetup.pxx2.moduleInformation.information.variant == PXX2_VARIANT_FLEX) { + else if (isModuleR9MAccess(moduleIdx) && reusableBuffer.moduleSetup.pxx2.moduleInformation.information.variant == PXX2_VARIANT_FLEX) { reusableBuffer.moduleSetup.bindInformation.step = BIND_RX_NAME_SELECTED; POPUP_MENU_ADD_ITEM(STR_FLEX_868); POPUP_MENU_ADD_ITEM(STR_FLEX_915); @@ -142,7 +142,7 @@ void onPXX2ReceiverMenu(const char * result) else if (result == STR_BIND) { memclear(&reusableBuffer.moduleSetup.bindInformation, sizeof(BindInformation)); reusableBuffer.moduleSetup.bindInformation.rxUid = receiverIdx; - if (isModuleR9M2(moduleIdx)) { + if (isModuleR9MAccess(moduleIdx)) { #if defined(SIMU) reusableBuffer.moduleSetup.pxx2.moduleInformation.information.modelID = 1; reusableBuffer.moduleSetup.pxx2.moduleInformation.information.variant = 2; diff --git a/radio/src/gui/common/stdlcd/radio_spectrum_analyser.cpp b/radio/src/gui/common/stdlcd/radio_spectrum_analyser.cpp index 48349d8e87..6930323253 100644 --- a/radio/src/gui/common/stdlcd/radio_spectrum_analyser.cpp +++ b/radio/src/gui/common/stdlcd/radio_spectrum_analyser.cpp @@ -51,7 +51,7 @@ void menuRadioSpectrumAnalyser(event_t event) return; } - if (isModuleR9M2(g_moduleIdx)) { + if (isModuleR9MAccess(g_moduleIdx)) { reusableBuffer.spectrumAnalyser.spanDefault = 20; reusableBuffer.spectrumAnalyser.spanMax = 40; reusableBuffer.spectrumAnalyser.freqDefault = 890; diff --git a/radio/src/gui/gui_common.h b/radio/src/gui/gui_common.h index a14d0f3291..ef5923cc3c 100644 --- a/radio/src/gui/gui_common.h +++ b/radio/src/gui/gui_common.h @@ -156,7 +156,7 @@ const mm_protocol_definition *getMultiProtocolDefinition (uint8_t protocol); #define IS_D8_RX(x) (g_model.moduleData[x].rfProtocol == MODULE_SUBTYPE_PXX1_ACCST_D8) #define IS_R9M_OR_XJTD16(x) ((isModuleXJT(x) && g_model.moduleData[x].rfProtocol== MODULE_SUBTYPE_PXX1_ACCST_D16) || isModuleR9M(x)) -#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 +#define FAILSAFE_ROWS(x) ((isModuleXJTVariant(x) && HAS_RF_PROTOCOL_FAILSAFE(g_model.moduleData[x].rfProtocol)) || MULTIMODULE_HASFAILSAFE(x) || isModuleR9M(x) || isModuleR9MAccess(x)) ? (g_model.moduleData[x].failsafeMode==FAILSAFE_CUSTOM ? (uint8_t)1 : (uint8_t)0) : HIDDEN_ROW #define EXTERNAL_MODULE_OPTION_ROW (isModuleR9M(EXTERNAL_MODULE) || isModuleSBUS(EXTERNAL_MODULE) ? TITLE_ROW : MULTIMODULE_OPTIONS_ROW) diff --git a/radio/src/pulses/modules_helpers.h b/radio/src/pulses/modules_helpers.h index 2ae4280bf4..1d2325078b 100644 --- a/radio/src/pulses/modules_helpers.h +++ b/radio/src/pulses/modules_helpers.h @@ -108,7 +108,7 @@ inline bool isModuleR9M(uint8_t idx) return g_model.moduleData[idx].type == MODULE_TYPE_R9M_PXX1 || g_model.moduleData[idx].type == MODULE_TYPE_R9M_LITE_PXX1; } -inline bool isModuleR9M2(uint8_t idx) +inline bool isModuleR9MAccess(uint8_t idx) { return g_model.moduleData[idx].type == MODULE_TYPE_R9M_PXX2 || g_model.moduleData[idx].type == MODULE_TYPE_R9M_LITE_PXX2 || g_model.moduleData[idx].type == MODULE_TYPE_R9M_LITE_PRO_PXX2; } @@ -146,7 +146,7 @@ inline bool isModulePXX(uint8_t idx) inline bool isModulePXX2(uint8_t idx) { - return isModuleXJT2(idx) || isModuleR9M2(idx); + return isModuleXJT2(idx) || isModuleR9MAccess(idx); } inline bool isModuleRFAccess(uint8_t idx) @@ -154,7 +154,7 @@ inline bool isModuleRFAccess(uint8_t idx) if (isModuleXJT2(idx)) { return g_model.moduleData[idx].subType == MODULE_SUBTYPE_ISRM_PXX2_ACCESS; } - else if (isModuleR9M2(idx)) { + else if (isModuleR9MAccess(idx)) { return true; } else { diff --git a/radio/src/pulses/pxx2.cpp b/radio/src/pulses/pxx2.cpp index ada03129f0..3280d1fd0a 100644 --- a/radio/src/pulses/pxx2.cpp +++ b/radio/src/pulses/pxx2.cpp @@ -263,7 +263,12 @@ void Pxx2Pulses::setupAccessBindFrame(uint8_t module) for (uint8_t i=0; icandidateReceiversNames[destination->selectedReceiverIndex][i]); } - Pxx2Transport::addByte((destination->lbtMode << 6) + (destination->flexMode << 4) + destination->rxUid); // RX_UID is the slot index (which is unique and never moved) + if (isModuleR9MAccess(module)) { + Pxx2Transport::addByte((destination->lbtMode << 6) + (destination->flexMode << 4) + destination->rxUid); // RX_UID is the slot index (which is unique and never moved) + } + else { + Pxx2Transport::addByte(0x00); + } Pxx2Transport::addByte(g_model.header.modelId[module]); } else {