From 0145bcfd6c54a5748a7b86a70c601ac2debe6ed5 Mon Sep 17 00:00:00 2001 From: Damjan Adamic Date: Sun, 11 May 2014 18:12:03 +0200 Subject: [PATCH] Fixes #500. Graphical presentation could be better, I am not very familiar with Qt. --- .../src/simulation/simulatordialog-9x.ui | 26 +++++++++++--- .../src/simulation/simulatordialog-taranis.ui | 18 +++++++++- companion/src/simulation/simulatordialog.cpp | 35 +++++++++++++++++-- companion/src/simulation/simulatordialog.h | 4 +++ companion/src/simulation/simulatorimport.h | 6 ++++ companion/src/simulation/simulatorinterface.h | 1 + 6 files changed, 82 insertions(+), 8 deletions(-) diff --git a/companion/src/simulation/simulatordialog-9x.ui b/companion/src/simulation/simulatordialog-9x.ui index b9e76f77e..2a7a730d4 100644 --- a/companion/src/simulation/simulatordialog-9x.ui +++ b/companion/src/simulation/simulatordialog-9x.ui @@ -1440,6 +1440,22 @@ QPushButton:checked { + + + Gvars + + + + + 10 + 10 + 711 + 211 + + + + + @@ -1451,6 +1467,11 @@ QPushButton:checked {
lcdwidget.h
1 + + mySlider + QSlider +
myslider.h
+
cursorWidget QWidget @@ -1463,11 +1484,6 @@ QPushButton:checked {
menuwidget.h
1
- - mySlider - QSlider -
myslider.h
-
diff --git a/companion/src/simulation/simulatordialog-taranis.ui b/companion/src/simulation/simulatordialog-taranis.ui index f889d0257..c2caf638f 100644 --- a/companion/src/simulation/simulatordialog-taranis.ui +++ b/companion/src/simulation/simulatordialog-taranis.ui @@ -6,7 +6,7 @@ 0 0 - 712 + 726 688 @@ -240,6 +240,22 @@ + + + Gvars + + + + + 10 + 10 + 691 + 231 + + + + + diff --git a/companion/src/simulation/simulatordialog.cpp b/companion/src/simulation/simulatordialog.cpp index 1f6f6dfe4..e1d3b7bc0 100644 --- a/companion/src/simulation/simulatordialog.cpp +++ b/companion/src/simulation/simulatordialog.cpp @@ -285,6 +285,7 @@ void SimulatorDialog::initUi(T * ui) tabWidget = ui->tabWidget; logicalSwitchesLayout = ui->logicalSwitchesLayout; channelsLayout = ui->channelsLayout; + gvarsLayout = ui->gvarsLayout; leftXPerc = ui->leftXPerc; leftYPerc = ui->leftYPerc; rightXPerc = ui->rightXPerc; @@ -416,11 +417,31 @@ void SimulatorDialog::initUi(T * ui) logicalSwitchesLayout->addWidget(swtch, i / (switches/2), i % (switches/2), 1, 1); } + int fmodes = GetCurrentFirmware()->getCapability(FlightModes); + int gvars = GetCurrentFirmware()->getCapability(Gvars); + if (gvars>0) { + for (int fm=0; fmsetText(QString("FM%1").arg(fm+1)); + gvarsLayout->addWidget(label, 0, fm+1); + } + for (int i=0; isetText(QString("GV%1").arg(i+1)); + gvarsLayout->addWidget(label, i+1, 0); + for (int fm=0; fmaddWidget(value, i+1, fm+1); + } + } + } + if (flags & SIMULATOR_FLAGS_NOTX) { - ui->tabWidget->setCurrentIndex(1); + ui->tabWidget->setCurrentWidget(ui->outputs); } else { - ui->lcd->setFocus(); + ui->tabWidget->setCurrentWidget(ui->simu); } } @@ -532,6 +553,8 @@ void SimulatorDialog::centerSticks() void SimulatorDialog::start(QByteArray & eeprom) { lastPhase = -1; + numGvars = GetCurrentFirmware()->getCapability(Gvars); + numFlightModes = GetCurrentFirmware()->getCapability(FlightModes); simulator->start(eeprom, (flags & SIMULATOR_FLAGS_NOTX) ? false : true); getValues(); setupTimer(); @@ -540,6 +563,8 @@ void SimulatorDialog::start(QByteArray & eeprom) void SimulatorDialog::start(const char * filename) { lastPhase = -1; + numGvars = GetCurrentFirmware()->getCapability(Gvars); + numFlightModes = GetCurrentFirmware()->getCapability(FlightModes); simulator->start(filename); getValues(); setupTimer(); @@ -809,6 +834,12 @@ void SimulatorDialog::setValues() logicalSwitchLabels[i]->setStyleSheet(outputs.vsw[i] ? CSWITCH_ON : CSWITCH_OFF); } + for (int fm=0; fmsetText(QString("%1").arg(outputs.gvars[fm][gv])); + } + } + if (outputs.beep) { beepVal = outputs.beep; } diff --git a/companion/src/simulation/simulatordialog.h b/companion/src/simulation/simulatordialog.h index 42ee82cb3..9b9a1ce80 100644 --- a/companion/src/simulation/simulatordialog.h +++ b/companion/src/simulation/simulatordialog.h @@ -53,9 +53,11 @@ class SimulatorDialog : public QDialog QTabWidget * tabWidget; QGridLayout * logicalSwitchesLayout; QGridLayout * channelsLayout; + QGridLayout * gvarsLayout; QVector logicalSwitchLabels; QVector channelSliders; QVector channelValues; + QVector gvarValues; void init(); Node *nodeLeft; @@ -65,6 +67,8 @@ class SimulatorDialog : public QDialog unsigned int backLight; bool lightOn; int switches; + unsigned int numGvars; + unsigned int numFlightModes; #ifdef JOYSTICKS Joystick *joystick; int jscal[8][4]; diff --git a/companion/src/simulation/simulatorimport.h b/companion/src/simulation/simulatorimport.h index 60efc010a..d8f34a65c 100644 --- a/companion/src/simulation/simulatorimport.h +++ b/companion/src/simulation/simulatorimport.h @@ -59,7 +59,13 @@ for (int i=0; i