1
0
Fork 0
mirror of https://github.com/opentx/opentx.git synced 2025-07-24 16:55:20 +03:00

Refactoring FirmwareInterface / EepromInterface

This commit is contained in:
bsongis 2014-04-18 16:24:02 +02:00
parent 7dd9e2d1e2
commit c5ac19a054
51 changed files with 810 additions and 1143 deletions

View file

@ -38,7 +38,7 @@ printDialog::printDialog(QWidget *parent, GeneralSettings *gg, ModelData *gm, QS
}
printSetup();
int gvars=0;
if (GetEepromInterface()->getCapability(HasVariants)) {
if (GetCurrentFirmware()->getCapability(HasVariants)) {
if ((GetCurrentFirmwareVariant() & GVARS_VARIANT)) {
gvars=1;
}
@ -115,7 +115,7 @@ QString printDialog::fv(const QString name, const QString value)
void printDialog::printSetup()
{
int gvars=0;
if (GetEepromInterface()->getCapability(HasVariants)) {
if (GetCurrentFirmware()->getCapability(HasVariants)) {
if ((GetCurrentFirmwareVariant() & GVARS_VARIANT)) {
gvars=1;
}
@ -123,7 +123,7 @@ void printDialog::printSetup()
gvars=1;
}
QString str = "<a name=1></a><table border=1 cellspacing=0 cellpadding=3 width=\"100%\">";
str.append(QString("<tr><td colspan=%1 ><table border=0 width=\"100%\"><tr><td><h1>").arg((GetEepromInterface()->getCapability(FlightPhases) && gvars==0) ? 2 : 1));
str.append(QString("<tr><td colspan=%1 ><table border=0 width=\"100%\"><tr><td><h1>").arg((GetCurrentFirmware()->getCapability(FlightPhases) && gvars==0) ? 2 : 1));
str.append(g_model->name);
str.append("&nbsp;(");
str.append(eepromInterface->getName());
@ -155,15 +155,15 @@ QString printDialog::printPhases()
{
int gvars=0;
int gvarnum=0;
if ((GetCurrentFirmwareVariant() & GVARS_VARIANT ) || (!GetEepromInterface()->getCapability(HasVariants) && GetEepromInterface()->getCapability(Gvars))) {
if (GetEepromInterface()->getCapability(GvarsFlightPhases)) {
if ((GetCurrentFirmwareVariant() & GVARS_VARIANT ) || (!GetCurrentFirmware()->getCapability(HasVariants) && GetCurrentFirmware()->getCapability(Gvars))) {
if (GetCurrentFirmware()->getCapability(GvarsFlightPhases)) {
gvars=1;
gvarnum=GetEepromInterface()->getCapability(Gvars);
gvarnum=GetCurrentFirmware()->getCapability(Gvars);
}
}
QString str="";
str.append(QString("<table border=1 cellspacing=0 cellpadding=3 width=\"100%\"><tr><td colspan=%1><h2>").arg(gvars==0 ? 8+GetEepromInterface()->getCapability(RotaryEncoders) : 8+gvarnum+GetEepromInterface()->getCapability(RotaryEncoders)));
str.append(QString("<table border=1 cellspacing=0 cellpadding=3 width=\"100%\"><tr><td colspan=%1><h2>").arg(gvars==0 ? 8+GetCurrentFirmware()->getCapability(RotaryEncoders) : 8+gvarnum+GetCurrentFirmware()->getCapability(RotaryEncoders)));
str.append(tr("Flight modes Settings"));
str.append("</h2></td></tr><tr><td style=\"border-style:none;\">&nbsp;</td><td colspan=2 align=center><b>");
str.append(tr("Fades")+"</b></td>");
@ -171,8 +171,8 @@ QString printDialog::printPhases()
if (gvars) {
str.append(QString("<td colspan=%1 align=center><b>").arg(gvarnum)+tr("Gvars")+"</b></td>");
}
if (GetEepromInterface()->getCapability(RotaryEncoders)) {
str.append(QString("<td colspan=%1 align=center><b>").arg(GetEepromInterface()->getCapability(RotaryEncoders))+tr("Rot.Enc.")+"</b></td>");
if (GetCurrentFirmware()->getCapability(RotaryEncoders)) {
str.append(QString("<td colspan=%1 align=center><b>").arg(GetCurrentFirmware()->getCapability(RotaryEncoders))+tr("Rot.Enc.")+"</b></td>");
}
str.append("<td rowspan=2 align=\"center\" valign=\"bottom\"><b>"+tr("Switch")+"</b></td></tr><tr><td align=center width=\"90\"><b>"+tr("Flight mode name"));
str.append("</b></td><td align=center width=\"30\"><b>"+tr("IN")+"</b></td><td align=center width=\"30\"><b>"+tr("OUT")+"</b></td>");
@ -184,11 +184,11 @@ QString printDialog::printPhases()
str.append(QString("<td width=\"40\" align=\"center\"><b>GV%1</b><br>%2</td>").arg(i+1).arg(g_model->gvars_names[i]));
}
}
for (int i=0; i<GetEepromInterface()->getCapability(RotaryEncoders); i++) {
for (int i=0; i<GetCurrentFirmware()->getCapability(RotaryEncoders); i++) {
str.append(QString("<td align=\"center\"><b>RE%1</b></td>").arg((i==0 ? 'A': 'B')));
}
str.append("</tr>");
for (int i=0; i<GetEepromInterface()->getCapability(FlightPhases); i++) {
for (int i=0; i<GetCurrentFirmware()->getCapability(FlightPhases); i++) {
PhaseData *pd=&g_model->phaseData[i];
str.append("<tr><td><b>"+tr("FM")+QString("%1</b> <font size=+1 face='Courier New' color=green>%2</font></td><td width=\"30\" align=\"right\"><font size=+1 face='Courier New' color=green>%3</font></td><td width=\"30\" align=\"right\"><font size=+1 face='Courier New' color=green>%4</font></td>").arg(i).arg(pd->name).arg(pd->fadeIn).arg(pd->fadeOut));
for (int k=0; k<4; k++) {
@ -210,7 +210,7 @@ QString printDialog::printPhases()
}
}
}
for (int k=0; k<GetEepromInterface()->getCapability(RotaryEncoders); k++) {
for (int k=0; k<GetCurrentFirmware()->getCapability(RotaryEncoders); k++) {
if (pd->rotaryEncoders[k]<=1024) {
str.append(QString("<td align=\"right\"><font size=+1 face='Courier New' color=green>%1").arg(pd->rotaryEncoders[k])+"</font></td>");
}
@ -264,12 +264,12 @@ void printDialog::printExpo()
str += tr("Weight") + QString("%1").arg(getGVarString(ed->weight,true)).rightJustified(6, ' ');
str += ed->curve.toString().replace("<", "&lt;").replace(">", "&gt;");
if (GetEepromInterface()->getCapability(FlightPhases)) {
if (GetCurrentFirmware()->getCapability(FlightPhases)) {
if(ed->phases) {
if (ed->phases!=(unsigned int)(1<<GetEepromInterface()->getCapability(FlightPhases))-1) {
if (ed->phases!=(unsigned int)(1<<GetCurrentFirmware()->getCapability(FlightPhases))-1) {
int mask=1;
int first=0;
for (int i=0; i<GetEepromInterface()->getCapability(FlightPhases);i++) {
for (int i=0; i<GetCurrentFirmware()->getCapability(FlightPhases);i++) {
if (!(ed->phases & mask)) {
first++;
}
@ -282,7 +282,7 @@ void printDialog::printExpo()
}
mask=1;
first=1;
for (int j=0; j<GetEepromInterface()->getCapability(FlightPhases);j++) {
for (int j=0; j<GetCurrentFirmware()->getCapability(FlightPhases);j++) {
if (!(ed->phases & mask)) {
PhaseData *pd = &g_model->phaseData[j];
if (!first) {
@ -303,7 +303,7 @@ void printDialog::printExpo()
if (ed->swtch.type)
str += " " + tr("Switch") + QString("(%1)").arg(ed->swtch.toString());
str += ed->curve.toString().replace("<", "&lt;").replace(">", "&gt;");
if (GetEepromInterface()->getCapability(HasExpoNames)) {
if (GetCurrentFirmware()->getCapability(HasExpoNames)) {
QString ExpoName;
ExpoName.append(ed->name);
if (!ExpoName.isEmpty()) {
@ -325,14 +325,14 @@ void printDialog::printMixes()
str.append("</h2></td></tr><tr><td><table border=0 cellspacing=0 cellpadding=3>");
unsigned int lastCHN = 255;
for(int i=0; i<GetEepromInterface()->getCapability(Mixes); i++) {
for(int i=0; i<GetCurrentFirmware()->getCapability(Mixes); i++) {
MixData *md = &g_model->mixData[i];
if(!md->destCh || md->destCh>(unsigned int)GetEepromInterface()->getCapability(Outputs) ) break;
if(!md->destCh || md->destCh>(unsigned int)GetCurrentFirmware()->getCapability(Outputs) ) break;
str.append("<tr><td><font size=+1 face='Courier New'><b>");
if(lastCHN!=md->destCh) {
lastCHN=md->destCh;
QString chname=tr("CH")+QString("%1 ").arg(lastCHN,2,10,QChar('0'));
if (GetEepromInterface()->getCapability(HasChNames)) {
if (GetCurrentFirmware()->getCapability(HasChNames)) {
QString name=g_model->limitData[md->destCh-1].name;
if (!name.isEmpty()) {
name.append(" ");
@ -356,16 +356,16 @@ void printDialog::printMixes()
if (md->carryTrim) str += " " + tr("noTrim");
if (md->sOffset) str += " "+ tr("Offset") + QString(" %1").arg(getGVarString(md->sOffset));
str += md->curve.toString().replace("<", "&lt;").replace(">", "&gt;");
float scale=GetEepromInterface()->getCapability(SlowScale);
float scale=GetCurrentFirmware()->getCapability(SlowScale);
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<<GetEepromInterface()->getCapability(FlightPhases))-1) {
if (md->phases!=(unsigned int)(1<<GetCurrentFirmware()->getCapability(FlightPhases))-1) {
int mask=1;
int first=0;
for (int i=0; i<GetEepromInterface()->getCapability(FlightPhases); i++) {
for (int i=0; i<GetCurrentFirmware()->getCapability(FlightPhases); i++) {
if (!(md->phases & mask)) {
first++;
}
@ -378,7 +378,7 @@ void printDialog::printMixes()
}
mask=1;
first=1;
for (int j=0; j<GetEepromInterface()->getCapability(FlightPhases);j++) {
for (int j=0; j<GetCurrentFirmware()->getCapability(FlightPhases);j++) {
if (!(md->phases & mask)) {
PhaseData *pd = &g_model->phaseData[j];
if (!first) {
@ -396,7 +396,7 @@ void printDialog::printMixes()
}
}
}
if (GetEepromInterface()->getCapability(HasMixerNames)) {
if (GetCurrentFirmware()->getCapability(HasMixerNames)) {
QString MixerName;
MixerName.append(md->name);
if (!MixerName.isEmpty()) {
@ -413,37 +413,37 @@ void printDialog::printLimits()
{
QString str = "<table border=1 cellspacing=0 cellpadding=3 width=\"100%\">";
int numcol;
numcol=(GetEepromInterface()->getCapability(Outputs)+1)>17 ? 17:GetEepromInterface()->getCapability(Outputs)+1;
numcol=(GetCurrentFirmware()->getCapability(Outputs)+1)>17 ? 17:GetCurrentFirmware()->getCapability(Outputs)+1;
str.append(QString("<tr><td colspan=%1><h2>").arg(numcol)+tr("Limits")+"</h2></td></tr>");
str.append("<tr><td>&nbsp;</td>");
if (GetEepromInterface()->getCapability(Outputs)<17) {
for(int i=0; i<GetEepromInterface()->getCapability(Outputs); i++) {
if (GetCurrentFirmware()->getCapability(Outputs)<17) {
for(int i=0; i<GetCurrentFirmware()->getCapability(Outputs); i++) {
str.append(doTC(tr("CH")+QString(" %1").arg(i+1,2,10,QChar('0')),"",true));
}
str.append("</tr>");
if (GetEepromInterface()->getCapability(HasChNames)) {
if (GetCurrentFirmware()->getCapability(HasChNames)) {
str.append("<tr><td><b>"+tr("Name")+"</b></td>");
for(int i=0; i<GetEepromInterface()->getCapability(Outputs); i++) {
for(int i=0; i<GetCurrentFirmware()->getCapability(Outputs); i++) {
str.append(doTR(g_model->limitData[i].name,"green"));
}
}
str.append("<tr><td><b>"+tr("Offset")+"</b></td>");
for(int i=0; i<GetEepromInterface()->getCapability(Outputs); i++) {
for(int i=0; i<GetCurrentFirmware()->getCapability(Outputs); i++) {
str.append(doTR(QString::number((qreal)g_model->limitData[i].offset/10, 'f', 1),"green"));
}
str.append("</tr>");
str.append("<tr><td><b>"+tr("Min")+"</b></td>");
for(int i=0; i<GetEepromInterface()->getCapability(Outputs); i++) {
for(int i=0; i<GetCurrentFirmware()->getCapability(Outputs); i++) {
str.append(doTR(QString::number(g_model->limitData[i].min),"green"));
}
str.append("</tr>");
str.append("<tr><td><b>"+tr("Max")+"</b></td>");
for(int i=0; i<GetEepromInterface()->getCapability(Outputs); i++) {
for(int i=0; i<GetCurrentFirmware()->getCapability(Outputs); i++) {
str.append(doTR(QString::number(g_model->limitData[i].max),"green"));
}
str.append("</tr>");
str.append("<tr><td><b>"+tr("Invert")+"</b></td>");
for(int i=0; i<GetEepromInterface()->getCapability(Outputs); i++) {
for(int i=0; i<GetCurrentFirmware()->getCapability(Outputs); i++) {
str.append(doTR(QString(g_model->limitData[i].revert ? tr("INV") : tr("NOR")),"green"));
}
} else {
@ -451,7 +451,7 @@ void printDialog::printLimits()
str.append(doTC(tr("CH")+QString(" %1").arg(i+1,2,10,QChar('0')),"",true));
}
str.append("</tr>");
if (GetEepromInterface()->getCapability(HasChNames)) {
if (GetCurrentFirmware()->getCapability(HasChNames)) {
str.append("<tr><td><b>"+tr("Name")+"</b></td>");
for(int i=0; i<16; i++) {
str.append(doTR(g_model->limitData[i].name,"green"));
@ -479,33 +479,33 @@ void printDialog::printLimits()
str.append("</tr>");
str.append(QString("<tr><td colspan=%1>&nbsp;").arg(numcol)+"</td></tr>");
str.append("<tr><td>&nbsp;</td>");
for(int i=16; i<GetEepromInterface()->getCapability(Outputs); i++) {
for(int i=16; i<GetCurrentFirmware()->getCapability(Outputs); i++) {
str.append(doTC(tr("CH")+QString(" %1").arg(i+1,2,10,QChar('0')),"",true));
}
str.append("</tr>");
if (GetEepromInterface()->getCapability(HasChNames)) {
if (GetCurrentFirmware()->getCapability(HasChNames)) {
str.append("<tr><td><b>"+tr("Name")+"</b></td>");
for(int i=16; i<GetEepromInterface()->getCapability(Outputs); i++) {
for(int i=16; i<GetCurrentFirmware()->getCapability(Outputs); i++) {
str.append(doTR(g_model->limitData[i].name,"green"));
}
}
str.append("<tr><td><b>"+tr("Offset")+"</b></td>");
for(int i=16; i<GetEepromInterface()->getCapability(Outputs); i++) {
for(int i=16; i<GetCurrentFirmware()->getCapability(Outputs); i++) {
str.append(doTR(QString::number((qreal)g_model->limitData[i].offset/10, 'f', 1),"green"));
}
str.append("</tr>");
str.append("<tr><td><b>"+tr("Min")+"</b></td>");
for(int i=16; i<GetEepromInterface()->getCapability(Outputs); i++) {
for(int i=16; i<GetCurrentFirmware()->getCapability(Outputs); i++) {
str.append(doTR(QString::number(g_model->limitData[i].min),"green"));
}
str.append("</tr>");
str.append("<tr><td><b>"+tr("Max")+"</b></td>");
for(int i=16; i<GetEepromInterface()->getCapability(Outputs); i++) {
for(int i=16; i<GetCurrentFirmware()->getCapability(Outputs); i++) {
str.append(doTR(QString::number(g_model->limitData[i].max),"green"));
}
str.append("</tr>");
str.append("<tr><td><b>"+tr("Invert")+"</b></td>");
for(int i=16; i<GetEepromInterface()->getCapability(Outputs); i++) {
for(int i=16; i<GetCurrentFirmware()->getCapability(Outputs); i++) {
str.append(doTR(QString(g_model->limitData[i].revert ? tr("INV") : tr("NOR")),"green"));
}
}
@ -524,7 +524,7 @@ void printDialog::printCurves()
QString str = "<table border=1 cellspacing=0 cellpadding=3 style=\"page-break-before:auto;\" width=\"100%\"><tr><td><h2>";
str.append(tr("Curves"));
str.append("</h2></td></tr><tr><td>");
int numcurves=GetEepromInterface()->getCapability(NumCurves);
int numcurves=GetCurrentFirmware()->getCapability(NumCurves);
if (numcurves==0) {
numcurves=16;
}
@ -629,7 +629,7 @@ void printDialog::printSwitches()
str.append("<tr><td><h2>"+tr("Logical Switches")+"</h2></td></tr>");
str.append("<tr><td><table border=0 cellspacing=0 cellpadding=3>");
for (int i=0; i<GetEepromInterface()->getCapability(LogicalSwitches); i++) {
for (int i=0; i<GetCurrentFirmware()->getCapability(LogicalSwitches); i++) {
if (g_model->customSw[i].func) {
str.append("<tr>");
if (i<9) {
@ -653,11 +653,11 @@ void printDialog::printGvars()
{
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 = "<table border=1 cellspacing=0 cellpadding=3 width=\"100%\">";
str.append("<tr><td><h2>"+tr("Global Variables")+"</h2></td></tr>");
str.append("<tr><td><table border=1 cellspacing=0 cellpadding=3 width=100>");
@ -691,7 +691,7 @@ void printDialog::printFSwitches()
str.append(doTL(tr("Repeat"), "", true));
str.append(doTL(tr("Enabled"), "", true));
str.append("</tr>");
for(int i=0; i<GetEepromInterface()->getCapability(CustomFunctions); i++) {
for(int i=0; i<GetCurrentFirmware()->getCapability(CustomFunctions); i++) {
if (g_model->funcSw[i].swtch.type!=SWITCH_TYPE_NONE) {
str.append("<tr>");
str.append(doTC(g_model->funcSw[i].swtch.toString(),"green"));
@ -756,10 +756,10 @@ void printDialog::printFrSky()
str.append("<tr><td colspan=2 align=\"Left\"><b>"+tr("Blades")+"</b></td><td colspan=8 align=\"left\">"+fd->blades+"</td></tr>");
str.append("<tr><td colspan=10 align=\"Left\" height=\"4px\"></td></tr></table>");
#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; j<GetEepromInterface()->getCapability(TelemetryCSFields)/(4*cols); j++ ) {
for (int j=0; j<GetCurrentFirmware()->getCapability(TelemetryCSFields)/(4*cols); j++ ) {
if (fd->screens[j].type==0) {
if (cols==2) {
str.append("<table border=1 cellspacing=0 cellpadding=3 width=\"100%\"><tr><td colspan=3 align=\"Left\"><b>"+tr("Custom Telemetry View")+"</b></td></tr>");