diff --git a/.github/ISSUE_TEMPLATE/bug-report.yml b/.github/ISSUE_TEMPLATE/bug-report.yml index 6d25c5459..8dd7c8d59 100644 --- a/.github/ISSUE_TEMPLATE/bug-report.yml +++ b/.github/ISSUE_TEMPLATE/bug-report.yml @@ -104,9 +104,11 @@ body: - FrSky X12 - FrSky X-Lite / S / Pro - Jumper T12 + - Jumper T14 - Jumper T16 - Jumper T18 - - Jumper T20 + - Jumper T20/T20S + - Jumper T20 V2 - Jumper T-Lite - Jumper T-Pro - Jumper T-Pro V2 diff --git a/companion/src/CMakeLists.txt b/companion/src/CMakeLists.txt index ee5297e98..448fa3c7d 100644 --- a/companion/src/CMakeLists.txt +++ b/companion/src/CMakeLists.txt @@ -332,10 +332,12 @@ elseif(PCB STREQUAL X9D+ AND PCBREV STREQUAL 2019) set(FLAVOUR x9d+2019) elseif(PCB STREQUAL X10 AND PCBREV STREQUAL EXPRESS) set(FLAVOUR x10express) -elseif(PCB STREQUAL X10 AND PCBREV STREQUAL T16) - set(FLAVOUR t16) elseif(PCB STREQUAL X10 AND PCBREV STREQUAL TX16S) set(FLAVOUR tx16s) +elseif(PCB STREQUAL X7 AND PCBREV STREQUAL T14) + set(FLAVOUR t14) +elseif(PCB STREQUAL X10 AND PCBREV STREQUAL T16) + set(FLAVOUR t16) elseif(PCB STREQUAL X10 AND PCBREV STREQUAL T18) set(FLAVOUR t18) elseif(PCB STREQUAL NV14 AND PCBREV STREQUAL EL18) diff --git a/companion/src/companion.qrc b/companion/src/companion.qrc index 79426070f..fde60acfd 100644 --- a/companion/src/companion.qrc +++ b/companion/src/companion.qrc @@ -257,6 +257,10 @@ images/simulator/T8/right-dn.png images/simulator/T8/bottom.png images/simulator/T8/top.png + images/simulator/JumperT14/bottom.png + images/simulator/JumperT14/left.png + images/simulator/JumperT14/right.png + images/simulator/JumperT14/top.png images/simulator/JumperT16/left.png images/simulator/JumperT16/right.png images/simulator/JumperT16/top.png diff --git a/companion/src/firmwares/boards.cpp b/companion/src/firmwares/boards.cpp index f0c9d5ee5..f5aa569d4 100644 --- a/companion/src/firmwares/boards.cpp +++ b/companion/src/firmwares/boards.cpp @@ -184,6 +184,7 @@ int Boards::getEEpromSize(Board::Type board) case BOARD_BETAFPV_LR3PRO: case BOARD_IFLIGHT_COMMANDO8: case BOARD_JUMPER_T12: + case BOARD_JUMPER_T14: case BOARD_JUMPER_T20: case BOARD_JUMPER_T20V2: case BOARD_JUMPER_TLITE: @@ -235,6 +236,7 @@ int Boards::getFlashSize(Type board) case BOARD_BETAFPV_LR3PRO: case BOARD_IFLIGHT_COMMANDO8: case BOARD_JUMPER_T12: + case BOARD_JUMPER_T14: case BOARD_JUMPER_T20: case BOARD_JUMPER_T20V2: case BOARD_JUMPER_TLITE: @@ -529,6 +531,8 @@ QString Boards::getBoardName(Board::Type board) return "Jumper T-Pro"; case BOARD_JUMPER_TPROV2: return "Jumper T-Pro V2"; + case BOARD_JUMPER_T14: + return "Jumper T14"; case BOARD_JUMPER_T16: return "Jumper T16"; case BOARD_JUMPER_T18: @@ -664,6 +668,7 @@ int Boards::getDefaultInternalModules(Board::Type board) case BOARD_RADIOMASTER_POCKET: case BOARD_RADIOMASTER_TX12_MK2: case BOARD_IFLIGHT_COMMANDO8: + case BOARD_JUMPER_T14: case BOARD_JUMPER_T20: case BOARD_JUMPER_T20V2: return (int)MODULE_TYPE_CROSSFIRE; diff --git a/companion/src/firmwares/boards.h b/companion/src/firmwares/boards.h index 8da2376f7..2b469bf01 100644 --- a/companion/src/firmwares/boards.h +++ b/companion/src/firmwares/boards.h @@ -61,6 +61,7 @@ namespace Board { BOARD_TARANIS_X9LITE, BOARD_TARANIS_X9LITES, BOARD_JUMPER_T12, + BOARD_JUMPER_T14, BOARD_JUMPER_T16, BOARD_RADIOMASTER_TX16S, BOARD_JUMPER_T18, @@ -438,6 +439,11 @@ inline bool IS_JUMPER_T16(Board::Type board) return board == Board::BOARD_JUMPER_T16; } +inline bool IS_JUMPER_T14(Board::Type board) +{ + return board == Board::BOARD_JUMPER_T14; +} + inline bool IS_JUMPER_T18(Board::Type board) { return board == Board::BOARD_JUMPER_T18; @@ -492,6 +498,7 @@ inline bool IS_FAMILY_T16(Board::Type board) inline bool IS_FAMILY_T12(Board::Type board) { return board == Board::BOARD_JUMPER_T12 || + board == Board::BOARD_JUMPER_T14 || board == Board::BOARD_JUMPER_T20 || board == Board::BOARD_JUMPER_T20V2 || board == Board::BOARD_JUMPER_TLITE || diff --git a/companion/src/firmwares/opentx/opentxinterface.cpp b/companion/src/firmwares/opentx/opentxinterface.cpp index 2a9402117..d9f3581c1 100644 --- a/companion/src/firmwares/opentx/opentxinterface.cpp +++ b/companion/src/firmwares/opentx/opentxinterface.cpp @@ -68,6 +68,8 @@ const char * OpenTxEepromInterface::getName() return "EdgeTX for Jumper T-Pro"; case BOARD_JUMPER_TPROV2: return "EdgeTX for Jumper T-Pro V2"; + case BOARD_JUMPER_T14: + return "EdgeTX for Jumper T14"; case BOARD_JUMPER_T16: return "EdgeTX for Jumper T16"; case BOARD_JUMPER_T18: @@ -1404,6 +1406,13 @@ void registerOpenTxFirmwares() registerOpenTxFirmware(firmware); addOpenTxRfOptions(firmware, FLEX); + /* Jumper T14 board */ + firmware = new OpenTxFirmware(FIRMWAREID("t14"), Firmware::tr("Jumper T14"), BOARD_JUMPER_T14); + addOpenTxFrskyOptions(firmware); + firmware->addOption("internalelrs", Firmware::tr("Select if internal ELRS module is installed")); + addOpenTxRfOptions(firmware, NONE); + registerOpenTxFirmware(firmware); + /* Jumper T16 board */ firmware = new OpenTxFirmware(FIRMWAREID("t16"), Firmware::tr("Jumper T16 / T16+ / T16 Pro"), BOARD_JUMPER_T16); addOpenTxFrskyOptions(firmware); diff --git a/companion/src/images/simulator/JumperT14/bottom.png b/companion/src/images/simulator/JumperT14/bottom.png new file mode 100644 index 000000000..87c3ba123 Binary files /dev/null and b/companion/src/images/simulator/JumperT14/bottom.png differ diff --git a/companion/src/images/simulator/JumperT14/left.png b/companion/src/images/simulator/JumperT14/left.png new file mode 100644 index 000000000..a22312e7b Binary files /dev/null and b/companion/src/images/simulator/JumperT14/left.png differ diff --git a/companion/src/images/simulator/JumperT14/right.png b/companion/src/images/simulator/JumperT14/right.png new file mode 100644 index 000000000..5f8b45cfb Binary files /dev/null and b/companion/src/images/simulator/JumperT14/right.png differ diff --git a/companion/src/images/simulator/JumperT14/top.png b/companion/src/images/simulator/JumperT14/top.png new file mode 100644 index 000000000..d2e7ad6b2 Binary files /dev/null and b/companion/src/images/simulator/JumperT14/top.png differ diff --git a/companion/src/simulation/CMakeLists.txt b/companion/src/simulation/CMakeLists.txt index 6e0e9fdd9..4ecdc6418 100644 --- a/companion/src/simulation/CMakeLists.txt +++ b/companion/src/simulation/CMakeLists.txt @@ -34,6 +34,7 @@ set(${PROJECT_NAME}_SRCS simulateduiwidgetCommando8.cpp simulateduiwidgetEL18.cpp simulateduiwidgetJumperT12.cpp + simulateduiwidgetJumperT14.cpp simulateduiwidgetJumperT16.cpp simulateduiwidgetJumperT18.cpp simulateduiwidgetJumperT20.cpp diff --git a/companion/src/simulation/simulateduiwidget.h b/companion/src/simulation/simulateduiwidget.h index 00ba7c2e5..acb2b96dc 100644 --- a/companion/src/simulation/simulateduiwidget.h +++ b/companion/src/simulation/simulateduiwidget.h @@ -116,6 +116,7 @@ namespace Ui { class SimulatedUIWidgetJumperT12; class SimulatedUIWidgetJumperTLITE; class SimulatedUIWidgetJumperTPRO; + class SimulatedUIWidgetJumperT14; class SimulatedUIWidgetJumperT16; class SimulatedUIWidgetJumperT18; class SimulatedUIWidgetJumperT20; @@ -314,6 +315,18 @@ class SimulatedUIWidgetJumperT16: public SimulatedUIWidget Ui::SimulatedUIWidgetJumperT16 * ui; }; +class SimulatedUIWidgetJumperT14: public SimulatedUIWidget +{ + Q_OBJECT + + public: + explicit SimulatedUIWidgetJumperT14(SimulatorInterface * simulator, QWidget * parent = nullptr); + virtual ~SimulatedUIWidgetJumperT14(); + + private: + Ui::SimulatedUIWidgetJumperT14 * ui; +}; + class SimulatedUIWidgetJumperT18: public SimulatedUIWidget { Q_OBJECT diff --git a/companion/src/simulation/simulateduiwidgetJumperT14.cpp b/companion/src/simulation/simulateduiwidgetJumperT14.cpp new file mode 100644 index 000000000..f965f4efc --- /dev/null +++ b/companion/src/simulation/simulateduiwidgetJumperT14.cpp @@ -0,0 +1,54 @@ +#include "simulateduiwidget.h" +#include "ui_simulateduiwidgetJumperT14.h" + +// NOTE: RadioUiAction(NUMBER,...): NUMBER relates to enum EnumKeys in the specific board.h + +SimulatedUIWidgetJumperT14::SimulatedUIWidgetJumperT14(SimulatorInterface *simulator, QWidget * parent): + SimulatedUIWidget(simulator, parent), + ui(new Ui::SimulatedUIWidgetJumperT14) +{ + RadioUiAction * act; + + ui->setupUi(this); + + act = new RadioUiAction(0, QList() << Qt::Key_PageUp << Qt::Key_Up, SIMU_STR_HLP_KEYS_GO_UP, SIMU_STR_HLP_ACT_MENU_ICN); + addRadioWidget(ui->leftbuttons->addArea(QRect(130, 50, 50, 30), "JumperT14/left.png", act)); + + act = new RadioUiAction(3, QList() << Qt::Key_PageDown << Qt::Key_Down, SIMU_STR_HLP_KEYS_GO_DN, SIMU_STR_HLP_ACT_PAGE); + addRadioWidget(ui->leftbuttons->addArea(QRect(130, 110, 50, 30), "JumperT14/left.png", act)); + + act = new RadioUiAction(1, QList() << Qt::Key_Delete << Qt::Key_Escape << Qt::Key_Backspace, SIMU_STR_HLP_KEYS_EXIT, SIMU_STR_HLP_ACT_EXIT); + addRadioWidget(ui->leftbuttons->addArea(QRect(130, 170, 50, 30), "JumperT14/left.png", act)); + + m_mouseMidClickAction = new RadioUiAction(2, QList() << Qt::Key_Enter << Qt::Key_Return, SIMU_STR_HLP_KEYS_ACTIVATE, SIMU_STR_HLP_ACT_ROT_DN); + addRadioWidget(ui->rightbuttons->addArea(QRect(100, 80, 70, 100), "JumperT14/right.png", m_mouseMidClickAction)); + + //addRadioWidget(ui->leftbuttons->addArea(QRect(10, 65, 70, 50), "JumperT14/left_scrnshot.png", m_screenshotAction)); + + m_backlightColors << QColor(215, 243, 255); // X7 Blue + m_backlightColors << QColor(166,247,159); + m_backlightColors << QColor(247,159,166); + m_backlightColors << QColor(255,195,151); + m_backlightColors << QColor(247,242,159); + + setLcd(ui->lcd); + + QString css = "#radioUiWidget {" + "background-color: qlineargradient(spread:reflect, x1:0, y1:0, x2:0, y2:1," + "stop:0 rgba(255, 255, 255, 255)," + "stop:0.757062 rgba(241, 238, 238, 255)," + "stop:1 rgba(247, 245, 245, 255));" + "}"; + + QTimer * tim = new QTimer(this); + tim->setSingleShot(true); + connect(tim, &QTimer::timeout, [this, css]() { + emit customStyleRequest(css); + }); + tim->start(100); +} + +SimulatedUIWidgetJumperT14::~SimulatedUIWidgetJumperT14() +{ + delete ui; +} diff --git a/companion/src/simulation/simulateduiwidgetJumperT14.ui b/companion/src/simulation/simulateduiwidgetJumperT14.ui new file mode 100644 index 000000000..8d67d20d3 --- /dev/null +++ b/companion/src/simulation/simulateduiwidgetJumperT14.ui @@ -0,0 +1,211 @@ + + + SimulatedUIWidgetJumperT14 + + + + 0 + 0 + 838 + 304 + + + + + 0 + 0 + + + + + 838 + 304 + + + + + 838 + 447 + + + + Jumper T14 Simulator + + + background-color: qlineargradient(spread:reflect, x1:0, y1:0, x2:0, y2:1, stop:0 rgba(255, 255, 255, 255), stop:0.757062 rgba(241, 238, 238, 255), stop:1 rgba(247, 245, 245, 255)); + + + + + 0 + 0 + 284 + 304 + + + + + 0 + 0 + + + + + 284 + 304 + + + + + 284 + 304 + + + + background:url(:/images/simulator/JumperT14/left.png); + + + + + + 284 + 50 + 256 + 128 + + + + + 0 + 0 + + + + + 256 + 128 + + + + + 256 + 128 + + + + background-color: rgb(215, 243, 255); + + + + + + 540 + 0 + 298 + 304 + + + + + 0 + 0 + + + + + 298 + 304 + + + + + 298 + 304 + + + + background:url(:/images/simulator/JumperT14/right.png) + + + + + + 284 + 0 + 256 + 50 + + + + + 0 + 0 + + + + + 256 + 50 + + + + + 256 + 50 + + + + background:url(:/images/simulator/JumperT14/top.png) + + + + + + 284 + 178 + 256 + 126 + + + + + 0 + 0 + + + + + 256 + 126 + + + + + 256 + 126 + + + + background:url(:/images/simulator/JumperT14/bottom.png) + + + + + + LcdWidget + QWidget +
lcdwidget.h
+ 1 +
+ + ButtonsWidget + QWidget +
buttonswidget.h
+ 1 +
+
+ + + + +
diff --git a/companion/src/simulation/simulatorwidget.cpp b/companion/src/simulation/simulatorwidget.cpp index f673eeeea..bce544d62 100644 --- a/companion/src/simulation/simulatorwidget.cpp +++ b/companion/src/simulation/simulatorwidget.cpp @@ -105,6 +105,9 @@ SimulatorWidget::SimulatorWidget(QWidget * parent, SimulatorInterface * simulato case Board::BOARD_JUMPER_TPROV2: radioUiWidget = new SimulatedUIWidgetJumperTPRO(simulator, this); break; + case Board::BOARD_JUMPER_T14: + radioUiWidget = new SimulatedUIWidgetJumperT14(simulator, this); + break; case Board::BOARD_JUMPER_T16: radioUiWidget = new SimulatedUIWidgetJumperT16(simulator, this); break; diff --git a/tools/build-companion.sh b/tools/build-companion.sh index 569a48ef5..e775c925d 100755 --- a/tools/build-companion.sh +++ b/tools/build-companion.sh @@ -67,7 +67,7 @@ declare -a simulator_plugins=(x9lite x9lites x7 x7-access t8 t12 tx12 tx12mk2 zorro commando8 boxer pocket - tlite tpro tprov2 lr3pro + tlite tpro tprov2 lr3pro t14 x9d x9dp x9dp2019 x9e xlite xlites nv14 el18 pl18 pl18ev