feat: companion support for Jumper T14 (#4704)
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -257,6 +257,10 @@
|
||||
<file>images/simulator/T8/right-dn.png</file>
|
||||
<file>images/simulator/T8/bottom.png</file>
|
||||
<file>images/simulator/T8/top.png</file>
|
||||
<file>images/simulator/JumperT14/bottom.png</file>
|
||||
<file>images/simulator/JumperT14/left.png</file>
|
||||
<file>images/simulator/JumperT14/right.png</file>
|
||||
<file>images/simulator/JumperT14/top.png</file>
|
||||
<file>images/simulator/JumperT16/left.png</file>
|
||||
<file>images/simulator/JumperT16/right.png</file>
|
||||
<file>images/simulator/JumperT16/top.png</file>
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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 ||
|
||||
|
||||
@@ -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);
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 7.8 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 35 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 35 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 3.7 KiB |
@@ -34,6 +34,7 @@ set(${PROJECT_NAME}_SRCS
|
||||
simulateduiwidgetCommando8.cpp
|
||||
simulateduiwidgetEL18.cpp
|
||||
simulateduiwidgetJumperT12.cpp
|
||||
simulateduiwidgetJumperT14.cpp
|
||||
simulateduiwidgetJumperT16.cpp
|
||||
simulateduiwidgetJumperT18.cpp
|
||||
simulateduiwidgetJumperT20.cpp
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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<int>() << 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<int>() << 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<int>() << 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<int>() << 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;
|
||||
}
|
||||
@@ -0,0 +1,211 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>SimulatedUIWidgetJumperT14</class>
|
||||
<widget class="QWidget" name="SimulatedUIWidgetJumperT14">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>838</width>
|
||||
<height>304</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>838</width>
|
||||
<height>304</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>838</width>
|
||||
<height>447</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string notr="true">Jumper T14 Simulator</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">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));</string>
|
||||
</property>
|
||||
<widget class="ButtonsWidget" name="leftbuttons" native="true">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>284</width>
|
||||
<height>304</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>284</width>
|
||||
<height>304</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>284</width>
|
||||
<height>304</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">background:url(:/images/simulator/JumperT14/left.png);</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="LcdWidget" name="lcd" native="true">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>284</x>
|
||||
<y>50</y>
|
||||
<width>256</width>
|
||||
<height>128</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>256</width>
|
||||
<height>128</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>256</width>
|
||||
<height>128</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">background-color: rgb(215, 243, 255);</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="ButtonsWidget" name="rightbuttons" native="true">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>540</x>
|
||||
<y>0</y>
|
||||
<width>298</width>
|
||||
<height>304</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>298</width>
|
||||
<height>304</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>298</width>
|
||||
<height>304</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">background:url(:/images/simulator/JumperT14/right.png)</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QWidget" name="top" native="true">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>284</x>
|
||||
<y>0</y>
|
||||
<width>256</width>
|
||||
<height>50</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>256</width>
|
||||
<height>50</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>256</width>
|
||||
<height>50</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">background:url(:/images/simulator/JumperT14/top.png)</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QWidget" name="bottom" native="true">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>284</x>
|
||||
<y>178</y>
|
||||
<width>256</width>
|
||||
<height>126</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>256</width>
|
||||
<height>126</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>256</width>
|
||||
<height>126</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">background:url(:/images/simulator/JumperT14/bottom.png)</string>
|
||||
</property>
|
||||
</widget>
|
||||
</widget>
|
||||
<customwidgets>
|
||||
<customwidget>
|
||||
<class>LcdWidget</class>
|
||||
<extends>QWidget</extends>
|
||||
<header>lcdwidget.h</header>
|
||||
<container>1</container>
|
||||
</customwidget>
|
||||
<customwidget>
|
||||
<class>ButtonsWidget</class>
|
||||
<extends>QWidget</extends>
|
||||
<header>buttonswidget.h</header>
|
||||
<container>1</container>
|
||||
</customwidget>
|
||||
</customwidgets>
|
||||
<resources>
|
||||
<include location="../companion.qrc"/>
|
||||
</resources>
|
||||
<connections/>
|
||||
</ui>
|
||||
@@ -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;
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user