Files
edgetx-gx12/companion/src/modelprinter.h
T
3djc 95c035ed73 Support for non certified firmwares (#6118)
* Support new r9m firmwares

* More future proof, thx Kilrah

* (significant) typo

* Companion part

* Make support a compilation option

* Fix compilation for normal users

* Warning popup for usability tests

* Better implementation

* All sizes

* Cosmetics

* Flex is EU+/AU+ only

* [Companion] Handle "flexr9m" option in module settings UI (to match radio UI, including warning msg); Move some "toString" functions out of ModelPrinter into ModuleData/Multiprotocols; "Future-proof" available R9M power options based on "stdr9m" fw option; Fix missing "Hitec" MM protocol name; Fix printing of R9M-EU power level in ModelPrinter.

* Cosmetics

* Rename R9M flex option

* Move failsafe further back to prevent nav oddity
2018-08-30 13:16:39 +02:00

143 lines
5.3 KiB
C++

/*
* Copyright (C) OpenTX
*
* Based on code named
* th9x - http://code.google.com/p/th9x
* er9x - http://code.google.com/p/er9x
* gruvin9x - http://code.google.com/p/gruvin9x
*
* License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#ifndef _MODELPRINTER_H_
#define _MODELPRINTER_H_
#include <QString>
#include <QStringList>
#include <QPainter>
#include <QTextDocument>
#include "eeprominterface.h"
QString changeColor(const QString & input, const QString & to, const QString & from = "grey");
QString addFont(const QString & input, const QString & color = "", const QString & size = "", const QString & face = "");
void debugHtml(const QString & html);
QString formatTitle(const QString & name);
class CurveImage
{
public:
CurveImage();
void drawCurve(const CurveData & curve, QColor color);
const QImage & get() const { return image; }
protected:
int size;
QImage image;
QPainter painter;
};
class ModelPrinter: public QObject
{
Q_OBJECT
public:
ModelPrinter(Firmware * firmware, const GeneralSettings & generalSettings, const ModelData & model);
virtual ~ModelPrinter();
QString printBoolean(const bool val, const int typ);
QString printEEpromSize();
QString printTrimIncrementMode();
QString printThrottle();
QString printFlightModeSwitch(const RawSwitch & swtch);
QString printFlightModeName(int index);
QString printFlightModes(unsigned int flightModes);
QString printInputFlightModes(unsigned int flightModes);
QString printModule(int idx);
QString printTrainerMode();
QString printCenterBeep();
QString printHeliSwashType();
QString printTrim(int flightModeIndex, int stickIndex);
QString printGlobalVar(int flightModeIndex, int gvarIndex);
QString printRotaryEncoder(int flightModeIndex, int reIndex);
QString printTimer(int idx);
QString printTimer(const TimerData & timer);
QString printInputName(int idx);
QString printInputLine(int idx);
QString printInputLine(const ExpoData & ed);
QString printMixerLine(const MixData & md, bool showMultiplex, int highlightedSource = 0);
QString printLogicalSwitchLine(int idx);
QString printCustomFunctionLine(int idx);
QString printChannelName(int idx);
QString printCurveName(int idx);
QString printCurve(int idx);
QString createCurveImage(int idx, QTextDocument * document);
QString printGlobalVarUnit(int idx);
QString printGlobalVarPrec(int idx);
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);
QString printSettingsOther();
QString printModuleType(int idx);
QString printThrottleSource(int idx);
QString printTrimsDisplayMode();
QString printSettingsTrim();
QString printSwitchWarnings();
QString printPotWarnings();
QString printPotsWarningMode();
QString printPxxPower(int power);
QString printFailsafe(int idx);
QString printFailsafeMode(unsigned int fsmode);
QString printFailsafeValue(int val);
QString printTimerCountdownBeep(unsigned int countdownBeep);
QString printTimerPersistent(unsigned int persistent);
QString printPPMFrameLength(int ppmFL);
QString printTimerName(int idx);
QString printTimeValue(const int value, const unsigned int mask);
QString printTimerMinuteBeep(bool mb);
QString printTimerTimeValue(unsigned int val);
QString printTelemetryProtocol(unsigned int val);
QString printLabelValue(const QString & lbl, const QString & val, const bool sep = false);
QString printLabelValues(const QString & lbl, const QStringList & vals, const bool sep = false);
QString printRssiAlarmsDisabled(bool mb);
QString printTelemetrySource(int val);
QString printVarioSource(unsigned int val);
QString printVarioCenterSilent(bool mb);
QString printVoltsSource(unsigned int val);
QString printCurrentSource(unsigned int val);
QString printMahPersistent(bool mb);
QString printIgnoreSensorIds(bool mb);
QString printSensorType(unsigned int val);
QString printSensorFormula(unsigned int val);
QString printSensorCells(unsigned int val);
QString printSensorTypeCond(unsigned int idx);
QString printSensorParams(unsigned int idx);
QString printSensorDetails(unsigned int idx);
QString printTelemetryScreenType(unsigned int val);
QString printTelemetryScreen(unsigned int idx, unsigned int line, unsigned int width);
private:
Firmware * firmware;
const GeneralSettings & generalSettings;
const ModelData & model;
};
#endif // _MODELPRINTER_H_