From 29cf283f52bc324a6878697969e48e9ccfcaaa00 Mon Sep 17 00:00:00 2001 From: elecpower Date: Fri, 28 Jan 2022 07:07:25 +1100 Subject: [PATCH] Add fs to model print --- companion/src/multimodelprinter.cpp | 52 +++++++++++++++++++++++++++++ companion/src/multimodelprinter.h | 1 + 2 files changed, 53 insertions(+) diff --git a/companion/src/multimodelprinter.cpp b/companion/src/multimodelprinter.cpp index 4c61224fb..c237e48b3 100644 --- a/companion/src/multimodelprinter.cpp +++ b/companion/src/multimodelprinter.cpp @@ -277,6 +277,9 @@ QString MultiModelPrinter::print(QTextDocument * document) if (firmware->getCapability(Timers)) { str.append(printTimers()); } + if (Boards::getCapability(firmware->getBoard(), Board::NumFunctionSwitches)) { + str.append(printFunctionSwitches()); + } str.append(printModules()); if (firmware->getCapability(Heli)) str.append(printHeliSetup()); @@ -937,3 +940,52 @@ QString MultiModelPrinter::printChecklist() } return str; } + +QString MultiModelPrinter::printFunctionSwitches() +{ + QString str; + MultiColumns columns(modelPrinterMap.size()); + columns.appendSectionTableStart(); + + int numFS = Boards::getCapability(firmware->getBoard(), Board::NumFunctionSwitches); + int colwidth = 80 / numFS; + + QStringList headings = { tr("Function Switches") }; + for (int i = 0; i < numFS; i++) { + headings << tr("Switch %1").arg(i + 1); + } + columns.appendRowHeader(headings); + + columns.appendRowStart(tr("Name"), 20); + + for (int i = 0; i < numFS; i++) { + COMPARECELLWIDTH(model->functionSwitchNames[i], colwidth); + } + + columns.appendRowEnd(); + columns.appendRowStart(tr("Type"), 20); + + for (int i = 0; i < numFS; i++) { + COMPARECELLWIDTH(model->funcSwitchConfigToString((unsigned int)i), colwidth); + } + + columns.appendRowEnd(); + columns.appendRowStart(tr("Start"), 20); + + for (int i = 0; i < numFS; i++) { + COMPARECELLWIDTH(model->funcSwitchStartToString((unsigned int)i), colwidth); + } + + columns.appendRowEnd(); + columns.appendRowStart(tr("Group"), 20); + + for (int i = 0; i < numFS; i++) { + COMPARECELLWIDTH((model->functionSwitchGroup >> (2 * i)) & 0x03, colwidth); + } + + columns.appendRowEnd(); + + columns.appendTableEnd(); + str.append(columns.print()); + return str; +} diff --git a/companion/src/multimodelprinter.h b/companion/src/multimodelprinter.h index 4214bc45b..8cc48642c 100644 --- a/companion/src/multimodelprinter.h +++ b/companion/src/multimodelprinter.h @@ -95,6 +95,7 @@ class MultiModelPrinter: public QObject QString printTelemetryScreens(); QString printGlobalFunctions(); QString printChecklist(); + QString printFunctionSwitches(); }; #endif // _MULTIMODELPRINTER_H_