From 8781b522d845def483e2f557975ae321781fef4e Mon Sep 17 00:00:00 2001 From: Kjell Kernen Date: Sun, 27 Apr 2014 22:47:18 +0200 Subject: [PATCH 1/3] Added Wizard GUI for two model options ( Throttle Cut and Throttle Timer). The wizard option data is not yet added to the mixer. That is the next step. --- companion/src/companion.qrc | 1 + companion/src/images/wizard/options.png | Bin 0 -> 44435 bytes companion/src/wizarddata.h | 9 ++++- companion/src/wizarddialog.cpp | 50 ++++++++++++++++++++---- companion/src/wizarddialog.h | 12 ++++++ 5 files changed, 63 insertions(+), 9 deletions(-) create mode 100644 companion/src/images/wizard/options.png diff --git a/companion/src/companion.qrc b/companion/src/companion.qrc index 9fb054ce9..0b8688d97 100644 --- a/companion/src/companion.qrc +++ b/companion/src/companion.qrc @@ -71,6 +71,7 @@ images/wizard/models.png images/wizard/multirotor.png images/wizard/rudder.png + images/wizard/options.png images/wizard/simpletail.png images/wizard/tail.png images/wizard/tails.png diff --git a/companion/src/images/wizard/options.png b/companion/src/images/wizard/options.png new file mode 100644 index 0000000000000000000000000000000000000000..39d6190e74696a39f7be98117da23d4fe8a331f0 GIT binary patch literal 44435 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" @@ -117,6 +118,8 @@ void WizardDialog::showHelp() "Yaw - Spektrum: CH4, Futaba: CH4
" "Pitch - Spektrum: CH3, Futaba: CH2
" "Roll - Spektrum: CH2, Futaba: CH1"); break; + case Page_Options: + message = tr("TBD."); break; case Page_Conclusion: message = tr("TBD."); break; default: @@ -832,6 +835,27 @@ bool MultirotorPage::validatePage() { bookChannel(rollCB, AILERONS_INPUT, 100 )); } +OptionsPage::OptionsPage(WizardDialog *dlg, QString image, QString title, QString text, int nextPage) + : StandardPage(Page_Options, dlg, image, title, text, nextPage) +{ + throttleCutRB = new QCheckBox(tr("Throttle Cut")); + throttleTimerRB = new QCheckBox(tr("Throttle Timer")); + + QLayout *l = layout(); + l->addWidget(throttleCutRB); + l->addWidget(throttleTimerRB); +} + +void OptionsPage::initializePage(){ + StandardPage::initializePage(); +} + +bool OptionsPage::validatePage(){ + wizDlg->mix.options[THROTTLE_CUT] = throttleCutRB->isChecked(); + wizDlg->mix.options[THROTTLE_TIMER] = throttleTimerRB->isChecked(); + return true; +} + ConclusionPage::ConclusionPage(WizardDialog *dlg, QString image, QString title, QString text, int nextPage) : StandardPage(Page_Conclusion, dlg, image, title, text, nextPage) { @@ -840,8 +864,8 @@ ConclusionPage::ConclusionPage(WizardDialog *dlg, QString image, QString title, registerField("evaluate.proceed*", proceedCB); QLayout *l = layout(); - l->addWidget(proceedCB); l->addWidget(textLabel); + l->addWidget(proceedCB); } void ConclusionPage::initializePage(){ @@ -898,6 +922,16 @@ QString WizardPrinter::print() QString str; str = QString(tr("Model Name: ")) + mix->name + "\n"; str += QString(tr("Model Type: ")) + vehicleName(mix->vehicle) + "\n"; + + str += QString(tr("Options: [")); + for (int i=0; ioptions[i]) + str += "X"; + else + str += "-"; + } + str += QString(tr("]")) + "\n"; + for (int i=0; ichannel[i].page != Page_None) { Channel ch = mix->channel[i]; diff --git a/companion/src/wizarddialog.h b/companion/src/wizarddialog.h index 94ef18a5e..b512d695b 100644 --- a/companion/src/wizarddialog.h +++ b/companion/src/wizarddialog.h @@ -333,6 +333,18 @@ private: QComboBox *rollCB; }; +class OptionsPage: public StandardPage +{ + Q_OBJECT +public: + OptionsPage(WizardDialog *dlg, QString image, QString title, QString text, int nextPage=-1); + void initializePage(); + bool validatePage(); +private: + QCheckBox *throttleCutRB; + QCheckBox *throttleTimerRB; +}; + class ConclusionPage: public StandardPage { Q_OBJECT From d4362e5e62896b99e8fa2ba0225e3b40fe0e11e3 Mon Sep 17 00:00:00 2001 From: Kjell Kernen Date: Mon, 28 Apr 2014 15:42:31 +0200 Subject: [PATCH 2/3] Wizard option handliong working and ready for merge into next. --- companion/src/wizarddialog.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/companion/src/wizarddialog.cpp b/companion/src/wizarddialog.cpp index b69bf3e54..d41628938 100644 --- a/companion/src/wizarddialog.cpp +++ b/companion/src/wizarddialog.cpp @@ -851,8 +851,8 @@ void OptionsPage::initializePage(){ } bool OptionsPage::validatePage(){ - wizDlg->mix.options[THROTTLE_CUT] = throttleCutRB->isChecked(); - wizDlg->mix.options[THROTTLE_TIMER] = throttleTimerRB->isChecked(); + wizDlg->mix.options[THROTTLE_CUT_OPTION] = throttleCutRB->isChecked(); + wizDlg->mix.options[THROTTLE_TIMER_OPTION] = throttleTimerRB->isChecked(); return true; } From 833585002b7703504ef848771303a82d3a2a1756 Mon Sep 17 00:00:00 2001 From: Kjell Kernen Date: Mon, 28 Apr 2014 15:43:10 +0200 Subject: [PATCH 3/3] Forgot these files in last commit --- companion/src/wizarddata.cpp | 35 ++++++++++++++++++++++++++++++----- companion/src/wizarddata.h | 4 ++-- 2 files changed, 32 insertions(+), 7 deletions(-) diff --git a/companion/src/wizarddata.cpp b/companion/src/wizarddata.cpp index 28b028cd1..8b43edd9e 100644 --- a/companion/src/wizarddata.cpp +++ b/companion/src/wizarddata.cpp @@ -67,35 +67,60 @@ void WizMix::addMix(ModelData &model, Input input, int weight, int channel, int } else if (input==FLAPS_INPUT){ // There ought to be some kind of constants for switches somewhere... - maxMixSwitch((char *)"Flaps Up", model.mixData[mixIndex++], channel+1, isTaranis ? 1 :-3 , weight); //SA-UP or ELE-UP - maxMixSwitch((char *)"Flaps Down", model.mixData[mixIndex++], channel+1, isTaranis ? 3 : 3 , -weight); //SA-DOWN or ELE-DOWN + maxMixSwitch((char *)"Flaps Up", model.mixData[mixIndex++], channel+1, isTaranis ? 1 :-3 , weight); //Taranis SA-UP, 9X ELE-UP + maxMixSwitch((char *)"Flaps Down", model.mixData[mixIndex++], channel+1, isTaranis ? 3 : 3 , -weight); //Taranis SA-DOWN, 9X ELE-DOWN } else if (input==AIRBRAKES_INPUT){ - maxMixSwitch((char *)"Airbrk Off", model.mixData[mixIndex++], channel+1, isTaranis ? 13 :-2 , -weight); //SE-UP or RUD-UP - maxMixSwitch((char *)"Airbrk On", model.mixData[mixIndex++], channel+1, isTaranis ? 15 : 2 , weight); //SE-DOWN or RUD-DOWN + maxMixSwitch((char *)"Airbrk Off", model.mixData[mixIndex++], channel+1, isTaranis ? 13 :-2 , -weight); //Taranis SE-UP, 9X RUD-UP + maxMixSwitch((char *)"Airbrk On", model.mixData[mixIndex++], channel+1, isTaranis ? 15 : 2 , weight); //Tatanis SE-DOWN, 9X RUD-DOWN } } } WizMix::operator ModelData() { + int throttleChannel = -1; + bool isTaranis = IS_TARANIS(GetEepromInterface()->getBoard()); + ModelData model; model.used = true; model.modelId = modelId; model.setDefaultInputs(settings); + int mixIndex = 0; + int switchIndex = 0; + int timerIndex = 0; + // Safe copy model name strncpy(model.name, name, WIZ_MODEL_NAME_LENGTH); model.name[WIZ_MODEL_NAME_LENGTH] = 0; - int mixIndex = 0; + // Add the channel mixes for (int i=0; i=0 ){ + model.funcSw[switchIndex].swtch.type = SWITCH_TYPE_SWITCH; + model.funcSw[switchIndex].swtch.index = isTaranis ? 16 : 1; // Taranis SF-UP, 9X THR-UP + model.funcSw[switchIndex].enabled = 1; + model.funcSw[switchIndex].func = (AssignFunc)throttleChannel; + } + + // Add the Throttle Timer option + if (options[THROTTLE_TIMER_OPTION] && throttleChannel >=0 ){ + model.timers[timerIndex].mode.type = SWITCH_TYPE_SWITCH; + model.timers[timerIndex].mode.index = isTaranis ? -16 : -1; // Taranis !SF-UP, 9X THR-DOWN + timerIndex++; + } return model; } diff --git a/companion/src/wizarddata.h b/companion/src/wizarddata.h index 19e421404..72b9d9fbb 100644 --- a/companion/src/wizarddata.h +++ b/companion/src/wizarddata.h @@ -41,8 +41,8 @@ enum Vehicle { }; enum Options { - THROTTLE_CUT, - THROTTLE_TIMER + THROTTLE_CUT_OPTION, + THROTTLE_TIMER_OPTION }; enum WizardPage {