Enable set binding mode as a firmware option for frsky radios (#4743)
* Enable set binding mode as a firmware option for frsky radios * Improvements based on Bertrand's comments * Last feedbacks
This commit is contained in:
@@ -101,6 +101,33 @@ enum MenuModelSetupItems {
|
||||
#define MODEL_SETUP_RANGE_OFS 7*FW
|
||||
#define MODEL_SETUP_SET_FAILSAFE_OFS 10*FW-2
|
||||
|
||||
#if defined(BINDING_OPTIONS)
|
||||
void onBindMenu(const char * result)
|
||||
{
|
||||
if (result == STR_BINDING_1_8_TELEM_ON) {
|
||||
g_model.moduleData[INTERNAL_MODULE].pxx.receiver_telem_off = false;
|
||||
g_model.moduleData[INTERNAL_MODULE].pxx.receiver_channel_9_16 = false;
|
||||
}
|
||||
else if (result == STR_BINDING_1_8_TELEM_OFF) {
|
||||
g_model.moduleData[INTERNAL_MODULE].pxx.receiver_telem_off = true;
|
||||
g_model.moduleData[INTERNAL_MODULE].pxx.receiver_channel_9_16 = false;
|
||||
}
|
||||
else if (result == STR_BINDING_9_16_TELEM_ON) {
|
||||
g_model.moduleData[INTERNAL_MODULE].pxx.receiver_telem_off = false;
|
||||
g_model.moduleData[INTERNAL_MODULE].pxx.receiver_channel_9_16 = true;
|
||||
}
|
||||
else if (result == STR_BINDING_9_16_TELEM_OFF) {
|
||||
g_model.moduleData[INTERNAL_MODULE].pxx.receiver_telem_off = true;
|
||||
g_model.moduleData[INTERNAL_MODULE].pxx.receiver_channel_9_16 = true;
|
||||
}
|
||||
else {
|
||||
return;
|
||||
}
|
||||
|
||||
moduleFlag[INTERNAL_MODULE] = MODULE_BIND;
|
||||
}
|
||||
#endif
|
||||
|
||||
void copySelection(char * dst, const char * src, uint8_t size)
|
||||
{
|
||||
if (memcmp(src, "---", 3) == 0)
|
||||
@@ -884,11 +911,37 @@ void menuModelSetup(event_t event)
|
||||
s_editMode=0;
|
||||
}
|
||||
#endif
|
||||
#if defined(BINDING_OPTIONS)
|
||||
if (attr && l_posHorz>0) {
|
||||
if(s_editMode>0) {
|
||||
if (l_posHorz == 1) {
|
||||
if (IS_MODULE_XJT(moduleIdx) && g_model.moduleData[moduleIdx].rfProtocol== RF_PROTO_X16 && s_current_protocol[INTERNAL_MODULE] == PROTO_PXX) {
|
||||
if(event==EVT_KEY_BREAK(KEY_ENTER)) {
|
||||
POPUP_MENU_ADD_ITEM(STR_BINDING_1_8_TELEM_ON);
|
||||
POPUP_MENU_ADD_ITEM(STR_BINDING_1_8_TELEM_OFF);
|
||||
POPUP_MENU_ADD_ITEM(STR_BINDING_9_16_TELEM_ON);
|
||||
POPUP_MENU_ADD_ITEM(STR_BINDING_9_16_TELEM_OFF);
|
||||
POPUP_MENU_SELECT_ITEM(g_model.moduleData[INTERNAL_MODULE].pxx.receiver_telem_off + (g_model.moduleData[INTERNAL_MODULE].pxx.receiver_channel_9_16 << 1));
|
||||
POPUP_MENU_START(onBindMenu);
|
||||
continue;
|
||||
}
|
||||
if (moduleFlag[INTERNAL_MODULE] == MODULE_BIND)
|
||||
newFlag = MODULE_BIND;
|
||||
}
|
||||
else {
|
||||
newFlag = MODULE_BIND;
|
||||
}
|
||||
}
|
||||
else if (l_posHorz == 2) {
|
||||
newFlag = MODULE_RANGECHECK;
|
||||
}
|
||||
#else
|
||||
if (attr && l_posHorz>0 && s_editMode>0) {
|
||||
if (l_posHorz == 1)
|
||||
newFlag = MODULE_BIND;
|
||||
else if (l_posHorz == 2) {
|
||||
newFlag = MODULE_RANGECHECK;
|
||||
#endif
|
||||
}
|
||||
}
|
||||
moduleFlag[moduleIdx] = newFlag;
|
||||
|
||||
Reference in New Issue
Block a user