diff --git a/companion/src/companion.qrc b/companion/src/companion.qrc
index 1ce2967b6..5b68fcd0b 100644
--- a/companion/src/companion.qrc
+++ b/companion/src/companion.qrc
@@ -22,6 +22,7 @@
images/simulator/icons/svg/fixed_x-on.svg
images/simulator/icons/svg/fixed_y.svg
images/simulator/icons/svg/fixed_y-on.svg
+ images/simulator/icons/svg/folder_open.svg
images/simulator/icons/svg/hold_x.svg
images/simulator/icons/svg/hold_x-on.svg
images/simulator/icons/svg/hold_y.svg
diff --git a/companion/src/generaledit/calibration.cpp b/companion/src/generaledit/calibration.cpp
index 44bda3141..e07a874b1 100644
--- a/companion/src/generaledit/calibration.cpp
+++ b/companion/src/generaledit/calibration.cpp
@@ -41,10 +41,10 @@ CalibrationPanel::CalibrationPanel(QWidget * parent, GeneralSettings & generalSe
tableWidget->setFrameStyle(QFrame::NoFrame | QFrame::Plain);
tableWidget->setStyleSheet("QTableWidget {background-color: transparent;}");
QStringList headerLabels;
- headerLabels << QObject::tr("Negative span") << QObject::tr("Mid value") << QObject::tr("Positive span");
+ headerLabels << QObject::tr("Negative span") << QObject::tr("Mid value") << QObject::tr("Positive span");
tableWidget->setHorizontalHeaderLabels(headerLabels);
- int rows = CPN_MAX_STICKS + getBoardCapability(getCurrentBoard(), Board::Pots) + getBoardCapability(getCurrentBoard(), Board::Sliders);
+ int rows = CPN_MAX_STICKS + getBoardCapability(getCurrentBoard(), Board::Pots) + getBoardCapability(getCurrentBoard(), Board::Sliders) + getBoardCapability(getCurrentBoard(), Board::MouseAnalogs);
tableWidget->setRowCount(rows);
for(int i = 0; i < rows; ++i) {
@@ -80,7 +80,7 @@ void CalibrationPanel::onCellChanged(int value)
emit modified();
}
}
-
+
int CalibrationPanel::getCalibrationValue(int row, int column)
{
switch(column) {
diff --git a/companion/src/helpers.cpp b/companion/src/helpers.cpp
index 0a22bd970..68afcc79d 100644
--- a/companion/src/helpers.cpp
+++ b/companion/src/helpers.cpp
@@ -762,7 +762,6 @@ void startSimulation(QWidget * parent, RadioData & radioData, int modelIdx)
dialog->deleteLater();
}
else if (dialog->setRadioData(simuData)) {
- dialog->start();
dialog->show();
}
else {
diff --git a/companion/src/images/simulator/icons/svg/folder_open.svg b/companion/src/images/simulator/icons/svg/folder_open.svg
new file mode 100644
index 000000000..768169f8c
--- /dev/null
+++ b/companion/src/images/simulator/icons/svg/folder_open.svg
@@ -0,0 +1,7 @@
+
+
+
+
diff --git a/companion/src/modelslist.cpp b/companion/src/modelslist.cpp
index ff9940841..19ffff11a 100644
--- a/companion/src/modelslist.cpp
+++ b/companion/src/modelslist.cpp
@@ -265,7 +265,7 @@ void TreeModel::refresh()
for (unsigned i=0; imodels.size(); i++) {
ModelData & model = radioData->models[i];
int currentColumn = 0;
- TreeItem * current;
+ TreeItem * current = NULL;
if (IS_HORUS(board)) {
if (!model.isEmpty()) {
TreeItem * categoryItem;
@@ -290,7 +290,7 @@ void TreeModel::refresh()
current->setData(currentColumn++, QString().sprintf("%02d", i + 1));
}
- if (!model.isEmpty()) {
+ if (!model.isEmpty() && current) {
QString modelName;
if (strlen(model.name) > 0)
modelName = model.name;
diff --git a/companion/src/simulation/debugoutput.cpp b/companion/src/simulation/debugoutput.cpp
index 0cb582fb1..2bba42b9f 100644
--- a/companion/src/simulation/debugoutput.cpp
+++ b/companion/src/simulation/debugoutput.cpp
@@ -87,8 +87,8 @@ DebugOutput::DebugOutput(QWidget * parent, SimulatorInterface *simulator):
m_dataBufferDevice->setInputBufferMaxSize(DEBUG_OUTPUT_WIDGET_INP_BUFF_SIZE);
m_dataBufferDevice->open(QIODevice::ReadWrite | QIODevice::Text);
- connect(m_dataBufferDevice, &FilteredTextBuffer::readyRead, this, &DebugOutput::processBytesReceived);
- connect(m_dataBufferDevice, &FilteredTextBuffer::bufferOverflow, this, &DebugOutput::onDataBufferOverflow);
+ connect(m_dataBufferDevice, &FilteredTextBuffer::readyRead, this, &DebugOutput::processBytesReceived, Qt::QueuedConnection);
+ connect(m_dataBufferDevice, &FilteredTextBuffer::bufferOverflow, this, &DebugOutput::onDataBufferOverflow, Qt::QueuedConnection);
connect(this, &DebugOutput::filterChanged, m_dataBufferDevice, &FilteredTextBuffer::setLineFilter);
connect(this, &DebugOutput::filterEnabledChanged, m_dataBufferDevice, &FilteredTextBuffer::setLineFilterEnabled);
connect(this, &DebugOutput::filterExprChanged, m_dataBufferDevice, &FilteredTextBuffer::setLineFilterExpr);
diff --git a/companion/src/simulation/simulatormainwindow.cpp b/companion/src/simulation/simulatormainwindow.cpp
index 9f7a0cb5a..41a708e5c 100644
--- a/companion/src/simulation/simulatormainwindow.cpp
+++ b/companion/src/simulation/simulatormainwindow.cpp
@@ -168,13 +168,14 @@ void SimulatorMainWindow::closeEvent(QCloseEvent *)
void SimulatorMainWindow::show()
{
QMainWindow::show();
-#ifdef Q_OS_LINUX
- // for whatever reason, w/out this workaround any floating docks may appear and get "stuck" behind other windows, eg. Terminal or Companion.
if (m_firstShow) {
- restoreUiState();
m_firstShow = false;
+ #ifdef Q_OS_LINUX
+ // for whatever reason, w/out this workaround any floating docks may appear and get "stuck" behind other windows, eg. Terminal or Companion.
+ restoreUiState();
+ #endif
+ start();
}
-#endif
}
void SimulatorMainWindow::changeEvent(QEvent *e)
diff --git a/companion/src/simulation/simulatorstartupdialog.cpp b/companion/src/simulation/simulatorstartupdialog.cpp
index e232b36f9..be67d7a90 100644
--- a/companion/src/simulation/simulatorstartupdialog.cpp
+++ b/companion/src/simulation/simulatorstartupdialog.cpp
@@ -24,7 +24,6 @@
#include "appdata.h"
#include "constants.h"
#include "simulatorinterface.h"
-#include "helpers.h"
#include
@@ -52,7 +51,7 @@ SimulatorStartupDialog::SimulatorStartupDialog(SimulatorOptions * options, int *
ui->optGrp_dataSource->setId(ui->optFolder, SimulatorOptions::START_WITH_FOLDER);
ui->optGrp_dataSource->setId(ui->optSdPath, SimulatorOptions::START_WITH_SDPATH);
- CompanionIcon icon("open.png");
+ SimulatorIcon icon("folder_open");
ui->btnSelectDataFile->setIcon(icon);
ui->btnSelectDataFolder->setIcon(icon);
ui->btnSelectSdPath->setIcon(icon);
diff --git a/companion/src/simulator.cpp b/companion/src/simulator.cpp
index b758bbff1..bbfac692b 100644
--- a/companion/src/simulator.cpp
+++ b/companion/src/simulator.cpp
@@ -185,7 +185,7 @@ int main(int argc, char *argv[])
if (!cliOptsFound || profileId == -1 || simOptions.firmwareId.isEmpty() || (simOptions.dataFile.isEmpty() && simOptions.dataFolder.isEmpty())) {
SimulatorStartupDialog * dlg = new SimulatorStartupDialog(&simOptions, &profileId);
int ret = dlg->exec();
- dlg->deleteLater();
+ delete dlg;
if (ret != QDialog::Accepted) {
return finish(0);
}
@@ -219,7 +219,6 @@ int main(int argc, char *argv[])
showMessage(resultMsg, QMessageBox::Critical);
}
else if (mainWindow->setOptions(simOptions, true)) {
- mainWindow->start();
mainWindow->show();
result = app.exec();
if (!result) {
diff --git a/radio/src/lua/api_general.cpp b/radio/src/lua/api_general.cpp
index f9b933c75..67a0553f9 100644
--- a/radio/src/lua/api_general.cpp
+++ b/radio/src/lua/api_general.cpp
@@ -408,7 +408,7 @@ static int luaCrossfireTelemetryPop(lua_State * L)
}
}
- uint8_t length, data;
+ uint8_t length = 0, data = 0;
if (luaInputTelemetryFifo->probe(length) && luaInputTelemetryFifo->size() >= uint32_t(length)) {
// length value includes the length field
luaInputTelemetryFifo->pop(length);
diff --git a/radio/src/pulses/multi_arm.cpp b/radio/src/pulses/multi_arm.cpp
index a4781ad22..a3d4045a0 100644
--- a/radio/src/pulses/multi_arm.cpp
+++ b/radio/src/pulses/multi_arm.cpp
@@ -74,7 +74,7 @@ static void sendByteMulti(uint8_t b) //max 11 changes 0 10 10 10 10 P 1
uint8_t len = BITLEN_MULTI; //max val: 10*20 < 256
for (uint8_t i=0; i<=9; i++) { //8Bits + 1Parity + Stop=1
bool nlev = b & 1; //lsb first
- parity = parity ^ nlev;
+ parity = parity ^ (uint8_t)nlev;
if (lev == nlev) {
len += BITLEN_MULTI;
}
diff --git a/radio/src/targets/simu/opentxsimulator.cpp b/radio/src/targets/simu/opentxsimulator.cpp
index c84ee7260..f85be7b9e 100644
--- a/radio/src/targets/simu/opentxsimulator.cpp
+++ b/radio/src/targets/simu/opentxsimulator.cpp
@@ -18,7 +18,7 @@
#include "opentx.h"
#include "simulcd.h"
-int16_t g_anas[NUM_STICKS+NUM_POTS+NUM_SLIDERS];
+int16_t g_anas[Analogs::NUM_ANALOGS];
uint16_t anaIn(uint8_t chan)
{
diff --git a/radio/src/targets/simu/simpgmspace.cpp b/radio/src/targets/simu/simpgmspace.cpp
index dcf0c6f01..23ba0aa09 100644
--- a/radio/src/targets/simu/simpgmspace.cpp
+++ b/radio/src/targets/simu/simpgmspace.cpp
@@ -81,7 +81,7 @@ void toplcdOff()
{
}
-U64 microsTimer(void)
+uint64_t simuTimerMicros(void)
{
#if SIMPGMSPC_USE_QT
@@ -104,7 +104,7 @@ U64 microsTimer(void)
freqScale = 1e6 / frequency.QuadPart;
// init timer
QueryPerformanceCounter(&firstTick);
- TRACE_SIMPGMSPACE("microsTimer() init: first tick = %llu @ %llu Hz: %g", firstTick.QuadPart, frequency.QuadPart);
+ TRACE_SIMPGMSPACE("microsTimer() init: first tick = %llu @ %llu Hz", firstTick.QuadPart, frequency.QuadPart);
}
// read the timer
QueryPerformanceCounter(&newTick);
@@ -121,18 +121,18 @@ U64 microsTimer(void)
uint16_t getTmr16KHz()
{
- return microsTimer() * 2 / 125;
+ return simuTimerMicros() * 2 / 125;
}
uint16_t getTmr2MHz()
{
- return microsTimer() * 2;
+ return simuTimerMicros() * 2;
}
// return 2ms resolution to match CoOS settings
U64 CoGetOSTime(void)
{
- return microsTimer() / 2000;
+ return simuTimerMicros() / 2000;
}
void simuInit()
diff --git a/radio/src/targets/simu/simpgmspace.h b/radio/src/targets/simu/simpgmspace.h
index a5cdd1e90..d1edfe084 100644
--- a/radio/src/targets/simu/simpgmspace.h
+++ b/radio/src/targets/simu/simpgmspace.h
@@ -356,15 +356,16 @@ extern char * main_thread_error;
#define SIMU_SLEEP(x) do { if (!main_thread_running) return; sleep(x/*ms*/); } while (0)
#define SIMU_SLEEP_NORET(x) do { sleep(x/*ms*/); } while (0)
+uint64_t simuTimerMicros(void);
+
void simuInit();
+void StartSimu(bool tests=true, const char * sdPath = 0, const char * settingsPath = 0);
+void StopSimu();
void simuSetKey(uint8_t key, bool state);
void simuSetTrim(uint8_t trim, bool state);
void simuSetSwitch(uint8_t swtch, int8_t state);
-void StartSimu(bool tests=true, const char * sdPath = 0, const char * settingsPath = 0);
-void StopSimu();
-
void StartEepromThread(const char *filename="eeprom.bin");
void StopEepromThread();
#if defined(SIMU_AUDIO) && defined(CPUARM)
@@ -419,6 +420,7 @@ OS_TID CoCreateTask(FUNCPtr task, void *argv, uint32_t parameter, void * stk, ui
#define CoTickDelay(x) sleep(2*(x))
#define CoCreateFlag(...) 0
U64 CoGetOSTime(void);
+
#define UART_Stop(...)
#define UART3_Stop(...)
#define USART_GetITStatus(...) 0