From 629d82fe27ffd06a14c58f417248b1f41e6334fd Mon Sep 17 00:00:00 2001 From: Max Paperno Date: Fri, 7 Apr 2017 03:49:59 -0400 Subject: [PATCH] [Simulator] Fix trims issue with AVR simulators (build failure since 57dc015); Fix possible array bounds issue if data is corrupt. --- companion/src/eeprominterface.cpp | 2 +- radio/src/targets/simu/opentxsimulator.cpp | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/companion/src/eeprominterface.cpp b/companion/src/eeprominterface.cpp index c651cf2df..f3df71a46 100644 --- a/companion/src/eeprominterface.cpp +++ b/companion/src/eeprominterface.cpp @@ -689,7 +689,7 @@ QString RawSwitch::toString(Board::Type board, const GeneralSettings * const gen swName = QString(generalSettings->switchName[qr.quot]); if (swName.isEmpty()) swName = getSwitchInfo(board, qr.quot).name; - return swName + directionIndicators.at(qr.rem < directionIndicators.size() ? qr.rem : 1); + return swName + directionIndicators.at(qr.rem > -1 && qr.rem < directionIndicators.size() ? qr.rem : 1); } else { return CHECK_IN_ARRAY(switches9X, index - 1); diff --git a/radio/src/targets/simu/opentxsimulator.cpp b/radio/src/targets/simu/opentxsimulator.cpp index 70cde32c4..a07a02955 100644 --- a/radio/src/targets/simu/opentxsimulator.cpp +++ b/radio/src/targets/simu/opentxsimulator.cpp @@ -211,6 +211,7 @@ void OpenTxSimulator::setTrim(unsigned int idx, int value) i = modn12x3[4 * getStickMode() + idx]; uint8_t phase = getTrimFlightMode(getFlightMode(), i); +#ifdef CPUARM if (!setTrimValue(phase, i, value)) { QTimer *timer = new QTimer(this); timer->setSingleShot(true); @@ -221,6 +222,9 @@ void OpenTxSimulator::setTrim(unsigned int idx, int value) }); timer->start(350); } +#else + setTrimValue(phase, i, value); +#endif } void OpenTxSimulator::setTrainerInput(unsigned int inputNumber, int16_t value) @@ -405,7 +409,7 @@ void OpenTxSimulator::removeTracebackDevice(QIODevice * device) } -/*** Protected classes ***/ +/*** Protected functions ***/ void OpenTxSimulator::run() {