From da2561b6724932fb72ceecf372cddfda0a5fdf68 Mon Sep 17 00:00:00 2001 From: Bertrand Songis Date: Wed, 22 Jan 2014 15:00:42 +0100 Subject: [PATCH] 'next' EEPROM support continued: Timer countdown modes --- companion/src/eeprominterface.h | 15 ++++---- companion/src/firmwares/er9x/er9xeeprom.cpp | 4 +-- .../src/firmwares/ersky9x/ersky9xeeprom.cpp | 2 -- .../src/firmwares/opentx/opentxeeprom.cpp | 4 +-- .../src/firmwares/opentx/opentxinterface.cpp | 4 --- companion/src/modeledit/setup.cpp | 28 ++++++--------- companion/src/modeledit/setup.h | 2 +- companion/src/modeledit/setup_timer.ui | 35 ++++++++++--------- 8 files changed, 39 insertions(+), 55 deletions(-) diff --git a/companion/src/eeprominterface.h b/companion/src/eeprominterface.h index 105230592..43ef03a5a 100644 --- a/companion/src/eeprominterface.h +++ b/companion/src/eeprominterface.h @@ -788,14 +788,13 @@ enum TimerMode { class TimerData { public: TimerData() { clear(); } - TimerMode mode; // timer trigger source -> off, abs, THs, TH%, THt, sw/!sw, !m_sw/!m_sw - int8_t modeB; - bool minuteBeep; - bool countdownBeep; - bool dir; // 0=>Count Down, 1=>Count Up + TimerMode mode; // timer trigger source -> off, abs, THs, TH%, THt, sw/!sw, !m_sw/!m_sw + bool minuteBeep; + unsigned int countdownBeep; + bool dir; // 0=>Count Down, 1=>Count Up unsigned int val; - bool persistent; - int pvalue; + bool persistent; + int pvalue; void clear() { memset(this, 0, sizeof(TimerData)); } }; @@ -915,8 +914,6 @@ enum Capability { MixesWithoutExpo, Timers, TimeDivisions, - minuteBeep, - countdownBeep, CustomFunctions, VoicesAsNumbers, VoicesMaxLength, diff --git a/companion/src/firmwares/er9x/er9xeeprom.cpp b/companion/src/firmwares/er9x/er9xeeprom.cpp index f07716e72..4fa122677 100644 --- a/companion/src/firmwares/er9x/er9xeeprom.cpp +++ b/companion/src/firmwares/er9x/er9xeeprom.cpp @@ -366,9 +366,7 @@ t_Er9xModelData::operator ModelData () c9x.timers[0].mode = getEr9xTimerMode(tmrMode); c9x.timers[0].dir = tmrDir; c9x.timers[0].val = tmrVal; - c9x.timers[0].modeB = tmrModeB; - - switch(protocol) { + switch(protocol) { case 1: c9x.moduleData[0].protocol = PXX_DJT; break; diff --git a/companion/src/firmwares/ersky9x/ersky9xeeprom.cpp b/companion/src/firmwares/ersky9x/ersky9xeeprom.cpp index 1247c795a..994a75d7d 100644 --- a/companion/src/firmwares/ersky9x/ersky9xeeprom.cpp +++ b/companion/src/firmwares/ersky9x/ersky9xeeprom.cpp @@ -508,7 +508,6 @@ t_Ersky9xModelData_v10::operator ModelData () getEEPROMString(c9x.name, name, sizeof(name)); for (int i=0; i<2; i++) { c9x.timers[i].mode = getErSky9xTimerMode(timer[i].tmrModeA); - c9x.timers[i].modeB = timer[i].tmrModeB; c9x.timers[i].dir = timer[i].tmrDir; c9x.timers[i].val = timer[i].tmrVal; } @@ -630,7 +629,6 @@ t_Ersky9xModelData_v11::operator ModelData () getEEPROMString(c9x.name, name, sizeof(name)); for (int i=0; i<2; i++) { c9x.timers[i].mode = getErSky9xTimerMode(timer[i].tmrModeA); - c9x.timers[i].modeB = timer[i].tmrModeB; c9x.timers[i].dir = timer[i].tmrDir; c9x.timers[i].val = timer[i].tmrVal; } diff --git a/companion/src/firmwares/opentx/opentxeeprom.cpp b/companion/src/firmwares/opentx/opentxeeprom.cpp index 892dcdd01..672400fe1 100644 --- a/companion/src/firmwares/opentx/opentxeeprom.cpp +++ b/companion/src/firmwares/opentx/opentxeeprom.cpp @@ -1811,7 +1811,7 @@ Open9xModelDataNew::Open9xModelDataNew(ModelData & modelData, BoardEnum board, u internalField.Append(new TimerModeField(modelData.timers[i].mode, board, version)); if ((IS_ARM(board) || IS_2560(board)) && version >= 216) { internalField.Append(new UnsignedField<16>(modelData.timers[i].val)); - internalField.Append(new BoolField<2>(modelData.timers[i].countdownBeep)); + internalField.Append(new UnsignedField<2>(modelData.timers[i].countdownBeep)); internalField.Append(new BoolField<1>(modelData.timers[i].minuteBeep)); internalField.Append(new BoolField<1>(modelData.timers[i].persistent)); internalField.Append(new SpareBitsField<4>()); @@ -1819,7 +1819,7 @@ Open9xModelDataNew::Open9xModelDataNew(ModelData & modelData, BoardEnum board, u } else if (release21March2013) { internalField.Append(new UnsignedField<12>(modelData.timers[i].val)); - internalField.Append(new BoolField<1>(modelData.timers[i].countdownBeep)); + internalField.Append(new BoolField<1>((bool &)modelData.timers[i].countdownBeep)); internalField.Append(new BoolField<1>(modelData.timers[i].minuteBeep)); if (HAS_PERSISTENT_TIMERS(board)) { internalField.Append(new BoolField<1>(modelData.timers[i].persistent)); diff --git a/companion/src/firmwares/opentx/opentxinterface.cpp b/companion/src/firmwares/opentx/opentxinterface.cpp index a2bcc4df4..47ac1b8a8 100644 --- a/companion/src/firmwares/opentx/opentxinterface.cpp +++ b/companion/src/firmwares/opentx/opentxinterface.cpp @@ -513,10 +513,6 @@ int Open9xInterface::getCapability(const Capability capability) return 1; else return 0; - case minuteBeep: - return 1; - case countdownBeep: - return 1; case Pots: return (IS_TARANIS(board) ? 4 : 3); case Switches: diff --git a/companion/src/modeledit/setup.cpp b/companion/src/modeledit/setup.cpp index b663f577a..3375dc4d9 100644 --- a/companion/src/modeledit/setup.cpp +++ b/companion/src/modeledit/setup.cpp @@ -19,13 +19,10 @@ TimerPanel::TimerPanel(QWidget *parent, ModelData & model, TimerData & timer): ui->persistentValue->hide(); } - if (!GetEepromInterface()->getCapability(minuteBeep)) { - ui->minuteBeep->hide(); - } - - if (!GetEepromInterface()->getCapability(countdownBeep)) { - ui->countdownBeep->hide(); - } + ui->countdownBeep->addItem(tr("None")); + ui->countdownBeep->addItem(tr("Beeps")); + if (IS_ARM(GetEepromInterface()->getBoard()) || IS_2560(GetEepromInterface()->getBoard())) + ui->countdownBeep->addItem(tr("Countdown")); } TimerPanel::~TimerPanel() @@ -54,13 +51,8 @@ void TimerPanel::update() ui->persistentValue->setText(QString(" %1(%2:%3:%4)").arg(sign<0 ? "-" :" ").arg(hours, 2, 10, QLatin1Char('0')).arg(minutes, 2, 10, QLatin1Char('0')).arg(seconds, 2, 10, QLatin1Char('0'))); } - if (GetEepromInterface()->getCapability(minuteBeep)) { - ui->minuteBeep->setChecked(timer.minuteBeep); - } - - if (GetEepromInterface()->getCapability(countdownBeep)) { - ui->countdownBeep->setChecked(timer.countdownBeep); - } + ui->countdownBeep->setCurrentIndex(timer.countdownBeep); + ui->minuteBeep->setChecked(timer.minuteBeep); } void TimerPanel::on_value_editingFinished() @@ -81,15 +73,15 @@ void TimerPanel::on_persistent_toggled(bool checked) emit modified(); } -void TimerPanel::on_minuteBeep_toggled(bool checked) +void TimerPanel::on_countdownBeep_currentIndexChanged(int index) { - timer.minuteBeep = checked; + timer.countdownBeep = index; emit modified(); } -void TimerPanel::on_countdownBeep_toggled(bool checked) +void TimerPanel::on_minuteBeep_toggled(bool checked) { - timer.countdownBeep = checked; + timer.minuteBeep = checked; emit modified(); } diff --git a/companion/src/modeledit/setup.h b/companion/src/modeledit/setup.h index 7b33ffe5a..d1392e1dd 100644 --- a/companion/src/modeledit/setup.h +++ b/companion/src/modeledit/setup.h @@ -28,7 +28,7 @@ class TimerPanel : public ModelPanel void on_value_editingFinished(); void on_persistent_toggled(bool checked); void on_minuteBeep_toggled(bool checked); - void on_countdownBeep_toggled(bool checked); + void on_countdownBeep_currentIndexChanged(int index); private: TimerData & timer; diff --git a/companion/src/modeledit/setup_timer.ui b/companion/src/modeledit/setup_timer.ui index 96ed9370f..e87ed86b8 100644 --- a/companion/src/modeledit/setup_timer.ui +++ b/companion/src/modeledit/setup_timer.ui @@ -6,8 +6,8 @@ 0 0 - 726 - 54 + 586 + 38 @@ -33,6 +33,23 @@ + + + + Countdown + + + + + + + + + + MinuteBeep + + + @@ -47,20 +64,6 @@ - - - - MinuteBeep - - - - - - - CountDownBeep - - -