mirror of
https://github.com/EdgeTX/edgetx.git
synced 2025-07-23 16:25:12 +03:00
R9M Access Fixes
This commit is contained in:
parent
74cd67fa35
commit
f888b83add
8 changed files with 20 additions and 15 deletions
|
@ -1194,7 +1194,7 @@ void menuModelSetup(event_t event)
|
||||||
|
|
||||||
drawReceiverName(MODEL_SETUP_2ND_COLUMN, y, moduleIdx, receiverIdx, attr);
|
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;
|
moduleInformation.information.modelID = 0;
|
||||||
moduleState[moduleIdx].startBind(&reusableBuffer.moduleSetup.bindInformation);
|
moduleState[moduleIdx].startBind(&reusableBuffer.moduleSetup.bindInformation);
|
||||||
}
|
}
|
||||||
|
@ -1338,7 +1338,7 @@ void menuModelSetup(event_t event)
|
||||||
if (attr && l_posHorz > 0) {
|
if (attr && l_posHorz > 0) {
|
||||||
if (s_editMode > 0) {
|
if (s_editMode > 0) {
|
||||||
if (l_posHorz == 1) {
|
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 defined(PCBXLITE)
|
||||||
if (EVT_KEY_MASK(event) == KEY_ENTER) {
|
if (EVT_KEY_MASK(event) == KEY_ENTER) {
|
||||||
#elif defined(PCBSKY9X) || defined(PCBAR9X)
|
#elif defined(PCBSKY9X) || defined(PCBAR9X)
|
||||||
|
|
|
@ -1414,7 +1414,7 @@ void menuModelSetup(event_t event)
|
||||||
|
|
||||||
drawReceiverName(MODEL_SETUP_2ND_COLUMN, y, moduleIdx, receiverIdx, attr);
|
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;
|
moduleInformation.information.modelID = 0;
|
||||||
moduleState[moduleIdx].startBind(&reusableBuffer.moduleSetup.bindInformation);
|
moduleState[moduleIdx].startBind(&reusableBuffer.moduleSetup.bindInformation);
|
||||||
}
|
}
|
||||||
|
|
|
@ -111,7 +111,7 @@ void menuModelReceiverOptions(event_t event)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ITEM_RECEIVER_PWM_RATE:
|
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) {
|
if (attr && checkIncDec_Ret) {
|
||||||
reusableBuffer.hardwareAndSettings.receiverSettings.dirty = true;
|
reusableBuffer.hardwareAndSettings.receiverSettings.dirty = true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -50,10 +50,10 @@ void onPXX2R9MBindModeMenu(const char * result)
|
||||||
else if (result == STR_16CH_WITHOUT_TELEMETRY) {
|
else if (result == STR_16CH_WITHOUT_TELEMETRY) {
|
||||||
reusableBuffer.moduleSetup.bindInformation.lbtMode = 2;
|
reusableBuffer.moduleSetup.bindInformation.lbtMode = 2;
|
||||||
}
|
}
|
||||||
else if (result == STR_FLEX_868) {
|
else if (result == STR_FLEX_915) {
|
||||||
reusableBuffer.moduleSetup.bindInformation.flexMode = 0;
|
reusableBuffer.moduleSetup.bindInformation.flexMode = 0;
|
||||||
}
|
}
|
||||||
else if (result == STR_FLEX_915) {
|
else if (result == STR_FLEX_868) {
|
||||||
reusableBuffer.moduleSetup.bindInformation.flexMode = 1;
|
reusableBuffer.moduleSetup.bindInformation.flexMode = 1;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
@ -83,14 +83,14 @@ void onPXX2BindMenu(const char * result)
|
||||||
if (result != STR_EXIT) {
|
if (result != STR_EXIT) {
|
||||||
uint8_t moduleIdx = CURRENT_MODULE_EDITED(menuVerticalPosition - HEADER_LINE);
|
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]);
|
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;
|
reusableBuffer.moduleSetup.bindInformation.step = BIND_RX_NAME_SELECTED;
|
||||||
POPUP_MENU_ADD_ITEM(STR_8CH_WITH_TELEMETRY);
|
POPUP_MENU_ADD_ITEM(STR_8CH_WITH_TELEMETRY);
|
||||||
POPUP_MENU_ADD_ITEM(STR_16CH_WITH_TELEMETRY);
|
POPUP_MENU_ADD_ITEM(STR_16CH_WITH_TELEMETRY);
|
||||||
POPUP_MENU_ADD_ITEM(STR_16CH_WITHOUT_TELEMETRY);
|
POPUP_MENU_ADD_ITEM(STR_16CH_WITHOUT_TELEMETRY);
|
||||||
POPUP_MENU_START(onPXX2R9MBindModeMenu);
|
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;
|
reusableBuffer.moduleSetup.bindInformation.step = BIND_RX_NAME_SELECTED;
|
||||||
POPUP_MENU_ADD_ITEM(STR_FLEX_868);
|
POPUP_MENU_ADD_ITEM(STR_FLEX_868);
|
||||||
POPUP_MENU_ADD_ITEM(STR_FLEX_915);
|
POPUP_MENU_ADD_ITEM(STR_FLEX_915);
|
||||||
|
@ -142,7 +142,7 @@ void onPXX2ReceiverMenu(const char * result)
|
||||||
else if (result == STR_BIND) {
|
else if (result == STR_BIND) {
|
||||||
memclear(&reusableBuffer.moduleSetup.bindInformation, sizeof(BindInformation));
|
memclear(&reusableBuffer.moduleSetup.bindInformation, sizeof(BindInformation));
|
||||||
reusableBuffer.moduleSetup.bindInformation.rxUid = receiverIdx;
|
reusableBuffer.moduleSetup.bindInformation.rxUid = receiverIdx;
|
||||||
if (isModuleR9M2(moduleIdx)) {
|
if (isModuleR9MAccess(moduleIdx)) {
|
||||||
#if defined(SIMU)
|
#if defined(SIMU)
|
||||||
reusableBuffer.moduleSetup.pxx2.moduleInformation.information.modelID = 1;
|
reusableBuffer.moduleSetup.pxx2.moduleInformation.information.modelID = 1;
|
||||||
reusableBuffer.moduleSetup.pxx2.moduleInformation.information.variant = 2;
|
reusableBuffer.moduleSetup.pxx2.moduleInformation.information.variant = 2;
|
||||||
|
|
|
@ -51,7 +51,7 @@ void menuRadioSpectrumAnalyser(event_t event)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isModuleR9M2(g_moduleIdx)) {
|
if (isModuleR9MAccess(g_moduleIdx)) {
|
||||||
reusableBuffer.spectrumAnalyser.spanDefault = 20;
|
reusableBuffer.spectrumAnalyser.spanDefault = 20;
|
||||||
reusableBuffer.spectrumAnalyser.spanMax = 40;
|
reusableBuffer.spectrumAnalyser.spanMax = 40;
|
||||||
reusableBuffer.spectrumAnalyser.freqDefault = 890;
|
reusableBuffer.spectrumAnalyser.freqDefault = 890;
|
||||||
|
|
|
@ -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_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 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)
|
#define EXTERNAL_MODULE_OPTION_ROW (isModuleR9M(EXTERNAL_MODULE) || isModuleSBUS(EXTERNAL_MODULE) ? TITLE_ROW : MULTIMODULE_OPTIONS_ROW)
|
||||||
|
|
||||||
|
|
|
@ -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;
|
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;
|
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)
|
inline bool isModulePXX2(uint8_t idx)
|
||||||
{
|
{
|
||||||
return isModuleXJT2(idx) || isModuleR9M2(idx);
|
return isModuleXJT2(idx) || isModuleR9MAccess(idx);
|
||||||
}
|
}
|
||||||
|
|
||||||
inline bool isModuleRFAccess(uint8_t idx)
|
inline bool isModuleRFAccess(uint8_t idx)
|
||||||
|
@ -154,7 +154,7 @@ inline bool isModuleRFAccess(uint8_t idx)
|
||||||
if (isModuleXJT2(idx)) {
|
if (isModuleXJT2(idx)) {
|
||||||
return g_model.moduleData[idx].subType == MODULE_SUBTYPE_ISRM_PXX2_ACCESS;
|
return g_model.moduleData[idx].subType == MODULE_SUBTYPE_ISRM_PXX2_ACCESS;
|
||||||
}
|
}
|
||||||
else if (isModuleR9M2(idx)) {
|
else if (isModuleR9MAccess(idx)) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|
|
@ -263,7 +263,12 @@ void Pxx2Pulses::setupAccessBindFrame(uint8_t module)
|
||||||
for (uint8_t i=0; i<PXX2_LEN_RX_NAME; i++) {
|
for (uint8_t i=0; i<PXX2_LEN_RX_NAME; i++) {
|
||||||
Pxx2Transport::addByte(destination->candidateReceiversNames[destination->selectedReceiverIndex][i]);
|
Pxx2Transport::addByte(destination->candidateReceiversNames[destination->selectedReceiverIndex][i]);
|
||||||
}
|
}
|
||||||
|
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)
|
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]);
|
Pxx2Transport::addByte(g_model.header.modelId[module]);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue