Add trainer mode OFF for NV14

This commit is contained in:
elecpower
2021-11-04 11:29:08 +10:00
committed by Peter Feerick
parent 74ea7812e2
commit fb5d8a30d3
4 changed files with 24 additions and 5 deletions
+9 -3
View File
@@ -177,6 +177,8 @@ void ModelData::clear()
for (unsigned i = 0; i < CPN_MAX_SENSORS; i++)
sensorData[i].clear();
trainerMode = TRAINER_MODE_MASTER_JACK;
const char * layoutId = "Layout2P1"; // currently all using same default though might change for NV14
RadioLayout::init(layoutId, customScreens);
}
@@ -1576,6 +1578,8 @@ QString ModelData::trainerModeToString() const
QString ModelData::trainerModeToString(int value)
{
switch (value) {
case TRAINER_MODE_OFF:
return tr("OFF");
case TRAINER_MODE_MASTER_JACK:
return tr("Master/Jack");
case TRAINER_MODE_SLAVE_JACK:
@@ -1600,13 +1604,15 @@ QString ModelData::trainerModeToString(int value)
// static
bool ModelData::isTrainerModeAvailable(const GeneralSettings & generalSettings, const Firmware * firmware, const int value)
{
if (value < 0 || value >= TRAINER_MODE_COUNT)
if (value < TRAINER_MODE_FIRST || value > TRAINER_MODE_LAST)
return false;
bool ret = true;
const Board::Type board = firmware->getBoard();
if (!IS_TARANIS(board) || IS_ACCESS_RADIO(board, Firmware::getCurrentVariant()->getId())) {
if (!IS_FLYSKY_NV14(board) && value == TRAINER_MODE_OFF)
ret = false;
else if (!IS_TARANIS(board) || IS_ACCESS_RADIO(board, Firmware::getCurrentVariant()->getId())) {
if (value >= TRAINER_MODE_MASTER_SBUS_EXTERNAL_MODULE && value <= TRAINER_MODE_MASTER_BATTERY_COMPARTMENT)
ret = false;
}
@@ -1628,7 +1634,7 @@ AbstractStaticItemModel * ModelData::trainerModeItemModel(const GeneralSettings
AbstractStaticItemModel * mdl = new AbstractStaticItemModel();
mdl->setName(AIM_MODELDATA_TRAINERMODE);
for (int i = 0; i < TRAINER_MODE_COUNT; i++) {
for (int i = TRAINER_MODE_FIRST; i <= TRAINER_MODE_LAST; i++) {
mdl->appendToItemList(trainerModeToString(i), i, isTrainerModeAvailable(generalSettings, firmware, i));
}
+3 -1
View File
@@ -72,6 +72,8 @@ class ScriptData {
};
enum TrainerMode {
TRAINER_MODE_OFF,
TRAINER_MODE_FIRST = TRAINER_MODE_OFF,
TRAINER_MODE_MASTER_JACK,
TRAINER_MODE_SLAVE_JACK,
TRAINER_MODE_MASTER_SBUS_EXTERNAL_MODULE,
@@ -80,7 +82,7 @@ enum TrainerMode {
TRAINER_MODE_MASTER_BLUETOOTH,
TRAINER_MODE_SLAVE_BLUETOOTH,
TRAINER_MODE_MULTI,
TRAINER_MODE_COUNT
TRAINER_MODE_LAST = TRAINER_MODE_MULTI
};
#define INPUT_NAME_LEN 4
@@ -2854,6 +2854,10 @@ void OpenTxModelData::beforeExport()
}
// TODO remove when enum not radio specific requires eeprom change and conversion
// Note: this must mirror reverse afterImport
if (!IS_FLYSKY_NV14(board))
modelData.trainerMode -= 1;
if (modelData.trainerMode > TRAINER_MODE_SLAVE_JACK) {
if (!IS_TARANIS(board)) {
modelData.trainerMode -= 2;
@@ -2890,6 +2894,10 @@ void OpenTxModelData::afterImport()
}
// TODO remove when enum not radio specific requires eeprom change and conversion
// Note: this must mirror reverse beforeExport
if (!IS_FLYSKY_NV14(board))
modelData.trainerMode += 1;
if (modelData.trainerMode > TRAINER_MODE_SLAVE_JACK) {
if (!IS_TARANIS(board)) {
modelData.trainerMode += 2;
+4 -1
View File
@@ -225,7 +225,10 @@ ModulePanel::ModulePanel(QWidget * parent, ModelData & model, ModuleData & modul
if (panelFilteredItemModels)
ui->trainerMode->setModel(panelFilteredItemModels->getItemModel(FIM_TRAINERMODE));
ui->trainerMode->setField(model.trainerMode);
connect(ui->trainerMode, SIGNAL(currentDataChanged(int)), this, SLOT(update()));
connect(ui->trainerMode, &AutoComboBox::currentDataChanged, this, [=] () {
update();
emit modified();
});
}
}
else {