From c5ac19a054222bc5c4bfdcd6c1511bfb2fbdd0c3 Mon Sep 17 00:00:00 2001 From: bsongis Date: Fri, 18 Apr 2014 16:24:02 +0200 Subject: [PATCH] Refactoring FirmwareInterface / EepromInterface --- companion/src/avroutputdialog.cpp | 2 +- companion/src/burndialog.cpp | 2 +- companion/src/companion.cpp | 4 +- companion/src/comparedialog.cpp | 120 ++-- companion/src/eeprominterface.cpp | 48 +- companion/src/eeprominterface.h | 141 ++-- .../src/firmwares/er9x/er9xinterface.cpp | 76 --- companion/src/firmwares/er9x/er9xinterface.h | 4 - .../firmwares/ersky9x/ersky9xinterface.cpp | 75 --- .../src/firmwares/ersky9x/ersky9xinterface.h | 4 - .../firmwares/gruvin9x/gruvin9xinterface.cpp | 58 -- .../firmwares/gruvin9x/gruvin9xinterface.h | 4 - .../opentx/opentxGruvin9xsimulator.cpp | 3 +- .../opentx/opentxGruvin9xsimulator.h | 7 +- .../firmwares/opentx/opentxM128simulator.cpp | 3 +- .../firmwares/opentx/opentxM128simulator.h | 7 +- .../firmwares/opentx/opentxSky9xsimulator.cpp | 3 +- .../firmwares/opentx/opentxSky9xsimulator.h | 7 +- .../opentx/opentxTaranisSimulator.cpp | 3 +- .../firmwares/opentx/opentxTaranisSimulator.h | 7 +- .../src/firmwares/opentx/opentxeeprom.cpp | 4 +- .../src/firmwares/opentx/opentxinterface.cpp | 622 +++++++++--------- .../src/firmwares/opentx/opentxinterface.h | 82 +-- .../src/firmwares/opentx/opentxsimulator.cpp | 4 +- .../src/firmwares/opentx/opentxsimulator.h | 8 +- .../src/firmwares/th9x/th9xinterface.cpp | 45 -- companion/src/firmwares/th9x/th9xinterface.h | 4 - companion/src/fwpreferencesdialog.cpp | 33 +- companion/src/fwpreferencesdialog.h | 2 +- companion/src/generaledit.cpp | 44 +- companion/src/helpers.cpp | 68 +- companion/src/helpers.h | 2 +- companion/src/mainwindow.cpp | 33 +- companion/src/mainwindow.h | 12 +- companion/src/mdichild.cpp | 2 +- companion/src/modeledit/channels.cpp | 20 +- companion/src/modeledit/curves.cpp | 16 +- companion/src/modeledit/customfunctions.cpp | 28 +- companion/src/modeledit/expodialog.cpp | 20 +- companion/src/modeledit/flightmodes.cpp | 30 +- companion/src/modeledit/inputs.cpp | 14 +- companion/src/modeledit/logicalswitches.cpp | 18 +- companion/src/modeledit/mixerdialog.cpp | 20 +- companion/src/modeledit/mixes.cpp | 34 +- companion/src/modeledit/modeledit.cpp | 4 +- companion/src/modeledit/setup.cpp | 34 +- companion/src/modeledit/telemetry.cpp | 38 +- companion/src/modeledit/templates.cpp | 16 +- companion/src/printdialog.cpp | 104 +-- companion/src/simulation/simulatordialog.cpp | 10 +- companion/src/simulator.cpp | 4 +- 51 files changed, 810 insertions(+), 1143 deletions(-) diff --git a/companion/src/avroutputdialog.cpp b/companion/src/avroutputdialog.cpp index e7f6243aa..6dcb22d68 100644 --- a/companion/src/avroutputdialog.cpp +++ b/companion/src/avroutputdialog.cpp @@ -327,7 +327,7 @@ void avrOutputDialog::errorWizard() QMessageBox::warning(this, "Companion - Tip of the day", tr("Your radio uses a %1 CPU!!!\n\nPlease check advanced burn options to set the correct cpu type.").arg(DeviceStr)); } else { - FirmwareInfo *firmware = GetCurrentFirmware(); + FirmwareInterface *firmware = GetCurrentFirmware(); QMessageBox::warning(this, "Companion - Tip of the day", tr("Your radio uses a %1 CPU!!!\n\nPlease select an appropriate firmware type to program it.").arg(DeviceStr)+FwStr+tr("\nYou are currently using:\n %1").arg(firmware->name)); } } diff --git a/companion/src/burndialog.cpp b/companion/src/burndialog.cpp index aad8c884e..5f9438867 100644 --- a/companion/src/burndialog.cpp +++ b/companion/src/burndialog.cpp @@ -445,7 +445,7 @@ void burnDialog::on_BurnFlashButton_clicked() if (hexType==EEPROM_FILE_TYPE) { QString calib = g.profile[g.id()].stickPotCalib(); QString trainercalib = g.profile[g.id()].trainerCalib(); - int potsnum=GetEepromInterface()->getCapability(Pots); + int potsnum=GetCurrentFirmware()->getCapability(Pots); int8_t vBatCalib=(int8_t) g.profile[g.id()].vBatCalib(); int8_t currentCalib=(int8_t) g.profile[g.id()].currentCalib(); int8_t PPM_Multiplier=(int8_t) g.profile[g.id()].ppmMultiplier(); diff --git a/companion/src/companion.cpp b/companion/src/companion.cpp index ce0f282ae..f41c25bb2 100644 --- a/companion/src/companion.cpp +++ b/companion/src/companion.cpp @@ -104,7 +104,8 @@ int main(int argc, char *argv[]) QPixmap pixmap = QPixmap(g.profile[g.id()].fwType().contains("taranis") ? ":/images/splasht.png" : ":/images/splash.png"); QSplashScreen *splash = new QSplashScreen(pixmap); - RegisterFirmwares(); + RegisterEepromInterfaces(); + registerOpenTxFirmwares(); current_firmware_variant = GetFirmwareVariant(g.profile[g.id()].fwType()); @@ -124,6 +125,7 @@ int main(int argc, char *argv[]) delete mainWin; UnregisterFirmwares(); + UnregisterEepromInterfaces(); return result; } diff --git a/companion/src/comparedialog.cpp b/companion/src/comparedialog.cpp index 95fab3fe0..fbbbc0cba 100644 --- a/companion/src/comparedialog.cpp +++ b/companion/src/comparedialog.cpp @@ -75,7 +75,7 @@ void compareDialog::printDiff() { te->clear(); printSetup(); - if (GetEepromInterface()->getCapability(FlightPhases)) { + if (GetCurrentFirmware()->getCapability(FlightPhases)) { printPhases(); } printExpos(); @@ -308,7 +308,7 @@ void compareDialog::printPhases() str.append(QString("%1").arg(getInputStr(*g_model1, i))); } str.append(""); - for (i=0; igetCapability(FlightPhases); i++) { + for (i=0; igetCapability(FlightPhases); i++) { PhaseData *pd1=&g_model1->phaseData[i]; PhaseData *pd2=&g_model2->phaseData[i]; str.append(""+tr("FM")+QString("%1 ").arg(i)); @@ -334,7 +334,7 @@ void compareDialog::printPhases() str.append(""); int gvars=0; int gvarnum=0; - if (GetEepromInterface()->getCapability(HasVariants)) { + if (GetCurrentFirmware()->getCapability(HasVariants)) { if ((GetCurrentFirmwareVariant() & GVARS_VARIANT)) { gvars=1; } @@ -342,35 +342,35 @@ void compareDialog::printPhases() gvars=1; } if (gvars==1) { - gvarnum=GetEepromInterface()->getCapability(Gvars); + gvarnum=GetCurrentFirmware()->getCapability(Gvars); } - if ((gvars==1 && GetEepromInterface()->getCapability(GvarsFlightPhases)) || GetEepromInterface()->getCapability(RotaryEncoders)) { + if ((gvars==1 && GetCurrentFirmware()->getCapability(GvarsFlightPhases)) || GetCurrentFirmware()->getCapability(RotaryEncoders)) { str.append("
"); str.append(""); - if (GetEepromInterface()->getCapability(GvarsFlightPhases)) { + if (GetCurrentFirmware()->getCapability(GvarsFlightPhases)) { str.append(QString(""); } - if (GetEepromInterface()->getCapability(RotaryEncoders)) { - str.append(QString(""); + if (GetCurrentFirmware()->getCapability(RotaryEncoders)) { + str.append(QString(""); } str.append(""); - if (GetEepromInterface()->getCapability(GvarsFlightPhases)) { + if (GetCurrentFirmware()->getCapability(GvarsFlightPhases)) { for (i=0; iGV%1
%2").arg(i+1).arg(g_model1->gvars_names[i])); } } - for (i=0; igetCapability(RotaryEncoders); i++) { + for (i=0; igetCapability(RotaryEncoders); i++) { str.append(QString("
").arg((i==0 ? 'A': 'B'))); } str.append(""); - for (i=0; igetCapability(FlightPhases); i++) { + for (i=0; igetCapability(FlightPhases); i++) { PhaseData *pd1=&g_model1->phaseData[i]; PhaseData *pd2=&g_model2->phaseData[i]; str.append("").arg(pd1->name).arg(color)); - if (GetEepromInterface()->getCapability(GvarsFlightPhases)) { + if (GetCurrentFirmware()->getCapability(GvarsFlightPhases)) { for (k=0; kgvars[k],pd2->gvars[k]); if (pd1->gvars[k]<=1024) { @@ -383,7 +383,7 @@ void compareDialog::printPhases() } } } - for (k=0; kgetCapability(RotaryEncoders); k++) { + for (k=0; kgetCapability(RotaryEncoders); k++) { color=getColor1(pd1->rotaryEncoders[k],pd2->rotaryEncoders[k]); if (pd1->rotaryEncoders[k]<=1024) { str.append(QString(""); @@ -409,7 +409,7 @@ void compareDialog::printPhases() str.append(QString("").arg(getInputStr(*g_model1, i))); } str.append(""); - for (i=0; igetCapability(FlightPhases); i++) { + for (i=0; igetCapability(FlightPhases); i++) { PhaseData *pd1=&g_model1->phaseData[i]; PhaseData *pd2=&g_model2->phaseData[i]; str.append("
 ").arg(gvarnum)+tr("Gvars")+"").arg(GetEepromInterface()->getCapability(RotaryEncoders))+tr("Rot. Enc.")+"").arg(GetCurrentFirmware()->getCapability(RotaryEncoders))+tr("Rot. Enc.")+"
"+tr("Flight mode name")+"RE%1
"+tr("FM")+QString("%1 ").arg(i)); color=getColor1(pd1->name,pd2->name); str.append(QString("%1%1").arg(pd1->rotaryEncoders[k]).arg(color)+"%1
"+tr("FM")+QString("%1 ").arg(i)); @@ -434,32 +434,32 @@ void compareDialog::printPhases() } str.append("
"); - if ((gvars==1 && GetEepromInterface()->getCapability(GvarsFlightPhases)) || GetEepromInterface()->getCapability(RotaryEncoders)) { + if ((gvars==1 && GetCurrentFirmware()->getCapability(GvarsFlightPhases)) || GetCurrentFirmware()->getCapability(RotaryEncoders)) { str.append("
"); str.append(""); - if (GetEepromInterface()->getCapability(GvarsFlightPhases)) { + if (GetCurrentFirmware()->getCapability(GvarsFlightPhases)) { str.append(QString(""); } - if (GetEepromInterface()->getCapability(RotaryEncoders)) { - str.append(QString(""); + if (GetCurrentFirmware()->getCapability(RotaryEncoders)) { + str.append(QString(""); } str.append(""); - if (GetEepromInterface()->getCapability(GvarsFlightPhases)) { + if (GetCurrentFirmware()->getCapability(GvarsFlightPhases)) { for (i=0; iGV%1
%2").arg(i+1).arg(g_model2->gvars_names[i])); } } - for (i=0; igetCapability(RotaryEncoders); i++) { + for (i=0; igetCapability(RotaryEncoders); i++) { str.append(QString("
").arg((i==0 ? 'A': 'B'))); } str.append(""); - for (i=0; igetCapability(FlightPhases); i++) { + for (i=0; igetCapability(FlightPhases); i++) { PhaseData *pd1=&g_model1->phaseData[i]; PhaseData *pd2=&g_model2->phaseData[i]; str.append("").arg(pd2->name).arg(color)); - if (GetEepromInterface()->getCapability(GvarsFlightPhases)) { + if (GetCurrentFirmware()->getCapability(GvarsFlightPhases)) { for (k=0; kgvars[k],pd2->gvars[k]); if (pd2->gvars[k]<=1024) { @@ -472,7 +472,7 @@ void compareDialog::printPhases() } } } - for (k=0; kgetCapability(RotaryEncoders); k++) { + for (k=0; kgetCapability(RotaryEncoders); k++) { color=getColor1(pd1->rotaryEncoders[k],pd2->rotaryEncoders[k]); if (pd2->rotaryEncoders[k]<=1024) { str.append(QString(""); @@ -497,14 +497,14 @@ void compareDialog::printLimits() QString str = "
 ").arg(gvarnum)+tr("Gvars")+"").arg(GetEepromInterface()->getCapability(RotaryEncoders))+tr("Rot. Enc.")+"").arg(GetCurrentFirmware()->getCapability(RotaryEncoders))+tr("Rot. Enc.")+"
"+tr("Flight mode name")+"RE%1
"+tr("FM")+QString("%1 ").arg(i)); color=getColor1(pd1->name,pd2->name); str.append(QString("%1%1").arg(pd2->rotaryEncoders[k]).arg(color)+"
"; str.append(""); str.append(""); str.append("

"+tr("Limits")+"

"); - if (GetEepromInterface()->getCapability(HasChNames)) { + if (GetCurrentFirmware()->getCapability(HasChNames)) { str.append(""); } else { str.append(""); } - for(int i=0; igetCapability(Outputs); i++) { + for(int i=0; igetCapability(Outputs); i++) { str.append(""); - if (GetEepromInterface()->getCapability(HasChNames)) { + if (GetCurrentFirmware()->getCapability(HasChNames)) { QString name1=g_model1->limitData[i].name; QString name2=g_model2->limitData[i].name; color=getColor1(name1,name2); @@ -529,9 +529,9 @@ void compareDialog::printLimits() str.append("
"+tr("Name")+""+tr("Offset")+""+tr("Min")+""+tr("Max")+""+tr("Invert")+"
"+tr("Offset")+""+tr("Min")+""+tr("Max")+""+tr("Invert")+"
"); str.append(""); - for(int i=0; igetCapability(Outputs); i++) { + for(int i=0; igetCapability(Outputs); i++) { str.append(""); - if (GetEepromInterface()->getCapability(HasChNames)) { + if (GetCurrentFirmware()->getCapability(HasChNames)) { QString name1=g_model1->limitData[i].name; QString name2=g_model2->limitData[i].name; color=getColor2(name1,name2); @@ -562,12 +562,12 @@ void compareDialog::printGvars() QString color; int gvars=0; int gvarnum=0; - if ((GetCurrentFirmwareVariant() & GVARS_VARIANT ) || (!GetEepromInterface()->getCapability(HasVariants) && GetEepromInterface()->getCapability(Gvars))) { + if ((GetCurrentFirmwareVariant() & GVARS_VARIANT ) || (!GetCurrentFirmware()->getCapability(HasVariants) && GetCurrentFirmware()->getCapability(Gvars))) { gvars=1; - gvarnum=GetEepromInterface()->getCapability(Gvars); + gvarnum=GetCurrentFirmware()->getCapability(Gvars); } - if (!GetEepromInterface()->getCapability(GvarsFlightPhases) && (gvars==1 && GetEepromInterface()->getCapability(Gvars))) { + if (!GetCurrentFirmware()->getCapability(GvarsFlightPhases) && (gvars==1 && GetCurrentFirmware()->getCapability(Gvars))) { QString str = "
"+tr("Offset")+""+tr("Min")+""+tr("Max")+""+tr("Invert")+"
"; str.append(""); str.append("

"+tr("Global Variables")+"

"); @@ -614,7 +614,7 @@ void compareDialog::printExpos() QString str = "

"; str.append(tr("Expo/Dr Settings")); str.append("

"); - for(uint8_t i=0; igetCapability(Outputs); i++) { + for(uint8_t i=0; igetCapability(Outputs); i++) { if (ChannelHasExpo(g_model1->expoData, i) || ChannelHasExpo(g_model2->expoData, i)) { str.append(""); str.append("
"); @@ -651,12 +651,12 @@ void compareDialog::printExpos() str += tr("Weight") + QString("%1").arg(getGVarString(ed->weight)).rightJustified(6, ' '); str += ed->curve.toString().replace("<", "<").replace(">", ">"); - if (GetEepromInterface()->getCapability(FlightPhases)) { + if (GetCurrentFirmware()->getCapability(FlightPhases)) { if(ed->phases) { - if (ed->phases!=(unsigned int)(1<getCapability(FlightPhases))-1) { + if (ed->phases!=(unsigned int)(1<getCapability(FlightPhases))-1) { int mask=1; int first=0; - for (int i=0; igetCapability(FlightPhases);i++) { + for (int i=0; igetCapability(FlightPhases);i++) { if (!(ed->phases & mask)) { first++; } @@ -669,7 +669,7 @@ void compareDialog::printExpos() } mask=1; first=1; - for (int j=0; jgetCapability(FlightPhases);j++) { + for (int j=0; jgetCapability(FlightPhases);j++) { if (!(ed->phases & mask)) { PhaseData *pd = &g_model1->phaseData[j]; if (!first) { @@ -729,12 +729,12 @@ void compareDialog::printExpos() str += tr("Weight") + QString("%1").arg(getGVarString(ed->weight)).rightJustified(6, ' '); str += ed->curve.toString().replace("<", "<").replace(">", ">"); - if (GetEepromInterface()->getCapability(FlightPhases)) { + if (GetCurrentFirmware()->getCapability(FlightPhases)) { if(ed->phases) { - if (ed->phases!=(unsigned int)(1<getCapability(FlightPhases))-1) { + if (ed->phases!=(unsigned int)(1<getCapability(FlightPhases))-1) { int mask=1; int first=0; - for (int i=0; igetCapability(FlightPhases);i++) { + for (int i=0; igetCapability(FlightPhases);i++) { if (!(ed->phases & mask)) { first++; } @@ -747,7 +747,7 @@ void compareDialog::printExpos() } mask=1; first=1; - for (int j=0; jgetCapability(FlightPhases);j++) { + for (int j=0; jgetCapability(FlightPhases);j++) { if (!(ed->phases & mask)) { PhaseData *pd = &g_model2->phaseData[j]; if (!first) { @@ -784,15 +784,15 @@ void compareDialog::printMixers() QString str = "

"; str.append(tr("Mixers")); str.append("

"); - float scale=GetEepromInterface()->getCapability(SlowScale); + float scale=GetCurrentFirmware()->getCapability(SlowScale); bool mixused[64]={false}; bool mixused2[64]={false}; - for(uint8_t i=1; i<=GetEepromInterface()->getCapability(Outputs); i++) { + for(uint8_t i=1; i<=GetCurrentFirmware()->getCapability(Outputs); i++) { if (ChannelHasMix(g_model1->mixData, i) || ChannelHasMix(g_model2->mixData, i)) { str.append(""); str.append("
"); str.append(""); - for (int j=0; jgetCapability(Mixes); j++) { + for (int j=0; jgetCapability(Mixes); j++) { if (g_model1->mixData[j].destCh==i) { int mix=ModelHasMix(g_model2->mixData, g_model1->mixData[j], mixused); if (mix>-1) { @@ -827,12 +827,12 @@ void compareDialog::printMixers() if (md->delayDown || md->delayUp) str += tr(" Delay(u%1:d%2)").arg(md->delayUp/scale).arg(md->delayDown/scale); if (md->speedDown || md->speedUp) str += tr(" Slow(u%1:d%2)").arg(md->speedUp/scale).arg(md->speedDown/scale); if (md->mixWarn) str += " "+tr("Warn")+QString("(%1)").arg(md->mixWarn); - if (GetEepromInterface()->getCapability(FlightPhases)) { + if (GetCurrentFirmware()->getCapability(FlightPhases)) { if(md->phases) { - if (md->phases!=(unsigned int)(1<getCapability(FlightPhases))-1) { + if (md->phases!=(unsigned int)(1<getCapability(FlightPhases))-1) { int mask=1; int first=0; - for (int i=0; igetCapability(FlightPhases);i++) { + for (int i=0; igetCapability(FlightPhases);i++) { if (!(md->phases & mask)) { first++; } @@ -845,7 +845,7 @@ void compareDialog::printMixers() } mask=1; first=1; - for (int j=0; jgetCapability(FlightPhases);j++) { + for (int j=0; jgetCapability(FlightPhases);j++) { if (!(md->phases & mask)) { PhaseData *pd = &g_model1->phaseData[j]; if (!first) { @@ -870,7 +870,7 @@ void compareDialog::printMixers() str.append("").arg(i,2,10,QChar('0'))); str.append("
"+tr("CH")+QString("%1"); str.append(""); - for (int j=0; jgetCapability(Mixes); j++) { + for (int j=0; jgetCapability(Mixes); j++) { if (g_model2->mixData[j].destCh==i) { int mix=ModelHasMix(g_model1->mixData, g_model2->mixData[j],mixused2); if (mix>-1) { @@ -906,12 +906,12 @@ void compareDialog::printMixers() if (md->delayDown || md->delayUp) str += tr(" Delay(u%1:d%2)").arg(md->delayUp/scale).arg(md->delayDown/scale); if (md->speedDown || md->speedUp) str += tr(" Slow(u%1:d%2)").arg(md->speedUp/scale).arg(md->speedDown/scale); if (md->mixWarn) str += " "+tr("Warn")+QString("(%1)").arg(md->mixWarn); - if (GetEepromInterface()->getCapability(FlightPhases)) { + if (GetCurrentFirmware()->getCapability(FlightPhases)) { if(md->phases) { - if (md->phases!=(unsigned int)(1<getCapability(FlightPhases))-1) { + if (md->phases!=(unsigned int)(1<getCapability(FlightPhases))-1) { int mask=1; int first=0; - for (int i=0; igetCapability(FlightPhases);i++) { + for (int i=0; igetCapability(FlightPhases);i++) { if (!(md->phases & mask)) { first++; } @@ -924,7 +924,7 @@ void compareDialog::printMixers() } mask=1; first=1; - for (int j=0; jgetCapability(FlightPhases);j++) { + for (int j=0; jgetCapability(FlightPhases);j++) { if (!(md->phases & mask)) { PhaseData *pd = &g_model2->phaseData[j]; if (!first) { @@ -1040,7 +1040,7 @@ void compareDialog::printSwitches() QString str = "
"; str.append(""); str.append(""); str.append("

"+tr("Logical Switches")+"

"); - for (int i=0; igetCapability(LogicalSwitches); i++) { + for (int i=0; igetCapability(LogicalSwitches); i++) { QString sw1 = g_model1->customSw[i].toString(*g_model1); QString sw2 = g_model2->customSw[i].toString(*g_model2); if (!(sw1.isEmpty() && sw2.isEmpty())) { @@ -1083,7 +1083,7 @@ void compareDialog::printFSwitches() str.append(""); str.append(""); str.append(""); - for(int i=0; igetCapability(CustomFunctions); i++) + for(int i=0; igetCapability(CustomFunctions); i++) { if (g_model1->funcSw[i].swtch.type || g_model2->funcSw[i].swtch.type) { if ((g_model1->funcSw[i].swtch != g_model2->funcSw[i].swtch) || (g_model1->funcSw[i].func!=g_model2->funcSw[i].func) || (g_model1->funcSw[i].adjustMode!=g_model2->funcSw[i].adjustMode) || (g_model1->funcSw[i].param!=g_model2->funcSw[i].param)) { @@ -1212,10 +1212,10 @@ void compareDialog::printFrSky() str.append(""); str.append("
"+tr("Repeat")+""+tr("Enable")+"
"+QString::number(fd1->rssiAlarms[1].value,10)+"
"); #if 0 - if (GetEepromInterface()->getCapability(TelemetryBars) || GetEepromInterface()->getCapability(TelemetryCSFields)) { - int cols=GetEepromInterface()->getCapability(TelemetryColsCSFields); + if (GetCurrentFirmware()->getCapability(TelemetryBars) || GetCurrentFirmware()->getCapability(TelemetryCSFields)) { + int cols=GetCurrentFirmware()->getCapability(TelemetryColsCSFields); if (cols==0) cols=2; - for (int j=0; jgetCapability(TelemetryCSFields)/(4*cols); j++) { + for (int j=0; jgetCapability(TelemetryCSFields)/(4*cols); j++) { QString tcols; QString cwidth; QString swidth; @@ -1331,10 +1331,10 @@ void compareDialog::printFrSky() str.append("
"+QString::number(fd2->rssiAlarms[1].value,10)+"

"); #if 0 - if (GetEepromInterface()->getCapability(TelemetryBars) || GetEepromInterface()->getCapability(TelemetryCSFields)) { - int cols=GetEepromInterface()->getCapability(TelemetryColsCSFields); + if (GetCurrentFirmware()->getCapability(TelemetryBars) || GetCurrentFirmware()->getCapability(TelemetryCSFields)) { + int cols=GetCurrentFirmware()->getCapability(TelemetryColsCSFields); if (cols==0) cols=2; - for (int j=0; jgetCapability(TelemetryCSFields)/(4*cols); j++) { + for (int j=0; jgetCapability(TelemetryCSFields)/(4*cols); j++) { QString tcols; QString cwidth; QString swidth; diff --git a/companion/src/eeprominterface.cpp b/companion/src/eeprominterface.cpp index bc4e43b05..868e107ce 100644 --- a/companion/src/eeprominterface.cpp +++ b/companion/src/eeprominterface.cpp @@ -592,7 +592,7 @@ QString LogicalSwitchData::toString(const ModelData & model) result += RawSwitch(andsw).toString(); } - if (GetEepromInterface()->getCapability(LogicalSwitchesExt)) { + if (GetCurrentFirmware()->getCapability(LogicalSwitchesExt)) { if (delay) result += QObject::tr(" Delay %1 sec").arg(delay/10.0); if (duration) @@ -644,7 +644,7 @@ QStringList FuncSwData::toStringList() result << item.toString(); } else if ((func==FuncPlayPrompt) || (func==FuncPlayBoth)) { - if ( GetEepromInterface()->getCapability(VoicesAsNumbers)) { + if ( GetCurrentFirmware()->getCapability(VoicesAsNumbers)) { result << QString("%1").arg(param); } else { result << paramarm; @@ -774,7 +774,7 @@ QString FuncSwData::paramToString() return item.toString(); } else if ((func==FuncPlayPrompt) || (func==FuncPlayBoth)) { - if ( GetEepromInterface()->getCapability(VoicesAsNumbers)) { + if ( GetCurrentFirmware()->getCapability(VoicesAsNumbers)) { return QString("%1").arg(param); } else { return paramarm; @@ -839,7 +839,7 @@ GeneralSettings::GeneralSettings() stickMode = g.profile[g.id()].defaultMode(); QString t_calib=g.profile[g.id()].stickPotCalib(); - int potsnum=GetEepromInterface()->getCapability(Pots); + int potsnum=GetCurrentFirmware()->getCapability(Pots); if (t_calib.isEmpty()) { return; } @@ -1186,13 +1186,13 @@ ModelData ModelData::removeGlobalVars() QList eepromInterfaces; void RegisterEepromInterfaces() { - eepromInterfaces.push_back(new OpenTxInterface(BOARD_STOCK)); - eepromInterfaces.push_back(new OpenTxInterface(BOARD_M128)); - eepromInterfaces.push_back(new OpenTxInterface(BOARD_GRUVIN9X)); - eepromInterfaces.push_back(new OpenTxInterface(BOARD_SKY9X)); - eepromInterfaces.push_back(new OpenTxInterface(BOARD_TARANIS)); + eepromInterfaces.push_back(new OpenTxEepromInterface(BOARD_STOCK)); + eepromInterfaces.push_back(new OpenTxEepromInterface(BOARD_M128)); + eepromInterfaces.push_back(new OpenTxEepromInterface(BOARD_GRUVIN9X)); + eepromInterfaces.push_back(new OpenTxEepromInterface(BOARD_SKY9X)); + eepromInterfaces.push_back(new OpenTxEepromInterface(BOARD_TARANIS)); if (g.rev4aSupport()) - eepromInterfaces.push_back(new OpenTxInterface(BOARD_TARANIS_REV4a)); + eepromInterfaces.push_back(new OpenTxEepromInterface(BOARD_TARANIS_REV4a)); eepromInterfaces.push_back(new Gruvin9xInterface(BOARD_STOCK)); eepromInterfaces.push_back(new Gruvin9xInterface(BOARD_GRUVIN9X)); eepromInterfaces.push_back(new Ersky9xInterface()); @@ -1209,25 +1209,17 @@ void UnregisterEepromInterfaces() OpenTxEepromCleanup(); } -QList firmwares; +QList firmwares; FirmwareVariant default_firmware_variant; FirmwareVariant current_firmware_variant; -void RegisterFirmwares() -{ - RegisterOpen9xFirmwares(); - default_firmware_variant = GetFirmwareVariant("opentx-9x-heli-templates-en"); - current_firmware_variant = default_firmware_variant; - RegisterEepromInterfaces(); -} - void UnregisterFirmwares() { - UnregisterEepromInterfaces(); - UnregisterOpen9xFirmwares(); + foreach (FirmwareInterface * f, firmwares) { + delete f; + } } - bool LoadEeprom(RadioData &radioData, const uint8_t *eeprom, const int size) { foreach(EEPROMInterface *eepromInterface, eepromInterfaces) { @@ -1264,7 +1256,7 @@ FirmwareVariant GetFirmwareVariant(QString id) { FirmwareVariant result; - foreach(FirmwareInfo * firmware, firmwares) { + foreach(FirmwareInterface * firmware, firmwares) { if (id.contains(firmware->id+"-") || (!id.contains("-") && id.contains(firmware->id))) { result.id = id; result.firmware = firmware; @@ -1276,13 +1268,13 @@ FirmwareVariant GetFirmwareVariant(QString id) return default_firmware_variant; } -void FirmwareInfo::addOption(const char *option, QString tooltip, uint32_t variant) +void FirmwareInterface::addOption(const char *option, QString tooltip, uint32_t variant) { Option options[] = { { option, tooltip, variant }, { NULL } }; addOptions(options); } -unsigned int FirmwareInfo::getVariant(const QString & variantId) +unsigned int FirmwareInterface::getVariant(const QString & variantId) { unsigned int variant = variantBase; QStringList options = variantId.mid(id.length()+1).split("-", QString::SkipEmptyParts); @@ -1298,17 +1290,17 @@ unsigned int FirmwareInfo::getVariant(const QString & variantId) return variant; } -void FirmwareInfo::addLanguage(const char *lang) +void FirmwareInterface::addLanguage(const char *lang) { languages.push_back(lang); } -void FirmwareInfo::addTTSLanguage(const char *lang) +void FirmwareInterface::addTTSLanguage(const char *lang) { ttslanguages.push_back(lang); } -void FirmwareInfo::addOptions(Option options[]) +void FirmwareInterface::addOptions(Option options[]) { QList