mirror of
https://github.com/opentx/opentx.git
synced 2025-07-13 11:29:51 +03:00
Projectkk2glider/issue 3432 jitter filter option (#3452)
* Fixes #3432: radio option added to turn on/off ADC jitter filter (ported from master) * Gtests fix * Re #3432: compilation fix * Re #3432: existing field split to accommodate the new option without the RadioData size change
This commit is contained in:
parent
9924695b1d
commit
97cc58e323
25 changed files with 112 additions and 56 deletions
|
@ -18,7 +18,6 @@ option(FAI "Competition mode (no telemetry)" OFF)
|
|||
option(AUTOSOURCE "Automatic source detection in menus" ON)
|
||||
option(AUTOSWITCH "Automatic switch detection in menus" ON)
|
||||
option(JITTER_MEASURE "Enable ADC jitter measurement" OFF)
|
||||
option(JITTER_FILTER "Enable ADC jitter filtering" ON)
|
||||
option(WATCHDOG_DISABLED "Disable hardware Watchdog on Horus" OFF) # TODO remove it when it's OK
|
||||
option(SIMU_AUDIO "Enable simulator audio" OFF)
|
||||
option(SIMU_DISKIO "Enable disk IO simulation in simulator. Simulator will use FatFs module and simulated IO layer that uses \"./sdcard.image\" file as image of SD card. This file must contain whole SD card from first to last sector" OFF)
|
||||
|
@ -867,10 +866,6 @@ if(JITTER_MEASURE)
|
|||
add_definitions(-DJITTER_MEASURE)
|
||||
endif()
|
||||
|
||||
if(JITTER_FILTER)
|
||||
add_definitions(-DJITTER_FILTER)
|
||||
endif()
|
||||
|
||||
if(WATCHDOG_DISABLED)
|
||||
add_definitions(-DWATCHDOG_DISABLED)
|
||||
endif()
|
||||
|
|
|
@ -892,7 +892,9 @@ PACK(struct TrainerData {
|
|||
NOBACKUP(uint32_t globalTimer); \
|
||||
NOBACKUP(uint8_t btBaudrate); \
|
||||
NOBACKUP(uint8_t countryCode); \
|
||||
NOBACKUP(uint8_t imperial); \
|
||||
NOBACKUP(uint8_t imperial:1); \
|
||||
NOBACKUP(uint8_t jitterFilter:1); /* 0 - active */\
|
||||
NOBACKUP(uint8_t spareExtra:6); \
|
||||
NOBACKUP(char ttsLanguage[2]); \
|
||||
NOBACKUP(int8_t beepVolume:4); \
|
||||
NOBACKUP(int8_t wavVolume:4); \
|
||||
|
|
|
@ -46,6 +46,7 @@ enum menuGeneralHwItems {
|
|||
ITEM_SETUP_HW_SH,
|
||||
ITEM_SETUP_HW_BLUETOOTH,
|
||||
// ITEM_SETUP_HW_UART3_MODE,
|
||||
ITEM_SETUP_HW_JITTER_FILTER,
|
||||
ITEM_SETUP_HW_BAT_CAL,
|
||||
ITEM_SETUP_HW_MAX
|
||||
};
|
||||
|
@ -177,6 +178,14 @@ bool menuGeneralHardware(evt_t event)
|
|||
break;
|
||||
#endif
|
||||
|
||||
case ITEM_SETUP_HW_JITTER_FILTER:
|
||||
{
|
||||
lcdDrawText(MENUS_MARGIN_LEFT, y, STR_JITTER_FILTER);
|
||||
uint8_t b = 1-g_eeGeneral.jitterFilter;
|
||||
g_eeGeneral.jitterFilter = 1 - editCheckBox(b, HW_SETTINGS_COLUMN, y, attr, event);
|
||||
break;
|
||||
}
|
||||
|
||||
case ITEM_SETUP_HW_BAT_CAL:
|
||||
lcdDrawText(MENUS_MARGIN_LEFT, y, STR_BATT_CALIB);
|
||||
lcdDrawNumber(HW_SETTINGS_COLUMN, y, getBatteryVoltage(), attr|LEFT|PREC2, 0, NULL, "V");
|
||||
|
|
|
@ -56,6 +56,7 @@ enum menuGeneralHwItems {
|
|||
CASE_REV9E(ITEM_SETUP_HW_SR)
|
||||
CASE_REV9E(ITEM_SETUP_HW_BLUETOOTH)
|
||||
ITEM_SETUP_HW_UART3_MODE,
|
||||
ITEM_SETUP_HW_JITTER_FILTER,
|
||||
ITEM_SETUP_HW_MAX
|
||||
};
|
||||
|
||||
|
@ -211,6 +212,12 @@ void menuGeneralHardware(uint8_t event)
|
|||
serial2Init(g_eeGeneral.serial2Mode, MODEL_TELEMETRY_PROTOCOL());
|
||||
}
|
||||
break;
|
||||
case ITEM_SETUP_HW_JITTER_FILTER:
|
||||
{
|
||||
uint8_t b = 1-g_eeGeneral.jitterFilter;
|
||||
g_eeGeneral.jitterFilter = 1 - editCheckBox(b, HW_SETTINGS_COLUMN, y, STR_JITTER_FILTER, attr, event);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1474,7 +1474,7 @@ JitterMeter<uint16_t> avgJitter[NUMBER_ANALOG];
|
|||
tmr10ms_t jitterResetTime = 0;
|
||||
#endif
|
||||
|
||||
#if defined(VIRTUALINPUTS) && defined(JITTER_FILTER)
|
||||
#if defined(VIRTUALINPUTS)
|
||||
#define JITTER_FILTER_STRENGTH 4 // tune this value, bigger value - more filtering (range: 1-5) (see explanation below)
|
||||
#define ANALOG_SCALE 1 // tune this value, bigger value - more filtering (range: 0-1) (see explanation below)
|
||||
|
||||
|
@ -1544,7 +1544,7 @@ void getADC()
|
|||
for (uint8_t x=0; x<NUMBER_ANALOG; x++) {
|
||||
uint16_t v = getAnalogValue(x) >> (1 - ANALOG_SCALE);
|
||||
|
||||
#if defined(VIRTUALINPUTS) && defined(JITTER_FILTER)
|
||||
#if defined(VIRTUALINPUTS)
|
||||
// Jitter filter:
|
||||
// * pass trough any big change directly
|
||||
// * for small change use Modified moving average (MMA) filter
|
||||
|
@ -1581,7 +1581,7 @@ void getADC()
|
|||
// * <out> = s_anaFilt[x]
|
||||
uint16_t previous = s_anaFilt[x] / JITTER_ALPHA;
|
||||
uint16_t diff = (v > previous) ? (v - previous) : (previous - v);
|
||||
if (diff < 10 * ANALOG_MULTIPLIER) {
|
||||
if (!g_eeGeneral.jitterFilter && diff < (10*ANALOG_MULTIPLIER)) { // g_eeGeneral.jitterFilter is inverted, 0 - active
|
||||
// apply jitter filter
|
||||
s_anaFilt[x] = (s_anaFilt[x] - previous) + v;
|
||||
}
|
||||
|
|
|
@ -585,6 +585,11 @@ uint16_t anaIn(uint8_t chan)
|
|||
return 0;
|
||||
}
|
||||
|
||||
uint16_t getAnalogValue(uint8_t index)
|
||||
{
|
||||
return anaIn(index);
|
||||
}
|
||||
|
||||
void createBitmap(int index, uint16_t *data, int x, int y, int w, int h)
|
||||
{
|
||||
th9xSim->createBitmap(index, data, x, y, w, h);
|
||||
|
|
|
@ -243,6 +243,7 @@ void adcRead()
|
|||
|
||||
const int8_t ana_direction[NUMBER_ANALOG] = {1,-1,1,-1, -1,1,-1, -1,-1, -1,1, 0,0,0};
|
||||
|
||||
#if !defined(SIMU)
|
||||
uint16_t getAnalogValue(uint8_t index)
|
||||
{
|
||||
if (ana_direction[index] < 0)
|
||||
|
@ -250,3 +251,4 @@ uint16_t getAnalogValue(uint8_t index)
|
|||
else
|
||||
return adcValues[index];
|
||||
}
|
||||
#endif // #if !defined(SIMU)
|
||||
|
|
|
@ -24,6 +24,11 @@ uint16_t anaIn(uint8_t chan)
|
|||
return g_anas[chan];
|
||||
}
|
||||
|
||||
uint16_t getAnalogValue(uint8_t index)
|
||||
{
|
||||
return anaIn(index);
|
||||
}
|
||||
|
||||
bool hasExtendedTrims()
|
||||
{
|
||||
return g_model.extendedTrims;
|
||||
|
|
|
@ -136,7 +136,9 @@ void adcRead()
|
|||
}
|
||||
|
||||
|
||||
#if !defined(SIMU)
|
||||
uint16_t getAnalogValue(uint8_t value)
|
||||
{
|
||||
return adcValues[value];
|
||||
}
|
||||
#endif // #if !defined(SIMU)
|
||||
|
|
|
@ -173,6 +173,7 @@ void adcStop()
|
|||
{
|
||||
}
|
||||
|
||||
#if !defined(SIMU)
|
||||
uint16_t getAnalogValue(uint8_t index)
|
||||
{
|
||||
if (IS_POT(index) && !IS_POT_AVAILABLE(index)) {
|
||||
|
@ -189,3 +190,4 @@ uint16_t getAnalogValue(uint8_t index)
|
|||
else
|
||||
return adcValues[index];
|
||||
}
|
||||
#endif // #if !defined(SIMU)
|
||||
|
|
|
@ -16,6 +16,15 @@ if(EXISTS "${GTEST_SRCDIR}/src/gtest-all.cc")
|
|||
|
||||
file(GLOB TEST_SRC_FILES ${RADIO_SRC_DIRECTORY}/tests/*.cpp)
|
||||
|
||||
if (${CMAKE_VERSION} VERSION_LESS 3.1.0})
|
||||
set(COMMON_CPP_FLAGS "${COMMON_FLAGS} -std=gnu++11")
|
||||
message("USING -std=gnu++11")
|
||||
else()
|
||||
set(COMMON_CPP_FLAGS ${COMMON_FLAGS})
|
||||
endif()
|
||||
set(CMAKE_C_FLAGS_DEBUG "${COMMON_FLAGS} -g -O0")
|
||||
set(CMAKE_CXX_FLAGS_DEBUG "${COMMON_CPP_FLAGS} -g -O0")
|
||||
|
||||
add_executable(gtests EXCLUDE_FROM_ALL ${TEST_SRC_FILES} ${CMAKE_CURRENT_SOURCE_DIR}/location.h ${RADIO_SRC} ../targets/simu/simpgmspace.cpp)
|
||||
qt5_use_modules(gtests Core Widgets)
|
||||
add_dependencies(gtests ${FIRMWARE_DEPENDENCIES} gtests-lib)
|
||||
|
|
|
@ -31,6 +31,11 @@ uint16_t anaIn(uint8_t chan)
|
|||
return 0;
|
||||
}
|
||||
|
||||
uint16_t getAnalogValue(uint8_t index)
|
||||
{
|
||||
return anaIn(index);
|
||||
}
|
||||
|
||||
static char _zchar2stringResult[200];
|
||||
const char * zchar2string(const char * zstring, int size)
|
||||
{
|
||||
|
|
|
@ -660,6 +660,7 @@ const pm_char STR_REMOVE_SCREEN[] PROGMEM = TR_REMOVE_SCREEN;
|
|||
const pm_char STR_MENU_TELEMETRY[] PROGMEM = TR_MENU_TELEMETRY;
|
||||
const pm_char STR_MENU_OTHER[] PROGMEM = TR_MENU_OTHER;
|
||||
const pm_char STR_MENU_INVERT[] PROGMEM = TR_MENU_INVERT;
|
||||
const pm_char STR_JITTER_FILTER[] PROGMEM = TR_JITTER_FILTER;
|
||||
#endif
|
||||
|
||||
#if MENUS_LOCK == 1
|
||||
|
|
|
@ -189,23 +189,23 @@ extern const pm_char STR_OPEN9X[];
|
|||
#define OFS_TARANIS_PROTOCOLS (OFS_VTRAINERMODES + sizeof(TR_VTRAINERMODES))
|
||||
#define OFS_XJT_PROTOCOLS (OFS_TARANIS_PROTOCOLS + sizeof(TR_TARANIS_PROTOCOLS))
|
||||
#define OFS_DSM_PROTOCOLS (OFS_XJT_PROTOCOLS + sizeof(TR_XJT_PROTOCOLS))
|
||||
#if defined(MULTIMODULE)
|
||||
#define OFS_MULTI_PROTOCOLS (OFS_DSM_PROTOCOLS + sizeof(TR_DSM_PROTOCOLS))
|
||||
#define OFS_SUBTYPE_FLYSKY (OFS_MULTI_PROTOCOLS + sizeof(TR_MULTI_PROTOCOLS))
|
||||
#define OFS_SUBTYPE_FRSKY (OFS_SUBTYPE_FLYSKY + sizeof(TR_SUBTYPE_FLYSKY))
|
||||
#define OFS_SUBTYPE_HISKY (OFS_SUBTYPE_FRSKY + sizeof(TR_SUBTYPE_FRSKY))
|
||||
#define OFS_SUBTYPE_YD717 (OFS_SUBTYPE_HISKY + sizeof(TR_SUBTYPE_HISKY))
|
||||
#define OFS_SUBTYPE_SYMAX (OFS_SUBTYPE_YD717 + sizeof(TR_SUBTYPE_YD717))
|
||||
#define OFS_SUBTYPE_CX10 (OFS_SUBTYPE_SYMAX + sizeof(TR_SUBTYPE_SYMAX))
|
||||
#define OFS_SUBTYPE_CG023 (OFS_SUBTYPE_CX10 + sizeof(TR_SUBTYPE_CX10))
|
||||
#define OFS_SUBTYPE_KN (OFS_SUBTYPE_CG023 + sizeof(TR_SUBTYPE_CG023))
|
||||
#define OFS_SUBTYPE_MT99 (OFS_SUBTYPE_KN + sizeof(TR_SUBTYPE_KN))
|
||||
#define OFS_SUBTYPE_MJXQ (OFS_SUBTYPE_MT99 + sizeof(TR_SUBTYPE_MT99))
|
||||
#define OFS_OPTIONS_DSM (OFS_SUBTYPE_MJXQ + sizeof(TR_SUBTYPE_MJXQ))
|
||||
#define OFS_VOLTSRC (OFS_OPTIONS_DSM + sizeof(TR_OPTIONS_DSM))
|
||||
#else
|
||||
#define OFS_VOLTSRC (OFS_DSM_PROTOCOLS + sizeof(TR_DSM_PROTOCOLS))
|
||||
#endif
|
||||
#if defined(MULTIMODULE)
|
||||
#define OFS_MULTI_PROTOCOLS (OFS_DSM_PROTOCOLS + sizeof(TR_DSM_PROTOCOLS))
|
||||
#define OFS_SUBTYPE_FLYSKY (OFS_MULTI_PROTOCOLS + sizeof(TR_MULTI_PROTOCOLS))
|
||||
#define OFS_SUBTYPE_FRSKY (OFS_SUBTYPE_FLYSKY + sizeof(TR_SUBTYPE_FLYSKY))
|
||||
#define OFS_SUBTYPE_HISKY (OFS_SUBTYPE_FRSKY + sizeof(TR_SUBTYPE_FRSKY))
|
||||
#define OFS_SUBTYPE_YD717 (OFS_SUBTYPE_HISKY + sizeof(TR_SUBTYPE_HISKY))
|
||||
#define OFS_SUBTYPE_SYMAX (OFS_SUBTYPE_YD717 + sizeof(TR_SUBTYPE_YD717))
|
||||
#define OFS_SUBTYPE_CX10 (OFS_SUBTYPE_SYMAX + sizeof(TR_SUBTYPE_SYMAX))
|
||||
#define OFS_SUBTYPE_CG023 (OFS_SUBTYPE_CX10 + sizeof(TR_SUBTYPE_CX10))
|
||||
#define OFS_SUBTYPE_KN (OFS_SUBTYPE_CG023 + sizeof(TR_SUBTYPE_CG023))
|
||||
#define OFS_SUBTYPE_MT99 (OFS_SUBTYPE_KN + sizeof(TR_SUBTYPE_KN))
|
||||
#define OFS_SUBTYPE_MJXQ (OFS_SUBTYPE_MT99 + sizeof(TR_SUBTYPE_MT99))
|
||||
#define OFS_OPTIONS_DSM (OFS_SUBTYPE_MJXQ + sizeof(TR_SUBTYPE_MJXQ))
|
||||
#define OFS_VOLTSRC (OFS_OPTIONS_DSM + sizeof(TR_OPTIONS_DSM))
|
||||
#else
|
||||
#define OFS_VOLTSRC (OFS_DSM_PROTOCOLS + sizeof(TR_DSM_PROTOCOLS))
|
||||
#endif
|
||||
#define OFS_CURVE_TYPES (OFS_VOLTSRC + sizeof(TR_VOLTSRC))
|
||||
#define OFS_VSENSORTYPES (OFS_CURVE_TYPES + sizeof(TR_CURVE_TYPES))
|
||||
#define OFS_VFORMULAS (OFS_VSENSORTYPES + sizeof(TR_VSENSORTYPES))
|
||||
|
@ -321,22 +321,22 @@ extern const pm_char STR_OPEN9X[];
|
|||
#define STR_TARANIS_PROTOCOLS (STR_OPEN9X + OFS_TARANIS_PROTOCOLS)
|
||||
#define STR_XJT_PROTOCOLS (STR_OPEN9X + OFS_XJT_PROTOCOLS)
|
||||
#define STR_DSM_PROTOCOLS (STR_OPEN9X + OFS_DSM_PROTOCOLS)
|
||||
#if defined(MULTIMODULE)
|
||||
#define STR_MULTI_PROTOCOLS (STR_OPEN9X + OFS_MULTI_PROTOCOLS)
|
||||
#define STR_SUBTYPE_FLYSKY (STR_OPEN9X + OFS_SUBTYPE_FLYSKY)
|
||||
#define STR_SUBTYPE_FRSKY (STR_OPEN9X + OFS_SUBTYPE_FRSKY)
|
||||
#define STR_SUBTYPE_HISKY (STR_OPEN9X + OFS_SUBTYPE_HISKY)
|
||||
#define STR_SUBTYPE_YD717 (STR_OPEN9X + OFS_SUBTYPE_YD717)
|
||||
#define STR_SUBTYPE_SYMAX (STR_OPEN9X + OFS_SUBTYPE_SYMAX)
|
||||
#define STR_SUBTYPE_CX10 (STR_OPEN9X + OFS_SUBTYPE_CX10)
|
||||
#define STR_SUBTYPE_CG023 (STR_OPEN9X + OFS_SUBTYPE_CG023)
|
||||
#define STR_SUBTYPE_KN (STR_OPEN9X + OFS_SUBTYPE_KN)
|
||||
#define STR_SUBTYPE_MT99 (STR_OPEN9X + OFS_SUBTYPE_MT99)
|
||||
#define STR_SUBTYPE_MJXQ (STR_OPEN9X + OFS_SUBTYPE_MJXQ)
|
||||
#define STR_OPTIONS_DSM (STR_OPEN9X + OFS_OPTIONS_DSM)
|
||||
#endif
|
||||
#define STR_CURVE_TYPES (STR_OPEN9X + OFS_CURVE_TYPES)
|
||||
#define STR_VSENSORTYPES (STR_OPEN9X + OFS_VSENSORTYPES)
|
||||
#if defined(MULTIMODULE)
|
||||
#define STR_MULTI_PROTOCOLS (STR_OPEN9X + OFS_MULTI_PROTOCOLS)
|
||||
#define STR_SUBTYPE_FLYSKY (STR_OPEN9X + OFS_SUBTYPE_FLYSKY)
|
||||
#define STR_SUBTYPE_FRSKY (STR_OPEN9X + OFS_SUBTYPE_FRSKY)
|
||||
#define STR_SUBTYPE_HISKY (STR_OPEN9X + OFS_SUBTYPE_HISKY)
|
||||
#define STR_SUBTYPE_YD717 (STR_OPEN9X + OFS_SUBTYPE_YD717)
|
||||
#define STR_SUBTYPE_SYMAX (STR_OPEN9X + OFS_SUBTYPE_SYMAX)
|
||||
#define STR_SUBTYPE_CX10 (STR_OPEN9X + OFS_SUBTYPE_CX10)
|
||||
#define STR_SUBTYPE_CG023 (STR_OPEN9X + OFS_SUBTYPE_CG023)
|
||||
#define STR_SUBTYPE_KN (STR_OPEN9X + OFS_SUBTYPE_KN)
|
||||
#define STR_SUBTYPE_MT99 (STR_OPEN9X + OFS_SUBTYPE_MT99)
|
||||
#define STR_SUBTYPE_MJXQ (STR_OPEN9X + OFS_SUBTYPE_MJXQ)
|
||||
#define STR_OPTIONS_DSM (STR_OPEN9X + OFS_OPTIONS_DSM)
|
||||
#endif
|
||||
#define STR_CURVE_TYPES (STR_OPEN9X + OFS_CURVE_TYPES)
|
||||
#define STR_VSENSORTYPES (STR_OPEN9X + OFS_VSENSORTYPES)
|
||||
#define STR_VFORMULAS (STR_OPEN9X + OFS_VFORMULAS)
|
||||
#define STR_VPREC (STR_OPEN9X + OFS_VPREC)
|
||||
#define STR_VCELLINDEX (STR_OPEN9X + OFS_VCELLINDEX)
|
||||
|
@ -560,19 +560,19 @@ extern const pm_char STR_GF[];
|
|||
|
||||
#if defined(FAS_OFFSET) || !defined(CPUM64)
|
||||
extern const pm_char STR_FAS_OFFSET[];
|
||||
#endif
|
||||
|
||||
#if defined(MULTIMODULE)
|
||||
extern const pm_char STR_MULTI_OPTION[];
|
||||
extern const pm_char STR_MULTI_VIDFREQ[];
|
||||
extern const pm_char STR_MULTI_RFTUNE[];
|
||||
extern const pm_char STR_MULTI_AUTOBIND[];
|
||||
extern const pm_char STR_MULTI_LOWPOWER[];
|
||||
extern const pm_char STR_MULTI_DSMFRAME[];
|
||||
#endif
|
||||
#if defined(DSM2) || defined(PXX)
|
||||
extern const pm_char STR_RXNUM[];
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if defined(MULTIMODULE)
|
||||
extern const pm_char STR_MULTI_OPTION[];
|
||||
extern const pm_char STR_MULTI_VIDFREQ[];
|
||||
extern const pm_char STR_MULTI_RFTUNE[];
|
||||
extern const pm_char STR_MULTI_AUTOBIND[];
|
||||
extern const pm_char STR_MULTI_LOWPOWER[];
|
||||
extern const pm_char STR_MULTI_DSMFRAME[];
|
||||
#endif
|
||||
#if defined(DSM2) || defined(PXX)
|
||||
extern const pm_char STR_RXNUM[];
|
||||
#endif
|
||||
|
||||
#if defined(PXX) || defined(CPUARM)
|
||||
extern const pm_char STR_SYNCMENU[];
|
||||
|
@ -922,6 +922,7 @@ extern const pm_char STR_BLCOLOR[];
|
|||
extern const pm_char STR_MENU_TELEMETRY[];
|
||||
extern const pm_char STR_MENU_OTHER[];
|
||||
extern const pm_char STR_MENU_INVERT[];
|
||||
extern const pm_char STR_JITTER_FILTER[];
|
||||
#endif
|
||||
|
||||
#if MENUS_LOCK == 1
|
||||
|
@ -1011,4 +1012,4 @@ extern const pm_char STR_BLCOLOR[];
|
|||
#define CHR_HOUR TR_CHR_HOUR
|
||||
#define CHR_INPUT TR_CHR_INPUT
|
||||
|
||||
#endif // _TRANSLATIONS_H_
|
||||
#endif // _TRANSLATIONS_H_
|
||||
|
|
|
@ -1190,6 +1190,7 @@
|
|||
#define TR_MENU_TELEMETRY "\321Telemetrie"
|
||||
#define TR_MENU_OTHER "Ostatní"
|
||||
#define TR_MENU_INVERT "Invertovat"
|
||||
#define TR_JITTER_FILTER "ADC Filter"
|
||||
|
||||
#define ZSTR_RSSI "RSSI"
|
||||
#define ZSTR_SWR "SWR"
|
||||
|
|
|
@ -1193,6 +1193,7 @@
|
|||
#define TR_MENU_TELEMETRY "\321Telemetrie"
|
||||
#define TR_MENU_OTHER " Weitere"
|
||||
#define TR_MENU_INVERT "Invertieren<!>"
|
||||
#define TR_JITTER_FILTER "ADC Filter"
|
||||
// ----------------------------------------------------------------
|
||||
#define ZSTR_RSSI "RSSI"
|
||||
#define ZSTR_SWR "SWR"
|
||||
|
|
|
@ -1207,6 +1207,7 @@
|
|||
#define TR_MENU_TELEMETRY "\321Telemetry"
|
||||
#define TR_MENU_OTHER "Other"
|
||||
#define TR_MENU_INVERT "Invert"
|
||||
#define TR_JITTER_FILTER "ADC Filter"
|
||||
|
||||
#define ZSTR_RSSI "RSSI"
|
||||
#define ZSTR_SWR "SWR"
|
||||
|
|
|
@ -1153,6 +1153,7 @@
|
|||
#define TR_MENU_TELEMETRY "\321Telemetry"
|
||||
#define TR_MENU_OTHER "Other"
|
||||
#define TR_MENU_INVERT "Invert"
|
||||
#define TR_JITTER_FILTER "ADC Filter"
|
||||
|
||||
#define ZSTR_RSSI "RSSI"
|
||||
#define ZSTR_SWR "SWR"
|
||||
|
|
|
@ -1153,6 +1153,7 @@
|
|||
#define TR_MENU_TELEMETRY "\321Telemetry"
|
||||
#define TR_MENU_OTHER "Other"
|
||||
#define TR_MENU_INVERT "Invert"
|
||||
#define TR_JITTER_FILTER "ADC Filter"
|
||||
|
||||
#define ZSTR_RSSI "RSSI"
|
||||
#define ZSTR_SWR "SWR"
|
||||
|
|
|
@ -1180,6 +1180,7 @@
|
|||
#define TR_MENU_TELEMETRY "\321Télémesure"
|
||||
#define TR_MENU_OTHER "Autres"
|
||||
#define TR_MENU_INVERT "Inverser"
|
||||
#define TR_JITTER_FILTER "ADC Filter"
|
||||
|
||||
#define ZSTR_RSSI "RSSI"
|
||||
#define ZSTR_SWR "SWR"
|
||||
|
|
|
@ -1189,6 +1189,7 @@
|
|||
#define TR_MENU_TELEMETRY "\321Telemetry"
|
||||
#define TR_MENU_OTHER "Altro"
|
||||
#define TR_MENU_INVERT "Inverti"
|
||||
#define TR_JITTER_FILTER "ADC Filter"
|
||||
|
||||
#define ZSTR_RSSI "RSSI"
|
||||
#define ZSTR_SWR "SWR"
|
||||
|
|
|
@ -1204,6 +1204,7 @@
|
|||
#define TR_MENU_TELEMETRY "\321Telemetrie"
|
||||
#define TR_MENU_OTHER "Verdere"
|
||||
#define TR_MENU_INVERT "Inverteer"
|
||||
#define TR_JITTER_FILTER "ADC Filter"
|
||||
|
||||
#define ZSTR_RSSI "RSSI"
|
||||
#define ZSTR_SWR "SWR"
|
||||
|
|
|
@ -1191,6 +1191,7 @@
|
|||
#define TR_MENU_TELEMETRY "\321Telemetry"
|
||||
#define TR_MENU_OTHER "Inny "
|
||||
#define TR_MENU_INVERT "Odwróć"
|
||||
#define TR_JITTER_FILTER "ADC Filter"
|
||||
|
||||
#define ZSTR_RSSI "RSSI"
|
||||
#define ZSTR_SWR "SWR"
|
||||
|
|
|
@ -1149,6 +1149,7 @@
|
|||
#define TR_MENU_TELEMETRY "\321Telemetry"
|
||||
#define TR_MENU_OTHER "Other"
|
||||
#define TR_MENU_INVERT "Invert"
|
||||
#define TR_JITTER_FILTER "ADC Filter"
|
||||
|
||||
#define ZSTR_RSSI "RSSI"
|
||||
#define ZSTR_SWR "SWR"
|
||||
|
|
|
@ -1205,6 +1205,7 @@
|
|||
#define TR_MENU_TELEMETRY "\321Telemetri"
|
||||
#define TR_MENU_OTHER "Annat"
|
||||
#define TR_MENU_INVERT "Invertera"
|
||||
#define TR_JITTER_FILTER "ADC Filter"
|
||||
|
||||
#define ZSTR_RSSI "RSSI"
|
||||
#define ZSTR_SWR "SWR"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue