From 3e409a0371a151013b19e69adaf4af1d80acc3b9 Mon Sep 17 00:00:00 2001 From: "David S. Beach" Date: Sun, 27 Dec 2015 11:52:23 -0500 Subject: [PATCH] Next branch fixes #3141 Fx key to reload scripts --- companion/src/firmwares/er9x/simulator/er9xsimulator.h | 2 ++ .../src/firmwares/ersky9x/simulator/ersky9xsimulator.h | 2 ++ .../src/firmwares/opentx/simulator/opentxsimulator.cpp | 7 +++++++ .../src/firmwares/opentx/simulator/opentxsimulator.h | 2 ++ companion/src/simulation/simulatordialog-horus.ui | 7 +++++++ companion/src/simulation/simulatordialog-taranis.ui | 7 +++++++ companion/src/simulation/simulatordialog.cpp | 8 ++++++++ companion/src/simulation/simulatordialog.h | 1 + companion/src/simulation/simulatordialoghorus.cpp | 1 + companion/src/simulation/simulatordialogtaranis.cpp | 1 + companion/src/simulation/simulatorinterface.h | 2 ++ 11 files changed, 40 insertions(+) diff --git a/companion/src/firmwares/er9x/simulator/er9xsimulator.h b/companion/src/firmwares/er9x/simulator/er9xsimulator.h index 1f0ed0944..d25a4fcb2 100644 --- a/companion/src/firmwares/er9x/simulator/er9xsimulator.h +++ b/companion/src/firmwares/er9x/simulator/er9xsimulator.h @@ -60,6 +60,8 @@ class Er9xSimulator : public SimulatorInterface { virtual void setTrainerInput(unsigned int inputNumber, int16_t value) {}; + virtual void setLuaStateReloadPermanentScripts() {}; + protected: Er9xInterface * er9xInterface; diff --git a/companion/src/firmwares/ersky9x/simulator/ersky9xsimulator.h b/companion/src/firmwares/ersky9x/simulator/ersky9xsimulator.h index 3303f9ae7..f3c07694a 100644 --- a/companion/src/firmwares/ersky9x/simulator/ersky9xsimulator.h +++ b/companion/src/firmwares/ersky9x/simulator/ersky9xsimulator.h @@ -60,6 +60,8 @@ class Ersky9xSimulator : public SimulatorInterface { virtual void setTrainerInput(unsigned int inputNumber, int16_t value) {}; + virtual void setLuaStateReloadPermanentScripts() {}; + protected: Ersky9xInterface * ersky9xInterface; diff --git a/companion/src/firmwares/opentx/simulator/opentxsimulator.cpp b/companion/src/firmwares/opentx/simulator/opentxsimulator.cpp index 1424cfa31..5c5ec1a33 100644 --- a/companion/src/firmwares/opentx/simulator/opentxsimulator.cpp +++ b/companion/src/firmwares/opentx/simulator/opentxsimulator.cpp @@ -644,6 +644,13 @@ void OpenTxSimulator::setTrainerInput(unsigned int inputNumber, ::int16_t value) #include "simulatorimport.h" } +void OpenTxSimulator::setLuaStateReloadPermanentScripts() +{ +#if defined(LUA) + luaState = INTERPRETER_RELOAD_PERMANENT_SCRIPTS; +#endif +} + void OpenTxSimulator::installTraceHook(void (*callback)(const char *)) { traceCallback = callback; diff --git a/companion/src/firmwares/opentx/simulator/opentxsimulator.h b/companion/src/firmwares/opentx/simulator/opentxsimulator.h index 8e20de520..c5c0632f1 100644 --- a/companion/src/firmwares/opentx/simulator/opentxsimulator.h +++ b/companion/src/firmwares/opentx/simulator/opentxsimulator.h @@ -137,6 +137,8 @@ class DLLEXPORT OpenTxSimulator : public SimulatorInterface { virtual void setTrainerInput(unsigned int inputNumber, int16_t value); virtual void installTraceHook(void (*callback)(const char *)); + + virtual void setLuaStateReloadPermanentScripts(); }; } diff --git a/companion/src/simulation/simulatordialog-horus.ui b/companion/src/simulation/simulatordialog-horus.ui index 71e92ce06..e2ceeab33 100644 --- a/companion/src/simulation/simulatordialog-horus.ui +++ b/companion/src/simulation/simulatordialog-horus.ui @@ -1461,6 +1461,13 @@ QPushButton:checked { + + + + PF7 - Reload Lua Scripts + + + diff --git a/companion/src/simulation/simulatordialog-taranis.ui b/companion/src/simulation/simulatordialog-taranis.ui index e29d017c4..7ca2e9b31 100644 --- a/companion/src/simulation/simulatordialog-taranis.ui +++ b/companion/src/simulation/simulatordialog-taranis.ui @@ -1754,6 +1754,13 @@ QPushButton:checked { + + + + PF7 - Reload Lua Scripts + + + diff --git a/companion/src/simulation/simulatordialog.cpp b/companion/src/simulation/simulatordialog.cpp index 6d4b3f8e0..cea4456ee 100644 --- a/companion/src/simulation/simulatordialog.cpp +++ b/companion/src/simulation/simulatordialog.cpp @@ -73,6 +73,7 @@ SimulatorDialog::SimulatorDialog(QWidget * parent, SimulatorInterface *simulator new QShortcut(QKeySequence(Qt::Key_F4), this, SLOT(openTelemetrySimulator())); new QShortcut(QKeySequence(Qt::Key_F5), this, SLOT(openTrainerSimulator())); new QShortcut(QKeySequence(Qt::Key_F6), this, SLOT(openDebugOutput())); + new QShortcut(QKeySequence(Qt::Key_F7), this, SLOT(luaReload())); traceCallbackInstance = this; } @@ -166,11 +167,18 @@ void SimulatorDialog::openDebugOutput() } } +void SimulatorDialog::luaReload() +{ + // force a reload of the lua environment (as if a standalone script were run) + simulator->setLuaStateReloadPermanentScripts(); +} + void SimulatorDialog::onDebugOutputClose() { DebugOut = 0; } + void SimulatorDialog::keyPressEvent (QKeyEvent *event) { switch (event->key()) { diff --git a/companion/src/simulation/simulatordialog.h b/companion/src/simulation/simulatordialog.h index c63ba6d0b..ef3b92b53 100644 --- a/companion/src/simulation/simulatordialog.h +++ b/companion/src/simulation/simulatordialog.h @@ -155,6 +155,7 @@ class SimulatorDialog : public QDialog void openTrainerSimulator(); void openDebugOutput(); void onDebugOutputClose(); + void luaReload(); #ifdef JOYSTICKS void onjoystickAxisValueChanged(int axis, int value); diff --git a/companion/src/simulation/simulatordialoghorus.cpp b/companion/src/simulation/simulatordialoghorus.cpp index 72faddd8c..9e69e3b59 100644 --- a/companion/src/simulation/simulatordialoghorus.cpp +++ b/companion/src/simulation/simulatordialoghorus.cpp @@ -73,6 +73,7 @@ SimulatorDialogHorus::SimulatorDialogHorus(QWidget * parent, SimulatorInterface connect(ui->teleSim, SIGNAL(released()), this, SLOT(openTelemetrySimulator())); connect(ui->trainerSim, SIGNAL(released()), this, SLOT(openTrainerSimulator())); connect(ui->debugConsole, SIGNAL(released()), this, SLOT(openDebugOutput())); + connect(ui->luaReload, SIGNAL(released()), this, SLOT(luaReload())); } SimulatorDialogHorus::~SimulatorDialogHorus() diff --git a/companion/src/simulation/simulatordialogtaranis.cpp b/companion/src/simulation/simulatordialogtaranis.cpp index 609bb7c40..63d3c2ee8 100644 --- a/companion/src/simulation/simulatordialogtaranis.cpp +++ b/companion/src/simulation/simulatordialogtaranis.cpp @@ -80,6 +80,7 @@ SimulatorDialogTaranis::SimulatorDialogTaranis(QWidget * parent, SimulatorInterf connect(ui->teleSim, SIGNAL(released()), this, SLOT(openTelemetrySimulator())); connect(ui->trainerSim, SIGNAL(released()), this, SLOT(openTrainerSimulator())); connect(ui->debugConsole, SIGNAL(released()), this, SLOT(openDebugOutput())); + connect(ui->luaReload, SIGNAL(released()), this, SLOT(luaReload())); } SimulatorDialogTaranis::~SimulatorDialogTaranis() diff --git a/companion/src/simulation/simulatorinterface.h b/companion/src/simulation/simulatorinterface.h index 5a97cae2c..57a3f1e80 100644 --- a/companion/src/simulation/simulatorinterface.h +++ b/companion/src/simulation/simulatorinterface.h @@ -106,6 +106,8 @@ class SimulatorInterface virtual void setTrainerInput(unsigned int inputNumber, int16_t value) = 0; virtual void installTraceHook(void (*callback)(const char *)) = 0; + + virtual void setLuaStateReloadPermanentScripts() = 0; }; class SimulatorFactory {