diff --git a/companion/src/eeprominterface.cpp b/companion/src/eeprominterface.cpp index b5015d28b..bba2540d8 100644 --- a/companion/src/eeprominterface.cpp +++ b/companion/src/eeprominterface.cpp @@ -915,6 +915,15 @@ RawSource GeneralSettings::getDefaultSource(unsigned int channel) return RawSource(SOURCE_TYPE_STICK, stick_index); } +void FrSkyData::clear() +{ + memset(this, 0, sizeof(FrSkyData)); + rssiAlarms[0].clear(2, 45); + rssiAlarms[1].clear(3, 42); + varioSource = 2/*VARIO*/; + blades = 2; +} + ModelData::ModelData() { clear(); diff --git a/companion/src/eeprominterface.h b/companion/src/eeprominterface.h index d63423310..e9539db00 100644 --- a/companion/src/eeprominterface.h +++ b/companion/src/eeprominterface.h @@ -817,7 +817,7 @@ class FrSkyData { FrSkyChannelData channels[2]; unsigned int usrProto; unsigned int imperial; - unsigned int blades; + int blades; unsigned int voltsSource; bool altitudeDisplayed; unsigned int currentSource; @@ -833,7 +833,7 @@ class FrSkyData { unsigned int storedMah; int fasOffset; - void clear() { memset(this, 0, sizeof(FrSkyData)); rssiAlarms[0].clear(2, 45); rssiAlarms[1].clear(3, 42); varioSource = 2/*VARIO*/; } + void clear(); }; class MavlinkData { diff --git a/companion/src/firmwares/opentx/open9xSky9xeeprom.cpp b/companion/src/firmwares/opentx/open9xSky9xeeprom.cpp index 36b6229ac..d50b42cf0 100644 --- a/companion/src/firmwares/opentx/open9xSky9xeeprom.cpp +++ b/companion/src/firmwares/opentx/open9xSky9xeeprom.cpp @@ -681,7 +681,7 @@ t_Open9xArmFrSkyData_v210::operator FrSkyData () c9x.channels[1] = channels[1]; c9x.usrProto = usrProto; c9x.voltsSource = voltsSource; - c9x.blades = blades; + c9x.blades = blades+2; c9x.currentSource=currentSource; c9x.screens[0].type = 1; for (int i=0; i<4; i++) { @@ -709,7 +709,7 @@ t_Open9xArmFrSkyData_v211::operator FrSkyData () c9x.channels[1] = channels[1]; c9x.usrProto = usrProto; c9x.voltsSource = voltsSource; - c9x.blades = blades; + c9x.blades = blades+2; c9x.currentSource=currentSource; c9x.screens[0].type = 1; for (int i=0; i<4; i++) { diff --git a/companion/src/firmwares/opentx/open9xStockeeprom.cpp b/companion/src/firmwares/opentx/open9xStockeeprom.cpp index 73cb22164..44c16e78b 100644 --- a/companion/src/firmwares/opentx/open9xStockeeprom.cpp +++ b/companion/src/firmwares/opentx/open9xStockeeprom.cpp @@ -843,7 +843,7 @@ t_Open9xFrSkyData_v204::operator FrSkyData () c9x.channels[1] = channels[1]; c9x.usrProto = usrProto; c9x.imperial = imperial; - c9x.blades = blades; + c9x.blades = blades+2; c9x.screens[0].type = 1; for (int i=0; i<4; i++) c9x.screens[0].body.bars[i] = bars[i]; @@ -857,7 +857,7 @@ t_Open9xFrSkyData_v205::operator FrSkyData () c9x.channels[1] = channels[1]; c9x.usrProto = usrProto; c9x.imperial = imperial; - c9x.blades = blades; + c9x.blades = blades+2; c9x.screens[0].type = 1; for (int i=0; i<4; i++) c9x.screens[0].body.bars[i] = bars[i]; @@ -873,7 +873,7 @@ t_Open9xFrSkyData_v208::operator FrSkyData () c9x.channels[1] = channels[1]; c9x.usrProto = usrProto; c9x.voltsSource = voltsSource; - c9x.blades = blades; + c9x.blades = blades+2; c9x.currentSource=currentSource; c9x.screens[0].type = 1; for (int i=0; i<4; i++) @@ -890,7 +890,7 @@ t_Open9xFrSkyData_v210::operator FrSkyData () c9x.channels[1] = channels[1]; c9x.usrProto = usrProto; c9x.voltsSource = voltsSource; - c9x.blades = blades; + c9x.blades = blades+2; c9x.currentSource=currentSource; int lines_screen_index = 0; diff --git a/companion/src/firmwares/opentx/opentxeeprom.cpp b/companion/src/firmwares/opentx/opentxeeprom.cpp index 1091b65a2..5f7d277ac 100644 --- a/companion/src/firmwares/opentx/opentxeeprom.cpp +++ b/companion/src/firmwares/opentx/opentxeeprom.cpp @@ -1887,7 +1887,7 @@ class AvrCustomFunctionField: public TransformedField { internalField.Append(new UnsignedField<5>(_union_param)); internalField.Append(new UnsignedField<1>(_active)); } - if (version >= 213) { + else if (version >= 213) { internalField.Append(new SwitchField<8>(fn.swtch, board, version)); internalField.Append(new UnsignedField<3>(_union_param)); internalField.Append(new ConversionField< UnsignedField<5> >((unsigned int &)fn.func, &functionsConversionTable, "Function", ::QObject::tr("OpenTX on this board doesn't accept this function"))); @@ -2148,7 +2148,7 @@ class FrskyField: public StructField { else { Append(new UnsignedField<8>(frsky.voltsSource)); } - Append(new UnsignedField<8>(frsky.blades)); + Append(new ConversionField< SignedField<8> >(frsky.blades, -2)); Append(new UnsignedField<8>(frsky.currentSource)); Append(new UnsignedField<1>(frsky.screens[0].type)); @@ -2190,12 +2190,12 @@ class FrskyField: public StructField { Append(new UnsignedField<1>(frsky.channels[i].alarms[j].greater)); Append(new UnsignedField<2>(frsky.channels[i].multiplier, 0, 3, "Multiplier")); } - Append(new UnsignedField<2>(frsky.usrProto)); - Append(new UnsignedField<2>(frsky.blades)); + Append(new UnsignedField<2>(frsky.usrProto, "USR Proto")); + Append(new ConversionField< UnsignedField<2> >((unsigned int &)frsky.blades, -2)); Append(new UnsignedField<1>(frsky.screens[0].type)); Append(new UnsignedField<1>(frsky.screens[1].type)); - Append(new UnsignedField<2>(frsky.voltsSource)); - Append(new SignedField<4>(frsky.varioMin)); + Append(new UnsignedField<2>(frsky.voltsSource, "Volts Source")); + Append(new SignedField<4>(frsky.varioMin, "Vario Min")); Append(new SignedField<4>(frsky.varioMax)); for (int i=0; i<2; i++) { Append(new ConversionField< UnsignedField<2> >(frsky.rssiAlarms[i].level, &rssiConversionTable[i], "RSSI level")); diff --git a/companion/src/helpers.cpp b/companion/src/helpers.cpp index b7f144300..f5a9af42a 100644 --- a/companion/src/helpers.cpp +++ b/companion/src/helpers.cpp @@ -750,19 +750,6 @@ QString getFrSkyAlarmType(int alarm) } } -QString getFrSkyBlades(int blades) -{ - switch (blades) { - case 1: - return "3"; - case 2: - return "4"; - default: - return "2"; - } -} - - QString getFrSkyUnits(int units) { switch(units) { diff --git a/companion/src/helpers.h b/companion/src/helpers.h index cf0878a4e..6d8e61000 100644 --- a/companion/src/helpers.h +++ b/companion/src/helpers.h @@ -120,7 +120,6 @@ QString getCenterBeep(ModelData * g_model); /* FrSky helpers */ QString getFrSkyAlarmType(int alarm); -QString getFrSkyBlades(int blades); QString getFrSkyUnits(int units); QString getFrSkyProtocol(int protocol); QString getFrSkyMeasure(int units); diff --git a/companion/src/modeledit/mixes.cpp b/companion/src/modeledit/mixes.cpp index 77ee3f8ac..2f1e48ab5 100644 --- a/companion/src/modeledit/mixes.cpp +++ b/companion/src/modeledit/mixes.cpp @@ -46,7 +46,7 @@ MixesPanel::~MixesPanel() QString MixesPanel::getChannelLabel(int curDest) { QString str; - unsigned int outputs = GetEepromInterface()->getCapability(Outputs); + int outputs = GetEepromInterface()->getCapability(Outputs); if (curDest > outputs) { str = QObject::tr("X%1 ").arg(curDest-outputs); } diff --git a/companion/src/modeledit/telemetry.cpp b/companion/src/modeledit/telemetry.cpp index d32420db3..14405c4db 100644 --- a/companion/src/modeledit/telemetry.cpp +++ b/companion/src/modeledit/telemetry.cpp @@ -488,6 +488,10 @@ TelemetryPanel::TelemetryPanel(QWidget *parent, ModelData & model): ui->customScreens->addTab(tab, tr("Telemetry screen %1").arg(i+1)); } + if (IS_ARM(GetEepromInterface()->getBoard())) { + ui->bladesCount->setMinimum(1); + } + setup(); } @@ -634,7 +638,7 @@ void TelemetryPanel::setup() ui->frskyProtoCB->setCurrentIndex(model.frsky.usrProto); ui->frskyUnitsCB->setCurrentIndex(model.frsky.imperial); - ui->frskyBladesCB->setCurrentIndex(model.frsky.blades); + ui->bladesCount->setValue(model.frsky.blades); ui->frskyCurrentCB->setCurrentIndex(model.frsky.currentSource); ui->frskyVoltCB->setCurrentIndex(model.frsky.voltsSource); @@ -648,13 +652,13 @@ void TelemetryPanel::onAnalogModified() void TelemetryPanel::on_frskyUnitsCB_currentIndexChanged(int index) { - model.frsky.imperial=index; + model.frsky.imperial = index; emit modified(); } -void TelemetryPanel::on_frskyBladesCB_currentIndexChanged(int index) +void TelemetryPanel::on_bladesCount_editingFinished() { - model.frsky.blades=index; + model.frsky.blades = ui->bladesCount->value(); emit modified(); } diff --git a/companion/src/modeledit/telemetry.h b/companion/src/modeledit/telemetry.h index cd804465a..3f44f3261 100644 --- a/companion/src/modeledit/telemetry.h +++ b/companion/src/modeledit/telemetry.h @@ -89,7 +89,7 @@ class TelemetryPanel : public ModelPanel void onAnalogModified(); void on_frskyProtoCB_currentIndexChanged(int index); void on_frskyUnitsCB_currentIndexChanged(int index); - void on_frskyBladesCB_currentIndexChanged(int index); + void on_bladesCount_editingFinished(); void on_frskyCurrentCB_currentIndexChanged(int index); void on_frskyVoltCB_currentIndexChanged(int index); void on_AltitudeToolbar_ChkB_toggled(bool checked); diff --git a/companion/src/modeledit/telemetry.ui b/companion/src/modeledit/telemetry.ui index 2b3ec81de..0f1de8a2c 100644 --- a/companion/src/modeledit/telemetry.ui +++ b/companion/src/modeledit/telemetry.ui @@ -6,7 +6,7 @@ 0 0 - 713 + 757 457 @@ -382,12 +382,12 @@ - - 0 - 9 + + 0 + @@ -539,31 +539,6 @@ - - - - - 0 - 0 - - - - - 2 - - - - - 3 - - - - - 4 - - - - @@ -609,6 +584,28 @@ + + + + + 0 + 0 + + + + 0 + + + 2.000000000000000 + + + 5.000000000000000 + + + 2.000000000000000 + + + diff --git a/companion/src/printdialog.cpp b/companion/src/printdialog.cpp index 19a32b77b..05a0cb276 100644 --- a/companion/src/printdialog.cpp +++ b/companion/src/printdialog.cpp @@ -753,7 +753,7 @@ void printDialog::printFrSky() str.append(""); str.append(""+tr("Frsky serial protocol")+""+getFrSkyProtocol(fd->usrProto)+""); str.append(""+tr("System of units")+""+getFrSkyMeasure(fd->imperial)+""); - str.append(""+tr("Propeller blades")+""+getFrSkyBlades(fd->blades)+""); + str.append(""+tr("Blades")+""+fd->blades+""); str.append(""); #if 0 if (GetEepromInterface()->getCapability(TelemetryBars) || (GetEepromInterface()->getCapability(TelemetryCSFields))) { diff --git a/radio/src/.gitignore b/radio/src/.gitignore index af2b25b2f..f296b655b 100644 --- a/radio/src/.gitignore +++ b/radio/src/.gitignore @@ -16,3 +16,4 @@ /SOUNDS /LOGS /allsrc.cpp +/BMP diff --git a/radio/src/gui/menu_model.cpp b/radio/src/gui/menu_model.cpp index d8fa2e543..288b6977e 100644 --- a/radio/src/gui/menu_model.cpp +++ b/radio/src/gui/menu_model.cpp @@ -14,7 +14,6 @@ * - Pat Mackenzie * - Philip Moss * - Rob Thomson - * - Romolo Manfredini * - Thomas Husterer * * opentx is based on code named @@ -5591,7 +5590,7 @@ void menuModelTelemetry(uint8_t event) case ITEM_TELEMETRY_USR_BLADES: lcd_putsLeft(y, STR_BLADES); - lcd_outdezAtt(TELEM_COL2+FWNUM, y, 1+g_model.frsky.blades, attr); + lcd_outdezAtt(TELEM_COL2+FWNUM, y, 2+g_model.frsky.blades, attr); #if defined(CPUARM) if (attr) CHECK_INCDEC_MODELVAR(event, g_model.frsky.blades, MIN_BLADES, MAX_BLADES); #else