Save/restore of simulator switches, fixes #1034
This commit is contained in:
@@ -25,6 +25,8 @@ SimulatorDialog::SimulatorDialog(QWidget * parent, unsigned int flags):
|
||||
{
|
||||
}
|
||||
|
||||
uint32_t SimulatorDialog9X::switchstatus = 0;
|
||||
|
||||
SimulatorDialog9X::SimulatorDialog9X(QWidget * parent, unsigned int flags):
|
||||
SimulatorDialog(parent, flags),
|
||||
ui(new Ui::SimulatorDialog9X),
|
||||
@@ -56,6 +58,10 @@ SimulatorDialog9X::SimulatorDialog9X(QWidget * parent, unsigned int flags):
|
||||
break;
|
||||
}
|
||||
|
||||
//restore switches
|
||||
if (settings.value("simuSW",false).toBool())
|
||||
restoreSwitches();
|
||||
|
||||
ui->trimHR_L->setText(QString::fromUtf8(leftArrow));
|
||||
ui->trimHR_R->setText(QString::fromUtf8(rightArrow));
|
||||
ui->trimVR_U->setText(QString::fromUtf8(upArrow));
|
||||
@@ -90,9 +96,12 @@ SimulatorDialog9X::SimulatorDialog9X(QWidget * parent, unsigned int flags):
|
||||
|
||||
SimulatorDialog9X::~SimulatorDialog9X()
|
||||
{
|
||||
saveSwitches();
|
||||
delete ui;
|
||||
}
|
||||
|
||||
uint32_t SimulatorDialogTaranis::switchstatus = 0;
|
||||
|
||||
SimulatorDialogTaranis::SimulatorDialogTaranis(QWidget * parent, unsigned int flags):
|
||||
SimulatorDialog(parent, flags),
|
||||
ui(new Ui::SimulatorDialogTaranis)
|
||||
@@ -105,6 +114,11 @@ SimulatorDialogTaranis::SimulatorDialogTaranis(QWidget * parent, unsigned int fl
|
||||
|
||||
ui->lcd->setBackgroundColor(47, 123, 227);
|
||||
|
||||
//restore switches
|
||||
QSettings settings;
|
||||
if (settings.value("simuSW",false).toBool())
|
||||
restoreSwitches();
|
||||
|
||||
ui->trimHR_L->setText(QString::fromUtf8(leftArrow));
|
||||
ui->trimHR_R->setText(QString::fromUtf8(rightArrow));
|
||||
ui->trimVR_U->setText(QString::fromUtf8(upArrow));
|
||||
@@ -136,6 +150,7 @@ SimulatorDialogTaranis::SimulatorDialogTaranis(QWidget * parent, unsigned int fl
|
||||
|
||||
SimulatorDialogTaranis::~SimulatorDialogTaranis()
|
||||
{
|
||||
saveSwitches();
|
||||
delete ui;
|
||||
}
|
||||
|
||||
@@ -592,6 +607,46 @@ void SimulatorDialog9X::getValues()
|
||||
simulator->setValues(inputs);
|
||||
}
|
||||
|
||||
void SimulatorDialog9X::saveSwitches(void)
|
||||
{
|
||||
qDebug() << "SimulatorDialog9X::saveSwitches()";
|
||||
switchstatus=ui->switchTHR->isChecked();
|
||||
switchstatus<<=1;
|
||||
switchstatus+=(ui->switchRUD->isChecked()&0x1);
|
||||
switchstatus<<=1;
|
||||
switchstatus+=(ui->switchID2->isChecked()&0x1);
|
||||
switchstatus<<=1;
|
||||
switchstatus+=(ui->switchID1->isChecked()&0x1);
|
||||
switchstatus<<=1;
|
||||
switchstatus+=(ui->switchID0->isChecked()&0x1);
|
||||
switchstatus<<=1;
|
||||
switchstatus+=(ui->switchGEA->isChecked()&0x1);
|
||||
switchstatus<<=1;
|
||||
switchstatus+=(ui->switchELE->isChecked()&0x1);
|
||||
switchstatus<<=1;
|
||||
switchstatus+=(ui->switchAIL->isChecked()&0x1);
|
||||
}
|
||||
|
||||
void SimulatorDialog9X::restoreSwitches(void)
|
||||
{
|
||||
qDebug() << "SimulatorDialog9X::restoreSwitches()";
|
||||
ui->switchAIL->setChecked(switchstatus & 0x1);
|
||||
switchstatus >>=1;
|
||||
ui->switchELE->setChecked(switchstatus & 0x1);
|
||||
switchstatus >>=1;
|
||||
ui->switchGEA->setChecked(switchstatus & 0x1);
|
||||
switchstatus >>=1;
|
||||
ui->switchID0->setChecked(switchstatus & 0x1);
|
||||
switchstatus >>=1;
|
||||
ui->switchID1->setChecked(switchstatus & 0x1);
|
||||
switchstatus >>=1;
|
||||
ui->switchID2->setChecked(switchstatus & 0x1);
|
||||
switchstatus >>=1;
|
||||
ui->switchRUD->setChecked(switchstatus & 0x1);
|
||||
switchstatus >>=1;
|
||||
ui->switchTHR->setChecked(switchstatus & 0x1);
|
||||
}
|
||||
|
||||
void SimulatorDialogTaranis::resetSH()
|
||||
{
|
||||
ui->switchH->setValue(0);
|
||||
@@ -657,6 +712,46 @@ void SimulatorDialogTaranis::getValues()
|
||||
simulator->setValues(inputs);
|
||||
}
|
||||
|
||||
void SimulatorDialogTaranis::saveSwitches(void)
|
||||
{
|
||||
qDebug() << "SimulatorDialogTaranis::saveSwitches()";
|
||||
switchstatus=ui->switchA->value();
|
||||
switchstatus<<=2;
|
||||
switchstatus+=ui->switchB->value();
|
||||
switchstatus<<=2;
|
||||
switchstatus+=ui->switchC->value();
|
||||
switchstatus<<=2;
|
||||
switchstatus+=ui->switchD->value();
|
||||
switchstatus<<=2;
|
||||
switchstatus+=ui->switchE->value();
|
||||
switchstatus<<=2;
|
||||
switchstatus+=ui->switchF->value();
|
||||
switchstatus<<=2;
|
||||
switchstatus+=ui->switchG->value();
|
||||
switchstatus<<=2;
|
||||
switchstatus+=ui->switchH->value();
|
||||
}
|
||||
|
||||
void SimulatorDialogTaranis::restoreSwitches(void)
|
||||
{
|
||||
qDebug() << "SimulatorDialogTaranis::restoreSwitches()";
|
||||
ui->switchH->setValue(switchstatus & 0x3);
|
||||
switchstatus>>=2;
|
||||
ui->switchG->setValue(switchstatus & 0x3);
|
||||
switchstatus>>=2;
|
||||
ui->switchF->setValue(switchstatus & 0x3);
|
||||
switchstatus>>=2;
|
||||
ui->switchE->setValue(switchstatus & 0x3);
|
||||
switchstatus>>=2;
|
||||
ui->switchD->setValue(switchstatus & 0x3);
|
||||
switchstatus>>=2;
|
||||
ui->switchC->setValue(switchstatus & 0x3);
|
||||
switchstatus>>=2;
|
||||
ui->switchB->setValue(switchstatus & 0x3);
|
||||
switchstatus>>=2;
|
||||
ui->switchA->setValue(switchstatus & 0x3);
|
||||
}
|
||||
|
||||
inline int chVal(int val)
|
||||
{
|
||||
return qMin(1024, qMax(-1024, val));
|
||||
|
||||
@@ -141,12 +141,15 @@ class SimulatorDialog9X: public SimulatorDialog
|
||||
virtual void getValues();
|
||||
virtual void setLightOn(bool enable);
|
||||
virtual void updateBeepButton();
|
||||
void saveSwitches(void);
|
||||
void restoreSwitches(void);
|
||||
|
||||
private slots:
|
||||
void dialChanged();
|
||||
|
||||
private:
|
||||
Ui::SimulatorDialog9X * ui;
|
||||
static uint32_t switchstatus;
|
||||
int beepShow;
|
||||
|
||||
};
|
||||
@@ -161,9 +164,12 @@ class SimulatorDialogTaranis: public SimulatorDialog
|
||||
|
||||
protected:
|
||||
virtual void getValues();
|
||||
void saveSwitches(void);
|
||||
void restoreSwitches(void);
|
||||
|
||||
private:
|
||||
Ui::SimulatorDialogTaranis * ui;
|
||||
static uint32_t switchstatus;
|
||||
|
||||
private slots:
|
||||
void resetSH();
|
||||
|
||||
Reference in New Issue
Block a user