mirror of
https://github.com/opentx/opentx.git
synced 2025-07-20 06:45:10 +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
|
@ -1154,6 +1154,7 @@ void addOpenTxFrskyOptions(OpenTxFirmware * firmware)
|
||||||
firmware->addOption("nogvars", QObject::tr("Disable Global variables"));
|
firmware->addOption("nogvars", QObject::tr("Disable Global variables"));
|
||||||
firmware->addOption("lua", QObject::tr("Support for Lua model scripts"));
|
firmware->addOption("lua", QObject::tr("Support for Lua model scripts"));
|
||||||
firmware->addOption("luac", QObject::tr("Enable Lua compiler"));
|
firmware->addOption("luac", QObject::tr("Enable Lua compiler"));
|
||||||
|
firmware->addOption("bindopt", QObject::tr("Enable bindings options"));
|
||||||
Option usb_options[] = {{"massstorage", QObject::tr("Instead of Joystick emulation, USB connection is Mass Storage (as in the Bootloader)")},
|
Option usb_options[] = {{"massstorage", QObject::tr("Instead of Joystick emulation, USB connection is Mass Storage (as in the Bootloader)")},
|
||||||
{"cli", QObject::tr("Instead of Joystick emulation, USB connection is Command Line Interface")},
|
{"cli", QObject::tr("Instead of Joystick emulation, USB connection is Command Line Interface")},
|
||||||
{NULL}};
|
{NULL}};
|
||||||
|
|
|
@ -39,6 +39,7 @@ option(FAS_PROTOTYPE "Support of old FAS prototypes (different resistors)" OFF)
|
||||||
option(TEMPLATES "Model templates menu" OFF)
|
option(TEMPLATES "Model templates menu" OFF)
|
||||||
option(TRACE_SIMPGMSPACE "Turn on traces in simpgmspace.cpp" ON)
|
option(TRACE_SIMPGMSPACE "Turn on traces in simpgmspace.cpp" ON)
|
||||||
option(TRACE_LUA_INTERNALS "Turn on traces for Lua internals" OFF)
|
option(TRACE_LUA_INTERNALS "Turn on traces for Lua internals" OFF)
|
||||||
|
option(BINDING_OPTIONS "Allow advanced frsky bindings" OFF)
|
||||||
|
|
||||||
# since we reset all default CMAKE compiler flags for firmware builds, provide an alternate way for user to specify additional flags.
|
# since we reset all default CMAKE compiler flags for firmware builds, provide an alternate way for user to specify additional flags.
|
||||||
set(FIRMWARE_C_FLAGS "" CACHE STRING "Additional flags for firmware target c compiler (note: all CMAKE_C_FLAGS[_*] are ignored for firmware/bootloader).")
|
set(FIRMWARE_C_FLAGS "" CACHE STRING "Additional flags for firmware target c compiler (note: all CMAKE_C_FLAGS[_*] are ignored for firmware/bootloader).")
|
||||||
|
@ -326,6 +327,10 @@ if(TRACE_LUA_INTERNALS)
|
||||||
add_definitions(-DTRACE_LUA_INTERNALS_ENABLED)
|
add_definitions(-DTRACE_LUA_INTERNALS_ENABLED)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if(BINDING_OPTIONS)
|
||||||
|
add_definitions(-DBINDING_OPTIONS)
|
||||||
|
endif()
|
||||||
|
|
||||||
if(EEPROM_VARIANT_NEEDED)
|
if(EEPROM_VARIANT_NEEDED)
|
||||||
add_definitions(-DEEPROM_VARIANT=${EEPROM_VARIANT})
|
add_definitions(-DEEPROM_VARIANT=${EEPROM_VARIANT})
|
||||||
endif()
|
endif()
|
||||||
|
|
|
@ -676,7 +676,9 @@ PACK(struct ModuleData {
|
||||||
int8_t optionValue;
|
int8_t optionValue;
|
||||||
} multi);
|
} multi);
|
||||||
NOBACKUP(struct {
|
NOBACKUP(struct {
|
||||||
uint8_t spare:6;
|
uint8_t spare:4;
|
||||||
|
uint8_t receiver_telem_off:1; // false = receiver telem enabled
|
||||||
|
uint8_t receiver_channel_9_16:1; // false = pwm out 1-8, true 9-16
|
||||||
uint8_t external_antenna:1; // false = internal antenna, true = external antenna
|
uint8_t external_antenna:1; // false = internal antenna, true = external antenna
|
||||||
uint8_t spare2:1;
|
uint8_t spare2:1;
|
||||||
uint8_t spare3;
|
uint8_t spare3;
|
||||||
|
|
|
@ -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)
|
#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
|
#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)
|
void menuModelSetup(event_t event)
|
||||||
{
|
{
|
||||||
#if defined(PCBX7)
|
#if defined(PCBX7)
|
||||||
|
@ -870,11 +897,37 @@ void menuModelSetup(event_t event)
|
||||||
s_editMode=0;
|
s_editMode=0;
|
||||||
}
|
}
|
||||||
#endif
|
#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 (attr && l_posHorz>0 && s_editMode>0) {
|
||||||
if (l_posHorz == 1)
|
if (l_posHorz == 1)
|
||||||
newFlag = MODULE_BIND;
|
newFlag = MODULE_BIND;
|
||||||
else if (l_posHorz == 2) {
|
else if (l_posHorz == 2) {
|
||||||
newFlag = MODULE_RANGECHECK;
|
newFlag = MODULE_RANGECHECK;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
moduleFlag[moduleIdx] = newFlag;
|
moduleFlag[moduleIdx] = newFlag;
|
||||||
|
|
|
@ -73,6 +73,7 @@ extern uint8_t warningInfoFlags;
|
||||||
#if defined(CPUARM)
|
#if defined(CPUARM)
|
||||||
#define NAVIGATION_MENUS
|
#define NAVIGATION_MENUS
|
||||||
#define POPUP_MENU_ADD_ITEM(s) do { popupMenuOffsetType = MENU_OFFSET_INTERNAL; if (popupMenuNoItems < POPUP_MENU_MAX_LINES) popupMenuItems[popupMenuNoItems++] = s; } while (0)
|
#define POPUP_MENU_ADD_ITEM(s) do { popupMenuOffsetType = MENU_OFFSET_INTERNAL; if (popupMenuNoItems < POPUP_MENU_MAX_LINES) popupMenuItems[popupMenuNoItems++] = s; } while (0)
|
||||||
|
#define POPUP_MENU_SELECT_ITEM(s) s_menu_item = (s > 0 ? (s < popupMenuNoItems ? s : popupMenuNoItems) : 0)
|
||||||
#define POPUP_MENU_START(func) do { popupMenuHandler = (func); AUDIO_KEY_PRESS(); } while (0)
|
#define POPUP_MENU_START(func) do { popupMenuHandler = (func); AUDIO_KEY_PRESS(); } while (0)
|
||||||
#define POPUP_MENU_MAX_LINES 12
|
#define POPUP_MENU_MAX_LINES 12
|
||||||
#define MENU_MAX_DISPLAY_LINES 6
|
#define MENU_MAX_DISPLAY_LINES 6
|
||||||
|
@ -84,6 +85,7 @@ extern uint8_t warningInfoFlags;
|
||||||
MENU_OFFSET_EXTERNAL
|
MENU_OFFSET_EXTERNAL
|
||||||
};
|
};
|
||||||
extern uint8_t popupMenuOffsetType;
|
extern uint8_t popupMenuOffsetType;
|
||||||
|
extern uint8_t s_menu_item;
|
||||||
#elif defined(SDCARD) || (defined(ROTARY_ENCODER_NAVIGATION) && !defined(CPUM64))
|
#elif defined(SDCARD) || (defined(ROTARY_ENCODER_NAVIGATION) && !defined(CPUM64))
|
||||||
#define NAVIGATION_MENUS
|
#define NAVIGATION_MENUS
|
||||||
#define POPUP_MENU_ADD_ITEM(s) do { if (popupMenuNoItems < POPUP_MENU_MAX_LINES) popupMenuItems[popupMenuNoItems++] = s; } while (0)
|
#define POPUP_MENU_ADD_ITEM(s) do { if (popupMenuNoItems < POPUP_MENU_MAX_LINES) popupMenuItems[popupMenuNoItems++] = s; } while (0)
|
||||||
|
|
|
@ -101,6 +101,33 @@ enum MenuModelSetupItems {
|
||||||
#define MODEL_SETUP_RANGE_OFS 7*FW
|
#define MODEL_SETUP_RANGE_OFS 7*FW
|
||||||
#define MODEL_SETUP_SET_FAILSAFE_OFS 10*FW-2
|
#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)
|
void copySelection(char * dst, const char * src, uint8_t size)
|
||||||
{
|
{
|
||||||
if (memcmp(src, "---", 3) == 0)
|
if (memcmp(src, "---", 3) == 0)
|
||||||
|
@ -884,11 +911,37 @@ void menuModelSetup(event_t event)
|
||||||
s_editMode=0;
|
s_editMode=0;
|
||||||
}
|
}
|
||||||
#endif
|
#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 (attr && l_posHorz>0 && s_editMode>0) {
|
||||||
if (l_posHorz == 1)
|
if (l_posHorz == 1)
|
||||||
newFlag = MODULE_BIND;
|
newFlag = MODULE_BIND;
|
||||||
else if (l_posHorz == 2) {
|
else if (l_posHorz == 2) {
|
||||||
newFlag = MODULE_RANGECHECK;
|
newFlag = MODULE_RANGECHECK;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
moduleFlag[moduleIdx] = newFlag;
|
moduleFlag[moduleIdx] = newFlag;
|
||||||
|
|
|
@ -48,6 +48,7 @@ extern uint8_t warningInfoFlags;
|
||||||
|
|
||||||
#define NAVIGATION_MENUS
|
#define NAVIGATION_MENUS
|
||||||
#define POPUP_MENU_ADD_ITEM(s) do { popupMenuOffsetType = MENU_OFFSET_INTERNAL; if (popupMenuNoItems < POPUP_MENU_MAX_LINES) popupMenuItems[popupMenuNoItems++] = s; } while (0)
|
#define POPUP_MENU_ADD_ITEM(s) do { popupMenuOffsetType = MENU_OFFSET_INTERNAL; if (popupMenuNoItems < POPUP_MENU_MAX_LINES) popupMenuItems[popupMenuNoItems++] = s; } while (0)
|
||||||
|
#define POPUP_MENU_SELECT_ITEM(s) s_menu_item = (s > 0 ? (s < popupMenuNoItems ? s : popupMenuNoItems) : 0)
|
||||||
#define POPUP_MENU_START(func) do { popupMenuHandler = (func); AUDIO_KEY_PRESS(); } while (0)
|
#define POPUP_MENU_START(func) do { popupMenuHandler = (func); AUDIO_KEY_PRESS(); } while (0)
|
||||||
#define POPUP_MENU_MAX_LINES 12
|
#define POPUP_MENU_MAX_LINES 12
|
||||||
#define MENU_MAX_DISPLAY_LINES 6
|
#define MENU_MAX_DISPLAY_LINES 6
|
||||||
|
@ -62,6 +63,7 @@ enum {
|
||||||
MENU_OFFSET_EXTERNAL
|
MENU_OFFSET_EXTERNAL
|
||||||
};
|
};
|
||||||
extern uint8_t popupMenuOffsetType;
|
extern uint8_t popupMenuOffsetType;
|
||||||
|
extern uint8_t s_menu_item;
|
||||||
const char * runPopupMenu(event_t event);
|
const char * runPopupMenu(event_t event);
|
||||||
extern void (*popupMenuHandler)(const char * result);
|
extern void (*popupMenuHandler)(const char * result);
|
||||||
|
|
||||||
|
|
|
@ -483,6 +483,7 @@ extern uint8_t warningInfoFlags;
|
||||||
|
|
||||||
#define NAVIGATION_MENUS
|
#define NAVIGATION_MENUS
|
||||||
#define POPUP_MENU_ADD_ITEM(s) do { popupMenuOffsetType = MENU_OFFSET_INTERNAL; if (popupMenuNoItems < POPUP_MENU_MAX_LINES) popupMenuItems[popupMenuNoItems++] = s; } while (0)
|
#define POPUP_MENU_ADD_ITEM(s) do { popupMenuOffsetType = MENU_OFFSET_INTERNAL; if (popupMenuNoItems < POPUP_MENU_MAX_LINES) popupMenuItems[popupMenuNoItems++] = s; } while (0)
|
||||||
|
#define POPUP_MENU_SELECT_ITEM(s) s_menu_item = (s > 0 ? (s < popupMenuNoItems ? s : popupMenuNoItems) : 0)
|
||||||
#define POPUP_MENU_START(func) do { popupMenuHandler = (func); AUDIO_KEY_PRESS(); } while(0)
|
#define POPUP_MENU_START(func) do { popupMenuHandler = (func); AUDIO_KEY_PRESS(); } while(0)
|
||||||
#define POPUP_MENU_MAX_LINES 12
|
#define POPUP_MENU_MAX_LINES 12
|
||||||
#define MENU_MAX_DISPLAY_LINES 9
|
#define MENU_MAX_DISPLAY_LINES 9
|
||||||
|
@ -496,6 +497,7 @@ enum {
|
||||||
MENU_OFFSET_EXTERNAL
|
MENU_OFFSET_EXTERNAL
|
||||||
};
|
};
|
||||||
extern uint8_t popupMenuOffsetType;
|
extern uint8_t popupMenuOffsetType;
|
||||||
|
extern uint8_t s_menu_item;
|
||||||
const char * runPopupMenu(event_t event);
|
const char * runPopupMenu(event_t event);
|
||||||
extern void (*popupMenuHandler)(const char * result);
|
extern void (*popupMenuHandler)(const char * result);
|
||||||
|
|
||||||
|
|
|
@ -94,6 +94,33 @@ enum MenuModelSetupItems {
|
||||||
#define MODEL_SETUP_SET_FAILSAFE_OFS 100
|
#define MODEL_SETUP_SET_FAILSAFE_OFS 100
|
||||||
#define MODEL_SETUP_SLIDPOT_SPACING 45
|
#define MODEL_SETUP_SLIDPOT_SPACING 45
|
||||||
|
|
||||||
|
#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 onModelSetupBitmapMenu(const char * result)
|
void onModelSetupBitmapMenu(const char * result)
|
||||||
{
|
{
|
||||||
if (result == STR_UPDATE_LIST) {
|
if (result == STR_UPDATE_LIST) {
|
||||||
|
@ -794,11 +821,37 @@ bool menuModelSetup(event_t event)
|
||||||
s_editMode=0;
|
s_editMode=0;
|
||||||
}
|
}
|
||||||
#endif
|
#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 (attr && l_posHorz>0 && s_editMode>0) {
|
||||||
if (l_posHorz == 1)
|
if (l_posHorz == 1)
|
||||||
newFlag = MODULE_BIND;
|
newFlag = MODULE_BIND;
|
||||||
else if (l_posHorz == 2) {
|
else if (l_posHorz == 2) {
|
||||||
newFlag = MODULE_RANGECHECK;
|
newFlag = MODULE_RANGECHECK;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
moduleFlag[moduleIdx] = newFlag;
|
moduleFlag[moduleIdx] = newFlag;
|
||||||
|
|
|
@ -372,7 +372,18 @@ void setupPulsesPXX(uint8_t port)
|
||||||
pulseValueLow = pulseValue;
|
pulseValueLow = pulseValue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#if defined(BINDING_OPTIONS)
|
||||||
|
/* Ext. flag (holds antenna selection on Horus internal module, 0x00 otherwise) */
|
||||||
|
uint8_t extra_flags = XJT_INTERNAL_ANTENNA;
|
||||||
|
if (port == INTERNAL_MODULE) {
|
||||||
|
#if defined(PCBHORUS)
|
||||||
|
extra_flags = g_model.moduleData[INTERNAL_MODULE].pxx.external_antenna;
|
||||||
|
#endif
|
||||||
|
extra_flags |= g_model.moduleData[INTERNAL_MODULE].pxx.receiver_telem_off << 1;
|
||||||
|
extra_flags |= g_model.moduleData[INTERNAL_MODULE].pxx.receiver_channel_9_16 << 2;
|
||||||
|
}
|
||||||
|
putPcmByte(port, extra_flags);
|
||||||
|
#else //BINDING_OPTIONS
|
||||||
/* Ext. flag (holds antenna selection on Horus internal module, 0x00 otherwise) */
|
/* Ext. flag (holds antenna selection on Horus internal module, 0x00 otherwise) */
|
||||||
#if defined(PCBHORUS)
|
#if defined(PCBHORUS)
|
||||||
uint8_t antenna = XJT_INTERNAL_ANTENNA;
|
uint8_t antenna = XJT_INTERNAL_ANTENNA;
|
||||||
|
@ -382,6 +393,7 @@ void setupPulsesPXX(uint8_t port)
|
||||||
putPcmByte(port, antenna);
|
putPcmByte(port, antenna);
|
||||||
#else
|
#else
|
||||||
putPcmByte(port, 0);
|
putPcmByte(port, 0);
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* CRC */
|
/* CRC */
|
||||||
|
|
|
@ -592,6 +592,10 @@ const pm_char STR_BLCOLOR[] PROGMEM = TR_BLCOLOR;
|
||||||
#if defined(CPUARM)
|
#if defined(CPUARM)
|
||||||
const pm_char STR_TRAINER[] PROGMEM = TR_TRAINER;
|
const pm_char STR_TRAINER[] PROGMEM = TR_TRAINER;
|
||||||
const pm_char STR_MODULE_BIND[] PROGMEM = TR_MODULE_BIND;
|
const pm_char STR_MODULE_BIND[] PROGMEM = TR_MODULE_BIND;
|
||||||
|
const pm_char STR_BINDING_1_8_TELEM_ON[] PROGMEM = TR_BINDING_MODE1;
|
||||||
|
const pm_char STR_BINDING_1_8_TELEM_OFF[] PROGMEM = TR_BINDING_MODE2;
|
||||||
|
const pm_char STR_BINDING_9_16_TELEM_ON[] PROGMEM = TR_BINDING_MODE3;
|
||||||
|
const pm_char STR_BINDING_9_16_TELEM_OFF[] PROGMEM = TR_BINDING_MODE4;
|
||||||
const pm_char STR_CHANNELRANGE[] PROGMEM = TR_CHANNELRANGE;
|
const pm_char STR_CHANNELRANGE[] PROGMEM = TR_CHANNELRANGE;
|
||||||
const pm_char STR_ANTENNASELECTION[] PROGMEM = TR_ANTENNASELECTION;
|
const pm_char STR_ANTENNASELECTION[] PROGMEM = TR_ANTENNASELECTION;
|
||||||
const pm_char STR_ANTENNACONFIRM1[] PROGMEM = TR_ANTENNACONFIRM1;
|
const pm_char STR_ANTENNACONFIRM1[] PROGMEM = TR_ANTENNACONFIRM1;
|
||||||
|
|
|
@ -874,6 +874,10 @@ extern const pm_char STR_BLCOLOR[];
|
||||||
#if defined(CPUARM)
|
#if defined(CPUARM)
|
||||||
extern const pm_char STR_TRAINER[];
|
extern const pm_char STR_TRAINER[];
|
||||||
extern const pm_char STR_MODULE_BIND[];
|
extern const pm_char STR_MODULE_BIND[];
|
||||||
|
extern const pm_char STR_BINDING_1_8_TELEM_ON[];
|
||||||
|
extern const pm_char STR_BINDING_1_8_TELEM_OFF[];
|
||||||
|
extern const pm_char STR_BINDING_9_16_TELEM_ON[];
|
||||||
|
extern const pm_char STR_BINDING_9_16_TELEM_OFF[];
|
||||||
extern const pm_char STR_CHANNELRANGE[];
|
extern const pm_char STR_CHANNELRANGE[];
|
||||||
extern const pm_char STR_ANTENNASELECTION[];
|
extern const pm_char STR_ANTENNASELECTION[];
|
||||||
extern const pm_char STR_ANTENNACONFIRM1[];
|
extern const pm_char STR_ANTENNACONFIRM1[];
|
||||||
|
|
|
@ -850,6 +850,10 @@
|
||||||
#define TR_MODULE_NO_INPUT TR("No input", "No serial input")
|
#define TR_MODULE_NO_INPUT TR("No input", "No serial input")
|
||||||
#define TR_MODULE_NO_TELEMETRY TR3( "No telemetry", "No MULTI_TELEMETRY", "No MULTI_TELEMETRY detected")
|
#define TR_MODULE_NO_TELEMETRY TR3( "No telemetry", "No MULTI_TELEMETRY", "No MULTI_TELEMETRY detected")
|
||||||
#define TR_MODULE_BINDING TR("Bind...","Binding")
|
#define TR_MODULE_BINDING TR("Bind...","Binding")
|
||||||
|
#define TR_BINDING_MODE1 "Ch1-8 Telem ON"
|
||||||
|
#define TR_BINDING_MODE2 "Ch1-8 Telem OFF"
|
||||||
|
#define TR_BINDING_MODE3 "Ch9-16 Telem ON"
|
||||||
|
#define TR_BINDING_MODE4 "Ch9-16 Telem OFF"
|
||||||
#define TR_PROTOCOL_INVALID TR("Prot. invalid", "Protocol invalid")
|
#define TR_PROTOCOL_INVALID TR("Prot. invalid", "Protocol invalid")
|
||||||
#define TR_MODULE_STATUS TR(INDENT "Status", INDENT "Module Status")
|
#define TR_MODULE_STATUS TR(INDENT "Status", INDENT "Module Status")
|
||||||
#define TR_MULTI_SERVOFREQ TR(INDENT "Servo rate", INDENT "Servo update rate")
|
#define TR_MULTI_SERVOFREQ TR(INDENT "Servo rate", INDENT "Servo update rate")
|
||||||
|
|
|
@ -875,6 +875,10 @@
|
||||||
#define TR_MODULE_NO_INPUT TR("No input", "No serial input")
|
#define TR_MODULE_NO_INPUT TR("No input", "No serial input")
|
||||||
#define TR_MODULE_NO_TELEMETRY TR3( "No telmetry", "No MULTI_TELEMETRY", "No telemetry (enable MULTI_TELEMETRY)")
|
#define TR_MODULE_NO_TELEMETRY TR3( "No telmetry", "No MULTI_TELEMETRY", "No telemetry (enable MULTI_TELEMETRY)")
|
||||||
#define TR_MODULE_BINDING "Binding"
|
#define TR_MODULE_BINDING "Binding"
|
||||||
|
#define TR_BINDING_MODE1 "Ch1-8 Telem ON"
|
||||||
|
#define TR_BINDING_MODE2 "Ch1-8 Telem OFF"
|
||||||
|
#define TR_BINDING_MODE3 "Ch9-16 Telem ON"
|
||||||
|
#define TR_BINDING_MODE4 "Ch9-16 Telem OFF"
|
||||||
#define TR_PROTOCOL_INVALID TR("Prot. invalid", "Protocol invalid")
|
#define TR_PROTOCOL_INVALID TR("Prot. invalid", "Protocol invalid")
|
||||||
#define TR_MODULE_STATUS TR(INDENT "Status", INDENT "Module Status")
|
#define TR_MODULE_STATUS TR(INDENT "Status", INDENT "Module Status")
|
||||||
#define TR_MULTI_SERVOFREQ TR(INDENT "Servo rate", INDENT "Servo update rate")
|
#define TR_MULTI_SERVOFREQ TR(INDENT "Servo rate", INDENT "Servo update rate")
|
||||||
|
|
|
@ -853,6 +853,10 @@
|
||||||
#define TR_MODULE_NO_INPUT TR("No input", "No serial input")
|
#define TR_MODULE_NO_INPUT TR("No input", "No serial input")
|
||||||
#define TR_MODULE_NO_TELEMETRY TR3("No telemetry", "No MULTI_TELEMETRY", "No MULTI_TELEMETRY detected")
|
#define TR_MODULE_NO_TELEMETRY TR3("No telemetry", "No MULTI_TELEMETRY", "No MULTI_TELEMETRY detected")
|
||||||
#define TR_MODULE_BINDING TR("Bind...","Binding")
|
#define TR_MODULE_BINDING TR("Bind...","Binding")
|
||||||
|
#define TR_BINDING_MODE1 "Ch1-8 Telem ON"
|
||||||
|
#define TR_BINDING_MODE2 "Ch1-8 Telem OFF"
|
||||||
|
#define TR_BINDING_MODE3 "Ch9-16 Telem ON"
|
||||||
|
#define TR_BINDING_MODE4 "Ch9-16 Telem OFF"
|
||||||
#define TR_PROTOCOL_INVALID TR("Prot. invalid", "Protocol invalid")
|
#define TR_PROTOCOL_INVALID TR("Prot. invalid", "Protocol invalid")
|
||||||
#define TR_MODULE_STATUS TR(INDENT "Status", INDENT "Module Status")
|
#define TR_MODULE_STATUS TR(INDENT "Status", INDENT "Module Status")
|
||||||
#define TR_MULTI_SERVOFREQ TR(INDENT "Servo rate", INDENT "Servo update rate")
|
#define TR_MULTI_SERVOFREQ TR(INDENT "Servo rate", INDENT "Servo update rate")
|
||||||
|
|
|
@ -827,6 +827,10 @@
|
||||||
#define TR_MODULE_NO_INPUT TR("No input", "No serial input")
|
#define TR_MODULE_NO_INPUT TR("No input", "No serial input")
|
||||||
#define TR_MODULE_NO_TELEMETRY TR3( "No telmetry", "No MULTI_TELEMETRY", "No telemetry (enable MULTI_TELEMETRY)")
|
#define TR_MODULE_NO_TELEMETRY TR3( "No telmetry", "No MULTI_TELEMETRY", "No telemetry (enable MULTI_TELEMETRY)")
|
||||||
#define TR_MODULE_BINDING "Binding"
|
#define TR_MODULE_BINDING "Binding"
|
||||||
|
#define TR_BINDING_MODE1 "Ch1-8 Telem ON"
|
||||||
|
#define TR_BINDING_MODE2 "Ch1-8 Telem OFF"
|
||||||
|
#define TR_BINDING_MODE3 "Ch9-16 Telem ON"
|
||||||
|
#define TR_BINDING_MODE4 "Ch9-16 Telem OFF"
|
||||||
#define TR_PROTOCOL_INVALID TR("Prot. invalid", "Protocol invalid")
|
#define TR_PROTOCOL_INVALID TR("Prot. invalid", "Protocol invalid")
|
||||||
#define TR_MODULE_STATUS TR(INDENT "Status", INDENT "Module Status")
|
#define TR_MODULE_STATUS TR(INDENT "Status", INDENT "Module Status")
|
||||||
#define TR_MULTI_SERVOFREQ TR(INDENT "Servo rate", INDENT "Servo update rate")
|
#define TR_MULTI_SERVOFREQ TR(INDENT "Servo rate", INDENT "Servo update rate")
|
||||||
|
|
|
@ -823,6 +823,10 @@
|
||||||
#define TR_MODULE_NO_INPUT TR("No input", "No serial input")
|
#define TR_MODULE_NO_INPUT TR("No input", "No serial input")
|
||||||
#define TR_MODULE_NO_TELEMETRY TR3( "No telmetry", "No MULTI_TELEMETRY", "No telemetry (enable MULTI_TELEMETRY)")
|
#define TR_MODULE_NO_TELEMETRY TR3( "No telmetry", "No MULTI_TELEMETRY", "No telemetry (enable MULTI_TELEMETRY)")
|
||||||
#define TR_MODULE_BINDING "Binding"
|
#define TR_MODULE_BINDING "Binding"
|
||||||
|
#define TR_BINDING_MODE1 "Ch1-8 Telem ON"
|
||||||
|
#define TR_BINDING_MODE2 "Ch1-8 Telem OFF"
|
||||||
|
#define TR_BINDING_MODE3 "Ch9-16 Telem ON"
|
||||||
|
#define TR_BINDING_MODE4 "Ch9-16 Telem OFF"
|
||||||
#define TR_PROTOCOL_INVALID TR("Prot. invalid", "Protocol invalid")
|
#define TR_PROTOCOL_INVALID TR("Prot. invalid", "Protocol invalid")
|
||||||
#define TR_MODULE_STATUS TR(INDENT "Status", INDENT "Module Status")
|
#define TR_MODULE_STATUS TR(INDENT "Status", INDENT "Module Status")
|
||||||
#define TR_MULTI_SERVOFREQ TR(INDENT "Servo rate", INDENT "Servo update rate")
|
#define TR_MULTI_SERVOFREQ TR(INDENT "Servo rate", INDENT "Servo update rate")
|
||||||
|
|
|
@ -857,6 +857,10 @@
|
||||||
#define TR_MODULE_NO_INPUT TR("Pas de sign.", "Aucun signal série")
|
#define TR_MODULE_NO_INPUT TR("Pas de sign.", "Aucun signal série")
|
||||||
#define TR_MODULE_NO_TELEMETRY TR3("Pas de télm.", "Télémétrie absente", "Télémétrie absente(act. MULTI_TELEMETRY)")
|
#define TR_MODULE_NO_TELEMETRY TR3("Pas de télm.", "Télémétrie absente", "Télémétrie absente(act. MULTI_TELEMETRY)")
|
||||||
#define TR_MODULE_BINDING "Bind..."
|
#define TR_MODULE_BINDING "Bind..."
|
||||||
|
#define TR_BINDING_MODE1 "Ch1-8 Telem ON"
|
||||||
|
#define TR_BINDING_MODE2 "Ch1-8 Telem OFF"
|
||||||
|
#define TR_BINDING_MODE3 "Ch9-16 Telem ON"
|
||||||
|
#define TR_BINDING_MODE4 "Ch9-16 Telem OFF"
|
||||||
#define TR_PROTOCOL_INVALID TR("Sél. invalide", "Protocole invalide")
|
#define TR_PROTOCOL_INVALID TR("Sél. invalide", "Protocole invalide")
|
||||||
#define TR_MODULE_STATUS TR(INDENT "Etat", INDENT "Etat module")
|
#define TR_MODULE_STATUS TR(INDENT "Etat", INDENT "Etat module")
|
||||||
#define TR_MULTI_SERVOFREQ TR(INDENT "Fréq.servo", INDENT "Fréquence servos")
|
#define TR_MULTI_SERVOFREQ TR(INDENT "Fréq.servo", INDENT "Fréquence servos")
|
||||||
|
|
|
@ -858,6 +858,10 @@
|
||||||
#define TR_MODULE_NO_INPUT TR("No input", "No serial input")
|
#define TR_MODULE_NO_INPUT TR("No input", "No serial input")
|
||||||
#define TR_MODULE_NO_TELEMETRY TR3( "No telmetry", "No MULTI_TELEMETRY", "No telemetry (enable MULTI_TELEMETRY)")
|
#define TR_MODULE_NO_TELEMETRY TR3( "No telmetry", "No MULTI_TELEMETRY", "No telemetry (enable MULTI_TELEMETRY)")
|
||||||
#define TR_MODULE_BINDING "Binding"
|
#define TR_MODULE_BINDING "Binding"
|
||||||
|
#define TR_BINDING_MODE1 "Ch1-8 Telem ON"
|
||||||
|
#define TR_BINDING_MODE2 "Ch1-8 Telem OFF"
|
||||||
|
#define TR_BINDING_MODE3 "Ch9-16 Telem ON"
|
||||||
|
#define TR_BINDING_MODE4 "Ch9-16 Telem OFF"
|
||||||
#define TR_PROTOCOL_INVALID TR("Prot. invalid", "Protocol invalid")
|
#define TR_PROTOCOL_INVALID TR("Prot. invalid", "Protocol invalid")
|
||||||
#define TR_MODULE_STATUS TR(INDENT "Status", INDENT "Module Status")
|
#define TR_MODULE_STATUS TR(INDENT "Status", INDENT "Module Status")
|
||||||
#define TR_MULTI_SERVOFREQ TR(INDENT "Servo rate", INDENT "Servo update rate")
|
#define TR_MULTI_SERVOFREQ TR(INDENT "Servo rate", INDENT "Servo update rate")
|
||||||
|
|
|
@ -852,6 +852,10 @@
|
||||||
#define TR_MODULE_NO_INPUT TR("No input", "No serial input")
|
#define TR_MODULE_NO_INPUT TR("No input", "No serial input")
|
||||||
#define TR_MODULE_NO_TELEMETRY TR3( "No telmetry", "No MULTI_TELEMETRY", "No telemetry (enable MULTI_TELEMETRY)")
|
#define TR_MODULE_NO_TELEMETRY TR3( "No telmetry", "No MULTI_TELEMETRY", "No telemetry (enable MULTI_TELEMETRY)")
|
||||||
#define TR_MODULE_BINDING "Binding"
|
#define TR_MODULE_BINDING "Binding"
|
||||||
|
#define TR_BINDING_MODE1 "Ch1-8 Telem ON"
|
||||||
|
#define TR_BINDING_MODE2 "Ch1-8 Telem OFF"
|
||||||
|
#define TR_BINDING_MODE3 "Ch9-16 Telem ON"
|
||||||
|
#define TR_BINDING_MODE4 "Ch9-16 Telem OFF"
|
||||||
#define TR_PROTOCOL_INVALID TR("Prot. invalid", "Protocol invalid")
|
#define TR_PROTOCOL_INVALID TR("Prot. invalid", "Protocol invalid")
|
||||||
#define TR_MODULE_STATUS TR(INDENT "Status", INDENT "Module Status")
|
#define TR_MODULE_STATUS TR(INDENT "Status", INDENT "Module Status")
|
||||||
#define TR_MULTI_SERVOFREQ TR(INDENT "Servo rate", INDENT "Servo update rate")
|
#define TR_MULTI_SERVOFREQ TR(INDENT "Servo rate", INDENT "Servo update rate")
|
||||||
|
|
|
@ -860,6 +860,10 @@
|
||||||
#define TR_MODULE_NO_INPUT TR("No input", "No serial input")
|
#define TR_MODULE_NO_INPUT TR("No input", "No serial input")
|
||||||
#define TR_MODULE_NO_TELEMETRY TR3( "No telmetry", "No MULTI_TELEMETRY", "No telemetry (enable MULTI_TELEMETRY)")
|
#define TR_MODULE_NO_TELEMETRY TR3( "No telmetry", "No MULTI_TELEMETRY", "No telemetry (enable MULTI_TELEMETRY)")
|
||||||
#define TR_MODULE_BINDING "Binding"
|
#define TR_MODULE_BINDING "Binding"
|
||||||
|
#define TR_BINDING_MODE1 "Ch1-8 Telem ON"
|
||||||
|
#define TR_BINDING_MODE2 "Ch1-8 Telem OFF"
|
||||||
|
#define TR_BINDING_MODE3 "Ch9-16 Telem ON"
|
||||||
|
#define TR_BINDING_MODE4 "Ch9-16 Telem OFF"
|
||||||
#define TR_PROTOCOL_INVALID TR("Prot. invalid", "Protocol invalid")
|
#define TR_PROTOCOL_INVALID TR("Prot. invalid", "Protocol invalid")
|
||||||
#define TR_MODULE_STATUS TR(INDENT "Status", INDENT "Module Status")
|
#define TR_MODULE_STATUS TR(INDENT "Status", INDENT "Module Status")
|
||||||
#define TR_MULTI_SERVOFREQ TR(INDENT "Servo rate", INDENT "Servo update rate")
|
#define TR_MULTI_SERVOFREQ TR(INDENT "Servo rate", INDENT "Servo update rate")
|
||||||
|
|
|
@ -821,6 +821,10 @@
|
||||||
#define TR_MODULE_NO_INPUT TR("No input", "No serial input")
|
#define TR_MODULE_NO_INPUT TR("No input", "No serial input")
|
||||||
#define TR_MODULE_NO_TELEMETRY TR3( "No telmetry", "No MULTI_TELEMETRY", "No telemetry (enable MULTI_TELEMETRY)")
|
#define TR_MODULE_NO_TELEMETRY TR3( "No telmetry", "No MULTI_TELEMETRY", "No telemetry (enable MULTI_TELEMETRY)")
|
||||||
#define TR_MODULE_BINDING "Binding"
|
#define TR_MODULE_BINDING "Binding"
|
||||||
|
#define TR_BINDING_MODE1 "Ch1-8 Telem ON"
|
||||||
|
#define TR_BINDING_MODE2 "Ch1-8 Telem OFF"
|
||||||
|
#define TR_BINDING_MODE3 "Ch9-16 Telem ON"
|
||||||
|
#define TR_BINDING_MODE4 "Ch9-16 Telem OFF"
|
||||||
#define TR_PROTOCOL_INVALID TR("Prot. invalid", "Protocol invalid")
|
#define TR_PROTOCOL_INVALID TR("Prot. invalid", "Protocol invalid")
|
||||||
#define TR_MODULE_STATUS TR(INDENT "Status", INDENT "Module Status")
|
#define TR_MODULE_STATUS TR(INDENT "Status", INDENT "Module Status")
|
||||||
#define TR_MULTI_SERVOFREQ TR(INDENT "Servo rate", INDENT "Servo update rate")
|
#define TR_MULTI_SERVOFREQ TR(INDENT "Servo rate", INDENT "Servo update rate")
|
||||||
|
|
|
@ -872,6 +872,10 @@
|
||||||
#define TR_MODULE_NO_INPUT TR("No input", "No serial input")
|
#define TR_MODULE_NO_INPUT TR("No input", "No serial input")
|
||||||
#define TR_MODULE_NO_TELEMETRY TR3( "No telmetry", "No MULTI_TELEMETRY", "No telemetry (enable MULTI_TELEMETRY)")
|
#define TR_MODULE_NO_TELEMETRY TR3( "No telmetry", "No MULTI_TELEMETRY", "No telemetry (enable MULTI_TELEMETRY)")
|
||||||
#define TR_MODULE_BINDING "Binding"
|
#define TR_MODULE_BINDING "Binding"
|
||||||
|
#define TR_BINDING_MODE1 "Ch1-8 Telem ON"
|
||||||
|
#define TR_BINDING_MODE2 "Ch1-8 Telem OFF"
|
||||||
|
#define TR_BINDING_MODE3 "Ch9-16 Telem ON"
|
||||||
|
#define TR_BINDING_MODE4 "Ch9-16 Telem OFF"
|
||||||
#define TR_PROTOCOL_INVALID TR("Prot. invalid", "Protocol invalid")
|
#define TR_PROTOCOL_INVALID TR("Prot. invalid", "Protocol invalid")
|
||||||
#define TR_MODULE_STATUS TR(INDENT "Status", INDENT "Module Status")
|
#define TR_MODULE_STATUS TR(INDENT "Status", INDENT "Module Status")
|
||||||
#define TR_MULTI_SERVOFREQ TR(INDENT "Servo rate", INDENT "Servo update rate")
|
#define TR_MULTI_SERVOFREQ TR(INDENT "Servo rate", INDENT "Servo update rate")
|
||||||
|
|
|
@ -247,7 +247,8 @@ options_taranis = {
|
||||||
"internalppm": ("TARANIS_INTERNAL_PPM", "YES", "NO"),
|
"internalppm": ("TARANIS_INTERNAL_PPM", "YES", "NO"),
|
||||||
"shutdownconfirm": ("SHUTDOWN_CONFIRMATION", "YES", "NO"),
|
"shutdownconfirm": ("SHUTDOWN_CONFIRMATION", "YES", "NO"),
|
||||||
"eu": ("SUPPORT_D16_EU_ONLY", "YES", "NO"),
|
"eu": ("SUPPORT_D16_EU_ONLY", "YES", "NO"),
|
||||||
"multimodule": ("MULTIMODULE", "YES", "NO")
|
"multimodule": ("MULTIMODULE", "YES", "NO"),
|
||||||
|
"bindopt": ("BINDING_OPTIONS", "YES", "NO")
|
||||||
}
|
}
|
||||||
|
|
||||||
options_taranisplus = {
|
options_taranisplus = {
|
||||||
|
@ -266,7 +267,8 @@ options_taranisplus = {
|
||||||
"internalppm": ("TARANIS_INTERNAL_PPM", "YES", "NO"),
|
"internalppm": ("TARANIS_INTERNAL_PPM", "YES", "NO"),
|
||||||
"shutdownconfirm": ("SHUTDOWN_CONFIRMATION", "YES", "NO"),
|
"shutdownconfirm": ("SHUTDOWN_CONFIRMATION", "YES", "NO"),
|
||||||
"eu": ("SUPPORT_D16_EU_ONLY", "YES", "NO"),
|
"eu": ("SUPPORT_D16_EU_ONLY", "YES", "NO"),
|
||||||
"multimodule": ("MULTIMODULE", "YES", "NO")
|
"multimodule": ("MULTIMODULE", "YES", "NO"),
|
||||||
|
"bindopt": ("BINDING_OPTIONS", "YES", "NO")
|
||||||
}
|
}
|
||||||
|
|
||||||
options_taranisx9e = {
|
options_taranisx9e = {
|
||||||
|
@ -286,7 +288,8 @@ options_taranisx9e = {
|
||||||
"shutdownconfirm": ("SHUTDOWN_CONFIRMATION", "YES", "NO"),
|
"shutdownconfirm": ("SHUTDOWN_CONFIRMATION", "YES", "NO"),
|
||||||
"eu": ("SUPPORT_D16_EU_ONLY", "YES", "NO"),
|
"eu": ("SUPPORT_D16_EU_ONLY", "YES", "NO"),
|
||||||
"horussticks": ("STICKS", "HORUS", "STANDARD"),
|
"horussticks": ("STICKS", "HORUS", "STANDARD"),
|
||||||
"multimodule": ("MULTIMODULE", "YES", "NO")
|
"multimodule": ("MULTIMODULE", "YES", "NO"),
|
||||||
|
"bindopt": ("BINDING_OPTIONS", "YES", "NO")
|
||||||
}
|
}
|
||||||
|
|
||||||
options_x12s = {
|
options_x12s = {
|
||||||
|
@ -303,6 +306,7 @@ options_x12s = {
|
||||||
"eu": ("SUPPORT_D16_EU_ONLY", "YES", "NO"),
|
"eu": ("SUPPORT_D16_EU_ONLY", "YES", "NO"),
|
||||||
"multimodule": ("MULTIMODULE", "YES", "NO"),
|
"multimodule": ("MULTIMODULE", "YES", "NO"),
|
||||||
"pcbdev": ("PCBREV", "10", None),
|
"pcbdev": ("PCBREV", "10", None),
|
||||||
|
"bindopt": ("BINDING_OPTIONS", "YES", "NO")
|
||||||
}
|
}
|
||||||
|
|
||||||
options_x10 = {
|
options_x10 = {
|
||||||
|
@ -318,4 +322,5 @@ options_x10 = {
|
||||||
"cli": ("USB", "SERIAL", None),
|
"cli": ("USB", "SERIAL", None),
|
||||||
"eu": ("SUPPORT_D16_EU_ONLY", "YES", "NO"),
|
"eu": ("SUPPORT_D16_EU_ONLY", "YES", "NO"),
|
||||||
"multimodule": ("MULTIMODULE", "YES", "NO"),
|
"multimodule": ("MULTIMODULE", "YES", "NO"),
|
||||||
|
"bindopt": ("BINDING_OPTIONS", "YES", "NO")
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue