From b3c09dd35a0deb5a9e25d35894a07b876f172948 Mon Sep 17 00:00:00 2001 From: Neil Horne Date: Tue, 27 Feb 2024 12:33:17 +1100 Subject: [PATCH] chore(cpn): align general settings naming to radio (#4654) --- companion/src/firmwares/boards.cpp | 3 ++ companion/src/firmwares/boards.h | 1 + .../firmwares/edgetx/yaml_generalsettings.cpp | 32 ++++++++++++------- .../src/firmwares/ersky9x/ersky9xeeprom.cpp | 2 +- .../src/firmwares/ersky9x/ersky9xeeprom.h | 12 +++---- companion/src/firmwares/generalsettings.h | 8 +++-- .../src/firmwares/opentx/opentxeeprom.cpp | 6 ++-- companion/src/generaledit/generalsetup.cpp | 6 ++-- 8 files changed, 43 insertions(+), 27 deletions(-) diff --git a/companion/src/firmwares/boards.cpp b/companion/src/firmwares/boards.cpp index eff64a744..85d729156 100644 --- a/companion/src/firmwares/boards.cpp +++ b/companion/src/firmwares/boards.cpp @@ -304,6 +304,9 @@ int Boards::getCapability(Board::Type board, Board::Capability capability) case HasExternalModuleSupport: return (IS_STM32(board) && !IS_RADIOMASTER_T8(board)); + case HasIMU: + return (IS_FAMILY_HORUS_OR_T16(board) || IS_TARANIS(board)); + case HasInternalModuleSupport: return (IS_STM32(board) && !IS_TARANIS_X9(board)); diff --git a/companion/src/firmwares/boards.h b/companion/src/firmwares/boards.h index dc0e420e1..15908b6f9 100644 --- a/companion/src/firmwares/boards.h +++ b/companion/src/firmwares/boards.h @@ -163,6 +163,7 @@ namespace Board { HasAudioMuteGPIO, HasColorLcd, HasExternalModuleSupport, + HasIMU, HasInternalModuleSupport, HasIntModuleHeartbeatGPIO, HasLedStripGPIO, diff --git a/companion/src/firmwares/edgetx/yaml_generalsettings.cpp b/companion/src/firmwares/edgetx/yaml_generalsettings.cpp index c0b3a029f..843d572a8 100644 --- a/companion/src/firmwares/edgetx/yaml_generalsettings.cpp +++ b/companion/src/firmwares/edgetx/yaml_generalsettings.cpp @@ -165,18 +165,25 @@ Node convert::encode(const GeneralSettings& rhs) std::string strboard = fw->getFlavour().toStdString(); node["board"] = strboard; + if (rhs.manuallyEdited) + node["manuallyEdited"] = (int)rhs.manuallyEdited; + YamlCalibData calib(rhs.inputConfig); node["calib"] = calib; - node["currModel"] = rhs.currModelIndex; node["currModelFilename"] = patchFilenameToYaml(rhs.currModelFilename); - node["contrast"] = rhs.contrast; node["vBatWarn"] = rhs.vBatWarn; node["txVoltageCalibration"] = rhs.txVoltageCalibration; node["vBatMin"] = rhs.vBatMin + 90; node["vBatMax"] = rhs.vBatMax + 120; + if (!Boards::getCapability(board, Board::HasColorLcd)) { + node["backlightColor"] = rhs.backlightColor; + node["contrast"] = rhs.contrast; + node["currModel"] = rhs.currModelIndex; + } + node["backlightMode"] = backlightModeLut << std::abs(rhs.backlightMode); node["trainer"] = rhs.trainer; node["PPM_Multiplier"] = rhs.PPM_Multiplier; @@ -184,7 +191,7 @@ Node convert::encode(const GeneralSettings& rhs) node["fai"] = (int)rhs.fai; node["disableMemoryWarning"] = (int)rhs.disableMemoryWarning; node["beepMode"] = rhs.beeperMode; - node["alarmsFlash"] = (int)rhs.flashBeep; + node["alarmsFlash"] = (int)rhs.alarmsFlash; node["disableAlarmWarning"] = (int)rhs.disableAlarmWarning; node["disableRssiPoweroffAlarm"] = (int)rhs.disableRssiPoweroffAlarm; node["USBMode"] = rhs.usbMode; @@ -255,7 +262,6 @@ Node convert::encode(const GeneralSettings& rhs) node["serialPort"] = serialPort; node["antennaMode"] = antennaModeLut << rhs.antennaMode; - node["backlightColor"] = rhs.backlightColor; node["pwrOnSpeed"] = rhs.pwrOnSpeed; node["pwrOffSpeed"] = rhs.pwrOffSpeed; @@ -292,9 +298,10 @@ Node convert::encode(const GeneralSettings& rhs) node["ownerRegistrationID"] = rhs.registrationId; - // Gyro (for now only xlites) - node["gyroMax"] = rhs.gyroMax; - node["gyroOffset"] = rhs.gyroOffset; + if (Boards::getCapability(board, Board::HasIMU)) { + node["imuMax"] = rhs.imuMax; + node["imuOffset"] = rhs.imuOffset; + } // OneBit sampling (X9D only?) node["uartSampleMode"] = rhs.uartSampleMode; @@ -419,7 +426,7 @@ bool convert::decode(const Node& node, GeneralSettings& rhs) node["fai"] >> rhs.fai; node["disableMemoryWarning"] >> rhs.disableMemoryWarning; node["beepMode"] >> rhs.beeperMode; - node["alarmsFlash"] >> rhs.flashBeep; + node["alarmsFlash"] >> rhs.alarmsFlash; node["disableAlarmWarning"] >> rhs.disableAlarmWarning; node["disableRssiPoweroffAlarm"] >> rhs.disableRssiPoweroffAlarm; node["USBMode"] >> rhs.usbMode; @@ -556,9 +563,12 @@ bool convert::decode(const Node& node, GeneralSettings& rhs) node["ownerRegistrationID"] >> rhs.registrationId; - // Gyro (for now only xlites) - node["gyroMax"] >> rhs.gyroMax; - node["gyroOffset"] >> rhs.gyroOffset; + // depreciated in 2.11 + node["gyroMax"] >> rhs.imuMax; + node["gyroOffset"] >> rhs.imuOffset; + + node["imuMax"] >> rhs.imuMax; + node["imuOffset"] >> rhs.imuOffset; // OneBit sampling (X9D only?) node["uartSampleMode"] >> rhs.uartSampleMode; diff --git a/companion/src/firmwares/ersky9x/ersky9xeeprom.cpp b/companion/src/firmwares/ersky9x/ersky9xeeprom.cpp index 263ca1577..d390d96fc 100644 --- a/companion/src/firmwares/ersky9x/ersky9xeeprom.cpp +++ b/companion/src/firmwares/ersky9x/ersky9xeeprom.cpp @@ -140,7 +140,7 @@ Ersky9xGeneral::operator GeneralSettings () result.inactivityTimer = inactivityTimer + 10; result.minuteBeep = minuteBeep; result.preBeep = preBeep; - result.flashBeep = flashBeep; + result.alarmsFlash = alarmsFlash; result.splashMode = disableSplashScreen; result.templateSetup = templateSetup; result.PPM_Multiplier = PPM_Multiplier; diff --git a/companion/src/firmwares/ersky9x/ersky9xeeprom.h b/companion/src/firmwares/ersky9x/ersky9xeeprom.h index e7d2ed1f8..653dced29 100644 --- a/companion/src/firmwares/ersky9x/ersky9xeeprom.h +++ b/companion/src/firmwares/ersky9x/ersky9xeeprom.h @@ -40,7 +40,7 @@ extern RawSwitch getEr9xTimerMode(int mode); #define ERSKY9X_NUM_CHNOUT_V10 16 //number of real outputchannels CH1-CH8 #define ERSKY9X_NUM_CHNOUT_V11 24 //number of real outputchannels CH1-CH8 #define ERSKY9X_NUM_CSW_V10 12 //number of custom switches -#define ERSKY9X_NUM_CSW_V11 24 +#define ERSKY9X_NUM_CSW_V11 24 #define ERSKY9X_NUM_FSW 16 #define ERSKY9X_NUM_VOICE 8 #define ERSKY9X_MAX_GVARS 7 @@ -89,7 +89,7 @@ PACK(typedef struct t_Ersky9xGeneral { uint8_t throttleReversed:1; uint8_t minuteBeep:1; uint8_t preBeep:1; - uint8_t flashBeep:1; + uint8_t alarmsFlash:1; uint8_t disableSplashScreen:1; uint8_t disablePotScroll:1; uint8_t disableBG:1; @@ -219,7 +219,7 @@ PACK(typedef struct t_Ersky9xSafetySwData_v10 { // Custom Switches data PACK(typedef struct t_Ersky9xSafetySwData_v11 { // Custom Switches data union opt { - struct ss { + struct ss { int8_t swtch ; uint8_t mode ; int8_t val ; @@ -279,13 +279,13 @@ PACK(typedef struct t_Ersky9xFrSkyData_v10 { PACK(typedef struct t_Ersky9xFrSkyChannelData_v11 { uint8_t ratio ; // 0.0 means not used, 0.1V steps EG. 6.6 Volts = 66. 25.1V = 251, etc. - uint8_t offset ; // - uint8_t gain ; // + uint8_t offset ; // + uint8_t gain ; // uint8_t alarms_value[2] ; // 0.1V steps EG. 6.6 Volts = 66. 25.1V = 251, etc. uint8_t alarms_level ; uint8_t alarms_greater ; // 0=LT(<), 1=GT(>) uint8_t type ; // 0=volts, 1=raw, 2=volts*2, 3=Amps - + operator FrSkyChannelData(); t_Ersky9xFrSkyChannelData_v11(); }) Ersky9xFrSkyChannelData_v11; diff --git a/companion/src/firmwares/generalsettings.h b/companion/src/firmwares/generalsettings.h index 71e3f87c1..3a75fd10b 100644 --- a/companion/src/firmwares/generalsettings.h +++ b/companion/src/firmwares/generalsettings.h @@ -198,6 +198,8 @@ class GeneralSettings { int getDefaultChannel(unsigned int stick) const; bool fix6POSCalibration(); + bool manuallyEdited; + char semver[8 + 1]; unsigned int version; unsigned int variant; @@ -234,7 +236,7 @@ class GeneralSettings { unsigned int internalModuleBaudrate; bool minuteBeep; bool preBeep; - bool flashBeep; + bool alarmsFlash; int splashMode; bool dontPlayHello; unsigned int backlightDelay; @@ -287,8 +289,8 @@ class GeneralSettings { CustomFunctionData customFn[CPN_MAX_SPECIAL_FUNCTIONS]; char registrationId[REGISTRATION_ID_LEN + 1]; - int gyroMax; - int gyroOffset; + int imuMax; + int imuOffset; int uartSampleMode; int pwrOnSpeed; diff --git a/companion/src/firmwares/opentx/opentxeeprom.cpp b/companion/src/firmwares/opentx/opentxeeprom.cpp index d67fc3560..e5624f1fe 100644 --- a/companion/src/firmwares/opentx/opentxeeprom.cpp +++ b/companion/src/firmwares/opentx/opentxeeprom.cpp @@ -3039,7 +3039,7 @@ OpenTxGeneralData::OpenTxGeneralData(GeneralSettings & generalData, Board::Type internalField.Append(new SpareBitsField<2>(this)); // TODO buzzerMode? internalField.Append(new BoolField<1>(this, generalData.fai)); internalField.Append(new SignedField<2>(this, (int &)generalData.beeperMode)); - internalField.Append(new BoolField<1>(this, generalData.flashBeep)); + internalField.Append(new BoolField<1>(this, generalData.alarmsFlash)); internalField.Append(new BoolField<1>(this, generalData.disableMemoryWarning)); internalField.Append(new BoolField<1>(this, generalData.disableAlarmWarning)); @@ -3315,8 +3315,8 @@ OpenTxGeneralData::OpenTxGeneralData(GeneralSettings & generalData, Board::Type } if (version >= 219 && IS_TARANIS_XLITES(board)) { - internalField.Append(new SignedField<8>(this, generalData.gyroMax, "Gyro full scale")); - internalField.Append(new SignedField<8>(this, generalData.gyroOffset, "Gyro Offset")); + internalField.Append(new SignedField<8>(this, generalData.imuMax, "Gyro full scale")); + internalField.Append(new SignedField<8>(this, generalData.imuOffset, "Gyro Offset")); } if (version >= 220) { diff --git a/companion/src/generaledit/generalsetup.cpp b/companion/src/generaledit/generalsetup.cpp index 8e64c3f0e..fc92d0dac 100644 --- a/companion/src/generaledit/generalsetup.cpp +++ b/companion/src/generaledit/generalsetup.cpp @@ -328,7 +328,7 @@ ui(new Ui::GeneralSetup) } ui->switchesDelay->setValue(10*(generalSettings.switchesDelay+15)); - ui->blAlarm_ChkB->setChecked(generalSettings.flashBeep); + ui->blAlarm_ChkB->setChecked(generalSettings.alarmsFlash); if (!firmware->getCapability(HasBatMeterRange)) { ui->batMeterRangeLabel->hide(); @@ -375,7 +375,7 @@ void GeneralSetupPanel::populateVoiceLangCB() { QComboBox * b = ui->voiceLang_CB; // Note: these align with the radio NOT computer locales - TODO harmonise with ISO and one list!!! - static QString strings[][2] = { + static QString strings[][2] = { { tr("Chinese"), "cn" }, { tr("Czech"), "cz" }, { tr("Danish"), "da" }, @@ -868,7 +868,7 @@ void GeneralSetupPanel::unlockSwitchEdited() void GeneralSetupPanel::on_blAlarm_ChkB_stateChanged() { - generalSettings.flashBeep = ui->blAlarm_ChkB->isChecked(); + generalSettings.alarmsFlash = ui->blAlarm_ChkB->isChecked(); emit modified(); }