From 9d3960f0f5220aff905cfe43a56f1ef4bf31f3a7 Mon Sep 17 00:00:00 2001 From: Max Paperno Date: Fri, 31 Mar 2017 13:19:12 -0400 Subject: [PATCH] [Simulator] TelemetrySimulator: Fix instance values not being populated with radio settings (also now reloads instance values with rest of radio data). (closes #4711) --- companion/src/simulation/simulatormainwindow.cpp | 4 ++++ companion/src/simulation/simulatormainwindow.h | 3 +++ companion/src/simulation/telemetrysimu.cpp | 7 +++++-- companion/src/simulation/telemetrysimu.h | 1 + 4 files changed, 13 insertions(+), 2 deletions(-) diff --git a/companion/src/simulation/simulatormainwindow.cpp b/companion/src/simulation/simulatormainwindow.cpp index 434ac429c..9f7a0cb5a 100644 --- a/companion/src/simulation/simulatormainwindow.cpp +++ b/companion/src/simulation/simulatormainwindow.cpp @@ -259,6 +259,8 @@ void SimulatorMainWindow::start() m_simulatorWidget->start(); if (m_outputsWidget) m_outputsWidget->start(); + + emit simulatorStart(); } void SimulatorMainWindow::createDockWidgets() @@ -279,6 +281,8 @@ void SimulatorMainWindow::createDockWidgets() m_telemetryDockWidget->setWidget(telem); m_telemetryDockWidget->setObjectName("TELEMETRY_SIMULATOR"); addTool(m_telemetryDockWidget, Qt::LeftDockWidgetArea, icon, QKeySequence(tr("F4"))); + connect(this, &SimulatorMainWindow::simulatorStart, telem, &TelemetrySimulator::onSimulatorStarted); + connect(ui->actionReloadRadioData, &QAction::triggered, telem, &TelemetrySimulator::onSimulatorStarted); } if (!m_trainerDockWidget) { diff --git a/companion/src/simulation/simulatormainwindow.h b/companion/src/simulation/simulatormainwindow.h index 4791cf0b4..5e9da9a3f 100644 --- a/companion/src/simulation/simulatormainwindow.h +++ b/companion/src/simulation/simulatormainwindow.h @@ -65,6 +65,9 @@ class SimulatorMainWindow : public QMainWindow void showRadioFixedHeight(bool fixed); void showRadioDocked(bool dock); + signals: + void simulatorStart(); + protected slots: virtual void closeEvent(QCloseEvent *); virtual void changeEvent(QEvent *e); diff --git a/companion/src/simulation/telemetrysimu.cpp b/companion/src/simulation/telemetrysimu.cpp index fb85ad25e..258b6cee0 100644 --- a/companion/src/simulation/telemetrysimu.cpp +++ b/companion/src/simulation/telemetrysimu.cpp @@ -31,8 +31,6 @@ TelemetrySimulator::TelemetrySimulator(QWidget * parent, SimulatorInterface * si { ui->setupUi(this); - setupDataFields(); - timer.setInterval(10); connect(&timer, &QTimer::timeout, this, &TelemetrySimulator::generateTelemetryFrame); @@ -70,6 +68,11 @@ TelemetrySimulator::~TelemetrySimulator() delete ui; } +void TelemetrySimulator::onSimulatorStarted() +{ + setupDataFields(); +} + void TelemetrySimulator::onSimulateToggled(bool isChecked) { if (isChecked) { diff --git a/companion/src/simulation/telemetrysimu.h b/companion/src/simulation/telemetrysimu.h index 42e63296f..5c1af2e42 100644 --- a/companion/src/simulation/telemetrysimu.h +++ b/companion/src/simulation/telemetrysimu.h @@ -45,6 +45,7 @@ class TelemetrySimulator : public QWidget explicit TelemetrySimulator(QWidget * parent, SimulatorInterface * simulator); virtual ~TelemetrySimulator(); + void onSimulatorStarted(); protected slots: