diff --git a/CREDITS.txt b/CREDITS.txt index f4f2c3cb9..592206e07 100644 --- a/CREDITS.txt +++ b/CREDITS.txt @@ -2238,3 +2238,15 @@ Michael Jakob Dean Berg David Hankins Gary Cripps +Devin Crumb +Daniel Naude +James Miller +Pascal Cayol +eDefine +Mario Sette +Hans-Georg Böhm +Robert Oats +Helmut Suhrbier +Johannes Vorster +Deon du Rand +Stephen Hill-Harriss diff --git a/companion/src/firmwares/rawsource.cpp b/companion/src/firmwares/rawsource.cpp index 898c0ca4a..eaa651b6c 100644 --- a/companion/src/firmwares/rawsource.cpp +++ b/companion/src/firmwares/rawsource.cpp @@ -60,7 +60,7 @@ RawSourceRange RawSource::getRange(const ModelData * model, const GeneralSetting result.min = -30000 * result.step; result.max = +30000 * result.step; result.decimals = sensor.prec; - result.unit = SensorData::unitToString(qr.quot); + result.unit = sensor.unitToString(); break; } @@ -351,8 +351,11 @@ RawSource RawSource::convert(RadioDataConversionState & cstate) if (type == SOURCE_TYPE_SWITCH) { QStringList fromSwitchList(getSwitchList(cstate.fromBoard)); QStringList toSwitchList(getSwitchList(cstate.toBoard)); - index = toSwitchList.indexOf(fromSwitchList.at(oldData.id)); // index set to -1 if no match found + if (oldData.id < fromSwitchList.count()) + index = toSwitchList.indexOf(fromSwitchList.at(oldData.id)); + else + index = -1; // perform forced mapping if (index < 0) { if (IS_TARANIS_X7(cstate.toType) && (IS_TARANIS_X9(cstate.fromType) || IS_FAMILY_HORUS_OR_T16(cstate.fromType))) { diff --git a/companion/src/firmwares/rawswitch.cpp b/companion/src/firmwares/rawswitch.cpp index 7aef46922..f609e7942 100644 --- a/companion/src/firmwares/rawswitch.cpp +++ b/companion/src/firmwares/rawswitch.cpp @@ -191,7 +191,10 @@ RawSwitch RawSwitch::convert(RadioDataConversionState & cstate) QStringList fromSwitchList(getSwitchList(cstate.fromBoard)); QStringList toSwitchList(getSwitchList(cstate.toBoard)); // set to -1 if no match found - newIdx = toSwitchList.indexOf(fromSwitchList.at(swtch.quot)); + if (swtch.quot < fromSwitchList.count()) + newIdx = toSwitchList.indexOf(fromSwitchList.at(swtch.quot)); + else + newIdx = -1; // perform forced mapping if (newIdx < 0) { if (IS_TARANIS_X7(cstate.toType) && (IS_TARANIS_X9(cstate.fromType) || IS_FAMILY_HORUS_OR_T16(cstate.fromType))) { diff --git a/companion/src/firmwares/sensordata.cpp b/companion/src/firmwares/sensordata.cpp index ae602bd0d..9a26a6d82 100644 --- a/companion/src/firmwares/sensordata.cpp +++ b/companion/src/firmwares/sensordata.cpp @@ -75,9 +75,9 @@ QString SensorData::cellIndexToString() const return cellIndexToString(index); } -QString SensorData::unitToString() const +QString SensorData::unitToString(bool hideRaw) const { - return unitToString(unit); + return unitToString(unit, hideRaw); } QString SensorData::precToString() const @@ -342,11 +342,11 @@ QString SensorData::sourceToString(const ModelData * model, const int index, con } // static -QString SensorData::unitToString(const int value) +QString SensorData::unitToString(const int value, bool hideRaw) { switch (value) { case UNIT_RAW: - return tr("Raw (-)"); + return hideRaw ? QString() : tr("Raw (-)"); case UNIT_VOLTS: return tr("V"); case UNIT_AMPS: @@ -496,7 +496,7 @@ AbstractStaticItemModel * SensorData::unitItemModel() mdl->setName("sensordata.unit"); for (int i = 0; i <= UNIT_MAX; i++) { - QString str = unitToString(i); + QString str = unitToString(i, false); if (str != CPN_STR_UNKNOWN_ITEM) mdl->appendToItemList(str, i); } diff --git a/companion/src/firmwares/sensordata.h b/companion/src/firmwares/sensordata.h index 8a032cec5..1581b444b 100644 --- a/companion/src/firmwares/sensordata.h +++ b/companion/src/firmwares/sensordata.h @@ -188,7 +188,7 @@ class SensorData { QString typeToString() const; QString formulaToString() const; QString cellIndexToString() const; - QString unitToString() const; + QString unitToString(bool hideRaw = true) const; QString precToString() const; int getMask() const; QString paramsToString(const ModelData * model) const; @@ -203,7 +203,7 @@ class SensorData { static QString typeToString(const int value); static QString formulaToString(const int value); static QString cellIndexToString(const int value); - static QString unitToString(const int value); + static QString unitToString(const int value, bool hideRaw = true); static QString precToString(const int value); static bool isRssiSensorAvailable(const ModelData * model, const int value); static QString rssiSensorToString(const ModelData * model, const int value); diff --git a/companion/src/translations/companion_fr.ts b/companion/src/translations/companion_fr.ts index 2a6eea996..0ece144ea 100644 --- a/companion/src/translations/companion_fr.ts +++ b/companion/src/translations/companion_fr.ts @@ -1631,7 +1631,7 @@ Si vous avez un fichier de sauvegarde des paramètres, vous pouvez l'import Trainer Sticks - Manches Écolage + Écolage Manches @@ -1656,7 +1656,7 @@ Si vous avez un fichier de sauvegarde des paramètres, vous pouvez l'import Trainer Channels - Écolage Channels + Écolage Canaux @@ -2233,7 +2233,7 @@ Si vous avez un fichier de sauvegarde des paramètres, vous pouvez l'import OpenTX ne supporte pas cette fonction sur cette carte - + OpenTX doesn't accept this radio protocol OpenTX ne supporte pas ce protocole radio @@ -8975,28 +8975,33 @@ Mixage actif par défaut si non-renseigné. Maître/Multi - + Disable Telemetry Désactiver la télémétrie - + + Racing Mode + Mode Course/Racing + + + Disable Ch. Map Désactiver "Mapping" des VOIES - + Show values in: Afficher les valeurs en: - + % abbreviation for percent - + μs abbreviation for microseconds @@ -9084,7 +9089,7 @@ Mixage actif par défaut si non-renseigné. ID d'enregistrement - + Failsafe Positions Positions Failsafe @@ -9137,100 +9142,100 @@ Mixage actif par défaut si non-renseigné. Négative - + Trainer Port Port écolage - + Internal Radio System Module HF interne - + External Radio Module Module HF externe - + Extra Radio System Module HF supplémentaire - + Radio System Module HF - + 10mW - 16CH 10mW - 16 VOIES - - + + 100mW - 16CH 100mW - 16 VOIES - + 500mW - 16CH 500mW - 16 VOIES - + Auto <= 1W - 16CH Auto <= 1W - 16 VOIES - - + + 25mW - 8CH 25mW - 8 VOIES - - + + 25mW - 16CH 25mW - 16 VOIES - + 200mW - 16CH (no telemetry) 200mW - 16 VOIES (pas de télémétrie) - + 500mW - 16CH (no telemetry) 500mW - 16 VOIES (pas de télémétrie) - + 100mW - 16CH (no telemetry) 100mW - 16 VOIES (pas de télémétrie) - + 25 mW - + 100 mW - + 500 mW - + 1 W - + 2 W @@ -9238,42 +9243,42 @@ Mixage actif par défaut si non-renseigné. ModulePanel - + Value Valeur - + Hold Maintien - + No Pulse Pas d'impulsion - + Ask Demander - + Internal Interne - + Internal + External Interne + Externe - + External Externe - + Bind on channel Bind avec VOIE @@ -11031,87 +11036,87 @@ Si cette option est cochée, la voie des gaz est inversée: le ralenti est &apo SetupPanel - + Popup menu available Menu contextuel disponible - + Timer %1 Chrono %1 - + Profile Settings Paramètres du profil - + SD structure path not specified or invalid Chemin de la structure SD non spécifié ou invalide - + Copy Copier - + Cut Couper - + Paste Coller - + Clear Effacer - + Insert Insérer - + Delete Supprimer - + Move Up Monter - + Move Down Descendre - + Clear All Effacer Tout - + Clear Timer. Are you sure? Effacer le Chrono. Êtes-vous sûr? - + Clear all Timers. Are you sure? Effacer tous les Chronos. Êtes-vous sûr? - + Cut Timer. Are you sure? Couper le Chrono. Êtes-vous sûr? - + Delete Timer. Are you sure? Supprimer le Chrono. Êtes-vous sûr? diff --git a/radio/src/telemetry/telemetry.cpp b/radio/src/telemetry/telemetry.cpp index 700bf535a..d83765ce8 100644 --- a/radio/src/telemetry/telemetry.cpp +++ b/radio/src/telemetry/telemetry.cpp @@ -398,7 +398,7 @@ ModuleSyncStatus::ModuleSyncStatus() memset(this, 0, sizeof(ModuleSyncStatus)); } -void ModuleSyncStatus::update(uint16_t newRefreshRate, uint16_t newInputLag) +void ModuleSyncStatus::update(uint16_t newRefreshRate, int16_t newInputLag) { if (!newRefreshRate) return; @@ -449,13 +449,12 @@ void ModuleSyncStatus::getRefreshString(char * statusText) char * tmp = statusText; #if defined(DEBUG) *tmp++ = 'L'; - tmp = strAppendUnsigned(tmp, inputLag, 5); - tmp = strAppend(tmp, "us R "); - tmp = strAppendUnsigned(tmp, (uint32_t) (refreshRate / 1000), 5); - tmp = strAppend(tmp, "us"); + tmp = strAppendSigned(tmp, inputLag, 5); + tmp = strAppend(tmp, "R"); + tmp = strAppendUnsigned(tmp, refreshRate, 5); #else - tmp = strAppend(tmp, "Sync at "); - tmp = strAppendUnsigned(tmp, (uint32_t) (refreshRate / 1000000)); - tmp = strAppend(tmp, " ms"); + tmp = strAppend(tmp, "Sync "); + tmp = strAppendUnsigned(tmp, refreshRate); #endif + tmp = strAppend(tmp, "us"); } diff --git a/radio/src/telemetry/telemetry.h b/radio/src/telemetry/telemetry.h index c70cc5fb9..1189443ba 100644 --- a/radio/src/telemetry/telemetry.h +++ b/radio/src/telemetry/telemetry.h @@ -306,7 +306,7 @@ struct ModuleSyncStatus } // Set feedback from RF module - void update(uint16_t newRefreshRate, uint16_t newInputLag); + void update(uint16_t newRefreshRate, int16_t newInputLag); // Get computed settings for scheduler uint16_t getAdjustedRefreshRate();