[Simulator] Fix trims issue with AVR simulators (build failure since 57dc015); Fix possible array bounds issue if data is corrupt.
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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()
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user