[Companion] Racing mode support added

This commit is contained in:
Bertrand Songis
2021-02-08 22:46:11 +01:00
parent d219397c60
commit 6299c35844
6 changed files with 40 additions and 30 deletions
+19 -5
View File
@@ -226,6 +226,7 @@ void TimerPanel::onItemModelUpdateComplete()
#define MASK_ACCESS (1<<13)
#define MASK_RX_FREQ (1<<14)
#define MASK_RF_POWER (1<<15)
#define MASK_RF_RACING_MODE (1<<16)
quint8 ModulePanel::failsafesValueDisplayType = ModulePanel::FAILSAFE_DISPLAY_PERCENT;
@@ -415,9 +416,9 @@ void ModulePanel::setupFailsafes()
void ModulePanel::update()
{
const PulsesProtocol protocol = (PulsesProtocol)module.protocol;
const Board::Type board = firmware->getBoard();
const Multiprotocols::MultiProtocolDefinition & pdef = multiProtocols.getProtocol(module.multi.rfProtocol);
const auto protocol = (PulsesProtocol)module.protocol;
const auto board = firmware->getBoard();
const auto & pdef = multiProtocols.getProtocol(module.multi.rfProtocol);
unsigned int mask = 0;
unsigned int max_rx_num = 63;
@@ -450,6 +451,8 @@ void ModulePanel::update()
mask |= MASK_RX_NUMBER | MASK_ACCESS;
if (moduleIdx == 0 && HAS_EXTERNAL_ANTENNA(board) && generalSettings.antennaMode == 0 /* per model */)
mask |= MASK_ANTENNA;
if (protocol == PULSES_ACCESS_ISRM && module.channelsCount == 8)
mask |= MASK_RF_RACING_MODE;
break;
case PULSES_LP45:
case PULSES_DSM2:
@@ -491,8 +494,6 @@ void ModulePanel::update()
mask |= MASK_CHANNELS_RANGE| MASK_CHANNELS_COUNT | MASK_FAILSAFES;
mask |= MASK_SUBTYPES | MASK_RX_FREQ | MASK_RF_POWER;
break;
case PULSES_OFF:
break;
default:
break;
}
@@ -556,6 +557,14 @@ void ModulePanel::update()
ui->antennaMode->hide();
}
if (mask & MASK_RF_RACING_MODE) {
ui->racingMode->show();
ui->racingMode->setChecked(module.access.racingMode);
}
else {
ui->racingMode->hide();
}
// R9M options
ui->r9mPower->setVisible(mask & MASK_RF_POWER);
ui->label_r9mPower->setVisible(mask & MASK_RF_POWER);
@@ -845,6 +854,11 @@ void ModulePanel::on_disableChMap_stateChanged(int state)
module.multi.disableMapping = (state == Qt::Checked);
}
void ModulePanel::on_racingMode_stateChanged(int state)
{
module.access.racingMode = (state == Qt::Checked);
}
void ModulePanel::on_autoBind_stateChanged(int state)
{
module.multi.autoBindMode = (state == Qt::Checked);