From 16b9d72aba1e5049ab26ea740789d7edfeb11987 Mon Sep 17 00:00:00 2001 From: 3djc Date: Mon, 23 Oct 2023 11:27:53 +0200 Subject: [PATCH] feat: Warn on shutdown if trainer is connected (#4212) Co-authored-by: Peter Feerick --- radio/src/opentx.cpp | 18 +++++++++++++++--- radio/src/translations.cpp | 1 + radio/src/translations.h | 1 + radio/src/translations/cn.h | 1 + radio/src/translations/cz.h | 1 + radio/src/translations/da.h | 1 + radio/src/translations/de.h | 1 + radio/src/translations/en.h | 1 + radio/src/translations/es.h | 1 + radio/src/translations/fi.h | 1 + radio/src/translations/fr.h | 1 + radio/src/translations/he.h | 1 + radio/src/translations/it.h | 1 + radio/src/translations/jp.h | 1 + radio/src/translations/nl.h | 1 + radio/src/translations/pl.h | 1 + radio/src/translations/pt.h | 1 + radio/src/translations/se.h | 1 + radio/src/translations/tw.h | 1 + 19 files changed, 33 insertions(+), 3 deletions(-) diff --git a/radio/src/opentx.cpp b/radio/src/opentx.cpp index 44b336e19..cb1f5d390 100644 --- a/radio/src/opentx.cpp +++ b/radio/src/opentx.cpp @@ -1782,12 +1782,15 @@ uint32_t pwrCheck() #if defined(COLORLCD) bool usbConfirmed = !usbPlugged() || getSelectedUsbMode() == USB_UNSELECTED_MODE; bool modelConnectedConfirmed = !TELEMETRY_STREAMING() || g_eeGeneral.disableRssiPoweroffAlarm; + bool trainerConfirmed = !isTrainerConnected(); #endif #if defined(SHUTDOWN_CONFIRMATION) while (1) #else - while ((usbPlugged() && getSelectedUsbMode() != USB_UNSELECTED_MODE) || - (TELEMETRY_STREAMING() && !g_eeGeneral.disableRssiPoweroffAlarm)) + while ( + (usbPlugged() && getSelectedUsbMode() != USB_UNSELECTED_MODE) || + (TELEMETRY_STREAMING() && !g_eeGeneral.disableRssiPoweroffAlarm) || + isTrainerConnected()) #endif { @@ -1804,7 +1807,10 @@ uint32_t pwrCheck() msg = STR_USB_STILL_CONNECTED; msg_len = sizeof(TR_USB_STILL_CONNECTED); } - + else if (isTrainerConnected()) { + msg = STR_TRAINER_STILL_CONNECTED; + msg_len = sizeof(TR_TRAINER_STILL_CONNECTED); + } event_t evt = getEvent(); SET_WARNING_INFO(msg, msg_len, 0); DISPLAY_WARNING(evt); @@ -1843,6 +1849,12 @@ uint32_t pwrCheck() return !TELEMETRY_STREAMING() || g_eeGeneral.disableRssiPoweroffAlarm; }; } + else if (!trainerConfirmed) { + message = STR_TRAINER_STILL_CONNECTED; + closeCondition = [](){ + return !isTrainerConnected(); + }; + } // TODO: abort dialog condition (here, RSSI lost / USB connected) if (confirmationDialog(STR_MODEL_SHUTDOWN, message, false, closeCondition)) { diff --git a/radio/src/translations.cpp b/radio/src/translations.cpp index 7c4ed4ef1..b425a394a 100644 --- a/radio/src/translations.cpp +++ b/radio/src/translations.cpp @@ -242,6 +242,7 @@ const char STR_MEMORYWARNING[] = TR_MEMORYWARNING; const char STR_ALARMWARNING[] = TR_ALARMWARNING; const char STR_RSSI_SHUTDOWN_ALARM[] = TR_RSSI_SHUTDOWN_ALARM; const char STR_MODEL_STILL_POWERED[] = TR_MODEL_STILL_POWERED; +const char STR_TRAINER_STILL_CONNECTED[] = TR_TRAINER_STILL_CONNECTED; const char STR_USB_STILL_CONNECTED[] = TR_USB_STILL_CONNECTED; const char STR_MODEL_SHUTDOWN[] = TR_MODEL_SHUTDOWN; const char STR_PRESS_ENTER_TO_CONFIRM[] = TR_PRESS_ENTER_TO_CONFIRM; diff --git a/radio/src/translations.h b/radio/src/translations.h index f74211db4..8dbf80b67 100644 --- a/radio/src/translations.h +++ b/radio/src/translations.h @@ -402,6 +402,7 @@ extern const char STR_ALARMWARNING[]; extern const char STR_RSSI_SHUTDOWN_ALARM[]; extern const char STR_MODEL_STILL_POWERED[]; extern const char STR_USB_STILL_CONNECTED[]; +extern const char STR_TRAINER_STILL_CONNECTED[]; extern const char STR_MODEL_SHUTDOWN[]; extern const char STR_PRESS_ENTER_TO_CONFIRM[]; extern const char STR_THROTTLEREVERSE[]; diff --git a/radio/src/translations/cn.h b/radio/src/translations/cn.h index 25ece2306..d40b774a1 100644 --- a/radio/src/translations/cn.h +++ b/radio/src/translations/cn.h @@ -347,6 +347,7 @@ #define TR_ALARMWARNING "静音" #define TR_RSSI_SHUTDOWN_ALARM TR("关机检查RSSI", "关机时检查RSSI") #define TR_MODEL_STILL_POWERED "模型未断电" +#define TR_TRAINER_STILL_CONNECTED "教练信号未断开" #define TR_USB_STILL_CONNECTED "USB未断开" #define TR_MODEL_SHUTDOWN "关机 ?" #define TR_PRESS_ENTER_TO_CONFIRM "按ENTER键确认" diff --git a/radio/src/translations/cz.h b/radio/src/translations/cz.h index f00494036..19b2dde56 100644 --- a/radio/src/translations/cz.h +++ b/radio/src/translations/cz.h @@ -364,6 +364,7 @@ #define TR_RSSI_SHUTDOWN_ALARM TR("Rssi při vyp.", "Hlídat RSSI při vypnutí") #define TR_FLYSKY_TELEMETRY TR("FlySky RSSI #", "Použít FlySky RSSI hodnotu bez škálování") #define TR_MODEL_STILL_POWERED "Model stále spuštěn" +#define TR_TRAINER_STILL_CONNECTED "Trenér stále připojen" #define TR_USB_STILL_CONNECTED "USB stále připojeno" #define TR_MODEL_SHUTDOWN "Vypnout?" #define TR_PRESS_ENTER_TO_CONFIRM "Zmáčkni ENTER pro potvrzení" diff --git a/radio/src/translations/da.h b/radio/src/translations/da.h index b2f1a8f9f..4ce89402d 100644 --- a/radio/src/translations/da.h +++ b/radio/src/translations/da.h @@ -358,6 +358,7 @@ #define TR_ALARMWARNING "Lyd fra" #define TR_RSSI_SHUTDOWN_ALARM TR("RSSI nedluk", "Check RSSI ved nedluk") #define TR_MODEL_STILL_POWERED "Model stadig med strøm" +#define TR_TRAINER_STILL_CONNECTED "Træner fortsat forbundet" #define TR_USB_STILL_CONNECTED "USB stadig forbundet" #define TR_MODEL_SHUTDOWN "Luk ned?" #define TR_PRESS_ENTER_TO_CONFIRM "Tryk enter for bekræft" diff --git a/radio/src/translations/de.h b/radio/src/translations/de.h index 299e1c4ab..bfd2ed9e3 100644 --- a/radio/src/translations/de.h +++ b/radio/src/translations/de.h @@ -355,6 +355,7 @@ #define TR_RSSI_SHUTDOWN_ALARM TR(INDENT "RSSI-Chk aus?", INDENT "Prüfe RSSI bei Ausschalten") #define TR_FLYSKY_TELEMETRY TR("FlySky RSSI #", "Use FlySky RSSI value without rescalling") #define TR_MODEL_STILL_POWERED "Modell noch aktiv!" +#define TR_TRAINER_STILL_CONNECTED "Schüler noch verbunden" #define TR_USB_STILL_CONNECTED "USB noch verbunden" #define TR_MODEL_SHUTDOWN "Herunterfahren?" #define TR_PRESS_ENTER_TO_CONFIRM "Drücke [ENTER] zum Bestätigen" diff --git a/radio/src/translations/en.h b/radio/src/translations/en.h index 200efbee4..3baaf3dee 100644 --- a/radio/src/translations/en.h +++ b/radio/src/translations/en.h @@ -353,6 +353,7 @@ #define TR_ALARMWARNING "Sound off" #define TR_RSSI_SHUTDOWN_ALARM TR("RSSI shutdown", "Check RSSI on shutdown") #define TR_MODEL_STILL_POWERED "Model still powered" +#define TR_TRAINER_STILL_CONNECTED "Trainer still connected" #define TR_USB_STILL_CONNECTED "USB still connected" #define TR_MODEL_SHUTDOWN "Shutdown?" #define TR_PRESS_ENTER_TO_CONFIRM "Press enter to confirm" diff --git a/radio/src/translations/es.h b/radio/src/translations/es.h index 174c0b8ae..4773c3452 100644 --- a/radio/src/translations/es.h +++ b/radio/src/translations/es.h @@ -351,6 +351,7 @@ #define TR_ALARMWARNING "Sin sonido" #define TR_RSSI_SHUTDOWN_ALARM TR("Apagado Rssi", "Check Rssi al apagar") #define TR_MODEL_STILL_POWERED "Modelo aun encendido" +#define TR_TRAINER_STILL_CONNECTED "Trainer still connected" #define TR_USB_STILL_CONNECTED "USB still connected" #define TR_MODEL_SHUTDOWN "Apagar ?" #define TR_PRESS_ENTER_TO_CONFIRM "Enter para confirmar" diff --git a/radio/src/translations/fi.h b/radio/src/translations/fi.h index fffec159c..1c602ae22 100644 --- a/radio/src/translations/fi.h +++ b/radio/src/translations/fi.h @@ -365,6 +365,7 @@ #define TR_ALARMWARNING "Sound Off" #define TR_RSSI_SHUTDOWN_ALARM TR("Rssi Shutdown", "Check Rssi on Shutdown") #define TR_MODEL_STILL_POWERED "Model still powered" +#define TR_TRAINER_STILL_CONNECTED "Trainer still connected" #define TR_USB_STILL_CONNECTED "USB still connected" #define TR_MODEL_SHUTDOWN "Shutdown ?" #define TR_PRESS_ENTER_TO_CONFIRM "Press enter to confirm" diff --git a/radio/src/translations/fr.h b/radio/src/translations/fr.h index 21223897a..7d529ac97 100644 --- a/radio/src/translations/fr.h +++ b/radio/src/translations/fr.h @@ -361,6 +361,7 @@ #define TR_RSSI_SHUTDOWN_ALARM TR("RSSI extinct.", "Vérif. RSSI à l'extinction") #define TR_FLYSKY_TELEMETRY TR("FlySky RSSI #", "Utiliser valeur RSSI FlySky sans étalonner") #define TR_MODEL_STILL_POWERED TR("Modèle alimenté", "Modèle encore alimenté") +#define TR_TRAINER_STILL_CONNECTED "Élève encore connecté" #define TR_USB_STILL_CONNECTED "USB encore connecté" #define TR_MODEL_SHUTDOWN "Éteindre ?" #define TR_PRESS_ENTER_TO_CONFIRM "Appui [Enter] pour confirmer" diff --git a/radio/src/translations/he.h b/radio/src/translations/he.h index 674e0b499..2798b72f9 100644 --- a/radio/src/translations/he.h +++ b/radio/src/translations/he.h @@ -357,6 +357,7 @@ #define TR_ALARMWARNING "sound off" #define TR_RSSI_SHUTDOWN_ALARM TR("RSSI shutdown", "בדיקת חיבור למקלט בכיבוי") #define TR_MODEL_STILL_POWERED "מודל עדיין פעיל" +#define TR_TRAINER_STILL_CONNECTED "מצב חניך עדיין מחובר" #define TR_USB_STILL_CONNECTED "חיבור עדיין מחובר" #define TR_MODEL_SHUTDOWN "?לכבות" #define TR_PRESS_ENTER_TO_CONFIRM "לחץ אנטר לאישור" diff --git a/radio/src/translations/it.h b/radio/src/translations/it.h index 6f6b1eaae..4e8dec655 100644 --- a/radio/src/translations/it.h +++ b/radio/src/translations/it.h @@ -353,6 +353,7 @@ #define TR_ALARMWARNING "Suono spento" #define TR_RSSI_SHUTDOWN_ALARM TR("RSSI spento", "controlla RSSI spegnendo") #define TR_MODEL_STILL_POWERED "Radio ancora\nconnessa" +#define TR_TRAINER_STILL_CONNECTED "Trainer ancora\nconnesso" #define TR_USB_STILL_CONNECTED "USB ancora\nconnesso" #define TR_MODEL_SHUTDOWN "Spegnimento?" #define TR_PRESS_ENTER_TO_CONFIRM "Premi [ENT] per confermare" diff --git a/radio/src/translations/jp.h b/radio/src/translations/jp.h index 6fb70d084..25cf4f640 100644 --- a/radio/src/translations/jp.h +++ b/radio/src/translations/jp.h @@ -353,6 +353,7 @@ #define TR_ALARMWARNING "音声OFF" #define TR_RSSI_SHUTDOWN_ALARM TR("RSSI shutdown", "シャットダウン時 RSSIを確認") #define TR_MODEL_STILL_POWERED "電源が入ったままです" +#define TR_TRAINER_STILL_CONNECTED "トレーナー通信はまだ継続しています" #define TR_USB_STILL_CONNECTED "USBが接続されたままです" #define TR_MODEL_SHUTDOWN "シャットダウンしますか?" #define TR_PRESS_ENTER_TO_CONFIRM "Enterを押して確認してください" diff --git a/radio/src/translations/nl.h b/radio/src/translations/nl.h index 9f4627f0a..edb5b2876 100644 --- a/radio/src/translations/nl.h +++ b/radio/src/translations/nl.h @@ -351,6 +351,7 @@ #define TR_ALARMWARNING TR("Al Geluid uit?", "Al het geluid uit?") #define TR_RSSI_SHUTDOWN_ALARM TR("Rssi Shutdown", "Check Rssi on Shutdown") #define TR_MODEL_STILL_POWERED "Model still powered" +#define TR_TRAINER_STILL_CONNECTED "Trainer still connected" #define TR_USB_STILL_CONNECTED "USB still connected" #define TR_MODEL_SHUTDOWN "Shutdown ?" #define TR_PRESS_ENTER_TO_CONFIRM "Press enter to confirm" diff --git a/radio/src/translations/pl.h b/radio/src/translations/pl.h index 76d5421df..7537a00dd 100644 --- a/radio/src/translations/pl.h +++ b/radio/src/translations/pl.h @@ -351,6 +351,7 @@ #define TR_ALARMWARNING "Wyłącz dźwięk" #define TR_RSSI_SHUTDOWN_ALARM TR("Rssi Shutdown", "Check Rssi on Shutdown") #define TR_MODEL_STILL_POWERED "Model jest włączony" +#define TR_TRAINER_STILL_CONNECTED "Uczeń ciągle podłączony" #define TR_USB_STILL_CONNECTED "USB jest podłączone" #define TR_MODEL_SHUTDOWN "Wyłączyć?" #define TR_PRESS_ENTER_TO_CONFIRM "Press enter to confirm" diff --git a/radio/src/translations/pt.h b/radio/src/translations/pt.h index 13641d628..f44e706e7 100644 --- a/radio/src/translations/pt.h +++ b/radio/src/translations/pt.h @@ -356,6 +356,7 @@ #define TR_ALARMWARNING "Som desligado" #define TR_RSSI_SHUTDOWN_ALARM TR("RSSI Deslig.", "Checar RSSI qnd desligar") #define TR_MODEL_STILL_POWERED "Modelo ainda ligado" +#define TR_TRAINER_STILL_CONNECTED "Trainer ainda conectado" #define TR_USB_STILL_CONNECTED "USB ainda ligadp" #define TR_MODEL_SHUTDOWN "Desligar?" #define TR_PRESS_ENTER_TO_CONFIRM "Press enter p/ confirmar" diff --git a/radio/src/translations/se.h b/radio/src/translations/se.h index ded656712..4ef3e32e3 100644 --- a/radio/src/translations/se.h +++ b/radio/src/translations/se.h @@ -368,6 +368,7 @@ #define TR_ALARMWARNING "Ljud av" #define TR_RSSI_SHUTDOWN_ALARM TR("RSSI avstängn.", "Kolla RSSI vid avstängning") #define TR_MODEL_STILL_POWERED TR("Modell på","Modellen är på") +#define TR_TRAINER_STILL_CONNECTED "Lärare fortfarande ansluten" #define TR_USB_STILL_CONNECTED "USB är ansluten" #define TR_MODEL_SHUTDOWN "Stänga av?" #define TR_PRESS_ENTER_TO_CONFIRM "Tryck [ENTER] för att bekräfta" diff --git a/radio/src/translations/tw.h b/radio/src/translations/tw.h index 125024a89..45f5523f5 100644 --- a/radio/src/translations/tw.h +++ b/radio/src/translations/tw.h @@ -353,6 +353,7 @@ #define TR_ALARMWARNING "靜音" #define TR_RSSI_SHUTDOWN_ALARM TR("關機檢查RSSI", "關機時檢查RSSI") #define TR_MODEL_STILL_POWERED "模型未斷電" +#define TR_TRAINER_STILL_CONNECTED "教練信號未斷開" #define TR_USB_STILL_CONNECTED "USB未斷開" #define TR_MODEL_SHUTDOWN "關機 ?" #define TR_PRESS_ENTER_TO_CONFIRM "按ENTER鍵確認"