Merge pull request #2162 from opentx/kilrah/765_source_popup
Source category selection popup (Fix #765)
This commit is contained in:
Binary file not shown.
|
Before Width: | Height: | Size: 331 B After Width: | Height: | Size: 15 KiB |
@@ -347,3 +347,14 @@ bool modelHasNotes()
|
||||
return isFileAvailable(filename);
|
||||
}
|
||||
|
||||
int getFirstAvailableSource(int min, int max, bool (*func)(int))
|
||||
{
|
||||
int retval = MIXSRC_NONE;
|
||||
for (int i = min; i <= max; i++) {
|
||||
if ((*func)(i)) {
|
||||
retval = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
return retval;
|
||||
}
|
||||
|
||||
@@ -202,6 +202,7 @@ bool isSwitchAvailableInCustomFunctions(int swtch);
|
||||
bool isSwitchAvailableInMixes(int swtch);
|
||||
bool isSwitchAvailableInTimers(int swtch);
|
||||
bool isModuleAvailable(int module);
|
||||
int getFirstAvailableSource(int min, int max, bool (*func)(int));
|
||||
#define AUTOSWITCH_ENTER_LONG() (attr && event==EVT_KEY_LONG(KEY_ENTER))
|
||||
#define CHECK_INCDEC_SWITCH(event, var, min, max, flags, available) \
|
||||
var = checkIncDec(event, var, min, max, (flags)|INCDEC_SWITCH, available)
|
||||
@@ -326,7 +327,8 @@ extern uint8_t s_warning_info_flags;
|
||||
|
||||
#define NAVIGATION_MENUS
|
||||
#define MENU_ADD_ITEM(s) s_menu[s_menu_count++] = s
|
||||
#define MENU_MAX_LINES 6
|
||||
#define MENU_MAX_LINES 11
|
||||
#define MENU_MAX_DISPLAY_LINES 6
|
||||
#define MENU_ADD_SD_ITEM(s) MENU_ADD_ITEM(s)
|
||||
#define MENU_LINE_LENGTH (LEN_MODEL_NAME+12)
|
||||
extern const char *s_menu[MENU_MAX_LINES];
|
||||
|
||||
@@ -42,6 +42,7 @@ horzpos_t m_posHorz;
|
||||
int8_t s_editMode;
|
||||
uint8_t s_noHi;
|
||||
uint8_t calibrationState;
|
||||
int s_source = MIXSRC_NONE;
|
||||
|
||||
#if defined(AUTOSWITCH)
|
||||
int8_t checkIncDecMovedSwitch(int8_t val)
|
||||
@@ -70,6 +71,42 @@ INIT_STOPS(stops100, 3, -100, 0, 100)
|
||||
INIT_STOPS(stops1000, 3, -1000, 0, 1000)
|
||||
INIT_STOPS(stopsSwitch, 15, SWSRC_FIRST, CATEGORY_END(-SWSRC_FIRST_LOGICAL_SWITCH), CATEGORY_END(-SWSRC_FIRST_TRIM), CATEGORY_END(-SWSRC_LAST_SWITCH+1), 0, CATEGORY_END(SWSRC_LAST_SWITCH), CATEGORY_END(SWSRC_FIRST_TRIM-1), CATEGORY_END(SWSRC_FIRST_LOGICAL_SWITCH-1), SWSRC_LAST)
|
||||
|
||||
void onLongEnterPress(const char *result)
|
||||
{
|
||||
if (result == STR_MENU_INPUTS)
|
||||
s_source = getFirstAvailableSource(MIXSRC_FIRST_INPUT, MIXSRC_LAST_INPUT, isInputAvailable)+1;
|
||||
#if defined(LUA_MODEL_SCRIPTS)
|
||||
else if (result == STR_MENU_LUA)
|
||||
s_source = getFirstAvailableSource(MIXSRC_FIRST_LUA, MIXSRC_LAST_LUA, isSourceAvailable);
|
||||
#endif
|
||||
else if (result == STR_MENU_STICKS)
|
||||
s_source = MIXSRC_FIRST_STICK;
|
||||
else if (result == STR_MENU_POTS)
|
||||
s_source = MIXSRC_FIRST_POT;
|
||||
else if (result == STR_MENU_MAX)
|
||||
s_source = MIXSRC_MAX;
|
||||
else if (result == STR_MENU_HELI)
|
||||
s_source = MIXSRC_FIRST_HELI;
|
||||
else if (result == STR_MENU_TRIMS)
|
||||
s_source = MIXSRC_FIRST_TRIM;
|
||||
else if (result == STR_MENU_SWITCHES)
|
||||
s_source = MIXSRC_FIRST_SWITCH;
|
||||
else if (result == STR_MENU_TRAINER)
|
||||
s_source = MIXSRC_FIRST_TRAINER;
|
||||
else if (result == STR_MENU_CHANNELS)
|
||||
s_source = getFirstAvailableSource(MIXSRC_FIRST_CH, MIXSRC_LAST_CH, isSourceAvailable);
|
||||
|
||||
else if (result == STR_MENU_TELEMETRY) {
|
||||
for (int i = 0; i < TELEM_VALUES_MAX; i++) {
|
||||
TelemetrySensor * sensor = & g_model.telemetrySensors[i];
|
||||
if (sensor->isAvailable()) {
|
||||
s_source = MIXSRC_FIRST_TELEM + 3*i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int checkIncDec(unsigned int event, int val, int i_min, int i_max, unsigned int i_flags, IsValueAvailable isValueAvailable, const CheckIncDecStops &stops)
|
||||
{
|
||||
int newval = val;
|
||||
@@ -207,6 +244,54 @@ int checkIncDec(unsigned int event, int val, int i_min, int i_max, unsigned int
|
||||
else {
|
||||
checkIncDec_Ret = 0;
|
||||
}
|
||||
|
||||
if (i_flags & INCDEC_SOURCE) {
|
||||
if (event == EVT_KEY_LONG(KEY_ENTER)) {
|
||||
killEvents(event);
|
||||
s_source = MIXSRC_NONE;
|
||||
|
||||
if (i_min <= MIXSRC_FIRST_INPUT && i_max >= MIXSRC_FIRST_INPUT) {
|
||||
if (getFirstAvailableSource(MIXSRC_FIRST_INPUT, MIXSRC_LAST_INPUT, isInputAvailable) != MIXSRC_NONE)
|
||||
MENU_ADD_ITEM(STR_MENU_INPUTS);
|
||||
}
|
||||
#if defined(LUA_MODEL_SCRIPTS)
|
||||
if (i_min <= MIXSRC_FIRST_LUA && i_max >= MIXSRC_FIRST_LUA) {
|
||||
if (getFirstAvailableSource(MIXSRC_FIRST_LUA, MIXSRC_LAST_LUA, isSourceAvailable) != MIXSRC_NONE)
|
||||
MENU_ADD_ITEM(STR_MENU_LUA);
|
||||
}
|
||||
#endif
|
||||
if (i_min <= MIXSRC_FIRST_STICK && i_max >= MIXSRC_FIRST_STICK) MENU_ADD_ITEM(STR_MENU_STICKS);
|
||||
if (i_min <= MIXSRC_FIRST_POT && i_max >= MIXSRC_FIRST_POT) MENU_ADD_ITEM(STR_MENU_POTS);
|
||||
if (i_min <= MIXSRC_MAX && i_max >= MIXSRC_MAX) MENU_ADD_ITEM(STR_MENU_MAX);
|
||||
#if defined(HELI)
|
||||
if (i_min <= MIXSRC_FIRST_HELI && i_max >= MIXSRC_FIRST_HELI) MENU_ADD_ITEM(STR_MENU_HELI);
|
||||
#endif
|
||||
if (i_min <= MIXSRC_FIRST_TRIM && i_max >= MIXSRC_FIRST_TRIM) MENU_ADD_ITEM(STR_MENU_TRIMS);
|
||||
if (i_min <= MIXSRC_FIRST_SWITCH && i_max >= MIXSRC_FIRST_SWITCH) MENU_ADD_ITEM(STR_MENU_SWITCHES);
|
||||
if (i_min <= MIXSRC_FIRST_TRAINER && i_max >= MIXSRC_FIRST_TRAINER) MENU_ADD_ITEM(STR_MENU_TRAINER);
|
||||
if (i_min <= MIXSRC_FIRST_CH && i_max >= MIXSRC_FIRST_CH) MENU_ADD_ITEM(STR_MENU_CHANNELS);
|
||||
|
||||
if (i_min <= MIXSRC_FIRST_TELEM && i_max >= MIXSRC_FIRST_TELEM) {
|
||||
bool available = false;
|
||||
for (int i = 0; i < TELEM_VALUES_MAX; i++) {
|
||||
TelemetrySensor * sensor = & g_model.telemetrySensors[i];
|
||||
if (sensor->isAvailable()) {
|
||||
available = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (available)
|
||||
MENU_ADD_ITEM(STR_MENU_TELEMETRY);
|
||||
}
|
||||
menuHandler = onLongEnterPress;
|
||||
}
|
||||
if (s_source != MIXSRC_NONE) {
|
||||
newval = s_source;
|
||||
if (s_source != MIXSRC_MAX)
|
||||
s_editMode = 1;
|
||||
s_source = MIXSRC_NONE;
|
||||
}
|
||||
}
|
||||
return newval;
|
||||
}
|
||||
|
||||
@@ -229,6 +314,7 @@ void onLongMenuPress(const char *result)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
tmr10ms_t menuEntryTime;
|
||||
|
||||
void check(const char *name, check_event_t event, uint8_t curr, const MenuFuncP *menuTab, uint8_t menuTabSize, const pm_uint8_t *horTab, uint8_t horTabMax, vertpos_t rowcount, uint8_t flags)
|
||||
|
||||
@@ -127,18 +127,18 @@ const char * displayMenu(uint8_t event)
|
||||
{
|
||||
const char * result = NULL;
|
||||
|
||||
uint8_t display_count = min(s_menu_count, (uint16_t)MENU_MAX_LINES);
|
||||
uint8_t display_count = min(s_menu_count, (uint16_t)MENU_MAX_DISPLAY_LINES);
|
||||
uint8_t y = (display_count >= 5 ? MENU_Y - FH - 1 : MENU_Y);
|
||||
drawFilledRect(MENU_X, y, MENU_W, display_count * (FH+1) + 2, SOLID, ERASE);
|
||||
lcd_rect(MENU_X, y, MENU_W, display_count * (FH+1) + 2);
|
||||
|
||||
for (uint8_t i=0; i<display_count; i++) {
|
||||
lcd_putsAtt(MENU_X+6, i*(FH+1) + y + 2, s_menu[i], s_menu_flags);
|
||||
lcd_putsAtt(MENU_X+6, i*(FH+1) + y + 2, s_menu[i+s_menu_offset], s_menu_flags);
|
||||
if (i == s_menu_item) drawFilledRect(MENU_X+1, i*(FH+1) + y + 1, MENU_W-2, 9);
|
||||
}
|
||||
|
||||
if (s_menu_count > display_count) {
|
||||
displayScrollbar(MENU_X+MENU_W-1, y+1, MENU_MAX_LINES * (FH+1), s_menu_offset, s_menu_count, MENU_MAX_LINES);
|
||||
displayScrollbar(MENU_X+MENU_W-1, y+1, MENU_MAX_DISPLAY_LINES * (FH+1), s_menu_offset, s_menu_count, display_count);
|
||||
}
|
||||
|
||||
switch(event) {
|
||||
@@ -152,9 +152,9 @@ const char * displayMenu(uint8_t event)
|
||||
result = STR_UPDATE_LIST;
|
||||
}
|
||||
else {
|
||||
s_menu_item = display_count - 1;
|
||||
if (s_menu_count > MENU_MAX_LINES) {
|
||||
s_menu_offset = s_menu_count - display_count;
|
||||
s_menu_item = min(display_count, (uint8_t)MENU_MAX_DISPLAY_LINES)-1;
|
||||
if (s_menu_count > MENU_MAX_DISPLAY_LINES) {
|
||||
s_menu_offset = s_menu_count - MENU_MAX_DISPLAY_LINES;
|
||||
result = STR_UPDATE_LIST;
|
||||
}
|
||||
}
|
||||
@@ -179,7 +179,7 @@ const char * displayMenu(uint8_t event)
|
||||
break;
|
||||
CASE_EVT_ROTARY_BREAK
|
||||
case EVT_KEY_BREAK(KEY_ENTER):
|
||||
result = s_menu[s_menu_item];
|
||||
result = s_menu[s_menu_item+s_menu_offset];
|
||||
// no break
|
||||
case EVT_KEY_BREAK(KEY_EXIT):
|
||||
s_menu_count = 0;
|
||||
|
||||
+14
-11
@@ -1766,10 +1766,11 @@ enum MixSources {
|
||||
MIXSRC_LAST_LUA = MIXSRC_FIRST_LUA+(MAX_SCRIPTS*MAX_SCRIPT_OUTPUTS)-1,
|
||||
#endif
|
||||
|
||||
MIXSRC_Rud, LUA_EXPORT("rud", "Rudder")
|
||||
MIXSRC_Ele, LUA_EXPORT("ele", "Elevator")
|
||||
MIXSRC_Thr, LUA_EXPORT("thr", "Throttle")
|
||||
MIXSRC_Ail, LUA_EXPORT("ail", "Aileron")
|
||||
MIXSRC_FIRST_STICK,
|
||||
MIXSRC_Rud = MIXSRC_FIRST_STICK, LUA_EXPORT("rud", "Rudder")
|
||||
MIXSRC_Ele, LUA_EXPORT("ele", "Elevator")
|
||||
MIXSRC_Thr, LUA_EXPORT("thr", "Throttle")
|
||||
MIXSRC_Ail, LUA_EXPORT("ail", "Aileron")
|
||||
|
||||
MIXSRC_FIRST_POT,
|
||||
#if defined(PCBTARANIS)
|
||||
@@ -1812,14 +1813,16 @@ enum MixSources {
|
||||
|
||||
MIXSRC_MAX,
|
||||
|
||||
MIXSRC_CYC1, LUA_EXPORT("cyc1", "Cyclic 1")
|
||||
MIXSRC_CYC2, LUA_EXPORT("cyc2", "Cyclic 2")
|
||||
MIXSRC_CYC3, LUA_EXPORT("cyc3", "Cyclic 3")
|
||||
MIXSRC_FIRST_HELI,
|
||||
MIXSRC_CYC1 = MIXSRC_FIRST_HELI, LUA_EXPORT("cyc1", "Cyclic 1")
|
||||
MIXSRC_CYC2, LUA_EXPORT("cyc2", "Cyclic 2")
|
||||
MIXSRC_CYC3, LUA_EXPORT("cyc3", "Cyclic 3")
|
||||
|
||||
MIXSRC_TrimRud, LUA_EXPORT("trim-rud", "Rudder trim")
|
||||
MIXSRC_TrimEle, LUA_EXPORT("trim-ele", "Elevator trim")
|
||||
MIXSRC_TrimThr, LUA_EXPORT("trim-thr", "Throttle trim")
|
||||
MIXSRC_TrimAil, LUA_EXPORT("trim-ail", "Aileron trim")
|
||||
MIXSRC_FIRST_TRIM,
|
||||
MIXSRC_TrimRud = MIXSRC_FIRST_TRIM, LUA_EXPORT("trim-rud", "Rudder trim")
|
||||
MIXSRC_TrimEle, LUA_EXPORT("trim-ele", "Elevator trim")
|
||||
MIXSRC_TrimThr, LUA_EXPORT("trim-thr", "Throttle trim")
|
||||
MIXSRC_TrimAil, LUA_EXPORT("trim-ail", "Aileron trim")
|
||||
|
||||
MIXSRC_FIRST_SWITCH,
|
||||
|
||||
|
||||
@@ -588,6 +588,17 @@ const pm_char STR_BLCOLOR[] PROGMEM = TR_BLCOLOR;
|
||||
const pm_char STR_SCRIPT[] PROGMEM = TR_SCRIPT;
|
||||
const pm_char STR_INPUTS[] PROGMEM = TR_INPUTS;
|
||||
const pm_char STR_OUTPUTS[] PROGMEM = TR_OUTPUTS;
|
||||
const pm_char STR_MENU_INPUTS[] PROGMEM = TR_MENU_INPUTS;
|
||||
const pm_char STR_MENU_LUA[] PROGMEM = TR_MENU_LUA;
|
||||
const pm_char STR_MENU_STICKS[] PROGMEM = TR_MENU_STICKS;
|
||||
const pm_char STR_MENU_POTS[] PROGMEM = TR_MENU_POTS;
|
||||
const pm_char STR_MENU_MAX[] PROGMEM = TR_MENU_MAX;
|
||||
const pm_char STR_MENU_HELI[] PROGMEM = TR_MENU_HELI;
|
||||
const pm_char STR_MENU_TRIMS[] PROGMEM = TR_MENU_TRIMS;
|
||||
const pm_char STR_MENU_SWITCHES[] PROGMEM = TR_MENU_SWITCHES;
|
||||
const pm_char STR_MENU_TRAINER[] PROGMEM = TR_MENU_TRAINER;
|
||||
const pm_char STR_MENU_CHANNELS[] PROGMEM = TR_MENU_CHANNELS;
|
||||
const pm_char STR_MENU_TELEMETRY[] PROGMEM = TR_MENU_TELEMETRY;
|
||||
#endif
|
||||
|
||||
#if MENUS_LOCK == 1
|
||||
|
||||
@@ -798,6 +798,17 @@ extern const pm_char STR_BLCOLOR[];
|
||||
extern const pm_char STR_SCRIPT[];
|
||||
extern const pm_char STR_INPUTS[];
|
||||
extern const pm_char STR_OUTPUTS[];
|
||||
extern const pm_char STR_MENU_INPUTS[];
|
||||
extern const pm_char STR_MENU_LUA[];
|
||||
extern const pm_char STR_MENU_STICKS[];
|
||||
extern const pm_char STR_MENU_POTS[];
|
||||
extern const pm_char STR_MENU_MAX[];
|
||||
extern const pm_char STR_MENU_HELI[];
|
||||
extern const pm_char STR_MENU_TRIMS[];
|
||||
extern const pm_char STR_MENU_SWITCHES[];
|
||||
extern const pm_char STR_MENU_TRAINER[];
|
||||
extern const pm_char STR_MENU_CHANNELS[];
|
||||
extern const pm_char STR_MENU_TELEMETRY[];
|
||||
#endif
|
||||
|
||||
#if MENUS_LOCK == 1
|
||||
|
||||
@@ -1065,6 +1065,18 @@
|
||||
#define TR_FILTER "Filter"
|
||||
#define TR_TELEMETRYFULL "All telemetry slots full!"
|
||||
|
||||
#define TR_MENU_INPUTS "\314Inputs"
|
||||
#define TR_MENU_LUA "\322Lua scripts"
|
||||
#define TR_MENU_STICKS "\307Sticks"
|
||||
#define TR_MENU_POTS "\310Pots"
|
||||
#define TR_MENU_MAX "\315MAX"
|
||||
#define TR_MENU_HELI "\316Cyclic"
|
||||
#define TR_MENU_TRIMS "\313Trims"
|
||||
#define TR_MENU_SWITCHES "\312Switches"
|
||||
#define TR_MENU_TRAINER "\317Trainer"
|
||||
#define TR_MENU_CHANNELS "\320Channels"
|
||||
#define TR_MENU_TELEMETRY "\321Telemetry"
|
||||
|
||||
#define ZSTR_RSSI "RSSI"
|
||||
#define ZSTR_SWR "SWR"
|
||||
#define ZSTR_A1 "A1"
|
||||
|
||||
@@ -1064,6 +1064,18 @@
|
||||
#define TR_FILTER "Filter"
|
||||
#define TR_TELEMETRYFULL "All telemetry slots full!"
|
||||
|
||||
#define TR_MENU_INPUTS "\314Inputs"
|
||||
#define TR_MENU_LUA "\322Lua scripts"
|
||||
#define TR_MENU_STICKS "\307Sticks"
|
||||
#define TR_MENU_POTS "\310Pots"
|
||||
#define TR_MENU_MAX "\315MAX"
|
||||
#define TR_MENU_HELI "\316Cyclic"
|
||||
#define TR_MENU_TRIMS "\313Trims"
|
||||
#define TR_MENU_SWITCHES "\312Switches"
|
||||
#define TR_MENU_TRAINER "\317Trainer"
|
||||
#define TR_MENU_CHANNELS "\320Channels"
|
||||
#define TR_MENU_TELEMETRY "\321Telemetry"
|
||||
|
||||
#define ZSTR_RSSI "RSSI"
|
||||
#define ZSTR_SWR "SWR"
|
||||
#define ZSTR_A1 "A1"
|
||||
|
||||
@@ -1064,6 +1064,18 @@
|
||||
#define TR_FILTER "Filter"
|
||||
#define TR_TELEMETRYFULL "All telemetry slots full!"
|
||||
|
||||
#define TR_MENU_INPUTS "\314Inputs"
|
||||
#define TR_MENU_LUA "\322Lua scripts"
|
||||
#define TR_MENU_STICKS "\307Sticks"
|
||||
#define TR_MENU_POTS "\310Pots"
|
||||
#define TR_MENU_MAX "\315MAX"
|
||||
#define TR_MENU_HELI "\316Cyclic"
|
||||
#define TR_MENU_TRIMS "\313Trims"
|
||||
#define TR_MENU_SWITCHES "\312Switches"
|
||||
#define TR_MENU_TRAINER "\317Trainer"
|
||||
#define TR_MENU_CHANNELS "\320Channels"
|
||||
#define TR_MENU_TELEMETRY "\321Telemetry"
|
||||
|
||||
#define ZSTR_RSSI "RSSI"
|
||||
#define ZSTR_SWR "SWR"
|
||||
#define ZSTR_A1 "A1"
|
||||
|
||||
@@ -1000,6 +1000,18 @@
|
||||
#define TR_FILTER "Filter"
|
||||
#define TR_TELEMETRYFULL "All telemetry slots full!"
|
||||
|
||||
#define TR_MENU_INPUTS "\314Inputs"
|
||||
#define TR_MENU_LUA "Lua scripts"
|
||||
#define TR_MENU_STICKS "\307Sticks"
|
||||
#define TR_MENU_POTS "\310Pots"
|
||||
#define TR_MENU_MAX "\315MAX"
|
||||
#define TR_MENU_HELI "\316Cyclic"
|
||||
#define TR_MENU_TRIMS "\313Trims"
|
||||
#define TR_MENU_SWITCHES "\312Switches"
|
||||
#define TR_MENU_TRAINER "\317Trainer"
|
||||
#define TR_MENU_CHANNELS "\318Channels"
|
||||
#define TR_MENU_TELEMETRY "\319Telemetry"
|
||||
|
||||
#define ZSTR_RSSI "RSSI"
|
||||
#define ZSTR_SWR "SWR"
|
||||
#define ZSTR_A1 "A1"
|
||||
|
||||
@@ -1000,6 +1000,18 @@
|
||||
#define TR_FILTER "Filter"
|
||||
#define TR_TELEMETRYFULL "All telemetry slots full!"
|
||||
|
||||
#define TR_MENU_INPUTS "\314Inputs"
|
||||
#define TR_MENU_LUA "\322Lua scripts"
|
||||
#define TR_MENU_STICKS "\307Sticks"
|
||||
#define TR_MENU_POTS "\310Pots"
|
||||
#define TR_MENU_MAX "\315MAX"
|
||||
#define TR_MENU_HELI "\316Cyclic"
|
||||
#define TR_MENU_TRIMS "\313Trims"
|
||||
#define TR_MENU_SWITCHES "\312Switches"
|
||||
#define TR_MENU_TRAINER "\317Trainer"
|
||||
#define TR_MENU_CHANNELS "\320Channels"
|
||||
#define TR_MENU_TELEMETRY "\321Telemetry"
|
||||
|
||||
#define ZSTR_RSSI "RSSI"
|
||||
#define ZSTR_SWR "SWR"
|
||||
#define ZSTR_A1 "A1"
|
||||
|
||||
@@ -1060,6 +1060,18 @@
|
||||
#define TR_FILTER "Filtrage"
|
||||
#define TR_TELEMETRYFULL "Plus de capteurs libres!"
|
||||
|
||||
#define TR_MENU_INPUTS "\314Entrées"
|
||||
#define TR_MENU_LUA "\322Scripts Lua"
|
||||
#define TR_MENU_STICKS "\307Manches"
|
||||
#define TR_MENU_POTS "\310Pots"
|
||||
#define TR_MENU_MAX "\315MAX"
|
||||
#define TR_MENU_HELI "\316Cyclique"
|
||||
#define TR_MENU_TRIMS "\313Trims"
|
||||
#define TR_MENU_SWITCHES "\312Inters"
|
||||
#define TR_MENU_TRAINER "\317Ecolage"
|
||||
#define TR_MENU_CHANNELS "\320Canaux"
|
||||
#define TR_MENU_TELEMETRY "\321Télémesure"
|
||||
|
||||
#define ZSTR_RSSI "RSSI"
|
||||
#define ZSTR_SWR "SWR"
|
||||
#define ZSTR_A1 "A1"
|
||||
|
||||
@@ -1000,6 +1000,18 @@
|
||||
#define TR_FILTER "Filter"
|
||||
#define TR_TELEMETRYFULL "All telemetry slots full!"
|
||||
|
||||
#define TR_MENU_INPUTS "\314Inputs"
|
||||
#define TR_MENU_LUA "\322Lua scripts"
|
||||
#define TR_MENU_STICKS "\307Sticks"
|
||||
#define TR_MENU_POTS "\310Pots"
|
||||
#define TR_MENU_MAX "\315MAX"
|
||||
#define TR_MENU_HELI "\316Cyclic"
|
||||
#define TR_MENU_TRIMS "\313Trims"
|
||||
#define TR_MENU_SWITCHES "\312Switches"
|
||||
#define TR_MENU_TRAINER "\317Trainer"
|
||||
#define TR_MENU_CHANNELS "\320Channels"
|
||||
#define TR_MENU_TELEMETRY "\321Telemetry"
|
||||
|
||||
#define ZSTR_RSSI "RSSI"
|
||||
#define ZSTR_SWR "SWR"
|
||||
#define ZSTR_A1 "A1"
|
||||
|
||||
@@ -998,6 +998,18 @@
|
||||
#define TR_FILTER "Filter"
|
||||
#define TR_TELEMETRYFULL "All telemetry slots full!"
|
||||
|
||||
#define TR_MENU_INPUTS "\314Inputs"
|
||||
#define TR_MENU_LUA "\322Lua scripts"
|
||||
#define TR_MENU_STICKS "\307Sticks"
|
||||
#define TR_MENU_POTS "\310Pots"
|
||||
#define TR_MENU_MAX "\315MAX"
|
||||
#define TR_MENU_HELI "\316Cyclic"
|
||||
#define TR_MENU_TRIMS "\313Trims"
|
||||
#define TR_MENU_SWITCHES "\312Switches"
|
||||
#define TR_MENU_TRAINER "\317Trainer"
|
||||
#define TR_MENU_CHANNELS "\320Channels"
|
||||
#define TR_MENU_TELEMETRY "\321Telemetry"
|
||||
|
||||
#define ZSTR_RSSI "RSSI"
|
||||
#define ZSTR_SWR "SWR"
|
||||
#define ZSTR_A1 "A1"
|
||||
|
||||
@@ -1000,6 +1000,18 @@
|
||||
#define TR_FILTER "Filter"
|
||||
#define TR_TELEMETRYFULL "All telemetry slots full!"
|
||||
|
||||
#define TR_MENU_INPUTS "\314Inputs"
|
||||
#define TR_MENU_LUA "\322Lua scripts"
|
||||
#define TR_MENU_STICKS "\307Sticks"
|
||||
#define TR_MENU_POTS "\310Pots"
|
||||
#define TR_MENU_MAX "\315MAX"
|
||||
#define TR_MENU_HELI "\316Cyclic"
|
||||
#define TR_MENU_TRIMS "\313Trims"
|
||||
#define TR_MENU_SWITCHES "\312Switches"
|
||||
#define TR_MENU_TRAINER "\317Trainer"
|
||||
#define TR_MENU_CHANNELS "\320Channels"
|
||||
#define TR_MENU_TELEMETRY "\321Telemetry"
|
||||
|
||||
#define ZSTR_RSSI "RSSI"
|
||||
#define ZSTR_SWR "SWR"
|
||||
#define ZSTR_A1 "A1"
|
||||
|
||||
@@ -1000,6 +1000,18 @@
|
||||
#define TR_FILTER "Filter"
|
||||
#define TR_TELEMETRYFULL "All telemetry slots full!"
|
||||
|
||||
#define TR_MENU_INPUTS "\314Inputs"
|
||||
#define TR_MENU_LUA "\322Lua scripts"
|
||||
#define TR_MENU_STICKS "\307Sticks"
|
||||
#define TR_MENU_POTS "\310Pots"
|
||||
#define TR_MENU_MAX "\315MAX"
|
||||
#define TR_MENU_HELI "\316Cyclic"
|
||||
#define TR_MENU_TRIMS "\313Trims"
|
||||
#define TR_MENU_SWITCHES "\312Switches"
|
||||
#define TR_MENU_TRAINER "\317Trainer"
|
||||
#define TR_MENU_CHANNELS "\320Channels"
|
||||
#define TR_MENU_TELEMETRY "\321Telemetry"
|
||||
|
||||
#define ZSTR_RSSI "RSSI"
|
||||
#define ZSTR_SWR "SWR"
|
||||
#define ZSTR_A1 "A1"
|
||||
|
||||
Reference in New Issue
Block a user