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("
| " + tr("Channel") + " | " \ - "" + tr("Offset") + " | " \ - "" + tr("Min") + " | " \ - "" + tr("Max") + " | " \ - "" + tr("Invert") + " | " \ - "" + tr("Channel") + " | " \ + "" + tr("Subtrim") + " | " \ + "" + tr("Min") + " | " \ + "" + tr("Max") + " | " \ + "" + tr("Direct") + " | "); + if (IS_HORUS_OR_TARANIS(firmware->getBoard())) + columns.append("" + tr("Curve") + " | "); + if (firmware->getCapability(PPMCenter)) + columns.append("" + tr("PPM") + " | "); + if (firmware->getCapability(SYMLimits)) + columns.append("" + tr("Linear") + " | "); + columns.append(""); for (int i=0; i
| "); 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(" | "); + } + if (firmware->getCapability(PPMCenter)) { + columns.append(""); + COMPARE(modelPrinter->printOutputPpmCenter(i)); + columns.append(" | "); + } + if (firmware->getCapability(SYMLimits)) { + columns.append(""); + COMPARE(modelPrinter->printOutputSymetrical(i)); + columns.append(" | "); + } + columns.append(""); } columns.append("