mirror of
https://github.com/opentx/opentx.git
synced 2025-07-26 01:35:21 +03:00
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:
parent
8794f45816
commit
3a8f9adb4d
24 changed files with 248 additions and 6 deletions
|
@ -171,6 +171,33 @@ enum MenuModelSetupItems {
|
|||
#define MODEL_SETUP_MAX_LINES ((IS_PPM_PROTOCOL(protocol)||IS_DSM2_PROTOCOL(protocol)||IS_PXX_PROTOCOL(protocol)) ? HEADER_LINE+ITEM_MODEL_SETUP_MAX : HEADER_LINE+ITEM_MODEL_SETUP_MAX-1)
|
||||
#endif
|
||||
|
||||
#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 menuModelSetup(event_t event)
|
||||
{
|
||||
#if defined(PCBX7)
|
||||
|
@ -870,11 +897,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;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue