Companion core in simu now understood: the stickMode was completely out,

and the Tx trims were shifted!
This commit is contained in:
Bertrand Songis
2014-01-14 22:44:10 +01:00
parent d945052c82
commit 0f0db5e1d3
6 changed files with 16 additions and 15 deletions
@@ -98,7 +98,7 @@ bool hasExtendedTrims()
uint8_t getStickMode() uint8_t getStickMode()
{ {
return g_eeGeneral.stickMode; return limit<uint8_t>(0, g_eeGeneral.stickMode, 3);
} }
} }
@@ -160,7 +160,7 @@ void Open9xGruvin9xSimulator::setValues(TxInputs &inputs)
void Open9xGruvin9xSimulator::setTrim(unsigned int idx, int value) void Open9xGruvin9xSimulator::setTrim(unsigned int idx, int value)
{ {
idx = Open9xGruvin9x::modn12x3[4*getStickMode() + idx] - 1; idx = Open9xGruvin9x::modn12x3[4*getStickMode() + idx];
uint8_t phase = getTrimFlightPhase(getFlightPhase(), idx); uint8_t phase = getTrimFlightPhase(getFlightPhase(), idx);
setTrimValue(phase, idx, value); setTrimValue(phase, idx, value);
} }
@@ -174,7 +174,7 @@ void Open9xGruvin9xSimulator::getTrims(Trims & trims)
} }
for (int i=0; i<2; i++) { for (int i=0; i<2; i++) {
uint8_t idx = Open9xGruvin9x::modn12x3[4*getStickMode() + i] - 1; uint8_t idx = Open9xGruvin9x::modn12x3[4*getStickMode() + i];
int16_t tmp = trims.values[i]; int16_t tmp = trims.values[i];
trims.values[i] = trims.values[idx]; trims.values[i] = trims.values[idx];
trims.values[idx] = tmp; trims.values[idx] = tmp;
@@ -96,7 +96,7 @@ bool hasExtendedTrims()
uint8_t getStickMode() uint8_t getStickMode()
{ {
return g_eeGeneral.stickMode; return limit<uint8_t>(0, g_eeGeneral.stickMode, 3);
} }
} }
@@ -154,7 +154,7 @@ void Open9xM128Simulator::setValues(TxInputs &inputs)
void Open9xM128Simulator::setTrim(unsigned int idx, int value) void Open9xM128Simulator::setTrim(unsigned int idx, int value)
{ {
idx = Open9xM128::modn12x3[4*getStickMode() + idx] - 1; idx = Open9xM128::modn12x3[4*getStickMode() + idx];
uint8_t phase = getTrimFlightPhase(getFlightPhase(), idx); uint8_t phase = getTrimFlightPhase(getFlightPhase(), idx);
setTrimValue(phase, idx, value); setTrimValue(phase, idx, value);
} }
@@ -168,7 +168,7 @@ void Open9xM128Simulator::getTrims(Trims & trims)
} }
for (int i=0; i<2; i++) { for (int i=0; i<2; i++) {
uint8_t idx = Open9xM128::modn12x3[4*getStickMode() + i] - 1; uint8_t idx = Open9xM128::modn12x3[4*getStickMode() + i];
int16_t tmp = trims.values[i]; int16_t tmp = trims.values[i];
trims.values[i] = trims.values[idx]; trims.values[i] = trims.values[idx];
trims.values[idx] = tmp; trims.values[idx] = tmp;
@@ -125,7 +125,7 @@ bool hasExtendedTrims()
uint8_t getStickMode() uint8_t getStickMode()
{ {
return g_eeGeneral.stickMode; return limit<uint8_t>(0, g_eeGeneral.stickMode, 3);
} }
} }
@@ -193,7 +193,7 @@ void Open9xSky9xSimulator::setValues(TxInputs &inputs)
void Open9xSky9xSimulator::setTrim(unsigned int idx, int value) void Open9xSky9xSimulator::setTrim(unsigned int idx, int value)
{ {
idx = Open9xSky9x::modn12x3[4*getStickMode() + idx] - 1; idx = Open9xSky9x::modn12x3[4*getStickMode() + idx];
uint8_t phase = getTrimFlightPhase(getFlightPhase(), idx); uint8_t phase = getTrimFlightPhase(getFlightPhase(), idx);
setTrimValue(phase, idx, value); setTrimValue(phase, idx, value);
} }
@@ -207,7 +207,7 @@ void Open9xSky9xSimulator::getTrims(Trims & trims)
} }
for (int i=0; i<2; i++) { for (int i=0; i<2; i++) {
uint8_t idx = Open9xSky9x::modn12x3[4*getStickMode() + i] - 1; uint8_t idx = Open9xSky9x::modn12x3[4*getStickMode() + i];
int16_t tmp = trims.values[i]; int16_t tmp = trims.values[i];
trims.values[i] = trims.values[idx]; trims.values[i] = trims.values[idx];
trims.values[idx] = tmp; trims.values[idx] = tmp;
@@ -128,7 +128,7 @@ bool hasExtendedTrims()
uint8_t getStickMode() uint8_t getStickMode()
{ {
return g_eeGeneral.stickMode; return limit<uint8_t>(0, g_eeGeneral.stickMode, 3);
} }
void resetTrims() void resetTrims()
@@ -200,7 +200,7 @@ void OpentxTaranisSimulator::setValues(TxInputs &inputs)
void OpentxTaranisSimulator::setTrim(unsigned int idx, int value) void OpentxTaranisSimulator::setTrim(unsigned int idx, int value)
{ {
idx = Open9xX9D::modn12x3[4*getStickMode() + idx] - 1; idx = Open9xX9D::modn12x3[4*getStickMode() + idx];
uint8_t phase = getTrimFlightPhase(getFlightPhase(), idx); uint8_t phase = getTrimFlightPhase(getFlightPhase(), idx);
setTrimValue(phase, idx, value); setTrimValue(phase, idx, value);
} }
@@ -214,7 +214,7 @@ void OpentxTaranisSimulator::getTrims(Trims & trims)
} }
for (int i=0; i<2; i++) { for (int i=0; i<2; i++) {
uint8_t idx = Open9xX9D::modn12x3[4*getStickMode() + i] - 1; uint8_t idx = Open9xX9D::modn12x3[4*getStickMode() + i];
int16_t tmp = trims.values[i]; int16_t tmp = trims.values[i];
trims.values[i] = trims.values[idx]; trims.values[i] = trims.values[idx];
trims.values[idx] = tmp; trims.values[idx] = tmp;
@@ -100,7 +100,7 @@ bool hasExtendedTrims()
uint8_t getStickMode() uint8_t getStickMode()
{ {
return g_eeGeneral.stickMode; return limit<uint8_t>(0, g_eeGeneral.stickMode, 3);
} }
} }
@@ -162,7 +162,7 @@ void Open9xSimulator::setValues(TxInputs &inputs)
void Open9xSimulator::setTrim(unsigned int idx, int value) void Open9xSimulator::setTrim(unsigned int idx, int value)
{ {
idx = Open9x::modn12x3[4*getStickMode() + idx] - 1; idx = Open9x::modn12x3[4*getStickMode() + idx];
uint8_t phase = getTrimFlightPhase(getFlightPhase(), idx); uint8_t phase = getTrimFlightPhase(getFlightPhase(), idx);
setTrimValue(phase, idx, value); setTrimValue(phase, idx, value);
} }
@@ -176,7 +176,7 @@ void Open9xSimulator::getTrims(Trims & trims)
} }
for (int i=0; i<2; i++) { for (int i=0; i<2; i++) {
uint8_t idx = Open9x::modn12x3[4*getStickMode() + i] - 1; uint8_t idx = Open9x::modn12x3[4*getStickMode() + i];
int16_t tmp = trims.values[i]; int16_t tmp = trims.values[i];
trims.values[i] = trims.values[idx]; trims.values[i] = trims.values[idx];
trims.values[idx] = tmp; trims.values[idx] = tmp;
+1
View File
@@ -196,6 +196,7 @@ void xsimulatorDialog::onTimerEvent()
static unsigned int lcd_counter = 0; static unsigned int lcd_counter = 0;
if (!simulator->timer10ms()) { if (!simulator->timer10ms()) {
QMessageBox::critical(this, "companion9x", tr("Firmware %1 error: %2").arg(txInterface->getName()).arg(simulator->getError()));
timer->stop(); timer->stop();
return; return;
} }