diff --git a/CREDITS.txt b/CREDITS.txt index 685b148503..8c7828e458 100644 --- a/CREDITS.txt +++ b/CREDITS.txt @@ -1550,7 +1550,7 @@ NXGRAPHICS AIR-RC Nicolas Deshaies Jean-Francois Delhove -Hugo Daniel Farneti +Hugo Daniel Farneti RC electronic products Adrian Andrei Henk van de Kerkhof diff --git a/companion/src/firmwares/multiprotocols.cpp b/companion/src/firmwares/multiprotocols.cpp index 41f2e83c85..4ad8ba68a2 100644 --- a/companion/src/firmwares/multiprotocols.cpp +++ b/companion/src/firmwares/multiprotocols.cpp @@ -108,7 +108,7 @@ const Multiprotocols multiProtocols { {MODULE_SUBTYPE_MULTI_HITEC, 2, false, STR_SUBTYPE_HITEC, STR_MULTI_RFTUNE}, {MODULE_SUBTYPE_MULTI_BUGS_MINI, 1, false, STR_SUBTYPE_BUGS_MINI, nullptr}, {MODULE_SUBTYPE_MULTI_TRAXXAS, 0, false, STR_SUBTYPE_TRAXXAS, nullptr}, - {MODULE_SUBTYPE_MULTI_E01X, 2, false, STR_SUBTYPE_E01X, nullptr}, + {MODULE_SUBTYPE_MULTI_E01X, 2, false, STR_SUBTYPE_E01X, STR_MULTI_OPTION}, {MODULE_SUBTYPE_MULTI_V911S, 0, false, NO_SUBTYPE, STR_MULTI_RFTUNE}, {MODULE_SUBTYPE_MULTI_GD00X, 1, false, STR_SUBTYPE_GD00X, nullptr}, {MODULE_SUBTYPE_MULTI_KF606, 0, false, NO_SUBTYPE, STR_MULTI_RFTUNE}, diff --git a/companion/src/simulation/simulateduiwidgetX9LITE.cpp b/companion/src/simulation/simulateduiwidgetX9LITE.cpp index 640945bcf7..6941a308d7 100644 --- a/companion/src/simulation/simulateduiwidgetX9LITE.cpp +++ b/companion/src/simulation/simulateduiwidgetX9LITE.cpp @@ -8,24 +8,21 @@ SimulatedUIWidgetX9LITE::SimulatedUIWidgetX9LITE(SimulatorInterface *simulator, ui(new Ui::SimulatedUIWidgetX9LITE) { RadioUiAction * act; - QPolygon polygon; ui->setupUi(this); // add actions in order of appearance on the help menu QPoint ctr(70, 91); - polygon << polyArc(ctr.x(), ctr.y(), 50, -90, 90) << polyArc(ctr.x(), ctr.y(), 22, -90, 90); + act = new RadioUiAction(0, QList() << Qt::Key_PageUp << Qt::Key_Up, SIMU_STR_HLP_KEYS_GO_UP, SIMU_STR_HLP_ACT_MENU_ICN); - addRadioWidget(ui->leftbuttons->addArea(polyArc(ctr.x(), ctr.y(), 20), "X9LITE/left_menu.png", act)); + addRadioWidget(ui->leftbuttons->addArea(QRect(80, 20, 40, 35), "X9LITE/left_menu.png", act)); act = new RadioUiAction(3, QList() << Qt::Key_PageDown << Qt::Key_Down, SIMU_STR_HLP_KEYS_GO_DN, SIMU_STR_HLP_ACT_PAGE); - addRadioWidget(ui->leftbuttons->addArea(polygon, "X9LITE/left_page.png", act)); + addRadioWidget(ui->leftbuttons->addArea(QRect(80, 65, 40, 35), "X9LITE/left_page.png", act)); - polygon.clear(); - polygon << polyArc(ctr.x(), ctr.y(), 50, 90, 270) << polyArc(ctr.x(), ctr.y(), 22, 90, 270); act = new RadioUiAction(1, QList() << Qt::Key_Delete << Qt::Key_Escape << Qt::Key_Backspace, SIMU_STR_HLP_KEYS_EXIT, SIMU_STR_HLP_ACT_EXIT); - addRadioWidget(ui->leftbuttons->addArea(polygon, "X9LITE/left_exit.png", act)); + addRadioWidget(ui->leftbuttons->addArea(QRect(80, 130, 40, 35), "X9LITE/left_exit.png", act)); m_scrollUpAction = new RadioUiAction(-1, QList() << Qt::Key_Minus << Qt::Key_Equal << Qt::Key_Left, SIMU_STR_HLP_KEYS_GO_LFT, SIMU_STR_HLP_ACT_ROT_LFT); m_scrollDnAction = new RadioUiAction(-1, QList() << Qt::Key_Plus << Qt::Key_Right, SIMU_STR_HLP_KEYS_GO_RGT, SIMU_STR_HLP_ACT_ROT_RGT); @@ -34,7 +31,7 @@ SimulatedUIWidgetX9LITE::SimulatedUIWidgetX9LITE(SimulatorInterface *simulator, m_mouseMidClickAction = new RadioUiAction(2, QList() << Qt::Key_Enter << Qt::Key_Return, SIMU_STR_HLP_KEYS_ACTIVATE, SIMU_STR_HLP_ACT_ROT_DN); addRadioWidget(ui->rightbuttons->addArea(polyArc(88, 92, 33), "X9LITE/right_ent.png", m_mouseMidClickAction)); - addRadioWidget(ui->leftbuttons->addArea(QRect(9, 154, 30, 30), "X9LITE/left_scrnshot.png", m_screenshotAction)); + addRadioWidget(ui->leftbuttons->addArea(QRect(30, 154, 30, 30), "X9LITE/left_scrnshot.png", m_screenshotAction)); m_backlightColors << QColor(215, 243, 255); // X9LITE Blue m_backlightColors << QColor(166,247,159); @@ -45,10 +42,10 @@ SimulatedUIWidgetX9LITE::SimulatedUIWidgetX9LITE(SimulatorInterface *simulator, setLcd(ui->lcd); QString css = "#radioUiWidget {" - "background-color: qlineargradient(spread:reflect, x1:0, y1:0, x2:0, y2:1," - "stop:0 rgba(255, 255, 255, 255)," - "stop:0.757062 rgba(241, 238, 238, 255)," - "stop:1 rgba(247, 245, 245, 255));" + "background-color: qlineargradient(spread:reflect, x1:0, y1:0, x2:0, y2:1," + "stop:0 rgba(255, 255, 255, 255)," + "stop:0.757062 rgba(241, 238, 238, 255)," + "stop:1 rgba(247, 245, 245, 255));" "}"; QTimer * tim = new QTimer(this); diff --git a/companion/src/simulation/simulateduiwidgetX9LITE.ui b/companion/src/simulation/simulateduiwidgetX9LITE.ui index 94dbaa08b9..4432f8ae3b 100644 --- a/companion/src/simulation/simulateduiwidgetX9LITE.ui +++ b/companion/src/simulation/simulateduiwidgetX9LITE.ui @@ -6,7 +6,7 @@ 0 0 - 570 + 650 208 @@ -18,14 +18,14 @@ - 570 - 208 + 603 + 235 - 570 - 208 + 603 + 240 @@ -60,14 +60,14 @@ - 157 - 186 + 173 + 210 - 157 - 186 + 173 + 210 @@ -85,14 +85,14 @@ - 256 - 128 + 602 + 129 - 424 - 128 + 602 + 129 @@ -110,14 +110,14 @@ - 157 - 186 + 174 + 210 - 157 - 186 + 174 + 210 @@ -135,14 +135,14 @@ - 256 - 48 + 258 + 35 - 256 - 48 + 258 + 35 @@ -160,14 +160,14 @@ - 256 - 10 + 258 + 46 - 256 - 10 + 258 + 46 diff --git a/companion/src/translations/companion_fr.ts b/companion/src/translations/companion_fr.ts index dad20a00a3..90dd8e36ba 100644 --- a/companion/src/translations/companion_fr.ts +++ b/companion/src/translations/companion_fr.ts @@ -95,7 +95,7 @@ Edit Settings - Éditer les réglages + Éditer les paramètres @@ -197,7 +197,7 @@ Manche Droit: Profondeur, Direction The profile specific folder, if set, will override general Backup folder - Dossier de sauvegarde spécifique au profil courant, si défini remplace le réglage de l'application + Dossier de sauvegarde spécifique au profil courant, si défini remplace le paramètre de l'application @@ -207,12 +207,12 @@ Manche Droit: Profondeur, Direction If set it will override the application general setting - Si défini, remplace le réglage de l'application pour ce profil + Si défini, remplace le paramètre de l'application pour ce profil if set, will override general backup enable - Si défini, remplace le réglage de l'application pour ce profil + Si défini, remplace le paramètre de l'application pour ce profil @@ -362,7 +362,7 @@ Manche Droit: Profondeur, Direction Releases (stable) - Officielle (stable) + Officiel (stable) @@ -407,7 +407,7 @@ Manche Droit: Profondeur, Direction Other Settings - Autres réglages + Autres paramètres @@ -422,7 +422,7 @@ Manche Droit: Profondeur, Direction Application Settings - Réglages de l'application + Paramètres de l'application @@ -438,7 +438,7 @@ Manche Droit: Profondeur, Direction Enable automatic backup before writing firmware - Sauvegarder les réglages et modèles automatiquement lors des transferts + Sauvegarder les paramètres et modèles automatiquement lors des transferts @@ -649,12 +649,12 @@ Manche Droit: Profondeur, Direction AVAILABLE: Radio settings of unknown age - DISPONIBLE: Réglages enregistrés à une date inconnue + DISPONIBLE: Paramètres enregistrés à une date inconnue AVAILABLE: Radio settings stored %1 - DISPONIBLE: Réglages enregistrés le %1 + DISPONIBLE: Paramètres enregistrés le %1 @@ -665,7 +665,7 @@ Manche Droit: Profondeur, Direction Select your Models and Settings backup folder - Sélectionner le dossier dans lequel une sauvegarde des réglages et modèles sera placée automatiquement lors de chaque opération + Sélectionner le dossier dans lequel une sauvegarde des paramètres et modèles sera placée automatiquement lors de chaque opération @@ -1030,7 +1030,7 @@ Manche Droit: Profondeur, Direction Application Settings - Réglages de l'application + Paramètres de l'application @@ -1040,7 +1040,7 @@ Manche Droit: Profondeur, Direction Radio and Models settings - Réglages Radio et Modèles + Paramètres Radio et Modèles @@ -2029,48 +2029,48 @@ Si vous avez un fichier de sauvegarde des paramètres, vous pouvez l'import Erreur de conversion du champ %1 - + Switch Interrupteur - + Switch L'interrupteur - + cannot be exported on this board! n'est pas supporté sur cette carte ! - + Source - + Source %1 cannot be exported on this board! La source %1 n'est pas supportée sur cette plateforme ! - + OpenTX only accepts %1 points in all curves OpenTX n'accepte que %1 points au maximum entre toutes les courbes - + OpenTx only accepts %1 points in all curves OpenTX n'accepte que %1 points au maximum entre toutes les courbes - - + + OpenTX on this board doesn't accept this function OpenTX ne supporte pas cette fonction sur cette carte - + OpenTX doesn't accept this radio protocol OpenTX ne supporte pas ce protocole radio @@ -2079,25 +2079,21 @@ Si vous avez un fichier de sauvegarde des paramètres, vous pouvez l'import DebugOutput - Debug Output Sortie débogage - <html><head/><body><p>Enable or disable the filter. If the button won't stay enabled, it is likely there is a syntax error in the Regular Expression entered.</p></body></html> <html><head/><body><p>Activer ou désactiver le filtre. Si le bouton ne reste pas actif, c'est qu'il y a probablement une erreur dans la <i>Regular Expression</i>.</p></body></html> - Filter: Filtre: - <html><head/><body><p>Enter filter text here. Click the help/info button for details about using the filter. </p><p> To <b>remove a remembered entry</b> from the filter list, first choose it, and then press <code>Shift-Delete</code> (or <code>Shift-Backspace</code>) key combination.</p></body></html> <html><head/><body><p>Entrer le filtre ici. Cliquer sur le bouton d'aide/info pour plus de détails sur l'utilisation du filtre. </p><p> @@ -2105,61 +2101,51 @@ Pour <b>retirer un filtre de l'historique</b>, sélectionnez-le - Buffer: Tampon: - Number of lines to keep in display. Nombre de lignes du tampon. - Filter &Help Filtre &Aide - Show information about using the filter. Affiche les informations concernant l'usage du filtre. - Word &Wrap Renvoi &Ligne - Toggle word wrapping on/off. Retour automatique à la ligne on/off. - &Clear &Effacer - Clear the output window of all text. Effacer tout le texte dans la fenêtre de sortie. - Enable &Filter Activer &Filtre - Turn the filter on/off. Basculer le filtre on/off. @@ -2553,37 +2539,37 @@ Si vide, la ligne est toujours active. Source Folder: - Dosssier Source: + Dosssier "Local": Destination Folder: - Dossier Destination: + Dossier "Radio": %1%2 Both directions, to destination folder first - %1%2 Bidirectionnel, en commençant par le dossier Destination + %1%2 Bidirectionnel, en commençant par "Radio" %1%2 Both directions, to source folder first - %1%2 Bidirectionnel, en commençant par le dossier Source + %1%2 Bidirectionnel, en commençant par "Local" %1 Only from source folder to destination folder - %1 Uniquement du dossier Source vers le dossier Destination + %1 Uniquement de "Local" vers "Radio" %1 Only from destination folder to source folder - %1 Uniquement du dossier Destination vers le dossier Source + %1 Uniquement de "Radio" vers "Local" How to handle overwriting files which already exist in the destination folder. - Comment gérer l'écrasement des fichiers qui existent déjà dans le dossier Destination. + Comment gérer l'écrasement des fichiers qui existent déjà dans le dossier de destination. @@ -2805,17 +2791,17 @@ Blanc signifie "inclure tous".Les métacaractères ?, * et [...] sont Source folder not found. - Dossier Source non trouvé. + Dosssier "Local" non trouvé. Destination folder not found. - Dossier Destination non trouvé. + Dosssier "Radio" non trouvé. Source and destination folders are the same. - Les dossiers Source et Destination sont les mêmes. + Les dossiers "Local" et "Radio" sont les mêmes. @@ -3143,7 +3129,7 @@ Blanc signifie "inclure tous".Les métacaractères ?, * et [...] sont Write Models and Settings to Radio - Transférer les réglages et modèles vers la radio + Transférer les paramètres et modèles vers la radio @@ -3158,7 +3144,7 @@ Blanc signifie "inclure tous".Les métacaractères ?, * et [...] sont Allows Companion to write to older version of the firmware - Permet à Companion de transférer des réglages à une ancienne version de firmware + Permet à Companion de transférer des paramètres à une ancienne version de firmware @@ -3173,7 +3159,7 @@ Blanc signifie "inclure tous".Les métacaractères ?, * et [...] sont Backup before Write - Sauvegarder les réglages actuels avant d'écrire + Sauvegarder les paramètres actuels avant d'écrire @@ -3218,12 +3204,12 @@ Blanc signifie "inclure tous".Les métacaractères ?, * et [...] sont Wrong radio calibration data in profile, Settings not patched - Données de calibration incorrectes dans le profil, les réglages ne seront pas transférés + Données de calibration incorrectes dans le profil, les paramètres ne seront pas transférés Wrong radio setting data in profile, Settings not patched - Données de configuration incorrectes dans le profil, les réglages ne seront pas transférés + Données de configuration incorrectes dans le profil, les paramètres ne seront pas transférés @@ -3252,7 +3238,7 @@ Blanc signifie "inclure tous".Les métacaractères ?, * et [...] sont Cannot check Models and Settings compatibility! Continue anyway? - Impossible de vérifier la compatibilité des réglages et modèles ! Continuer quand même ? + Impossible de vérifier la compatibilité des paramètres et modèles ! Continuer quand même ? @@ -3305,7 +3291,7 @@ Blanc signifie "inclure tous".Les métacaractères ?, * et [...] sont Allows Companion to write to older version of the firmware - Permet à Companion de transférer des réglages à une ancienne version de firmware + Permet à Companion de transférer des paramètres à une ancienne version de firmware @@ -3315,7 +3301,7 @@ Blanc signifie "inclure tous".Les métacaractères ?, * et [...] sont Backup and restore Models and Settings - Sauvegarder et restaurer les réglages et modèles + Sauvegarder et restaurer les paramètres et modèles @@ -3411,7 +3397,7 @@ Blanc signifie "inclure tous".Les métacaractères ?, * et [...] sont Cannot convert Models and Settings for use with this firmware, original data will be used - Impossible de convertir les réglages et modèles pour ce firmware, les données originales vont être utilisées + Impossible de convertir les paramètres et modèles pour ce firmware, les données originales vont être utilisées @@ -3421,7 +3407,7 @@ Blanc signifie "inclure tous".Les métacaractères ?, * et [...] sont Could not restore Models and Settings to Radio. The models and settings data file can be found at: %1 - Impossible de restaurer les réglages et modèles sur la radio. Le fichier peut être récupéré ici: %1 + Impossible de restaurer les paramètres et modèles sur la radio. Le fichier peut être récupéré ici: %1 @@ -3928,7 +3914,7 @@ p, li { white-space: pre-wrap; } Radio settings - Réglages Radio + Paramètres Radio @@ -3945,12 +3931,12 @@ Communs à tous les modèles d'une même EEPROM. Store calib. and hw settings in selected profile - Sauver étalonnage et réglages hw dans profil + Sauver étalonnage et paramètres hw dans profil Retrieve calib. and hw settings from profile - Lire étalonnage et réglages hw du profil + Lire étalonnage et paramètres hw du profil @@ -4849,7 +4835,7 @@ p, li { white-space: pre-wrap; } Beeper Mode - Réglage des bips + Paramètre des bips @@ -6065,7 +6051,7 @@ Les colonnes contenant l'altitude "GAlt" et la vitesse "GSpd Show fuses dialog - Afficher les réglages des fusibles + Afficher les paramètres des fusibles @@ -6204,18 +6190,18 @@ Nous recommandons de lire attentivement les notes de version à l'aide du b Write Models and Settings To Radio - Transférer les réglages et modèles vers la radio + Transférer les paramètres et modèles vers la radio Write Models and Settings to Radio - Transférer les réglages et modèles vers la radio + Transférer les paramètres et modèles vers la radio Read Models and Settings from Radio - Lire les réglages et modèles depuis la radio + Lire les paramètres et modèles depuis la radio @@ -6265,7 +6251,7 @@ Nous recommandons de lire attentivement les notes de version à l'aide du b Save a complete backup file of all settings and model data in the Radio - Créer une copie de sauvegarde de tous les réglages et modèles de la radio + Créer une copie de sauvegarde de tous les paramètres et modèles de la radio @@ -6337,7 +6323,7 @@ Nous recommandons de lire attentivement les notes de version à l'aide du b Open Models and Settings file - Ouvrir un fichier de réglages et modèles + Ouvrir un fichier de paramètres et modèles @@ -6348,7 +6334,7 @@ Nous recommandons de lire attentivement les notes de version à l'aide du b Read Models and Settings From Radio - Lire les réglages et modèles depuis la radio + Lire les paramètres et modèles depuis la radio @@ -6388,7 +6374,7 @@ Nous recommandons de lire attentivement les notes de version à l'aide du b Models and Settings read - Lecture des modèles et réglages + Lecture des modèles et paramètres @@ -6403,12 +6389,12 @@ Nous recommandons de lire attentivement les notes de version à l'aide du b Local Folder - Dossier local + Dossier "Local" Radio Folder - Dossier Radio + Dossier "Radio" @@ -6439,13 +6425,13 @@ Nous recommandons de lire attentivement les notes de version à l'aide du b Create a new Models and Settings file - Créer un nouveau fichier de réglages et modèles + Créer un nouveau fichier de paramètres et modèles Save Models and Settings file - Enregistrer le fichier de réglages et modèles + Enregistrer le fichier de paramètres et modèles @@ -6465,7 +6451,7 @@ Nous recommandons de lire attentivement les notes de version à l'aide du b Close Models and Settings file - Fermer le fichier de réglages et modèles + Fermer le fichier de paramètres et modèles @@ -6480,7 +6466,7 @@ Nous recommandons de lire attentivement les notes de version à l'aide du b Create a new Radio Settings Profile - Créer un nouveau profil de réglages et modèles + Créer un nouveau profil de paramètres et modèles @@ -6490,12 +6476,12 @@ Nous recommandons de lire attentivement les notes de version à l'aide du b Duplicate current Radio Settings Profile - Dupliquer les réglages radio du profil actuel + Dupliquer les paramètres radio du profil actuel Delete the current Radio Settings Profile - Supprimer les réglages radio du profil actuel + Supprimer les paramètres radio du profil actuel @@ -6536,17 +6522,17 @@ Nous recommandons de lire attentivement les notes de version à l'aide du b No Companion release candidates are currently being served for this version, please switch release channel - Aucune version "candidate" de Companion n'est actuellement disponible sur ce serveur, veuillez commuter sur le canal officiel + Aucune version "candidate" de Companion n'est actuellement disponible sur ce serveur, veuillez commuter sur le canal "officiel" No nightly Companion builds are currently being served for this version, please switch release channel - Aucune version "nightly" de Companion n'est actuellement disponible sur ce serveur, veuillez commuter sur le canal officiel + Aucune version "nightly" de Companion n'est actuellement disponible sur ce serveur, veuillez commuter sur le canal "officiel" No Companion release builds are currently being served for this version, please switch release channel - Aucune version "officielle" de Companion n'est actuellement disponible sur ce serveur, veuillez commuter sur le canal officiel + Aucune version "officielle" de Companion n'est actuellement disponible sur ce serveur, veuillez commuter sur le canal "candidate" ou "nightly" @@ -6556,17 +6542,17 @@ Nous recommandons de lire attentivement les notes de version à l'aide du b No firmware release candidates are currently being served for this version, please switch release channel - Aucun firmware "candidate" n'est actuellement disponible sur ce serveur, veuillez commuter sur le canal officiel + Aucun firmware "candidate" n'est actuellement disponible sur ce serveur, veuillez commuter sur le canal "officiel" No firmware nightly builds are currently being served for this version, please switch release channel - Aucun firmware "nightly" n'est actuellement disponible sur ce serveur, veuillez commuter sur le canal officiel + Aucun firmware "nightly" n'est actuellement disponible sur ce serveur, veuillez commuter sur le canal "officiel" No firmware release builds are currently being served for this version, please switch release channel - Aucun firmware "officiel" n'est actuellement disponible sur ce serveur, veuillez commuter sur le canal officiel + Aucun firmware "officiel" n'est actuellement disponible sur ce serveur, veuillez commuter sur le canal "candidate" ou "nightly" @@ -6654,22 +6640,22 @@ Do you wish to continue? Export Application Settings.. - Exporter les réglages de l'application... + Exporter Préférences Application... Save all the current %1 and Simulator settings (including radio profiles) to a file. - Enregistrez tous les réglages actuels %1 et du simulateur (y compris les profils radio) dans un fichier. + Enregistrez tous les paramètres actuels %1 et du simulateur (y compris les profils radio) dans un fichier. Import Application Settings.. - Importer les réglages de l'application... + Importer les paramètres de l'application... Load %1 and Simulator settings from a prevously exported settings file. - Charger les réglages %1 et les réglages de Simulation depuis un fichier précédemment exporté. + Charger les paramètres %1 et les paramètres de Simulation depuis un fichier précédemment exporté. @@ -6804,17 +6790,17 @@ Do you wish to continue? Please save or close all modified files before importing settings - Veuillez sauvegarder ou fermer tous les fichiers modifiés avant d'importer les réglages + Veuillez sauvegarder ou fermer tous les fichiers modifiés avant d'importer les paramètres <html><p>%1 and Simulator settings can be imported (restored) from a previosly saved export (backup) file. This will replace current settings with any settings found in the file.</p><p>An automatic backup of the current settings will be attempted. But if the current settings are useful then it is recommended that you make a manual backup first.</p><p>For best results when importing settings, <b>close any other %1 windows you may have open, and make sure the standalone Simulator application is not running.</p><p>Do you wish to continue?</p></html> - <html><p>%1 et les réglages du simulateur peuvent être importés (restaurés) à partir d’un fichier d’exportation (sauvegarde) préalablement sauvegardé. Ceci remplacera les réglages actuels par tous les réglages trouvés dans le fichier.</p><p>Une sauvegarde automatique des réglages actuels sera tentée. Mais si les réglages actuels sont utiles, il est recommandé de commencer par une sauvegarde manuelle.</p><p>Pour obtenir de meilleurs résultats lors de l'importation des réglages,<b> fermez les autres fenêtres %1 que vous avez éventuellement ouvertes et assurez-vous que l'application autonome Simulator n'est pas en cours d'exécution. </p><p>Souhaitez-vous continuer? </p></html> + <html><p>%1 et les paramètres du simulateur peuvent être importés (restaurés) à partir d’un fichier d’exportation (sauvegarde) préalablement sauvegardé. Ceci remplacera les paramètres actuels par tous les paramètres trouvés dans le fichier.</p><p>Une sauvegarde automatique des paramètres actuels sera tentée. Mais si les paramètres actuels sont utiles, il est recommandé de commencer par une sauvegarde manuelle.</p><p>Pour obtenir de meilleurs résultats lors de l'importation des paramètres,<b> fermez les autres fenêtres %1 que vous avez éventuellement ouvertes et assurez-vous que l'application autonome Simulator n'est pas en cours d'exécution. </p><p>Souhaitez-vous continuer? </p></html> Confirm Settings Import - Confirmer les réglages d'importation + Confirmer les paramètres d'importation @@ -6834,17 +6820,17 @@ Do you wish to continue? The settings could not be imported. - Les réglages n'ont pas pu être importés. + Les paramètres n'ont pas pu être importés. <html><p>New settings have been imported from:<br> %1.</p><p>%2 will now re-initialize.</p><p>Note that you may need to close and restart %2 before some settings like language and icon theme take effect.</p> - <html><p>Les nouveaux réglages ont été importés depuis:<br> %1. </p><p>%2 sera maintenant réinitialisé.</p><p>Notez que vous devrez peut-être fermer et redémarrer %2 avant que certains réglages tels que la langue et le thème d’icône prennent effet.</p> + <html><p>Les nouveaux paramètres ont été importés depuis:<br> %1. </p><p>%2 sera maintenant réinitialisé.</p><p>Notez que vous devrez peut-être fermer et redémarrer %2 avant que certains paramètres tels que la langue et le thème d’icône prennent effet.</p> <p>The previous settings were backed up to:<br> %1</p> - <p>Les réglages précédents ont été sauvegardés sous:<br> %1 </p> + <p>Les paramètres précédents ont été sauvegardés sous:<br> %1 </p> @@ -6879,7 +6865,7 @@ Do you wish to continue? Edit Settings - Éditer les réglages + Éditer les préférences @@ -6962,7 +6948,7 @@ Do you wish to continue? Settings - Réglages + Paramètres @@ -7102,17 +7088,17 @@ Do you wish to continue? Edit Radio Settings - Éditer réglages radio + Éditer paramètres radio Copy Radio Settings - Copier les réglages radio + Copier les paramètres radio Paste Radio Settings - Coller les réglages radio + Coller les paramètres radio @@ -7275,7 +7261,7 @@ Do you wish to continue? Models and Settings written - Modèle et réglages écrit + Modèle et paramètres écrit @@ -7341,7 +7327,7 @@ Do you wish to continue? Open backup Models and Settings file - Ouvrir la sauvegarde de réglages et modèles + Ouvrir la sauvegarde de paramètres et modèles @@ -7779,7 +7765,7 @@ Mixage actif par défaut si non-renseigné. Heli - Réglages hélico + Paramètres hélico @@ -9831,7 +9817,7 @@ Mixage actif par défaut si non-renseigné. <html><head/><body><p>No Radio was found!</p><p>Make sure that you hold the lower trim buttons towards the center while you turn it on.</p><p>Then connect the USB wire.</p><p><span style=" font-family:'arial,sans-serif'; font-size:13px; font-style:italic; color:#222222; background-color:#ffffff;">Note: if you have a Taranis that has not had the firmware upgraded to 2.0 then this version of Companion will not work.</span></p></body></html> - <html><head/><body><p>Aucune radio détectée !</p><p>Veuillez vous assurer de maintenir les 2 trims horizontaux vers l'intérieur lors de la mise sous tension de la radio.</p><p>Ensuite connecter le câble USB.</p><p><span style=" font-family:'arial,sans-serif'; font-size:13px; font-style:italic; color:#222222; background-color:#ffffff;">Note: Cette version de Companion ne doit être utilisée pour éditer des réglages que si la version du firmware de la radio est au moins 2.0.</span></p></body></html> + <html><head/><body><p>Aucune radio détectée !</p><p>Veuillez vous assurer de maintenir les 2 trims horizontaux vers l'intérieur lors de la mise sous tension de la radio.</p><p>Ensuite connecter le câble USB.</p><p><span style=" font-family:'arial,sans-serif'; font-size:13px; font-style:italic; color:#222222; background-color:#ffffff;">Note: Cette version de Companion ne doit être utilisée pour éditer des paramètres que si la version du firmware de la radio est au moins 2.0.</span></p></body></html> @@ -9843,43 +9829,36 @@ Mixage actif par défaut si non-renseigné. RadioOutputsWidget - Form Formulaire - View: Vue: - Logical Switches Inters Logiques - Global Variables Variables Globales - Channel Outputs Sorties Voies - Mix Outputs Sorties Mixages - L o g @@ -9890,7 +9869,6 @@ L - G l o @@ -9902,7 +9880,6 @@ G - C h a @@ -9918,7 +9895,6 @@ E - M i x @@ -9934,12 +9910,12 @@ E FM%1 - PV%1 + PV%1 GV%1 - VG%1 + VG%1 @@ -10748,16 +10724,6 @@ E TELE - - - Internal - Interne - - - - External - Externe - Setup @@ -10948,7 +10914,7 @@ Si cette option est cochée, la voie des gaz est inversée: le ralenti est &apo Profile Settings - Réglages du profil + Paramètres du profil @@ -11301,181 +11267,151 @@ Profil ID: [%1]; Radio ID: [%2] SimulatorMainWindow - OpenTx Simulator Simulateur OpenTX - View Vue - Radio Window Fenêtre radio - Reload... Recharger... - Tools Outils - Toolbar Barre d'outils - Reload Lua Scripts Recharger le script Lua - Reload the Lua environment on the simulated radio. Recharger l'environnement Lua dans le simulateur. - F7 - Reload Radio Data Recharger les données radio - Reload all radio data without restarting the simulator. Recharger les données radio sans redémarrer le simulateur. - F9 - Key Mapping Raccourcis clavier - Show keyboard maping reference. Afficher les raccourcis clavier. - F1 - Joystick Settings Paramètres Joystick - Open joystick configuration settings dialog. Ouvrir la boite de dialogue de la configuration du Joystick. - F3 - LCD Screenshot Capture LCD - Save a screenshot of the current simulated LCD screen. Enregistrez une capture de l'écran LCD actuellement simulé. - F8 - Dock In Main Window Ancrer dans la fenêtre principale - Show the radio in the main window or as a separate "floating" window. Afficher la radio dans la fenêtre principale ou comme une fenêtre "flottante" séparée. - Menu Bar Barre de menus - Show or hide the top menu bar. Afficher ou masquer la barre de menus. - Alt+M - Constrain Width Contraindre la largeur - Set radio widget width to be a fixed size. Défini la largeur du widget radio comme étant une taille fixe. - Constrain Height Contraindre la hauteur - Set radio widget height to be a fixed size. Défini la hauteur du widget radio comme étant une taille fixe. @@ -11556,25 +11492,21 @@ Profil ID: [%1]; Radio ID: [%2] SimulatorStartupDialog - OpenTX Simulator - Startup Options Simulateur OpenTX - Options de démarrage - Simulator Startup Options: Options de démarrage: - Radio Profile: Profil Radio: - Existing radio profiles are shown here.<br /> Create or edit profiles using the Companion application. Les profils existants sont affichés ici.<br /> @@ -11582,13 +11514,11 @@ Créer ou éditer les profils avec l'application Companion. - Radio Type: Type de Radio: - Existing radio simulators are shown here.<br /> The radio type specified in the selected profile is used by default. Les simulateurs radios existants sont affichés ici.<br /> @@ -11596,31 +11526,26 @@ Le type de radio choisi par défaut est celui défini dans le profil selectionn - Data Source: Source Données: - Data File: Fichier Données: - Data Folder: Dossier Données: - SD Image Path: Dossier Image SD: - Radio data (.bin/.eeprom/.otx) image file to use. A new file with a default image will be created if necessary.<br /> <b>NOTE</b>: any existing EEPROM data incompatible with the selected radio type may be overwritten! Fichier de données utilisé (.bin/.eeprom/.otx).Un nouveau fichier avec une nouvelle image sera créé si nécessaire.<br /> @@ -11628,7 +11553,6 @@ Le type de radio choisi par défaut est celui défini dans le profil selectionn - Select data file... Choisir le fichier de données... @@ -11636,15 +11560,11 @@ Le type de radio choisi par défaut est celui défini dans le profil selectionn - - - ... - Directory containing RADIO and MODELS folders to use.<br /> New folder(s) with default radio/model will be created here if necessary. Chemin contenant les dossiers RADIO et MODELS à utiliser.<br /> @@ -11652,13 +11572,11 @@ Un (ou plusieurs) dossier peut être créé ici si nécessaire. - Select data folder... Sélectionner le dossier de données... - Directory containing the SD card image to use.<br/> The default is configured in the chosen Radio Profile. Dossier contenant l'image de la carte SD.<br/> @@ -11666,31 +11584,26 @@ La valeur par défaut est configurée dans le profil radio sélectionné. - Select SD card image folder... Choisir le dossier contenant l'image de la carte SD... - Select which of the data sources (File/Folder/SD Card) you would like to start the simulator with. Choisir la source (Fichier/Dossier/Image SD) du type de donnée utilisé par le simulateur. - File Fichier - Folder Dossier - SD Path Image SD @@ -11719,7 +11632,6 @@ La valeur par défaut est configurée dans le profil radio sélectionné.SimulatorWidget - Companion Simulator Simulateur Companion @@ -11855,7 +11767,7 @@ La valeur par défaut est configurée dans le profil radio sélectionné. &Reset to default - &Réglages par défaut + &Paramètres par défaut @@ -12487,104 +12399,104 @@ Trop d'erreurs, abandon. TelemetryPanel - + FrSky S.PORT - + FrSky D - + FrSky D (cable) FrSky D (câble) - + Telemetry screen %1 Ecran de télémesure %1 - + Source - + Low Alarm Alarme basse - + Critical Alarm Alarme critique - + Winged Shadow How High - + Winged Shadow How High (not supported) Winged Shadow How High (non supporté) - + Alti Alt - + Alti+ Alt+ - + VSpeed Vitesse verticale - - - + + + A1 - - - + + + A2 - - + + A3 - - + + A4 - - + + FAS - + Cells Velm - + --- @@ -12622,254 +12534,249 @@ Trop d'erreurs, abandon. - - Mod. - - - - + Add Addition - + Average Moyenne - + Min - + Max - + Multiply Multiplication - + Totalize Totalisation - + Cell Element LiPo - + Consumption Consommation - + Dist Distance - + Cells Sensor : Capteur d'éléments: - - - - - - - - + + + + + + + + --- - + GPS Sensor : Capteur GPS: - + Alt. Sensor : Capteur d'altitude: - + Sensor : Capteur: - + V - + A - + mA - + kt - + m/s - + ft/s - + km/h - + mph - + m - + ft - + °C - + °F - + % - + mAh - + W - + mW - + dBm - + g - + ° - + Rad - + mL - + US fl.Oz. - + Raw (-) Chiffres bruts (-) - + RPM Tours/minute - + Precision Précision - + Ratio - + Blades Pales - + Offset Décalage - + Multiplier Multiplicateur - + Auto Offset Offset auto - + Filter Filtre - + Persistent Persistant - + Positive - + Logs @@ -12901,121 +12808,101 @@ Trop d'erreurs, abandon. TelemetrySimulator - Telemetry Simulator Simulateur de télémesure - VFAS - RSSI - Simulate Simuler - Replay SD Log File Rejouer le fichier de Log SD - Replay rate Vitesse - |> - <| - > - <- - X - 1/5x - 5x - No Log File Currently Loaded Pas de fichier de Log chargé - Setting RSSI to zero simulates telemetry and radio link loss. Régler le RSSI à zéro simule la perte de liaison radio et de télémétrie. - Set RSSI to zero when paused. Régler le RSSI à zéro lors d'une pause. - Stop sending telemetry data when the Telemetry Simulator window is hidden. Arrêtez d'envoyer des données de télémétrie lorsque la case est cochée. - Pause simulation when hidden. Pause la simulation. - Load Charger - Row # Timestamp Ligne # @@ -13023,7 +12910,6 @@ Horodatage - RxBt @@ -13031,9 +12917,6 @@ Horodatage - - - V / ratio @@ -13051,140 +12934,105 @@ Horodatage - - - - - - - - - - - - - <html><head/><body><p><br/></p></body></html> - - Volts - Db dB - Curr Courant - Amps - Cels Elément - A1 - A2 - ASpd - - km/h - A3 - GAlt - - Meters Mètres - A4 - GSpd - Tmp1 - RAS - Hdg - Lat,Lon (dec.deg.) - dd-MM-yyyy hh:mm:ss jj-MM-aaaa @@ -13192,51 +13040,42 @@ hh:mm:ss - Degrees - Tmp2 - - °C - Date - GPS - Fuel Carburant - % - AccX @@ -13244,65 +13083,52 @@ hh:mm:ss - - - G - Fuel Qty Qté Carburant - ml - AccY - VSpd Vitesse Verticale - m/s - AccZ - Alt Altitude - - RPM - When enabled, sends any non-blank values as simulated telemetry data. Transmet les valeurs non vides au simulateur. @@ -13556,7 +13382,6 @@ Extra long : bips extra longs. TrainerSimulator - Trainer simulator Simulateur d'écolage @@ -13854,7 +13679,7 @@ Extra long : bips extra longs. Manually check the direction of each control surface and reverse any channels that make controls move in the wrong direction. Remove the propeller/propellers before you try to control your model for the first time.<br>Please note that continuing removes all old model settings! - Vérifiez manuellement le sens de chaque commande, et inversez les voies de celles qui répondent dans le mauvais sens. Attention à bien enlever les hélices du modèle avant de l'alimenter la première fois !<br>Veuillez noter que tous les réglages existants du modèle courant seront écrasés ! + Vérifiez manuellement le sens de chaque commande, et inversez les voies de celles qui répondent dans le mauvais sens. Attention à bien enlever les hélices du modèle avant de l'alimenter la première fois !<br>Veuillez noter que tous les paramètres existants du modèle courant seront écrasés ! @@ -14188,85 +14013,71 @@ m2560 for v4.1 boards joystickDialog - Configure Joystick Configuration du Joystick - Ch2 VOIE2 - Ch1 VOIE1 - Ch4 VOIE4 - Ch6 VOIE6 - Ch3 VOIE3 - Ch5 VOIE5 - Ch7 VOIE7 - Ch8 VOIE8 - Instructions - Enable Actif - Cancel Annuler - Back Précédent - Start Démarrer @@ -14277,7 +14088,6 @@ m2560 for v4.1 boards - Ok OK diff --git a/radio/src/gui/128x64/model_setup.cpp b/radio/src/gui/128x64/model_setup.cpp index b70edf6165..1e8d17c9b3 100644 --- a/radio/src/gui/128x64/model_setup.cpp +++ b/radio/src/gui/128x64/model_setup.cpp @@ -1420,9 +1420,11 @@ void menuModelSetup(event_t event) } else { CHECK_INCDEC_MODELVAR(event, g_model.moduleData[moduleIdx].multi.optionValue, -128, 127); - lcdDrawText(MODEL_SETUP_2ND_COLUMN+23, y, "RSSI(", LEFT); - lcdDrawNumber(lcdLastRightPos, y, TELEMETRY_RSSI(), LEFT); - lcdDrawText(lcdLastRightPos, y, ")", LEFT); + if (pdef->optionsstr == STR_MULTI_RFTUNE) { + lcdDrawText(MODEL_SETUP_2ND_COLUMN + 23, y, "RSSI(", LEFT); + lcdDrawNumber(lcdLastRightPos, y, TELEMETRY_RSSI(), LEFT); + lcdDrawText(lcdLastRightPos, y, ")", LEFT); + } } } } diff --git a/radio/src/gui/212x64/model_setup.cpp b/radio/src/gui/212x64/model_setup.cpp index 5ae1897630..2f4210af1d 100644 --- a/radio/src/gui/212x64/model_setup.cpp +++ b/radio/src/gui/212x64/model_setup.cpp @@ -774,7 +774,7 @@ void menuModelSetup(event_t event) } } else if (isModulePXX2(INTERNAL_MODULE)) { - g_model.moduleData[INTERNAL_MODULE].subType = checkIncDec(event, g_model.moduleData[INTERNAL_MODULE].subType, 0, MODULE_SUBTYPE_ISRM_PXX2_ACCST_LR12, EE_MODEL, isRfProtocolAvailable); + g_model.moduleData[INTERNAL_MODULE].subType = checkIncDec(event, g_model.moduleData[INTERNAL_MODULE].subType, 0, MODULE_SUBTYPE_ISRM_PXX2_ACCST_D16, EE_MODEL, isRfProtocolAvailable); } } #else @@ -784,7 +784,7 @@ void menuModelSetup(event_t event) } lcdDrawTextAtIndex(MODEL_SETUP_2ND_COLUMN, y, STR_ISRM_RF_PROTOCOLS, index, attr); if (attr) { - index = checkIncDec(event, index, 0, 3, EE_MODEL); + index = checkIncDec(event, index, 0, MODULE_SUBTYPE_ISRM_PXX2_ACCST_D16 + 1 /* because of --- */, EE_MODEL); if (checkIncDec_Ret) { memclear(&g_model.moduleData[INTERNAL_MODULE], sizeof(ModuleData)); if (index > 0) { @@ -1251,9 +1251,11 @@ void menuModelSetup(event_t event) } else { CHECK_INCDEC_MODELVAR(event, g_model.moduleData[moduleIdx].multi.optionValue, -128, 127); - lcdDrawText(MODEL_SETUP_3RD_COLUMN+22, y, "RSSI(", LEFT); - lcdDrawNumber(lcdLastRightPos, y, TELEMETRY_RSSI(), LEFT); - lcdDrawText(lcdLastRightPos, y, ")", LEFT); + if (pdef->optionsstr == STR_MULTI_RFTUNE) { + lcdDrawText(MODEL_SETUP_3RD_COLUMN+22, y, "RSSI(", LEFT); + lcdDrawNumber(lcdLastRightPos, y, TELEMETRY_RSSI(), LEFT); + lcdDrawText(lcdLastRightPos, y, ")", LEFT); + } } } } diff --git a/radio/src/gui/480x272/model_setup.cpp b/radio/src/gui/480x272/model_setup.cpp index fa48cd9de6..822841878e 100644 --- a/radio/src/gui/480x272/model_setup.cpp +++ b/radio/src/gui/480x272/model_setup.cpp @@ -998,7 +998,7 @@ bool menuModelSetup(event_t event) } } else if (isModulePXX2(INTERNAL_MODULE)) { - g_model.moduleData[INTERNAL_MODULE].subType = checkIncDec(event, g_model.moduleData[INTERNAL_MODULE].subType, 0, MODULE_SUBTYPE_ISRM_PXX2_ACCST_LR12, EE_MODEL); + g_model.moduleData[INTERNAL_MODULE].subType = checkIncDec(event, g_model.moduleData[INTERNAL_MODULE].subType, 0, MODULE_SUBTYPE_ISRM_PXX2_ACCST_D16, EE_MODEL); } } break; @@ -1608,7 +1608,9 @@ bool menuModelSetup(event_t event) } else { CHECK_INCDEC_MODELVAR(event, g_model.moduleData[moduleIdx].multi.optionValue, -128, 127); - lcdDrawNumber(LCD_W-10, y, TELEMETRY_RSSI(), RIGHT, 0, "RSSI(", ")"); + if (pdef->optionsstr == STR_MULTI_RFTUNE) { + lcdDrawNumber(LCD_W - 10, y, TELEMETRY_RSSI(), RIGHT, 0, "RSSI(", ")"); + } } } } diff --git a/radio/src/gui/common/stdlcd/radio_hardware.cpp b/radio/src/gui/common/stdlcd/radio_hardware.cpp index 016d8a7743..5ab7e110e1 100644 --- a/radio/src/gui/common/stdlcd/radio_hardware.cpp +++ b/radio/src/gui/common/stdlcd/radio_hardware.cpp @@ -634,7 +634,10 @@ void menuRadioHardware(event_t event) break; case ITEM_RADIO_BACKUP_EEPROM: - lcdDrawText(LCD_W / 2, y, BUTTON(STR_EEBACKUP), attr | CENTERED); + if (LCD_W < 212) + lcdDrawText(LCD_W / 2, y, BUTTON(STR_EEBACKUP), attr | CENTERED); + else + lcdDrawText(HW_SETTINGS_COLUMN2, y, BUTTON(STR_EEBACKUP), attr); if (attr && event == EVT_KEY_BREAK(KEY_ENTER)) { s_editMode = EDIT_SELECT_FIELD; eepromBackup(); @@ -642,7 +645,10 @@ void menuRadioHardware(event_t event) break; case ITEM_RADIO_FACTORY_RESET: - lcdDrawText(LCD_W / 2, y, BUTTON(STR_FACTORYRESET), attr | CENTERED); + if (LCD_W < 212) + lcdDrawText(LCD_W / 2, y, BUTTON(STR_FACTORYRESET), attr | CENTERED); + else + lcdDrawText(HW_SETTINGS_COLUMN2, y, BUTTON(STR_FACTORYRESET), attr); if (attr && event == EVT_KEY_BREAK(KEY_ENTER)) { s_editMode = EDIT_SELECT_FIELD; POPUP_CONFIRMATION(STR_CONFIRMRESET, onFactoryResetConfirm); diff --git a/radio/src/gui/gui_common.cpp b/radio/src/gui/gui_common.cpp index 3d0c6c1f7d..e9a0f2077e 100644 --- a/radio/src/gui/gui_common.cpp +++ b/radio/src/gui/gui_common.cpp @@ -848,7 +848,7 @@ const mm_protocol_definition multi_protocols[] = { {MODULE_SUBTYPE_MULTI_HITEC, 2, false, STR_SUBTYPE_HITEC, STR_MULTI_RFTUNE}, {MODULE_SUBTYPE_MULTI_BUGS_MINI, 1, false, STR_SUBTYPE_BUGS_MINI, nullptr}, {MODULE_SUBTYPE_MULTI_TRAXXAS, 0, false, STR_SUBTYPE_TRAXXAS, nullptr}, - {MODULE_SUBTYPE_MULTI_E01X, 2, false, STR_SUBTYPE_E01X, nullptr}, + {MODULE_SUBTYPE_MULTI_E01X, 2, false, STR_SUBTYPE_E01X, STR_MULTI_OPTION}, {MODULE_SUBTYPE_MULTI_V911S, 0, false, NO_SUBTYPE, STR_MULTI_RFTUNE}, {MODULE_SUBTYPE_MULTI_GD00X, 1, false, STR_SUBTYPE_GD00X, STR_MULTI_RFTUNE}, {MODULE_SUBTYPE_MULTI_KF606, 0, false, NO_SUBTYPE, STR_MULTI_RFTUNE}, diff --git a/radio/src/opentx.cpp b/radio/src/opentx.cpp index 8191cccfa1..4215e81a4b 100644 --- a/radio/src/opentx.cpp +++ b/radio/src/opentx.cpp @@ -869,7 +869,10 @@ static void checkRTCBattery() void checkFailsafe() { for (int i=0; i btTxFifo; Fifo btRxFifo; @@ -42,6 +43,7 @@ enum BluetoothWriteState }; volatile uint8_t bluetoothWriteState = BLUETOOTH_WRITE_IDLE; +#endif void bluetoothInit(uint32_t baudrate, bool enable) { @@ -65,6 +67,7 @@ void bluetoothInit(uint32_t baudrate, bool enable) GPIO_Init(BT_BCTS_GPIO, &GPIO_InitStructure); #endif +#if !defined(BOOT) GPIO_PinAFConfig(BT_USART_GPIO, BT_TX_GPIO_PinSource, BT_GPIO_AF); GPIO_PinAFConfig(BT_USART_GPIO, BT_RX_GPIO_PinSource, BT_GPIO_AF); @@ -90,17 +93,17 @@ void bluetoothInit(uint32_t baudrate, bool enable) bluetoothWriteState = BLUETOOTH_WRITE_IDLE; - if (enable) { - GPIO_ResetBits(BT_EN_GPIO, BT_EN_GPIO_PIN); - } - else { - GPIO_SetBits(BT_EN_GPIO, BT_EN_GPIO_PIN); - } - btRxFifo.clear(); btTxFifo.clear(); +#endif + + if (enable) + GPIO_ResetBits(BT_EN_GPIO, BT_EN_GPIO_PIN); + else + GPIO_SetBits(BT_EN_GPIO, BT_EN_GPIO_PIN); } +#if !defined(BOOT) void bluetoothDisable() { GPIO_SetBits(BT_EN_GPIO, BT_EN_GPIO_PIN); // close bluetooth (recent modules will go to bootloader mode) @@ -165,3 +168,4 @@ uint8_t bluetoothIsWriting(void) { return bluetoothWriteState != BLUETOOTH_WRITE_IDLE; } +#endif // !BOOT diff --git a/radio/src/targets/common/arm/stm32/bootloader/CMakeLists.txt b/radio/src/targets/common/arm/stm32/bootloader/CMakeLists.txt index f4d85ba51f..64cd31c76c 100644 --- a/radio/src/targets/common/arm/stm32/bootloader/CMakeLists.txt +++ b/radio/src/targets/common/arm/stm32/bootloader/CMakeLists.txt @@ -92,6 +92,13 @@ if(PCB STREQUAL X12S OR PCB STREQUAL X10 OR PCB STREQUAL X9E OR (PCB STREQUAL X9 ) endif() +if(PCB STREQUAL X7 OR PCB STREQUAL XLITE OR PCB STREQUAL XLITES) + set(BOOTLOADER_SRC + ${BOOTLOADER_SRC} + ../../../../../targets/common/arm/stm32/bluetooth_driver.cpp + ) +endif() + if(NOT (PCB STREQUAL X10 OR PCB STREQUAL X12S)) set(BOOTLOADER_SRC ${BOOTLOADER_SRC} diff --git a/radio/src/targets/common/arm/stm32/bootloader/boot.cpp b/radio/src/targets/common/arm/stm32/bootloader/boot.cpp index e5adcd5452..a0878eb052 100644 --- a/radio/src/targets/common/arm/stm32/bootloader/boot.cpp +++ b/radio/src/targets/common/arm/stm32/bootloader/boot.cpp @@ -245,6 +245,11 @@ int main() backlightInit(); backlightEnable(); +#if defined(PCBX7) || defined(PCBXLITE) + // we shutdown the bluetooth module now to be sure it will be detected on firmware start + bluetoothInit(BLUETOOTH_DEFAULT_BAUDRATE, false); +#endif + #if defined(PCBTARANIS) i2cInit(); #endif diff --git a/radio/src/targets/common/arm/stm32/rotary_encoder_driver.cpp b/radio/src/targets/common/arm/stm32/rotary_encoder_driver.cpp index e457de7d7c..758043c3ae 100644 --- a/radio/src/targets/common/arm/stm32/rotary_encoder_driver.cpp +++ b/radio/src/targets/common/arm/stm32/rotary_encoder_driver.cpp @@ -106,6 +106,7 @@ void rotaryEncoderCheck() if (g_eeGeneral.backlightMode & e_backlight_mode_keys) { backlightOn(); } + inactivity.counter = 0; #endif } } diff --git a/radio/src/telemetry/multi.h b/radio/src/telemetry/multi.h index a538df303b..1bfd1ded60 100644 --- a/radio/src/telemetry/multi.h +++ b/radio/src/telemetry/multi.h @@ -116,17 +116,18 @@ struct MultiModuleStatus { uint8_t patch; uint8_t flags; + uint8_t requiresFailsafeCheck; tmr10ms_t lastUpdate; void getStatusString(char* statusText); - inline bool isValid() { return (bool)(get_tmr10ms() - lastUpdate < 200); } - inline bool supportsFailsafe() { return (bool) (flags & 0x20); } - inline bool isWaitingforBind() { return (bool) (flags & 0x10); } - inline bool isBinding() { return (bool) (flags & 0x08); } - inline bool protocolValid() { return (bool) (flags & 0x04); } - inline bool serialMode() { return (bool) (flags & 0x02); } - inline bool inputDetected() { return (bool) (flags & 0x01); } + inline bool isValid() const { return (bool)(get_tmr10ms() - lastUpdate < 200); } + inline bool supportsFailsafe() const { return (bool) (flags & 0x20); } + inline bool isWaitingforBind() const { return (bool) (flags & 0x10); } + inline bool isBinding() const { return (bool) (flags & 0x08); } + inline bool protocolValid() const { return (bool) (flags & 0x04); } + inline bool serialMode() const { return (bool) (flags & 0x02); } + inline bool inputDetected() const { return (bool) (flags & 0x01); } }; MultiModuleStatus& getMultiModuleStatus(uint8_t module); diff --git a/radio/src/translations/cz.h.txt b/radio/src/translations/cz.h.txt index 216934c451..209734f1e5 100644 --- a/radio/src/translations/cz.h.txt +++ b/radio/src/translations/cz.h.txt @@ -51,9 +51,6 @@ #define LEN_VBEEPMODE TR("\005","\012") #define TR_VBEEPMODE TR("Tichý""Alarm""BezKl""Vše\0", "Tichý\0 ""Jen alarm\0""Bez kláves""Vše\0 ") -#define LEN_VRENAVIG "\003" -#define TR_VRENAVIG "Ne REaREb" - #define LEN_VBLMODE TR("\005", "\007") #define TR_VBLMODE TR("Vyp\0 ""Kláv.""Páky\0""Vše\0 ""Zap\0 ", "Vypnuto""Klávesy""Páky\0 ""Vše\0 ""Zapnuto") @@ -512,7 +509,6 @@ #define TR_MODEL_STILL_POWERED "Model stále spuštěn" #define TR_MODEL_SHUTDOWN "Vypnout ?" #define TR_PRESS_ENTER_TO_CONFIRM "Zmáčkni enter pro potvrzení" -#define TR_RENAVIG "Navig. RotEnc" #define TR_THROTTLE_LABEL "Plyn" #define TR_THROTTLEREVERSE TR("ReversPlyn", INDENT"Revers plynu") #define TR_MINUTEBEEP TR("Minuta", "Oznamovat minuty") @@ -563,11 +559,9 @@ #define OFS_RX 4 #define TR_ACCEL "Acc:" #define TR_NODATA CENTER "NO DATA" -#define TR_TOTTM1TM2THRTHP "\037\146SES\036TM1\037\146TM2\036THR\037\146TH%" -#define TR_US "us" -#define TR_TMR1JITTERUS "Tmr1 Jitter\037\124us" -#define TR_TMIXMAXMS "Tmix max" -#define TR_FREE_STACK "Free stack" +#define TR_US "us" +#define TR_TMIXMAXMS "Tmix max" +#define TR_FREE_STACK "Free stack" #define TR_MENUTORESET TR_ENTER" >> Reset" #define TR_PPM_TRAINER "TR" #define TR_CH "CH" @@ -667,7 +661,6 @@ #define TR_PITCH_AT_ZERO INDENT "Tón na nule" #define TR_PITCH_AT_MAX INDENT "Tón na maximu" #define TR_REPEAT_AT_ZERO TR(INDENT "Opak. na nule", INDENT "Opakování na nule") -#define TR_POWEROFF "\027Vypínám..." #define TR_SHUTDOWN "Vypínání.." #define TR_SAVEMODEL "Ukládám nastavení modelu" #define TR_BATT_CALIB "Kalib. bat." diff --git a/radio/src/translations/de.h.txt b/radio/src/translations/de.h.txt index df3302acdb..2d30ea3498 100644 --- a/radio/src/translations/de.h.txt +++ b/radio/src/translations/de.h.txt @@ -52,9 +52,6 @@ #define LEN_VBEEPMODE "\005" #define TR_VBEEPMODE "Stumm""Alarm""NoKey""Alle\0" -#define LEN_VRENAVIG "\003" -#define TR_VRENAVIG "AUSDGaDGb" - #define LEN_VBLMODE "\005" #define TR_VBLMODE "AUS\0 ""Taste""Stks\0""Beide""EIN\0 " // Anpassung @@ -514,7 +511,6 @@ #define TR_MODEL_STILL_POWERED "Model still powered" #define TR_MODEL_SHUTDOWN "Shutdown ?" #define TR_PRESS_ENTER_TO_CONFIRM "Press enter to confirm" -#define TR_RENAVIG TR ("Rol", "Drehgeb. Navig.") #define TR_THROTTLE_LABEL "Gas-Kontrolle" #define TR_THROTTLEREVERSE TR("Gas invers", INDENT "Vollgas hinten?") //Änderung wg TH9x, Taranis #define TR_MINUTEBEEP TR("Min-Alarm", "Minuten-Alarm") @@ -567,9 +563,7 @@ #define OFS_RX 4 #define TR_ACCEL "Acc:" #define TR_NODATA CENTER"Keine Daten" -#define TR_TOTTM1TM2THRTHP "\037\146SES\036TM1\037\146TM2\036GAS\037\146GS%" #define TR_US "us" -#define TR_TMR1JITTERUS "Tmr1 Jitter\037\124us" #define TR_TMIXMAXMS "Tmix max" #define TR_FREE_STACK "Freier Stack" #define TR_MENUTORESET TR_ENTER " für Reset" @@ -669,7 +663,6 @@ #define TR_PITCH_AT_ZERO INDENT "Töne sinken" #define TR_PITCH_AT_MAX INDENT "Töne steigen" #define TR_REPEAT_AT_ZERO INDENT "Wiederholrate" -#define TR_POWEROFF "\027Power OFF..." #define TR_SHUTDOWN "Herunterfahren" #define TR_SAVEMODEL "Modelleinstellungen speichern" #define TR_BATT_CALIB TR("AkkuSpgwert", "Akku Kalibrierung") diff --git a/radio/src/translations/en.h.txt b/radio/src/translations/en.h.txt index 053fbb13c2..a65730a760 100644 --- a/radio/src/translations/en.h.txt +++ b/radio/src/translations/en.h.txt @@ -52,9 +52,6 @@ #define LEN_VBEEPMODE "\005" #define TR_VBEEPMODE "Quiet""Alarm""NoKey""All\0 " -#define LEN_VRENAVIG "\003" -#define TR_VRENAVIG "No REaREb" - #define LEN_VBLMODE TR("\004", "\010") #define TR_VBLMODE TR("OFF\0""Keys""Ctrl""Both""ON\0 ", "OFF\0 ""Keys\0 ""Controls""Both\0 ""ON\0 ") @@ -409,7 +406,6 @@ #if defined(PCBTARANIS) #define TR_POPUPS_ENTER_EXIT TR(TR_EXIT "\010" TR_ENTER, TR_EXIT "\010" "\010" "\010" "\010" TR_ENTER) - #else #define TR_POPUPS_ENTER_EXIT TR_ENTER "\010" TR_EXIT #endif @@ -510,11 +506,10 @@ #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_RSSISHUTDOWNALARM TR(INDENT "Rssi Shutdown", INDENT "Check RSSI on shutdown") #define TR_MODEL_STILL_POWERED "Model still powered" -#define TR_MODEL_SHUTDOWN "Shutdown ?" +#define TR_MODEL_SHUTDOWN "Shutdown?" #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") #define TR_MINUTEBEEP TR("Minute", "Minute call") @@ -567,11 +562,9 @@ #define OFS_RX 4 #define TR_ACCEL "Acc:" #define TR_NODATA CENTER "NO DATA" -#define TR_TOTTM1TM2THRTHP "\037\146SES\036TM1\037\146TM2\036THR\037\146TH%" -#define TR_US "us" -#define TR_TMR1JITTERUS "Tmr1 Jitter\037\124us" -#define TR_TMIXMAXMS "Tmix max" -#define TR_FREE_STACK "Free stack" +#define TR_US "us" +#define TR_TMIXMAXMS "Tmix max" +#define TR_FREE_STACK "Free stack" #define TR_MENUTORESET TR_ENTER " to reset" #define TR_PPM_TRAINER "TR" #define TR_CH "CH" @@ -634,7 +627,7 @@ #define TR_MULTI_RFTUNE TR("Freq tune", "RF Freq. fine tune") #define TR_MULTI_TELEMETRY "Telemetry" #define TR_MULTI_VIDFREQ TR("Vid. freq.", "Video frequency") -#define TR_RFPOWER "RF Power" +#define TR_RFPOWER "RF Power" #define TR_MULTI_FIXEDID TR("FixedID", "Fixed ID") #define TR_MULTI_OPTION TR("Option", "Option value") #define TR_MULTI_AUTOBIND TR(INDENT "Autobind",INDENT "Bind on channel") @@ -669,7 +662,6 @@ #define TR_PITCH_AT_ZERO INDENT "Pitch zero" #define TR_PITCH_AT_MAX INDENT "Pitch max" #define TR_REPEAT_AT_ZERO INDENT "Repeat zero" -#define TR_POWEROFF "\027Power OFF..." #define TR_SHUTDOWN "SHUTTING DOWN" #define TR_SAVEMODEL "Saving model settings" #define TR_BATT_CALIB TR("Batt. calib", "Battery calibration") @@ -785,7 +777,6 @@ #define TR_TEMP_CALIB "Temp. Calib" #define TR_TIME "Time" #define TR_MAXBAUDRATE "Max bauds" - #define TR_BLUETOOTH "Bluetooth" #define TR_BLUETOOTH_DISC "Discover" #define TR_BLUETOOTH_INIT "Init" @@ -1085,7 +1076,7 @@ #define TR_BEEP_VOLUME "Beep volume" #define TR_WAV_VOLUME "Wav volume" -#define TR_BG_VOLUME TR("Bg volume", "Background Volume") +#define TR_BG_VOLUME TR("Bg volume", "Background volume") #define TR_TOP_BAR "Top bar" #define TR_FLASH_ERASE "Flash erase..." diff --git a/radio/src/translations/es.h.txt b/radio/src/translations/es.h.txt index 35bd8bd815..ebf714c910 100644 --- a/radio/src/translations/es.h.txt +++ b/radio/src/translations/es.h.txt @@ -52,9 +52,6 @@ #define LEN_VBEEPMODE "\005" #define TR_VBEEPMODE "Mudo ""Alarm""NoKey""Todo " -#define LEN_VRENAVIG "\003" -#define TR_VRENAVIG "No REaREb" - #define LEN_VBLMODE "\004" #define TR_VBLMODE "OFF ""Keys""Stks""Both""ON\0" @@ -534,7 +531,6 @@ #define TR_MODEL_STILL_POWERED "Model still powered" #define TR_MODEL_SHUTDOWN "Shutdown ?" #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.") #define TR_MINUTEBEEP TR("Minuto", "Cada Minuto") @@ -581,9 +577,7 @@ #define OFS_RX 4 #define TR_ACCEL "Acc:" #define TR_NODATA CENTER "SIN DATOS" -#define TR_TOTTM1TM2THRTHP "\037\146SES\036TM1\037\146TM2\036THR\037\146TH%" #define TR_US "us" -#define TR_TMR1JITTERUS "Tmr1 Jitter\037\124us" #define TR_TMIXMAXMS "Tmix max" #define TR_FREE_STACK "Free stack" #define TR_MENUTORESET TR_ENTER "Resetear" @@ -692,7 +686,6 @@ #define TR_PITCH_AT_ZERO INDENT "Pitch at Zero" #define TR_PITCH_AT_MAX INDENT "Pitch at Max" #define TR_REPEAT_AT_ZERO INDENT "Repeat at Zero" -#define TR_POWEROFF "\027Power OFF..." #define TR_SHUTDOWN "APAGANDO" #define TR_SAVEMODEL "Saving model settings" #define TR_BATT_CALIB "Calib.bateria" diff --git a/radio/src/translations/fi.h.txt b/radio/src/translations/fi.h.txt index 739b42b9f0..5c23a8fd48 100644 --- a/radio/src/translations/fi.h.txt +++ b/radio/src/translations/fi.h.txt @@ -52,9 +52,6 @@ #define LEN_VBEEPMODE "\005" #define TR_VBEEPMODE "Äänet""Hälyt""EiNap""Kaikk" -#define LEN_VRENAVIG "\003" -#define TR_VRENAVIG "No REaREb" - #define LEN_VBLMODE TR("\004", "\010") #define TR_VBLMODE TR("OFF\0""Keys""Ctrl""Both""ON\0 ", "OFF\0 ""Keys\0 ""Controls""Both\0 ""ON\0 ") @@ -526,7 +523,6 @@ #define TR_MODEL_STILL_POWERED "Model still powered" #define TR_MODEL_SHUTDOWN "Shutdown ?" #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") #define TR_MINUTEBEEP TR("Minute", "Minute call") @@ -573,9 +569,7 @@ #define OFS_RX 4 #define TR_ACCEL "Acc:" #define TR_NODATA CENTER "NO DATA" -#define TR_TOTTM1TM2THRTHP "\037\146SES\036TM1\037\146TM2\036THR\037\146TH%" #define TR_US "us" -#define TR_TMR1JITTERUS "Tmr1 Jitter\037\124us" #define TR_TMIXMAXMS "Tmix max" #define TR_FREE_STACK "Free stack" @@ -686,7 +680,6 @@ #define TR_PITCH_AT_ZERO INDENT "Pitch at Zero" #define TR_PITCH_AT_MAX INDENT "Pitch at Max" #define TR_REPEAT_AT_ZERO INDENT "Repeat at Zero" -#define TR_POWEROFF "\027Power OFF..." #define TR_SHUTDOWN "SHUTTING DOWN" #define TR_SAVEMODEL "Saving model settings" #define TR_BATT_CALIB "Battery Calib" diff --git a/radio/src/translations/fr.h.txt b/radio/src/translations/fr.h.txt index f0422e135f..efde0de557 100644 --- a/radio/src/translations/fr.h.txt +++ b/radio/src/translations/fr.h.txt @@ -52,9 +52,6 @@ #define LEN_VBEEPMODE "\005" #define TR_VBEEPMODE "Aucun""Alarm""NoKey""Tout\0" -#define LEN_VRENAVIG "\003" -#define TR_VRENAVIG "NonREaREb" - #define LEN_VBLMODE TR("\004", "\011") #define TR_VBLMODE TR("OFF\0""Btns""Ctrl""Tous""ON\0","OFF\0 ""Touches\0 ""Controles""Tous\0 ""ON\0 ") @@ -532,7 +529,6 @@ #define TR_MODEL_STILL_POWERED TR("Modèle allumé", "Modèle encore allumé") #define TR_MODEL_SHUTDOWN "Eteindre ?" #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") #define TR_MINUTEBEEP TR("Bip min.", "Annonces minutes") @@ -583,10 +579,8 @@ #define OFS_RX 4 #define TR_ACCEL "Acc:" #define TR_NODATA CENTER "NO DATA" -#define TR_TOTTM1TM2THRTHP "\037\146SES\036TM1\037\146TM2\036GAZ\037\146GZ%" #define TR_US "us" #define TR_TMR1LATMINUS "Tmr1Lat min\037\124us" -#define TR_TMR1JITTERUS "Tmr1 Jitter\037\124us" #define TR_TMIXMAXMS "Tmix max" #define TR_FREE_STACK "Free stack" @@ -689,7 +683,6 @@ #define TR_PITCH_AT_ZERO INDENT "Tonalité zéro" #define TR_PITCH_AT_MAX INDENT "Tonalité max" #define TR_REPEAT_AT_ZERO TR(INDENT "Interv. zéro", INDENT "Intervalle au zéro") -#define TR_POWEROFF "\037\120ARRET..." #define TR_SHUTDOWN "ARRET EN COURS" #define TR_SAVEMODEL "Sauvegarde modèle..." #define TR_BATT_CALIB "Calib. batt" diff --git a/radio/src/translations/it.h.txt b/radio/src/translations/it.h.txt index 3fc89e2c2c..7d05b7b801 100644 --- a/radio/src/translations/it.h.txt +++ b/radio/src/translations/it.h.txt @@ -52,9 +52,6 @@ #define LEN_VBEEPMODE TR("\005", "\010") #define TR_VBEEPMODE TR("Silen""Avvis""Notst""Tutti","Silente ""Avvisi\0 ""No Tasti""Tutti\0 ") -#define LEN_VRENAVIG "\003" -#define TR_VRENAVIG "No REaREb" - #define LEN_VBLMODE TR("\005", "\006") #define TR_VBLMODE TR("OFF\0 ""Tasti""Stks\0""Tutti""ON\0 ", "Spenta""Tasti\0""Sticks""Tutti\0""Accesa") @@ -533,7 +530,6 @@ #define TR_MODEL_STILL_POWERED "Model still powered" #define TR_MODEL_SHUTDOWN "Shutdown ?" #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") #define TR_MINUTEBEEP "Minuto" @@ -584,9 +580,7 @@ #define OFS_RX 4 #define TR_ACCEL "Acc:" #define TR_NODATA CENTER"DATI ASSENTI" -#define TR_TOTTM1TM2THRTHP "\037\146SES\036TM1\037\146TM2\036THR\037\146TH%" #define TR_US "us" -#define TR_TMR1JITTERUS "Tmr1 Jitter\037\124us" #define TR_TMIXMAXMS "Tmix max" #define TR_FREE_STACK "Free stack" #define TR_MENUTORESET TR_ENTER" x Azzerare" @@ -687,7 +681,6 @@ #define TR_PITCH_AT_ZERO INDENT "Tono a Zero" #define TR_PITCH_AT_MAX INDENT "Tono al Max" #define TR_REPEAT_AT_ZERO INDENT "Ripeti a Zero" -#define TR_POWEROFF "\027Power OFF..." #define TR_SHUTDOWN "ARRESTO.." #define TR_SAVEMODEL "Salvataggio dati modello" #define TR_BATT_CALIB "Calibra batt." diff --git a/radio/src/translations/nl.h.txt b/radio/src/translations/nl.h.txt index d7045af551..61b75ce88c 100644 --- a/radio/src/translations/nl.h.txt +++ b/radio/src/translations/nl.h.txt @@ -52,9 +52,6 @@ #define LEN_VBEEPMODE "\005" #define TR_VBEEPMODE "Stil\0""Alarm""NoKey""Alles" -#define LEN_VRENAVIG "\003" -#define TR_VRENAVIG "UITREaREb" - #define LEN_VBLMODE TR("\005", "\010") #define TR_VBLMODE TR("UIT\0 ""Keys\0""Stick""Beide""AAN\0 ", "UIT\0 ""Toetsen\0""Sticks\0 ""Beide\0 ""AAN\0 ") @@ -516,7 +513,6 @@ TR_GYR_VSRCRAW #define TR_MODEL_STILL_POWERED "Model still powered" #define TR_MODEL_SHUTDOWN "Shutdown ?" #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") #define TR_MINUTEBEEP TR("Min-Alarm", "Minuten-Alarm") @@ -569,9 +565,7 @@ TR_GYR_VSRCRAW #define OFS_RX 4 #define TR_ACCEL "Acc:" #define TR_NODATA CENTER"Geen Data" -#define TR_TOTTM1TM2THRTHP "\037\146SES\036TM1\037\146TM2\036THR\037\146TH%" #define TR_US "us" -#define TR_TMR1JITTERUS "Tmr1 Jitter\037\124us" #define TR_TMIXMAXMS "Tmix max" #define TR_FREE_STACK "Free stack" #define TR_MENUTORESET TR_ENTER" voor Reset" @@ -675,7 +669,6 @@ TR_GYR_VSRCRAW #define TR_PITCH_AT_ZERO INDENT "Laagste Toon" #define TR_PITCH_AT_MAX INDENT "Hoogste Toon" #define TR_REPEAT_AT_ZERO INDENT "Herhalen bij 0" -#define TR_POWEROFF "\027Uitschakelen..." #define TR_SHUTDOWN "Afsluiten" #define TR_SAVEMODEL "Bewaar Model-instellingen" #define TR_BATT_CALIB "Accu Calib" diff --git a/radio/src/translations/pl.h.txt b/radio/src/translations/pl.h.txt index 9a8b40701e..141fa1be22 100644 --- a/radio/src/translations/pl.h.txt +++ b/radio/src/translations/pl.h.txt @@ -52,9 +52,6 @@ #define LEN_VBEEPMODE "\005" #define TR_VBEEPMODE "Cichy""Alarm""BezPr""Wsz.\0" -#define LEN_VRENAVIG "\003" -#define TR_VRENAVIG "No REaREb" - #define LEN_VBLMODE TR("\004", "\010") #define TR_VBLMODE TR("Wył\0""Przy""Drąż""Oba\0""Zał\0", "Wyłącz ""Przycisk""Drązki\0 ""Oba\0 ""Włącz ") @@ -533,7 +530,6 @@ #define TR_MODEL_STILL_POWERED "Model still powered" #define TR_MODEL_SHUTDOWN "Shutdown ?" #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") #define TR_MINUTEBEEP TR("Minuta", "PikCoMinutę") @@ -584,9 +580,7 @@ #define OFS_RX 4 #define TR_ACCEL "Acc:" #define TR_NODATA CENTER "BrakDAN" -#define TR_TOTTM1TM2THRTHP "\037\146SES\036TM1\037\146TM2\036THR\037\146TH%" #define TR_US "us" -#define TR_TMR1JITTERUS "Tmr1 Jitter\037\124us" #define TR_TMIXMAXMS "TmixMaks" #define TR_FREE_STACK "Wolny stos" #define TR_MENUTORESET TR_ENTER " >> Reset" @@ -687,7 +681,6 @@ #define TR_PITCH_AT_ZERO INDENT "Ton przy Zerze" #define TR_PITCH_AT_MAX INDENT "Ton przy Max" #define TR_REPEAT_AT_ZERO INDENT "Powtórz przy Zerze" -#define TR_POWEROFF "\027Wyłączanie.." #define TR_SHUTDOWN "Wyłączanie.." #define TR_SAVEMODEL "Zapisz ustwienia modelu" #define TR_BATT_CALIB "Kalib:Baterii" diff --git a/radio/src/translations/pt.h.txt b/radio/src/translations/pt.h.txt index 6cf12fe5ec..6bb061aedc 100644 --- a/radio/src/translations/pt.h.txt +++ b/radio/src/translations/pt.h.txt @@ -52,9 +52,6 @@ #define LEN_VBEEPMODE "\005" #define TR_VBEEPMODE "Mudo ""Alarm""NoKey""Todo " -#define LEN_VRENAVIG "\003" -#define TR_VRENAVIG "No REaREb" - #define LEN_VBLMODE "\004" #define TR_VBLMODE "OFF ""Chav""Stks""Tudo""ON\0" @@ -519,7 +516,6 @@ #define TR_MODEL_STILL_POWERED "Model still powered" #define TR_MODEL_SHUTDOWN "Shutdown ?" #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.") #define TR_MINUTEBEEP "Beep Minuto" @@ -566,9 +562,7 @@ #define OFS_RX 4 #define TR_ACCEL "Acc:" #define TR_NODATA CENTER"SEM DADOS" -#define TR_TOTTM1TM2THRTHP "\037\146SES\036TM1\037\146TM2\036THR\037\146TH%" #define TR_US "us" -#define TR_TMR1JITTERUS "Tmr1 Jitter\037\124us" #define TR_TMIXMAXMS "Tmix max" #define TR_FREE_STACK "Free stack" #define TR_MENUTORESET TR_ENTER" Reinicia" @@ -677,7 +671,6 @@ #define TR_PITCH_AT_ZERO INDENT "Pitch at Zero" #define TR_PITCH_AT_MAX INDENT "Pitch at Max" #define TR_REPEAT_AT_ZERO INDENT "Repeat at Zero" -#define TR_POWEROFF "\027Power OFF..." #define TR_SHUTDOWN "DESLIGANDOo" #define TR_SAVEMODEL "Saving model settings" #define TR_BATT_CALIB "CALIBRAR BATT" diff --git a/radio/src/translations/se.h.txt b/radio/src/translations/se.h.txt index 6c27860548..da55aff7aa 100644 --- a/radio/src/translations/se.h.txt +++ b/radio/src/translations/se.h.txt @@ -52,9 +52,6 @@ #define LEN_VBEEPMODE "\005" #define TR_VBEEPMODE "Tyst\0""Alarm""EjKnp""Alla\0" -#define LEN_VRENAVIG "\003" -#define TR_VRENAVIG "IngREaREb" - #define LEN_VBLMODE TR("\005", "\010") #define TR_VBLMODE TR("Av\0 ""Knapp""Spak\0""Allt\0""På\0 ", "Av\0 ""Knappar\0""Spakar\0 ""Allt\0 ""På\0 ") @@ -532,7 +529,6 @@ #define TR_MODEL_STILL_POWERED "Model still powered" #define TR_MODEL_SHUTDOWN "Shutdown ?" #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") #define TR_MINUTEBEEP "Minutpip" @@ -583,9 +579,7 @@ #define OFS_RX 4 #define TR_ACCEL "Acc:" #define TR_NODATA CENTER "DATA SAKNAS" -#define TR_TOTTM1TM2THRTHP "\037\146SES\036TM1\037\146TM2\036THR\037\146TH%" #define TR_US "us" -#define TR_TMR1JITTERUS "Tmr1 Jitter\037\124us" #define TR_TMIXMAXMS "Tmix max" #define TR_FREE_STACK "Free stack" #define TR_MENUTORESET TR_ENTER " Nollar" @@ -686,7 +680,6 @@ #define TR_PITCH_AT_ZERO INDENT "Ton vid Noll" #define TR_PITCH_AT_MAX INDENT "Ton vid Max" #define TR_REPEAT_AT_ZERO INDENT "Repetera vid Noll" -#define TR_POWEROFF "\027Stänger Av..." #define TR_SHUTDOWN "STÄNGER AV" #define TR_SAVEMODEL "Spara modellinställn." #define TR_BATT_CALIB "Kalib. Batteri" diff --git a/tools/release23/build-sdcard.sh b/tools/release23/build-sdcard.sh new file mode 100755 index 0000000000..97a4799b71 --- /dev/null +++ b/tools/release23/build-sdcard.sh @@ -0,0 +1,77 @@ +#!/bin/bash + +set -e +set -x + +workdir=/home/opentx/release23 +output=/var/www/html/2.3/release + +# Handle opentx.sdcard.version +sdcard_version="2.3V"$(grep 'set(SDCARD_REVISION' ${workdir}/code/CMakeLists.txt | grep -o '".*"' | sed 's/"//g') +echo ${sdcard_version} > ${workdir}/code/radio/sdcard/horus/opentx.sdcard.version +echo ${sdcard_version} > ${workdir}/code/radio/sdcard/taranis-x9/opentx.sdcard.version +echo ${sdcard_version} > ${workdir}/code/radio/sdcard/taranis-x7/opentx.sdcard.version + + +if cmp --silent ${workdir}/code/radio/sdcard/horus/opentx.sdcard.version ${workdir}/opentx.sdcard.version +then + exit +else + cd ${workdir} + + # Copy git sdcard data + rm -Rf ${workdir}/sdcard + cp -r ${workdir}/code/radio/sdcard . + + # Get images for Horus + mkdir -p ${workdir}/sdcard/horus/IMAGES + cp /home/opentx/horus-bitmaps/* ${workdir}/sdcard/horus/IMAGES/ + + + # Request sound pack generation + if [[ ! -d /tmp/SOUNDS/fr ]];then + ${workdir}/code/tools/release23/tts.py en csv files + fi + if [[ ! -d /tmp/SOUNDS/es ]];then + ${workdir}/code/tools/release23/tts.py fr csv files + fi + if [[ ! -d /tmp/SOUNDS/it ]];then + ${workdir}/code/tools/release23/tts.py es csv files + fi + if [[ ! -d /tmp/SOUNDS/de ]];then + ${workdir}/code/tools/release23/tts.py it csv files + fi + if [[ ! -d /tmp/SOUNDS/cz ]];then + ${workdir}/code/tools/release23/tts.py de csv files + fi + if [[ ! -d /tmp/SOUNDS/pl ]];then + ${workdir}/code/tools/release23/tts.py cz csv files + fi + if [[ ! -d /tmp/SOUNDS/ru ]];then + ${workdir}/code/tools/release23/tts.py pt csv files + fi + ${workdir}/code/tools/release23/tts.py ru csv psv files + + # Create sdcards.zips for supported platforms + mv /tmp/SOUNDS ${workdir}/sdcard/horus/ + mkdir ${workdir}/sdcard/taranis-x9/SOUNDS + mkdir ${workdir}/sdcard/taranis-x7/SOUNDS + cp -r ${workdir}/sdcard/horus/SOUNDS ${workdir}/sdcard/taranis-x9/ + cp -r ${workdir}/sdcard/horus/SOUNDS ${workdir}/sdcard/taranis-x7/ + cd ${workdir}/sdcard/horus && zip -r ${output}/sdcard/sdcard-horus-${sdcard_version}.zip * + cd ${workdir}/sdcard/taranis-x9 && zip -r ${output}/sdcard/sdcard-taranis-x9-${sdcard_version}.zip * + cd ${workdir}/sdcard/taranis-x7 && zip -r ${output}/sdcard/sdcard-taranis-x7-${sdcard_version}.zip * + + # Create symlinks for other radios + ln -s ${output}/sdcard/sdcard-taranis-x7-${sdcard_version}.zip ${output}/sdcard/sdcard-taranis-xlite-${sdcard_version}.zip + ln -s ${output}/sdcard/sdcard-taranis-x7-${sdcard_version}.zip ${output}/sdcard/sdcard-taranis-x9lite-${sdcard_version}.zip + ln -s ${output}/sdcard/sdcard-taranis-x7-${sdcard_version}.zip ${output}/sdcard/sdcard-jumper-t12-${sdcard_version}.zip + + # remove LUA stuff for 9x platform + rm -Rf ${workdir}/sdcard/taranis-x7/SCRIPTS + rm -Rf ${workdir}/sdcard/taranis-x7/FrSky-utilities + cd ${workdir}/sdcard/taranis-x7 && zip -r ${output}/sdcard/sdcard-9xarm-${sdcard_version}.zip * + + rm -Rf ${workdir}/sdcard + cp -r ${workdir}/code/radio/sdcard/horus/opentx.sdcard.version ${workdir} +fi diff --git a/tools/release23/tts.py b/tools/release23/tts.py new file mode 100755 index 0000000000..fc42cfeb6d --- /dev/null +++ b/tools/release23/tts.py @@ -0,0 +1,152 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + + +# This script is a modified version to support Linux TTS fiel genration using PicoTTS + +# Sound pack maintainers (incomplete list) by language alphabetical order +# Czech : Martin Hotar +# French : Bertrand Songis & André Bernet +# English : Rob Thompson & Martin Hotar +# German : Romolo Manfredini (Some corrections by Peer) +# Italian : Romolo Manfredini +# Portuguese : Romolo Manfredini +# Spanish : Romolo Manfredini (With the help of Jose Moreno) + +# from __future__ import print_function + +import os +import sys +import subprocess +import zipfile +from gtts import gTTS +from tts_common import * +board = "taranis" + +reload(sys) +sys.setdefaultencoding('utf8') + +SOURCE_DIRECTORY = os.path.dirname(os.path.realpath(__file__)) +lib_path = os.path.abspath(os.path.join(SOURCE_DIRECTORY, '..', '..', 'radio', 'util')) +sys.path.append(lib_path) + +def generate(str, filename): + if 0: + output = "output.wav" + command = 'pico2wave -l=%s -w=%s "%s"' % (voice, output, str) + os.system(command.encode('utf-8')) + command = "sox %s -r 32000 %s reverse silence 1 0.1 0.1%% reverse" % (output, filename) + os.system(command.encode('utf-8')) + else: + output = u"output.mp3" + tts = gTTS(text=str, lang=voice[:2]) + tts.save(output) + command = "sox --norm %s -r 32000 %s tempo 1.2" % (output, filename) + os.system(command.encode('utf-8')) + command = "rm -f output.mp3" + os.system(command.encode('utf-8')) + +################################################################ + +if __name__ == "__main__": + if "en" in sys.argv: + from tts_en import systemSounds, sounds + + directory = "en" + voice = "en-US" + + elif "fr" in sys.argv: + from tts_fr import systemSounds, sounds + + directory = "fr" + voice = "fr-FR" + + elif "it" in sys.argv: + from tts_it import systemSounds, sounds + + directory = "it" + voice = "it-IT" + + elif "de" in sys.argv: + from tts_de import systemSounds, sounds + + directory = "de" + voice = "de-DE" + + elif "es" in sys.argv: + from tts_es import systemSounds, sounds + + directory = "es" + voice = "es-ES" + + elif "cz" in sys.argv: + from tts_cz import systemSounds, sounds + + directory = "cz" + voice = "cs-CZ" + + elif "ru" in sys.argv: + from tts_ru import systemSounds, sounds + + directory = "ru" + voice = "ru-RU" + + elif "pt" in sys.argv: + from tts_pt import systemSounds, sounds + + directory = "pt" + voice = "pt-PT" + + else: + print("which language?") + exit() + + if "csv" in sys.argv: + path = "/tmp/SOUNDS/" + directory + "/SYSTEM/" + if not os.path.exists(path): + os.makedirs(path) + os.chdir(path) + with open("%s-%s.csv" % (voice, board), "wb") as csvFile: + for s, f in systemSounds: + if s and f: + l = u"" + if board in ("sky9x", "taranis"): + l += u"SOUNDS/%s/SYSTEM;" % directory + l += f + u";" + s + u"\n" + csvFile.write(l.encode("utf-8")) + for s, f in sounds: + if s and f: + l = u"" + if board in ("sky9x", "taranis"): + l += u"SOUNDS/%s;" % directory + l += f + u";" + s + u"\n" + csvFile.write(l.encode("utf-8")) + + if "psv" in sys.argv: + path = "/tmp/SOUNDS/" + directory + "/" + if not os.path.exists(path): + os.makedirs(path) + os.chdir(path) + with open("%s-%s.psv" % (voice, board), "wb") as csvFile: + for s, f in systemSounds: + if s and f: + l = u"SYSTEM|" + f.replace(".wav", "") + u"|" + s + u"\r\n" + csvFile.write(l.encode("windows-1251")) + for s, f in sounds: + if s and f: + l = u"|" + f.replace(".wav", "") + u"|" + s + u"\r\n" + csvFile.write(l.encode("windows-1251")) + + + if "files" in sys.argv: + path = "/tmp/SOUNDS/" + directory + "/SYSTEM/" + if not os.path.exists(path): + os.makedirs(path) + os.chdir(path) + for s, f in systemSounds: + if s and f: + generate(s, f) + os.chdir("..") + for s, f in sounds: + if s and f: + generate(s, f) diff --git a/tools/release23/tts_common.py b/tools/release23/tts_common.py new file mode 100644 index 0000000000..25623b0053 --- /dev/null +++ b/tools/release23/tts_common.py @@ -0,0 +1,14 @@ +NO_ALTERNATE = 1024 +PROMPT_CUSTOM_BASE = 256 +PROMPT_SYSTEM_BASE = 0 +board = "taranis" + +import sys + +def filename(idx, alternate=0): + ext = ".wav" + if isinstance(idx, int): + result = "%04d%s" % (idx, ext) + elif board in ('sky9x', 'taranis'): + result = idx + ext + return result