TEST(Trims, greaterTrimLink) { MODEL_RESET(); setTrimValue(1, RUD_STICK, TRIM_EXTENDED_MAX+3); // link to FP3 trim setTrimValue(3, RUD_STICK, 32); EXPECT_EQ(getRawTrimValue(getTrimFlightPhase(1, RUD_STICK), RUD_STICK), 32); }
TEST(Trims, chainedTrims) { MODEL_RESET(); setTrimValue(0, RUD_STICK, 32); setTrimValue(1, RUD_STICK, TRIM_EXTENDED_MAX+1); // link to FP0 trim setTrimValue(2, RUD_STICK, TRIM_EXTENDED_MAX+2); // link to FP1 trim EXPECT_EQ(getRawTrimValue(getTrimFlightPhase(0, RUD_STICK), RUD_STICK), 32); }
TEST(Trims, infiniteChainedTrims) { MODEL_RESET(); setTrimValue(0, 0, 32); setTrimValue(1, 0, TRIM_EXTENDED_MAX+3); // link to FP3 trim setTrimValue(2, 0, TRIM_EXTENDED_MAX+2); // link to FP1 trim setTrimValue(3, 0, TRIM_EXTENDED_MAX+3); // link to FP2 trim EXPECT_EQ(getRawTrimValue(getTrimFlightPhase(0, 2), 0), 32); }
void OpenTxSimulator::getTrims(Trims & trims) { ::uint8_t phase = getFlightMode(); trims.extended = hasExtendedTrims(); for (::uint8_t idx=0; idx<4; idx++) { trims.values[idx] = getTrimValue(getTrimFlightPhase(phase, idx), idx); } for (int i=0; i<2; i++) { ::uint8_t idx = NAMESPACE::modn12x3[4*getStickMode() + i]; ::int16_t tmp = trims.values[i]; trims.values[i] = trims.values[idx]; trims.values[idx] = tmp; } }
void OpenTxSimulator::setTrim(unsigned int idx, int value) { idx = NAMESPACE::modn12x3[4*getStickMode() + idx]; ::uint8_t phase = getTrimFlightPhase(getFlightMode(), idx); setTrimValue(phase, idx, value); }