mirror of
https://github.com/opentx/opentx.git
synced 2025-07-16 04:45:17 +03:00
parent
a7524ba74d
commit
7434e330c8
35 changed files with 1033 additions and 893 deletions
|
@ -180,6 +180,7 @@ const char * const audioFilenames[] = {
|
|||
"sensorko",
|
||||
"servoko",
|
||||
"rxko",
|
||||
"modelpwr",
|
||||
#if defined(PCBSKY9X)
|
||||
"highmah",
|
||||
"hightemp",
|
||||
|
|
|
@ -894,7 +894,8 @@ PACK(struct TrainerData {
|
|||
NOBACKUP(uint8_t countryCode); \
|
||||
NOBACKUP(uint8_t imperial:1); \
|
||||
NOBACKUP(uint8_t jitterFilter:1); /* 0 - active */\
|
||||
NOBACKUP(uint8_t spareExtraArm:6); \
|
||||
NOBACKUP(uint8_t rssiPoweroffAlarm:1); \
|
||||
NOBACKUP(uint8_t spareExtraArm:5); \
|
||||
NOBACKUP(char ttsLanguage[2]); \
|
||||
NOBACKUP(int8_t beepVolume:4); \
|
||||
NOBACKUP(int8_t wavVolume:4); \
|
||||
|
|
|
@ -293,7 +293,7 @@ void lcdDrawChar(coord_t x, coord_t y, const unsigned char c)
|
|||
uint8_t getTextWidth(const char * s, uint8_t len, LcdFlags flags)
|
||||
{
|
||||
uint8_t width = 0;
|
||||
while (len--) {
|
||||
for (int i=0; len==0 || i<len; ++i) {
|
||||
unsigned char c = (flags & ZCHAR) ? idx2char(*s) : *s;
|
||||
if (!c) {
|
||||
break;
|
||||
|
@ -1563,15 +1563,18 @@ void lcdDrawHorizontalLine(coord_t x, coord_t y, coord_t w, uint8_t pat, LcdFlag
|
|||
}
|
||||
|
||||
#if defined(PWR_PRESS_BUTTON)
|
||||
void drawShutdownAnimation(uint32_t index)
|
||||
void drawShutdownAnimation(uint32_t index, const char * message)
|
||||
{
|
||||
lcdClear();
|
||||
int quarter = index / (PWR_PRESS_SHUTDOWN_DELAY / 5);
|
||||
for (int i=1; i<=4; i++) {
|
||||
if ((4 -quarter) >= i) {
|
||||
if (4 - quarter >= i) {
|
||||
lcdDrawFilledRect(LCD_W / 2 - 28 + 10 * i, LCD_H / 2 - 3, 6, 6, SOLID, 0);
|
||||
}
|
||||
}
|
||||
if (message) {
|
||||
lcdDrawText((LCD_W - getTextWidth(message)) / 2, LCD_H-2*FH, message);
|
||||
}
|
||||
lcdRefresh();
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -282,6 +282,10 @@ inline display_t getPixel(uint8_t x, uint8_t y)
|
|||
|
||||
const char * writeScreenshot();
|
||||
|
||||
void drawShutdownAnimation(uint32_t index);
|
||||
void drawShutdownAnimation(uint32_t index, const char * message);
|
||||
|
||||
#if defined(CPUARM)
|
||||
uint8_t getTextWidth(const char * s, uint8_t len=0, LcdFlags flags=0);
|
||||
#endif
|
||||
|
||||
#endif // _LCD_H_
|
||||
|
|
|
@ -88,6 +88,7 @@ enum MenuRadioSetupItems {
|
|||
ITEM_SETUP_INACTIVITY_ALARM,
|
||||
ITEM_SETUP_MEMORY_WARNING,
|
||||
ITEM_SETUP_ALARM_WARNING,
|
||||
CASE_CPUARM(ITEM_SETUP_RSSI_POWEROFF_ALARM)
|
||||
IF_ROTARY_ENCODERS(ITEM_SETUP_RE_NAVIGATION)
|
||||
ITEM_SETUP_BACKLIGHT_LABEL,
|
||||
ITEM_SETUP_BACKLIGHT_MODE,
|
||||
|
@ -140,7 +141,7 @@ void menuRadioSetup(event_t event)
|
|||
}
|
||||
#endif
|
||||
|
||||
MENU(STR_MENURADIOSETUP, menuTabGeneral, MENU_RADIO_SETUP, HEADER_LINE+ITEM_SETUP_MAX, { HEADER_LINE_COLUMNS CASE_RTCLOCK(2) CASE_RTCLOCK(2) CASE_BATTGRAPH(1) LABEL(SOUND), CASE_AUDIO(0) CASE_BUZZER(0) CASE_VOICE(0) CASE_CPUARM(0) CASE_CPUARM(0) CASE_CPUARM(0) 0, CASE_AUDIO(0) CASE_VARIO_CPUARM(LABEL(VARIO)) CASE_VARIO_CPUARM(0) CASE_VARIO_CPUARM(0) CASE_VARIO_CPUARM(0) CASE_VARIO_CPUARM(0) CASE_HAPTIC(LABEL(HAPTIC)) CASE_HAPTIC(0) CASE_HAPTIC(0) CASE_HAPTIC(0) 0, LABEL(ALARMS), 0, CASE_CAPACITY(0) CASE_PCBSKY9X(0) 0, 0, 0, IF_ROTARY_ENCODERS(0) LABEL(BACKLIGHT), 0, 0, CASE_CPUARM(0) CASE_PWM_BACKLIGHT(0) CASE_PWM_BACKLIGHT(0) 0, CASE_SPLASH_PARAM(0) CASE_GPS(0) CASE_CPUARM(0) CASE_GPS(0) CASE_PXX(0) CASE_CPUARM(0) CASE_CPUARM(0) IF_FAI_CHOICE(0) CASE_MAVLINK(0) CASE_CPUARM(0) 0, COL_TX_MODE, 0, 1/*to force edit mode*/});
|
||||
MENU(STR_MENURADIOSETUP, menuTabGeneral, MENU_RADIO_SETUP, HEADER_LINE+ITEM_SETUP_MAX, { HEADER_LINE_COLUMNS CASE_RTCLOCK(2) CASE_RTCLOCK(2) CASE_BATTGRAPH(1) LABEL(SOUND), CASE_AUDIO(0) CASE_BUZZER(0) CASE_VOICE(0) CASE_CPUARM(0) CASE_CPUARM(0) CASE_CPUARM(0) 0, CASE_AUDIO(0) CASE_VARIO_CPUARM(LABEL(VARIO)) CASE_VARIO_CPUARM(0) CASE_VARIO_CPUARM(0) CASE_VARIO_CPUARM(0) CASE_VARIO_CPUARM(0) CASE_HAPTIC(LABEL(HAPTIC)) CASE_HAPTIC(0) CASE_HAPTIC(0) CASE_HAPTIC(0) 0, LABEL(ALARMS), 0, CASE_CAPACITY(0) CASE_PCBSKY9X(0) 0, 0, 0, CASE_CPUARM(0) IF_ROTARY_ENCODERS(0) LABEL(BACKLIGHT), 0, 0, CASE_CPUARM(0) CASE_PWM_BACKLIGHT(0) CASE_PWM_BACKLIGHT(0) 0, CASE_SPLASH_PARAM(0) CASE_GPS(0) CASE_CPUARM(0) CASE_GPS(0) CASE_PXX(0) CASE_CPUARM(0) CASE_CPUARM(0) IF_FAI_CHOICE(0) CASE_MAVLINK(0) CASE_CPUARM(0) 0, COL_TX_MODE, 0, 1/*to force edit mode*/});
|
||||
|
||||
if (event == EVT_ENTRY) {
|
||||
reusableBuffer.generalSettings.stickMode = g_eeGeneral.stickMode;
|
||||
|
@ -387,6 +388,14 @@ void menuRadioSetup(event_t event)
|
|||
break;
|
||||
}
|
||||
|
||||
#if defined(CPUARM)
|
||||
case ITEM_SETUP_RSSI_POWEROFF_ALARM:
|
||||
{
|
||||
g_eeGeneral.rssiPoweroffAlarm = editCheckBox(g_eeGeneral.rssiPoweroffAlarm, RADIO_SETUP_2ND_COLUMN, y, STR_RSSISHUTDOWNALARM, attr, event);
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(TX_CAPACITY_MEASUREMENT)
|
||||
case ITEM_SETUP_CAPACITY_WARNING:
|
||||
lcdDrawTextAlignedLeft(y, STR_CAPAWARNING);
|
||||
|
|
|
@ -243,7 +243,7 @@ void lcdDrawChar(coord_t x, coord_t y, const unsigned char c)
|
|||
uint8_t getTextWidth(const char * s, uint8_t len, LcdFlags flags)
|
||||
{
|
||||
uint8_t width = 0;
|
||||
while (len--) {
|
||||
for (int i=0; len==0 || i<len; ++i) {
|
||||
unsigned char c = (flags & ZCHAR) ? idx2char(*s) : *s;
|
||||
if (!c) {
|
||||
break;
|
||||
|
|
|
@ -171,7 +171,7 @@ inline void lcdDrawSquare(coord_t x, coord_t y, coord_t w, LcdFlags att=0)
|
|||
void lcdInvertLine(int8_t line);
|
||||
#define lcdInvertLastLine() lcdInvertLine(LCD_LINES-1)
|
||||
|
||||
void drawShutdownAnimation(uint32_t index);
|
||||
void drawShutdownAnimation(uint32_t index, const char * message);
|
||||
void drawSleepBitmap();
|
||||
void drawTelemetryTopBar();
|
||||
|
||||
|
@ -206,4 +206,8 @@ inline display_t getPixel(unsigned int x, unsigned int y)
|
|||
return (y & 1) ? (*p >> 4) : (*p & 0x0F);
|
||||
}
|
||||
|
||||
#if defined(CPUARM)
|
||||
uint8_t getTextWidth(const char * s, uint8_t len=0, LcdFlags flags=0);
|
||||
#endif
|
||||
|
||||
#endif // _LCD_H_
|
||||
|
|
|
@ -70,6 +70,7 @@ enum MenuRadioSetupItems {
|
|||
ITEM_SETUP_INACTIVITY_ALARM,
|
||||
ITEM_SETUP_MEMORY_WARNING,
|
||||
ITEM_SETUP_ALARM_WARNING,
|
||||
ITEM_SETUP_RSSI_POWEROFF_ALARM,
|
||||
ITEM_SETUP_BACKLIGHT_LABEL,
|
||||
ITEM_SETUP_BACKLIGHT_MODE,
|
||||
ITEM_SETUP_BACKLIGHT_DELAY,
|
||||
|
@ -115,7 +116,7 @@ void menuRadioSetup(event_t event)
|
|||
}
|
||||
#endif
|
||||
|
||||
MENU(STR_MENURADIOSETUP, menuTabGeneral, MENU_RADIO_SETUP, ITEM_SETUP_MAX, { 2, 2, 0, 1, LABEL(SOUND), 0, 0, 0, 0, 0, 0, 0, CASE_VARIO(LABEL(VARIO)) CASE_VARIO(0) CASE_VARIO(0) CASE_VARIO(0) CASE_VARIO(0) CASE_HAPTIC(LABEL(HAPTIC)) CASE_HAPTIC(0) CASE_HAPTIC(0) CASE_HAPTIC(0) 0, LABEL(ALARMS), 0, 0, 0, 0, IF_ROTARY_ENCODERS(0) LABEL(BACKLIGHT), 0, 0, 0, CASE_PCBX9E_PCBX9DP(0) CASE_PWM_BACKLIGHT(0) CASE_PWM_BACKLIGHT(0) 0, CASE_SPLASH_PARAM(0) CASE_GPS(LABEL(GPS)) CASE_GPS(0) CASE_GPS(0) CASE_GPS(0) CASE_PXX(0) 0, 0, IF_FAI_CHOICE(0) CASE_MAVLINK(0) 0, 0, LABEL(TX_MODE), 0, 1/*to force edit mode*/ });
|
||||
MENU(STR_MENURADIOSETUP, menuTabGeneral, MENU_RADIO_SETUP, ITEM_SETUP_MAX, { 2, 2, 0, 1, LABEL(SOUND), 0, 0, 0, 0, 0, 0, 0, CASE_VARIO(LABEL(VARIO)) CASE_VARIO(0) CASE_VARIO(0) CASE_VARIO(0) CASE_VARIO(0) CASE_HAPTIC(LABEL(HAPTIC)) CASE_HAPTIC(0) CASE_HAPTIC(0) CASE_HAPTIC(0) 0, LABEL(ALARMS), 0, 0, 0, 0, 0,IF_ROTARY_ENCODERS(0) LABEL(BACKLIGHT), 0, 0, 0, CASE_PCBX9E_PCBX9DP(0) CASE_PWM_BACKLIGHT(0) CASE_PWM_BACKLIGHT(0) 0, CASE_SPLASH_PARAM(0) CASE_GPS(LABEL(GPS)) CASE_GPS(0) CASE_GPS(0) CASE_GPS(0) CASE_PXX(0) 0, 0, IF_FAI_CHOICE(0) CASE_MAVLINK(0) 0, 0, LABEL(TX_MODE), 0, 1/*to force edit mode*/ });
|
||||
|
||||
if (event == EVT_ENTRY) {
|
||||
reusableBuffer.generalSettings.stickMode = g_eeGeneral.stickMode;
|
||||
|
@ -343,6 +344,12 @@ void menuRadioSetup(event_t event)
|
|||
break;
|
||||
}
|
||||
|
||||
case ITEM_SETUP_RSSI_POWEROFF_ALARM:
|
||||
{
|
||||
g_eeGeneral.rssiPoweroffAlarm = editCheckBox(g_eeGeneral.rssiPoweroffAlarm, RADIO_SETUP_2ND_COLUMN, y, STR_RSSISHUTDOWNALARM, attr, event);
|
||||
break;
|
||||
}
|
||||
|
||||
case ITEM_SETUP_INACTIVITY_ALARM:
|
||||
lcdDrawTextAlignedLeft(y, STR_INACTIVITYALARM);
|
||||
lcdDrawNumber(RADIO_SETUP_2ND_COLUMN, y, g_eeGeneral.inactivityTimer, attr|LEFT);
|
||||
|
|
|
@ -40,12 +40,15 @@ const pm_uchar bmp_shutdown[] PROGMEM = {
|
|||
|
||||
#define SHUTDOWN_BITMAP_WIDTH 60
|
||||
#define SHUTDOWN_BITMAP_HEIGHT 60
|
||||
void drawShutdownAnimation(uint32_t index)
|
||||
void drawShutdownAnimation(uint32_t index, const char * message)
|
||||
{
|
||||
index /= (PWR_PRESS_SHUTDOWN_DELAY / 4);
|
||||
lcdRefreshWait();
|
||||
lcdClear();
|
||||
lcdDrawBitmap((LCD_W-SHUTDOWN_BITMAP_WIDTH)/2, (LCD_H-SHUTDOWN_BITMAP_HEIGHT)/2, bmp_shutdown, (3 - index) * SHUTDOWN_BITMAP_WIDTH, SHUTDOWN_BITMAP_WIDTH);
|
||||
if (message) {
|
||||
lcdDrawText((LCD_W - getTextWidth(message)) / 2, LCD_H-2*FH, message);
|
||||
}
|
||||
lcdRefresh();
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
|
||||
#include "opentx.h"
|
||||
|
||||
#define RADIO_SETUP_2ND_COLUMN 220
|
||||
#define RADIO_SETUP_2ND_COLUMN 235
|
||||
|
||||
int8_t editSlider(coord_t x, coord_t y, event_t event, int8_t value, int8_t min, int8_t max, LcdFlags attr)
|
||||
{
|
||||
|
@ -59,6 +59,7 @@ enum menuRadioSetupItems {
|
|||
ITEM_SETUP_INACTIVITY_ALARM,
|
||||
// ITEM_SETUP_MEMORY_WARNING,
|
||||
ITEM_SETUP_ALARM_WARNING,
|
||||
ITEM_SETUP_RSSI_POWEROFF_ALARM,
|
||||
ITEM_SETUP_BACKLIGHT_LABEL,
|
||||
ITEM_SETUP_BACKLIGHT_MODE,
|
||||
ITEM_SETUP_BACKLIGHT_DELAY,
|
||||
|
@ -111,7 +112,7 @@ bool menuRadioSetup(event_t event)
|
|||
LABEL(SOUND), 0, 0, 0, 0, 0, 0, 0,
|
||||
CASE_VARIO(LABEL(VARIO)) CASE_VARIO(0) CASE_VARIO(0) CASE_VARIO(0) CASE_VARIO(0)
|
||||
CASE_HAPTIC(LABEL(HAPTIC)) CASE_HAPTIC(0) CASE_HAPTIC(0) CASE_HAPTIC(0)
|
||||
LABEL(ALARMS), 0, 0, 0,
|
||||
LABEL(ALARMS), 0, 0, 0, 0,
|
||||
LABEL(BACKLIGHT), 0, 0, 0, 0, 0,
|
||||
CASE_GPS(LABEL(GPS)) CASE_GPS(0) CASE_GPS(0) CASE_GPS(0)
|
||||
CASE_PXX(0) 0, 0, FAI_CHOICE_ROW 0, 0, 0, 1/*to force edit mode*/ }); // Country code - Voice Language - Units - Fai choice - Play delay - Chan order - Mode (1 to 4)
|
||||
|
@ -348,6 +349,13 @@ bool menuRadioSetup(event_t event)
|
|||
break;
|
||||
}
|
||||
|
||||
case ITEM_SETUP_RSSI_POWEROFF_ALARM:
|
||||
{
|
||||
lcdDrawText(MENUS_MARGIN_LEFT, y, STR_RSSISHUTDOWNALARM);
|
||||
g_eeGeneral.rssiPoweroffAlarm = editCheckBox(g_eeGeneral.rssiPoweroffAlarm, RADIO_SETUP_2ND_COLUMN, y, attr, event);
|
||||
break;
|
||||
}
|
||||
|
||||
case ITEM_SETUP_INACTIVITY_ALARM:
|
||||
lcdDrawText(MENUS_MARGIN_LEFT, y,STR_INACTIVITYALARM);
|
||||
lcdDrawNumber(RADIO_SETUP_2ND_COLUMN, y, g_eeGeneral.inactivityTimer, attr|LEFT, 0, NULL, "m");
|
||||
|
|
|
@ -376,7 +376,7 @@ void drawSleepBitmap()
|
|||
}
|
||||
|
||||
#define SHUTDOWN_CIRCLE_DIAMETER 150
|
||||
void drawShutdownAnimation(uint32_t index)
|
||||
void drawShutdownAnimation(uint32_t index, const char * message)
|
||||
{
|
||||
static uint32_t last_index = 0xffffffff;
|
||||
static const BitmapBuffer * shutdown = BitmapBuffer::load(getThemePath("shutdown.bmp"));
|
||||
|
|
|
@ -69,7 +69,7 @@ int16_t editGVarFieldValue(coord_t x, coord_t y, int16_t value, int16_t min, int
|
|||
void drawMenuTemplate(const char * title, uint8_t icon, const uint8_t * icons=NULL, uint32_t options=0);
|
||||
void drawSplash();
|
||||
void drawSleepBitmap();
|
||||
void drawShutdownAnimation(uint32_t index);
|
||||
void drawShutdownAnimation(uint32_t index, const char * message);
|
||||
|
||||
// Main view standard widgets
|
||||
void drawTopBar();
|
||||
|
|
|
@ -2740,6 +2740,8 @@ uint32_t pwrPressedDuration()
|
|||
|
||||
uint32_t pwrCheck()
|
||||
{
|
||||
const char * message = NULL;
|
||||
|
||||
enum PwrCheckState {
|
||||
PWR_CHECK_ON,
|
||||
PWR_CHECK_OFF,
|
||||
|
@ -2752,11 +2754,17 @@ uint32_t pwrCheck()
|
|||
return e_power_off;
|
||||
}
|
||||
else if (pwrPressed()) {
|
||||
if (TELEMETRY_STREAMING()) {
|
||||
message = STR_MODEL_STILL_POWERED;
|
||||
}
|
||||
if (pwr_check_state == PWR_CHECK_PAUSED) {
|
||||
// nothing
|
||||
}
|
||||
else if (pwr_press_time == 0) {
|
||||
pwr_press_time = get_tmr10ms();
|
||||
if (message && g_eeGeneral.rssiPoweroffAlarm) {
|
||||
audioEvent(AU_MODEL_STILL_POWERED);
|
||||
}
|
||||
}
|
||||
else {
|
||||
inactivity.counter = 0;
|
||||
|
@ -2783,13 +2791,30 @@ uint32_t pwrCheck()
|
|||
}
|
||||
}
|
||||
#else
|
||||
while ((TELEMETRY_STREAMING() && g_eeGeneral.rssiPoweroffAlarm)) {
|
||||
lcdRefreshWait();
|
||||
lcdClear();
|
||||
POPUP_CONFIRMATION("Confirm Shutdown");
|
||||
event_t evt = getEvent(false);
|
||||
DISPLAY_WARNING(evt);
|
||||
lcdRefresh();
|
||||
if (warningResult == true) {
|
||||
pwr_check_state = PWR_CHECK_OFF;
|
||||
return e_power_off;
|
||||
}
|
||||
else if (!warningText) {
|
||||
// shutdown has been cancelled
|
||||
pwr_check_state = PWR_CHECK_PAUSED;
|
||||
return e_power_on;
|
||||
}
|
||||
}
|
||||
haptic.play(15, 3, PLAY_NOW);
|
||||
pwr_check_state = PWR_CHECK_OFF;
|
||||
return e_power_off;
|
||||
#endif
|
||||
}
|
||||
else {
|
||||
drawShutdownAnimation(pwrPressedDuration());
|
||||
drawShutdownAnimation(pwrPressedDuration(), message);
|
||||
return e_power_press;
|
||||
}
|
||||
}
|
||||
|
@ -2805,18 +2830,38 @@ uint32_t pwrCheck()
|
|||
uint32_t pwrCheck()
|
||||
{
|
||||
#if defined(SOFT_PWR_CTRL)
|
||||
if (pwrPressed())
|
||||
if (pwrPressed()) {
|
||||
return e_power_on;
|
||||
}
|
||||
#endif
|
||||
|
||||
if (usbPlugged())
|
||||
if (usbPlugged()) {
|
||||
return e_power_usb;
|
||||
}
|
||||
|
||||
#if defined(TRAINER_PWR)
|
||||
if (TRAINER_CONNECTED())
|
||||
if (TRAINER_CONNECTED()) {
|
||||
return e_power_trainer;
|
||||
}
|
||||
#endif
|
||||
|
||||
if (g_eeGeneral.rssiPoweroffAlarm) {
|
||||
if (TELEMETRY_STREAMING()) {
|
||||
RAISE_ALERT(STR_MODEL, STR_MODEL_STILL_POWERED, STR_PRESS_ENTER_TO_CONFIRM, AU_MODEL_STILL_POWERED);
|
||||
while (TELEMETRY_STREAMING()) {
|
||||
#if defined(CPUARM)
|
||||
CoTickDelay(10);
|
||||
#endif
|
||||
if (pwrPressed()) {
|
||||
return e_power_on;
|
||||
}
|
||||
else if (readKeys() == (1 << KEY_ENTER)) {
|
||||
return e_power_off;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return e_power_off;
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -1231,6 +1231,7 @@ enum AUDIO_SOUNDS {
|
|||
AU_SENSOR_LOST,
|
||||
AU_SERVO_KO,
|
||||
AU_RX_OVERLOAD,
|
||||
AU_MODEL_STILL_POWERED,
|
||||
#endif
|
||||
#if defined(PCBSKY9X)
|
||||
AU_TX_MAH_HIGH,
|
||||
|
|
|
@ -49,7 +49,7 @@ int8_t char2idx(char c)
|
|||
{
|
||||
if (c == '_') return 37;
|
||||
#if LEN_SPECIAL_CHARS > 0
|
||||
if (c < 0 && c+128 <= LEN_SPECIAL_CHARS) return 41 + (c+128);
|
||||
if ((int8_t)c < 0 && c+128 <= LEN_SPECIAL_CHARS) return 41 + (c+128);
|
||||
#endif
|
||||
if (c >= 'a') return 'a' - c - 1;
|
||||
if (c >= 'A') return c - 'A' + 1;
|
||||
|
|
|
@ -230,6 +230,9 @@ const pm_char STR_BATTERYWARNING[] PROGMEM = TR_BATTERYWARNING;
|
|||
const pm_char STR_INACTIVITYALARM[] PROGMEM = TR_INACTIVITYALARM;
|
||||
const pm_char STR_MEMORYWARNING[] PROGMEM = TR_MEMORYWARNING;
|
||||
const pm_char STR_ALARMWARNING[] PROGMEM = TR_ALARMWARNING;
|
||||
const pm_char STR_RSSISHUTDOWNALARM[] PROGMEM = TR_RSSISHUTDOWNALARM;
|
||||
const pm_char STR_MODEL_STILL_POWERED[] PROGMEM = TR_MODEL_STILL_POWERED;
|
||||
const pm_char STR_PRESS_ENTER_TO_CONFIRM[] PROGMEM = TR_PRESS_ENTER_TO_CONFIRM;
|
||||
#if defined(ROTARY_ENCODERS)
|
||||
const pm_char STR_RENAVIG[] PROGMEM = TR_RENAVIG;
|
||||
#endif
|
||||
|
|
|
@ -467,6 +467,9 @@ extern const pm_char STR_BATTERYWARNING[];
|
|||
extern const pm_char STR_INACTIVITYALARM[];
|
||||
extern const pm_char STR_MEMORYWARNING[];
|
||||
extern const pm_char STR_ALARMWARNING[];
|
||||
extern const pm_char STR_RSSISHUTDOWNALARM[];
|
||||
extern const pm_char STR_MODEL_STILL_POWERED[];
|
||||
extern const pm_char STR_PRESS_ENTER_TO_CONFIRM[];
|
||||
extern const pm_char STR_RENAVIG[];
|
||||
extern const pm_char STR_THROTTLEREVERSE[];
|
||||
extern const pm_char STR_TIMER_NAME[];
|
||||
|
|
|
@ -711,6 +711,9 @@
|
|||
#define TR_INACTIVITYALARM TR(INDENT "Nečinnost", INDENT "Nečinnost rádia")
|
||||
#define TR_MEMORYWARNING INDENT"Plná pamět'"
|
||||
#define TR_ALARMWARNING TR3(INDENT "Vypnutý zvuk", INDENT "Upozornit na vypnutý zvuk", INDENT "Upozornit na vyp. zvuk")
|
||||
#define TR_RSSISHUTDOWNALARM TR(INDENT "Rssi Shutdown", INDENT "Check Rssi on Shutdown")
|
||||
#define TR_MODEL_STILL_POWERED "Model still powered"
|
||||
#define TR_PRESS_ENTER_TO_CONFIRM "Press enter to confirm"
|
||||
#define TR_RENAVIG "Navig. RotEnc"
|
||||
#define TR_THROTTLE_LABEL "Plyn"
|
||||
#define TR_THROTTLEREVERSE TR("ReversPlyn", INDENT"Revers plynu")
|
||||
|
|
|
@ -731,6 +731,9 @@
|
|||
#define TR_INACTIVITYALARM TR(INDENT "Inaktivität", INDENT "Inaktivität nach") //9XR-Pro
|
||||
#define TR_MEMORYWARNING INDENT "Speicher voll"
|
||||
#define TR_ALARMWARNING TR(INDENT "Alle Töne aus?", INDENT "Alle Töne ganz aus?")
|
||||
#define TR_RSSISHUTDOWNALARM TR(INDENT "Rssi Shutdown", INDENT "Check Rssi on Shutdown")
|
||||
#define TR_MODEL_STILL_POWERED "Model still powered"
|
||||
#define TR_PRESS_ENTER_TO_CONFIRM "Press enter to confirm"
|
||||
#define TR_RENAVIG "Drehgeb. Navig."
|
||||
#define TR_THROTTLE_LABEL "----Gas-Kontrolle----"
|
||||
#define TR_THROTTLEREVERSE TR("Gas invers", INDENT "Vollgas hinten?") //Änderung wg TH9x, Taranis
|
||||
|
|
|
@ -714,6 +714,9 @@
|
|||
#define TR_INACTIVITYALARM INDENT "Inactivity"
|
||||
#define TR_MEMORYWARNING INDENT "Memory low"
|
||||
#define TR_ALARMWARNING INDENT "Sound off"
|
||||
#define TR_RSSISHUTDOWNALARM TR(INDENT "Rssi Shutdown", INDENT "Check Rssi on Shutdown")
|
||||
#define TR_MODEL_STILL_POWERED "Model still powered"
|
||||
#define TR_PRESS_ENTER_TO_CONFIRM "Press enter to confirm"
|
||||
#define TR_RENAVIG "RotEnc Navig"
|
||||
#define TR_THROTTLE_LABEL "Throttle"
|
||||
#define TR_THROTTLEREVERSE TR("T-Reverse", INDENT "Reverse")
|
||||
|
|
|
@ -701,6 +701,9 @@
|
|||
#define TR_INACTIVITYALARM INDENT"Inactividad"
|
||||
#define TR_MEMORYWARNING INDENT"Memoria Baja"
|
||||
#define TR_ALARMWARNING INDENT"Sin Sonido"
|
||||
#define TR_RSSISHUTDOWNALARM TR(INDENT "Rssi Shutdown", INDENT "Check Rssi on Shutdown")
|
||||
#define TR_MODEL_STILL_POWERED "Model still powered"
|
||||
#define TR_PRESS_ENTER_TO_CONFIRM "Press enter to confirm"
|
||||
#define TR_RENAVIG "RotEnc Navig"
|
||||
#define TR_THROTTLE_LABEL "Throttle"
|
||||
#define TR_THROTTLEREVERSE TR("Invert_Acel", INDENT "Invertir Acel.")
|
||||
|
|
|
@ -697,6 +697,9 @@
|
|||
#define TR_INACTIVITYALARM INDENT"Inactivity"
|
||||
#define TR_MEMORYWARNING INDENT"Memory Low"
|
||||
#define TR_ALARMWARNING INDENT"Sound Off"
|
||||
#define TR_RSSISHUTDOWNALARM TR(INDENT "Rssi Shutdown", INDENT "Check Rssi on Shutdown")
|
||||
#define TR_MODEL_STILL_POWERED "Model still powered"
|
||||
#define TR_PRESS_ENTER_TO_CONFIRM "Press enter to confirm"
|
||||
#define TR_RENAVIG "RotEnc Navig"
|
||||
#define TR_THROTTLE_LABEL "Throttle"
|
||||
#define TR_THROTTLEREVERSE TR("T-Reverse", INDENT "Throttle reverse")
|
||||
|
|
|
@ -718,6 +718,9 @@
|
|||
#define TR_INACTIVITYALARM INDENT "Inactivité"
|
||||
#define TR_MEMORYWARNING INDENT "Mémoire pleine"
|
||||
#define TR_ALARMWARNING TR(INDENT "Silence", INDENT "Sons désactivés")
|
||||
#define TR_RSSISHUTDOWNALARM TR(INDENT "Rssi Shutdown", INDENT "Check Rssi on Shutdown")
|
||||
#define TR_MODEL_STILL_POWERED "Modèle encore allumé"
|
||||
#define TR_PRESS_ENTER_TO_CONFIRM "Presser [Enter] pour confirmer"
|
||||
#define TR_RENAVIG "Navig EncRot"
|
||||
#define TR_THROTTLE_LABEL "Gaz"
|
||||
#define TR_THROTTLEREVERSE TR("Inv. gaz", INDENT "Inversion gaz")
|
||||
|
@ -855,7 +858,7 @@
|
|||
#define TR_MULTI_DSM_AUTODTECT TR(INDENT "Autodét.", INDENT "Autodétection")
|
||||
#define TR_MULTI_LOWPOWER TR(INDENT "Basse puis.", INDENT "Mode basse puiss.")
|
||||
#define TR_DISABLE_INTERNAL TR("Désact intRF", "Désact. RF interne")
|
||||
#define TR_MODULE_NO_SERIAL_MODE TR("Mode série?", "Pas en mode série")
|
||||
#define TR_MODULE_NO_SERIAL_MOD E TR("Mode série?", "Pas en mode 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_BINDING "Bind..."
|
||||
|
|
|
@ -716,6 +716,9 @@
|
|||
#define TR_INACTIVITYALARM INDENT"Inattivita'"
|
||||
#define TR_MEMORYWARNING INDENT"Avviso memoria"
|
||||
#define TR_ALARMWARNING INDENT"Spegni suono"
|
||||
#define TR_RSSISHUTDOWNALARM TR(INDENT "Rssi Shutdown", INDENT "Check Rssi on Shutdown")
|
||||
#define TR_MODEL_STILL_POWERED "Model still powered"
|
||||
#define TR_PRESS_ENTER_TO_CONFIRM "Press enter to confirm"
|
||||
#define TR_RENAVIG "Navig EncRot "
|
||||
#define TR_THROTTLE_LABEL "Motore"
|
||||
#define TR_THROTTLEREVERSE TR("Mot inv.", INDENT "Motore Inverso")
|
||||
|
|
|
@ -706,6 +706,9 @@
|
|||
#define TR_INACTIVITYALARM TR(INDENT "Inactiviteit", INDENT "Inactiviteit na") //9XR-Pro
|
||||
#define TR_MEMORYWARNING INDENT "Geheugen laag"
|
||||
#define TR_ALARMWARNING TR(INDENT "Al Geluid uit?", INDENT "Al het geluid uit?")
|
||||
#define TR_RSSISHUTDOWNALARM TR(INDENT "Rssi Shutdown", INDENT "Check Rssi on Shutdown")
|
||||
#define TR_MODEL_STILL_POWERED "Model still powered"
|
||||
#define TR_PRESS_ENTER_TO_CONFIRM "Press enter to confirm"
|
||||
#define TR_RENAVIG "Stappenschakelaar"
|
||||
#define TR_THROTTLE_LABEL "----Gas-------------"
|
||||
#define TR_THROTTLEREVERSE TR("Reverse", INDENT "Omgekeerd")
|
||||
|
|
|
@ -718,6 +718,9 @@
|
|||
#define TR_INACTIVITYALARM INDENT"Alarm bezczynności"
|
||||
#define TR_MEMORYWARNING INDENT"Pełna pamięć"
|
||||
#define TR_ALARMWARNING INDENT"Wyłącz dźwięk"
|
||||
#define TR_RSSISHUTDOWNALARM TR(INDENT "Rssi Shutdown", INDENT "Check Rssi on Shutdown")
|
||||
#define TR_MODEL_STILL_POWERED "Model still powered"
|
||||
#define TR_PRESS_ENTER_TO_CONFIRM "Press enter to confirm"
|
||||
#define TR_RENAVIG "Nawigacja potencjometrem"
|
||||
#define TR_THROTTLE_LABEL "Gaz "
|
||||
#define TR_THROTTLEREVERSE TR("OdwrGaz", INDENT "OdwrGaz")
|
||||
|
|
|
@ -702,6 +702,9 @@
|
|||
#define TR_INACTIVITYALARM INDENT"Inactividade"
|
||||
#define TR_MEMORYWARNING INDENT"Memoria Baixa"
|
||||
#define TR_ALARMWARNING INDENT"Som Off"
|
||||
#define TR_RSSISHUTDOWNALARM TR(INDENT "Rssi Shutdown", INDENT "Check Rssi on Shutdown")
|
||||
#define TR_MODEL_STILL_POWERED "Model still powered"
|
||||
#define TR_PRESS_ENTER_TO_CONFIRM "Press enter to confirm"
|
||||
#define TR_RENAVIG "RotEnc Navig"
|
||||
#define TR_THROTTLE_LABEL "Throttle"
|
||||
#define TR_THROTTLEREVERSE TR("Inverte Acel.", INDENT "Inverte Acel.")
|
||||
|
|
|
@ -729,6 +729,9 @@
|
|||
#define TR_INACTIVITYALARM INDENT"Inaktivitet"
|
||||
#define TR_MEMORYWARNING INDENT"Lite Minne"
|
||||
#define TR_ALARMWARNING INDENT"Ljud Av"
|
||||
#define TR_RSSISHUTDOWNALARM TR(INDENT "Rssi Shutdown", INDENT "Check Rssi on Shutdown")
|
||||
#define TR_MODEL_STILL_POWERED "Model still powered"
|
||||
#define TR_PRESS_ENTER_TO_CONFIRM "Press enter to confirm"
|
||||
#define TR_RENAVIG "RotEnk Navig"
|
||||
#define TR_THROTTLE_LABEL "Gas"
|
||||
#define TR_THROTTLEREVERSE TR("Inv.Gas", INDENT "Inverterad Gas")
|
||||
|
|
|
@ -78,6 +78,7 @@ for s, f, a in [("střed trimu", "midtrim", 495),
|
|||
("senzor ztracen", "sensorko", NO_ALTERNATE),
|
||||
("servo přetíženo", "servoko", NO_ALTERNATE),
|
||||
("r f přebuzeno", "rxko", NO_ALTERNATE),
|
||||
("receiver still connected", "modelpwr", NO_ALTERNATE),
|
||||
]:
|
||||
systemSounds.append((s, filename(f, a)))
|
||||
for i, (s, f) in enumerate([("podvozek je zasunut", "podvo0"),
|
||||
|
|
|
@ -74,6 +74,9 @@ for s, f, a in [("Inaktivitätsalarm", "inactiv", 486),
|
|||
("Telemetrie wiederhergestellt", "telemok", NO_ALTERNATE),
|
||||
("Schülersignal verloren", "trainko", NO_ALTERNATE),
|
||||
("Schülersignal wiederhergestellt", "trainok", NO_ALTERNATE),
|
||||
("servo overload", "servoko", NO_ALTERNATE),
|
||||
("power overload", "rxko", NO_ALTERNATE),
|
||||
("Empfänger noch verbunden", "modelpwr", NO_ALTERNATE),
|
||||
]:
|
||||
systemSounds.append((s, filename(f, a)))
|
||||
for i, s in enumerate(["Uhr", "Uhr", "Sender", "Empfang", "A1", "A2", "Hoehe", "Motor",
|
||||
|
|
|
@ -68,6 +68,7 @@ for s, f, a in [("trim center", "midtrim", 495),
|
|||
("sensor lost", "sensorko", NO_ALTERNATE),
|
||||
("servo overload", "servoko", NO_ALTERNATE),
|
||||
("power overload", "rxko", NO_ALTERNATE),
|
||||
("receiver still connected", "modelpwr", NO_ALTERNATE),
|
||||
]:
|
||||
systemSounds.append((s, filename(f, a)))
|
||||
for i, (s, f) in enumerate([("gear!, up!", "gearup"),
|
||||
|
|
|
@ -74,6 +74,9 @@ for s, f, a in [("me tienes abandonada", "inactiv", 486),
|
|||
("Problemas con la antena del transmisor", "swr_red", NO_ALTERNATE),
|
||||
("Sin telemetría", "telemko", NO_ALTERNATE),
|
||||
("Telemetría disponible", "telemok", NO_ALTERNATE),
|
||||
("servo overload", "servoko", NO_ALTERNATE),
|
||||
("power overload", "rxko", NO_ALTERNATE),
|
||||
("receiver still connected", "modelpwr", NO_ALTERNATE),
|
||||
]:
|
||||
systemSounds.append((s, filename(f, a)))
|
||||
for i, s in enumerate(["cronómetro", "cronómetro", "transmisión", "recepción", "A1", "A2", "altitud", "motor",
|
||||
|
|
|
@ -67,6 +67,7 @@ for s, f, a in [("Trim centré", "midtrim", 495),
|
|||
("Sonde de télémétrie perdue", "sensorko", NO_ALTERNATE),
|
||||
("Servo en surcharge", "servoko", NO_ALTERNATE),
|
||||
("Surcharge réception", "rxko", NO_ALTERNATE),
|
||||
("Récepteur encore sous tension", "modelpwr", NO_ALTERNATE),
|
||||
]:
|
||||
systemSounds.append((s, filename(f, a)))
|
||||
for i, (s, f) in enumerate([("altitude", "altitude"),
|
||||
|
|
|
@ -70,6 +70,9 @@ for s, f, a in [("radio inattiva controllare", "inactiv", 486),
|
|||
("Problema all'antenna della radio", "swr_red", NO_ALTERNATE),
|
||||
("Telemetria assente", "telemko", NO_ALTERNATE),
|
||||
("Telemetria disponibile", "telemok", NO_ALTERNATE),
|
||||
("servo overload", "servoko", NO_ALTERNATE),
|
||||
("power overload", "rxko", NO_ALTERNATE),
|
||||
("receiver still connected", "modelpwr", NO_ALTERNATE),
|
||||
]:
|
||||
systemSounds.append((s, filename(f, a)))
|
||||
for i, s in enumerate(["timer", "", "tensione", "tensione", "trasmissione", "ricezione", "altitudine", "motore",
|
||||
|
|
|
@ -72,6 +72,9 @@ for s, f, a in [("atenção, o rádio foi esquecido ligado, por favor desligue-o
|
|||
("recepção de sinal muito baixa", "rssi_org", NO_ALTERNATE),
|
||||
("recepção de sinal crítica", "rssi_red", NO_ALTERNATE),
|
||||
("Problema com a antena do transmissor", "swr_red", NO_ALTERNATE),
|
||||
("servo overload", "servoko", NO_ALTERNATE),
|
||||
("power overload", "rxko", NO_ALTERNATE),
|
||||
("receiver still connected", "modelpwr", NO_ALTERNATE),
|
||||
]:
|
||||
systemSounds.append((s, filename(f, a)))
|
||||
for i, s in enumerate(["cronómetro", "cronómetro", "transmissão", "recepção", "A1", "A2", "altitude", "motor",
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue