diff --git a/companion/src/modelprinter.cpp b/companion/src/modelprinter.cpp index d1b2be58d..f0887a5e6 100644 --- a/companion/src/modelprinter.cpp +++ b/companion/src/modelprinter.cpp @@ -712,3 +712,54 @@ QString ModelPrinter::printGlobalVarPopup(int idx) return (model.gvarData[idx].popup ? "Y" : "N" ); } +QString ModelPrinter::printOutputValueGVar(int val) +{ + QString result = ""; + if (abs(val) > 10000) { + if (val < 0) + result = "-"; + result.append(RawSource(SOURCE_TYPE_GVAR, abs(val)-10001).toString(&model)); + } + else { + if (val >= 0) + result = "+"; + result.append(QString::number((qreal)val/10, 'f', 1) + "%"); + } + return result; +} + +QString ModelPrinter::printOutputOffset(int idx) +{ + return printOutputValueGVar(model.limitData[idx].offset); +} + +QString ModelPrinter::printOutputMin(int idx) +{ + return printOutputValueGVar(model.limitData[idx].min); +} + +QString ModelPrinter::printOutputMax(int idx) +{ + return printOutputValueGVar(model.limitData[idx].max); +} + +QString ModelPrinter::printOutputRevert(int idx) +{ + return model.limitData[idx].revertToString(); +} + +QString ModelPrinter::printOutputPpmCenter(int idx) +{ + return QString::number(model.limitData[idx].ppmCenter + 1500); +} + +QString ModelPrinter::printOutputCurve(int idx) +{ + return CurveReference(CurveReference::CURVE_REF_CUSTOM, model.limitData[idx].curve.value).toString(&model, false); +} + +QString ModelPrinter::printOutputSymetrical(int idx) +{ + return (model.limitData[idx].symetrical ? "Y": "N"); +} + diff --git a/companion/src/modelprinter.h b/companion/src/modelprinter.h index d3d604081..861a05445 100644 --- a/companion/src/modelprinter.h +++ b/companion/src/modelprinter.h @@ -87,6 +87,14 @@ class ModelPrinter: public QObject QString printGlobalVarMin(int idx); QString printGlobalVarMax(int idx); QString printGlobalVarPopup(int idx); + QString printOutputValueGVar(int val); + QString printOutputOffset(int idx); + QString printOutputMin(int idx); + QString printOutputMax(int idx); + QString printOutputRevert(int idx); + QString printOutputCurve(int idx); + QString printOutputPpmCenter(int idx); + QString printOutputSymetrical(int idx); private: Firmware * firmware; diff --git a/companion/src/multimodelprinter.cpp b/companion/src/multimodelprinter.cpp index dd60a33b7..b5b45a9d9 100644 --- a/companion/src/multimodelprinter.cpp +++ b/companion/src/multimodelprinter.cpp @@ -162,7 +162,7 @@ QString MultiModelPrinter::print(QTextDocument * document) str += printFlightModes(); str += printInputs(); str += printMixers(); - str += printLimits(); + str += printOutputs(); str += printCurves(document); if (firmware->getCapability(Gvars) && !firmware->getCapability(GvarsFlightModes)) str += printGvars(); @@ -390,18 +390,24 @@ QString MultiModelPrinter::printFlightModes() return str; } -QString MultiModelPrinter::printLimits() +QString MultiModelPrinter::printOutputs() { - QString str = printTitle(tr("Limits")); + QString str = printTitle(tr("Outputs")); MultiColumns columns(modelPrinterMap.size()); columns.append("" \ "" \ - " " \ - " " \ - " " \ - " " \ - " " \ - ""); + "" \ + "" \ + "" \ + "" \ + ""); + if (IS_HORUS_OR_TARANIS(firmware->getBoard())) + columns.append(" "); + if (firmware->getCapability(PPMCenter)) + columns.append(" "); + if (firmware->getCapability(SYMLimits)) + columns.append(" "); + columns.append(""); for (int i=0; igetCapability(Outputs); i++) { int count = 0; for (int k=0; k < modelPrinterMap.size(); k++) @@ -411,15 +417,30 @@ QString MultiModelPrinter::printLimits() columns.append(""); - + COMPARE(modelPrinter->printOutputRevert(i)); + columns.append(""); + if (IS_HORUS_OR_TARANIS(firmware->getBoard())) { + columns.append(""); + } + if (firmware->getCapability(PPMCenter)) { + columns.append(""); + } + if (firmware->getCapability(SYMLimits)) { + columns.append(""); + } + columns.append(""); } columns.append("
" + tr("Channel") + "" + tr("Offset") + "" + tr("Min") + "" + tr("Max") + "" + tr("Invert") + "
" + tr("Channel") + "" + tr("Subtrim") + "" + tr("Min") + "" + tr("Max") + "" + tr("Direct") + "" + tr("Curve") + "" + tr("PPM") + "" + tr("Linear") + "
"); COMPARE(modelPrinter->printChannelName(i)); columns.append(""); - COMPARE(model->limitData[i].offsetToString()); + COMPARE(modelPrinter->printOutputOffset(i)); columns.append(""); - COMPARE(model->limitData[i].minToString()); + COMPARE(modelPrinter->printOutputMin(i)); columns.append(""); - COMPARE(model->limitData[i].maxToString()); + COMPARE(modelPrinter->printOutputMax(i)); columns.append(""); - COMPARE(model->limitData[i].revertToString()); - columns.append("
"); + COMPARE(modelPrinter->printOutputCurve(i)); + columns.append(""); + COMPARE(modelPrinter->printOutputPpmCenter(i)); + columns.append(""); + COMPARE(modelPrinter->printOutputSymetrical(i)); + columns.append("
"); str.append(columns.print()); diff --git a/companion/src/multimodelprinter.h b/companion/src/multimodelprinter.h index a896f9d6e..c9dd64397 100644 --- a/companion/src/multimodelprinter.h +++ b/companion/src/multimodelprinter.h @@ -66,7 +66,7 @@ class MultiModelPrinter: public QObject QString printSetup(); QString printHeliSetup(); QString printFlightModes(); - QString printLimits(); + QString printOutputs(); QString printInputs(); QString printMixers(); QString printCurves(QTextDocument * document);