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 {