feat(cpn): Radiomaster Boxer support (#2910)

* feat(cpn): Initial Radiomaster Boxer support

* fix(build): Halt if invalid simulator plugin specified

* fix: 6POS not correctly defined

* chore: Less EEPROM stuff needed

* Start of simulator support

* Enable left buttons and fix area mapping of page up and down

* fix(cpn): Internal reference to pots

---------

Co-authored-by: elecpower <neilh713@tpg.com.au>
This commit is contained in:
Peter Feerick
2023-02-11 20:10:12 +10:00
committed by GitHub
co-authored by elecpower
parent d4633ea1de
commit 60cdb897ee
23 changed files with 385 additions and 7 deletions
+2
View File
@@ -323,6 +323,8 @@ elseif(PCB STREQUAL X7 AND PCBREV STREQUAL TX12MK2)
set(FLAVOUR tx12mk2)
elseif(PCB STREQUAL X7 AND PCBREV STREQUAL ZORRO)
set(FLAVOUR zorro)
elseif(PCB STREQUAL X7 AND PCBREV STREQUAL BOXER)
set(FLAVOUR boxer)
elseif(PCB STREQUAL X7 AND PCBREV STREQUAL LR3PRO)
set(FLAVOUR lr3pro)
elseif(PCB STREQUAL X7 AND PCBREV STREQUAL COMMANDO8)
+11
View File
@@ -234,6 +234,17 @@
<file>images/simulator/Zorro/right-mdl.png</file>
<file>images/simulator/Zorro/bottom.png</file>
<file>images/simulator/Zorro/top.png</file>
<file>images/simulator/Boxer/bottom.png</file>
<file>images/simulator/Boxer/left.png</file>
<file>images/simulator/Boxer/left-sys.png</file>
<file>images/simulator/Boxer/left-pageup.png</file>
<file>images/simulator/Boxer/left-pagedn.png</file>
<file>images/simulator/Boxer/left-rtn.png</file>
<file>images/simulator/Boxer/left-tele.png</file>
<file>images/simulator/Boxer/right.png</file>
<file>images/simulator/Boxer/right-mdl.png</file>
<file>images/simulator/Boxer/right-ent.png</file>
<file>images/simulator/Boxer/top.png</file>
<file>images/simulator/T8/left.png</file>
<file>images/simulator/T8/left-pageup.png</file>
<file>images/simulator/T8/left-pagedn.png</file>
+29 -2
View File
@@ -101,6 +101,8 @@ uint32_t Boards::getFourCC(Type board)
return 0x4878746F;
case BOARD_RADIOMASTER_ZORRO:
return 0x4778746F;
case BOARD_RADIOMASTER_BOXER:
return 0x4778746F;
case BOARD_RADIOMASTER_T8:
return 0x4378746F;
case BOARD_FLYSKY_NV14:
@@ -137,6 +139,7 @@ int Boards::getEEpromSize(Board::Type board)
case BOARD_RADIOMASTER_TX12_MK2:
case BOARD_RADIOMASTER_T8:
case BOARD_RADIOMASTER_ZORRO:
case BOARD_RADIOMASTER_BOXER:
return EESIZE_TARANIS;
case BOARD_UNKNOWN:
return EESIZE_MAX;
@@ -179,6 +182,7 @@ int Boards::getFlashSize(Type board)
case BOARD_RADIOMASTER_TX12:
case BOARD_RADIOMASTER_TX12_MK2:
case BOARD_RADIOMASTER_ZORRO:
case BOARD_RADIOMASTER_BOXER:
case BOARD_RADIOMASTER_T8:
return FSIZE_TARANIS;
case BOARD_HORUS_X12S:
@@ -290,6 +294,18 @@ SwitchInfo Boards::getSwitchInfo(Board::Type board, int index)
if (index < DIM(switches))
return switches[index];
}
else if (IS_RADIOMASTER_BOXER(board)) {
const Board::SwitchInfo switches[] = {
{SWITCH_2POS, "SA"},
{SWITCH_3POS, "SB"},
{SWITCH_3POS, "SC"},
{SWITCH_3POS, "SD"},
{SWITCH_2POS, "SE"},
{SWITCH_TOGGLE, "SF"}
};
if (index < DIM(switches))
return switches[index];
}
else if (IS_RADIOMASTER_T8(board)) {
const Board::SwitchInfo switches[] = {
{SWITCH_TOGGLE, "SA"},
@@ -404,6 +420,8 @@ int Boards::getCapability(Board::Type board, Board::Capability capability)
return 1;
else if (IS_JUMPER_TLITE(board) || IS_BETAFPV_LR3PRO(board) || IS_IFLIGHT_COMMANDO8(board))
return 0;
else if (IS_RADIOMASTER_BOXER(board))
return 3;
else if (IS_TARANIS_SMALL(board) || IS_JUMPER_TPRO(board))
return 2;
else if (IS_TARANIS_X9E(board))
@@ -470,7 +488,7 @@ int Boards::getCapability(Board::Type board, Board::Capability capability)
return 4;
else if (board == BOARD_FLYSKY_NV14)
return 8;
else if (board == BOARD_RADIOMASTER_TX12_MK2)
else if (board == BOARD_RADIOMASTER_TX12_MK2 || board == BOARD_RADIOMASTER_BOXER)
return 6;
else if (IS_FAMILY_T12(board))
return 8;
@@ -608,6 +626,12 @@ StringTagMappingTable Boards::getAnalogNamesLookupTable(Board::Type board)
{tr("TltX").toStdString(), "TILT_X"},
{tr("TltY").toStdString(), "TILT_Y"},
});
} else if (IS_RADIOMASTER_BOXER(board)) {
tbl.insert(tbl.end(), {
{tr("S1").toStdString(), "POT1"},
{tr("S2").toStdString(), "POT2"},
{tr("S3").toStdString(), "POT3"},
});
} else if ((IS_TARANIS_SMALL(board) && !IS_JUMPER_TLITE(board)) || IS_FLYSKY_NV14(board)) {
tbl.insert(tbl.end(), {
{tr("S1").toStdString(), "POT1"},
@@ -723,6 +747,8 @@ QString Boards::getBoardName(Board::Type board)
return "Radiomaster TX12 Mark II";
case BOARD_RADIOMASTER_ZORRO:
return "Radiomaster Zorro";
case BOARD_RADIOMASTER_BOXER:
return "Radiomaster Boxer";
case BOARD_RADIOMASTER_T8:
return "Radiomaster T8";
case BOARD_FLYSKY_NV14:
@@ -941,8 +967,9 @@ int Boards::getDefaultInternalModules(Board::Type board)
case BOARD_JUMPER_TPRO:
return (int)MODULE_TYPE_MULTIMODULE;
case BOARD_RADIOMASTER_ZORRO:
case BOARD_BETAFPV_LR3PRO:
case BOARD_RADIOMASTER_ZORRO:
case BOARD_RADIOMASTER_BOXER:
case BOARD_RADIOMASTER_TX12_MK2:
case BOARD_IFLIGHT_COMMANDO8:
return (int)MODULE_TYPE_CROSSFIRE;
+7
View File
@@ -61,6 +61,7 @@ namespace Board {
BOARD_JUMPER_T18,
BOARD_RADIOMASTER_TX12,
BOARD_RADIOMASTER_TX12_MK2,
BOARD_RADIOMASTER_BOXER,
BOARD_RADIOMASTER_T8,
BOARD_JUMPER_TLITE,
BOARD_FLYSKY_NV14,
@@ -300,6 +301,11 @@ inline bool IS_RADIOMASTER_ZORRO(Board::Type board)
return board == Board::BOARD_RADIOMASTER_ZORRO;
}
inline bool IS_RADIOMASTER_BOXER(Board::Type board)
{
return board == Board::BOARD_RADIOMASTER_BOXER;
}
inline bool IS_RADIOMASTER_T8(Board::Type board)
{
return board == Board::BOARD_RADIOMASTER_T8;
@@ -316,6 +322,7 @@ inline bool IS_FAMILY_T12(Board::Type board)
board == Board::BOARD_RADIOMASTER_TX12 ||
board == Board::BOARD_RADIOMASTER_TX12_MK2 ||
board == Board::BOARD_RADIOMASTER_ZORRO ||
board == Board::BOARD_RADIOMASTER_BOXER ||
board == Board::BOARD_RADIOMASTER_T8 ||
board == Board::BOARD_JUMPER_TLITE ||
board == Board::BOARD_JUMPER_TPRO ||
@@ -289,6 +289,11 @@ void GeneralSettings::setDefaultControlTypes(Board::Type board)
potConfig[0] = Board::POT_WITHOUT_DETENT;
potConfig[1] = Board::POT_WITHOUT_DETENT;
}
else if(IS_RADIOMASTER_BOXER(board)) {
potConfig[0] = Board::POT_WITH_DETENT;
potConfig[1] = Board::POT_WITH_DETENT;
potConfig[2] = Board::POT_MULTIPOS_SWITCH;
}
else if (IS_FAMILY_T12(board)) {
potConfig[0] = Board::POT_WITH_DETENT;
potConfig[1] = Board::POT_WITH_DETENT;
@@ -76,6 +76,8 @@ const char * OpenTxEepromInterface::getName()
return "EdgeTX for Radiomaster TX12 Mark II";
case BOARD_RADIOMASTER_ZORRO:
return "EdgeTX for Radiomaster Zorro";
case BOARD_RADIOMASTER_BOXER:
return "EdgeTX for Radiomaster Boxer";
case BOARD_RADIOMASTER_T8:
return "EdgeTX for Radiomaster T8";
case BOARD_TARANIS_X9D:
@@ -764,7 +766,7 @@ int OpenTxFirmware::getCapability(::Capability capability)
return IS_FAMILY_T16(board);
case HasVCPSerialMode:
return IS_FAMILY_HORUS_OR_T16(board) || IS_RADIOMASTER_ZORRO(board) ||
IS_JUMPER_TPRO(board) || IS_RADIOMASTER_TX12_MK2(board);
IS_JUMPER_TPRO(board) || IS_RADIOMASTER_TX12_MK2(board) || IS_RADIOMASTER_BOXER(board);
case HasBluetooth:
return (IS_FAMILY_HORUS_OR_T16(board) || IS_TARANIS_X7(board) || IS_TARANIS_XLITE(board)|| IS_TARANIS_X9E(board) || IS_TARANIS_X9DP_2019(board) || IS_FLYSKY_NV14(board)) ? true : false;
case HasAntennaChoice:
@@ -784,17 +786,20 @@ int OpenTxFirmware::getCapability(::Capability capability)
IS_TARANIS_X7(board) || IS_JUMPER_TPRO(board) ||
IS_TARANIS_X9LITE(board) || IS_RADIOMASTER_TX12(board) ||
IS_RADIOMASTER_TX12_MK2(board) || IS_RADIOMASTER_ZORRO(board) ||
IS_RADIOMASTER_TX16S(board) || IS_JUMPER_T18(board));
IS_RADIOMASTER_BOXER(board) || IS_RADIOMASTER_TX16S(board) ||
IS_JUMPER_T18(board));
case HasSoftwareSerialPower:
return IS_RADIOMASTER_TX16S(board);
case HasIntModuleMulti:
return id.contains("internalmulti") || IS_RADIOMASTER_TX16S(board) || IS_JUMPER_T18(board) ||
IS_RADIOMASTER_TX12(board) || IS_JUMPER_TLITE(board) || IS_BETAFPV_LR3PRO(board) ||
(IS_RADIOMASTER_ZORRO(board) && !id.contains("internalelrs"));
(IS_RADIOMASTER_ZORRO(board) && !id.contains("internalelrs")) ||
IS_RADIOMASTER_BOXER(board);
case HasIntModuleCRSF:
return id.contains("internalcrsf");
case HasIntModuleELRS:
return id.contains("internalelrs") || IS_RADIOMASTER_TX12_MK2(board) || IS_IFLIGHT_COMMANDO8(board);
return id.contains("internalelrs") || IS_RADIOMASTER_TX12_MK2(board) ||
IS_IFLIGHT_COMMANDO8(board) || IS_RADIOMASTER_BOXER(board);
case HasIntModuleFlySky:
return id.contains("afhds3") || IS_FLYSKY_NV14(board);
default:
@@ -1472,6 +1477,16 @@ void registerOpenTxFirmwares()
registerOpenTxFirmware(firmware);
addOpenTxRfOptions(firmware, FLEX + AFHDS3);
/* Radiomaster Boxer board */
firmware = new OpenTxFirmware(FIRMWAREID("boxer"), QCoreApplication::translate("Firmware", "Radiomaster Boxer"), Board::BOARD_RADIOMASTER_BOXER);
addOpenTxCommonOptions(firmware);
firmware->addOption("noheli", Firmware::tr("Disable HELI menu and cyclic mix support"));
firmware->addOption("nogvars", Firmware::tr("Disable Global variables"));
firmware->addOption("lua", Firmware::tr("Enable Lua custom scripts screen"));
addOpenTxFontOptions(firmware);
registerOpenTxFirmware(firmware);
addOpenTxRfOptions(firmware, FLEX + AFHDS3);
/* Radiomaster T8 board */
firmware = new OpenTxFirmware(FIRMWAREID("t8"), QCoreApplication::translate("Firmware", "Radiomaster T8"), BOARD_RADIOMASTER_T8);
addOpenTxCommonOptions(firmware);
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.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: 35 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: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

+2
View File
@@ -21,6 +21,7 @@ set(simulation_SRCS
simulateduiwidgetJumperT18.cpp
simulateduiwidgetTX12.cpp
simulateduiwidgetZorro.cpp
simulateduiwidgetBoxer.cpp
simulateduiwidgetT8.cpp
simulateduiwidgetTX16S.cpp
simulateduiwidgetNV14.cpp
@@ -56,6 +57,7 @@ set(simulation_UIS
simulateduiwidgetJumperT18.ui
simulateduiwidgetTX12.ui
simulateduiwidgetZorro.ui
simulateduiwidgetBoxer.ui
simulateduiwidgetT8.ui
simulateduiwidgetTX16S.ui
simulateduiwidgetNV14.ui
@@ -121,6 +121,7 @@ namespace Ui {
class SimulatedUIWidgetTX16S;
class SimulatedUIWidgetTX12;
class SimulatedUIWidgetZorro;
class SimulatedUIWidgetBoxer;
class SimulatedUIWidgetT8;
class SimulatedUIWidgetNV14;
}
@@ -345,6 +346,18 @@ class SimulatedUIWidgetZorro: public SimulatedUIWidget
Ui::SimulatedUIWidgetZorro * ui;
};
class SimulatedUIWidgetBoxer: public SimulatedUIWidget
{
Q_OBJECT
public:
explicit SimulatedUIWidgetBoxer(SimulatorInterface * simulator, QWidget * parent = nullptr);
virtual ~SimulatedUIWidgetBoxer();
private:
Ui::SimulatedUIWidgetBoxer * ui;
};
class SimulatedUIWidgetT8: public SimulatedUIWidget
{
Q_OBJECT
@@ -0,0 +1,67 @@
#include "simulateduiwidget.h"
#include "ui_simulateduiwidgetBoxer.h"
// NOTE: RadioUiAction(NUMBER,...): NUMBER relates to enum EnumKeys in the specific board.h
SimulatedUIWidgetBoxer::SimulatedUIWidgetBoxer(SimulatorInterface *simulator, QWidget * parent):
SimulatedUIWidget(simulator, parent),
ui(new Ui::SimulatedUIWidgetBoxer)
{
RadioUiAction * act;
ui->setupUi(this);
// add actions in order of appearance on the help menu
act = new RadioUiAction(5, QList<int>() << Qt::Key_Up, SIMU_STR_HLP_KEY_UP, SIMU_STR_HLP_ACT_MDL);
addRadioWidget(ui->rightbuttons->addArea(QRect(80, 10, 60, 30), "Boxer/right-mdl.png", act));
m_mouseMidClickAction = new RadioUiAction(1, QList<int>() << Qt::Key_Enter << Qt::Key_Return, SIMU_STR_HLP_KEYS_ACTIVATE, SIMU_STR_HLP_ACT_ROT_DN);
addRadioWidget(ui->rightbuttons->addArea(QRect(40, 60, 46, 90), "Boxer/right-ent.png", m_mouseMidClickAction));
act = new RadioUiAction(4, QList<int>() << Qt::Key_Left, SIMU_STR_HLP_KEY_LFT, SIMU_STR_HLP_ACT_SYS);
addRadioWidget(ui->leftbuttons->addArea(QRect(18, 10, 66, 30), "Boxer/left-sys.png", act));
act = new RadioUiAction(6, QList<int>() << Qt::Key_Right, SIMU_STR_HLP_KEY_RGT, SIMU_STR_HLP_ACT_TELE);
addRadioWidget(ui->leftbuttons->addArea(QRect(72, 149, 62, 24), "Boxer/left-tele.png", act));
act = new RadioUiAction(3, QList<int>() << Qt::Key_PageDown, SIMU_STR_HLP_KEY_PGDN, SIMU_STR_HLP_ACT_PGDN);
addRadioWidget(ui->leftbuttons->addArea(QRect(72, 79, 62, 24), "Boxer/left-pagedn.png", act));
act = new RadioUiAction(2, QList<int>() << Qt::Key_PageUp, SIMU_STR_HLP_KEY_PGUP, SIMU_STR_HLP_ACT_PGUP);
addRadioWidget(ui->leftbuttons->addArea(QRect(72, 114, 62, 24), "Boxer/left-pageup.png", act));
act = new RadioUiAction(0, QList<int>() << Qt::Key_Down << Qt::Key_Delete << Qt::Key_Escape << Qt::Key_Backspace, SIMU_STR_HLP_KEYS_EXIT, SIMU_STR_HLP_ACT_EXIT);
addRadioWidget(ui->leftbuttons->addArea(QRect(72, 44, 62, 24), "Boxer/left-rtn.png", act));
m_scrollUpAction = new RadioUiAction(-1, QList<int>() << Qt::Key_Minus << Qt::Key_Equal << Qt::Key_Left, SIMU_STR_HLP_KEYS_GO_LFT, SIMU_STR_HLP_ACT_ROT_LFT);
m_scrollDnAction = new RadioUiAction(-1, QList<int>() << Qt::Key_Plus << Qt::Key_Right, SIMU_STR_HLP_KEYS_GO_RGT, SIMU_STR_HLP_ACT_ROT_RGT);
connectScrollActions();
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);
}
SimulatedUIWidgetBoxer::~SimulatedUIWidgetBoxer()
{
delete ui;
}
@@ -0,0 +1,219 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>SimulatedUIWidgetBoxer</class>
<widget class="QWidget" name="SimulatedUIWidgetBoxer">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>567</width>
<height>186</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>567</width>
<height>186</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>567</width>
<height>186</height>
</size>
</property>
<property name="windowTitle">
<string notr="true">Radiomaster Boxer 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="enabled">
<bool>true</bool>
</property>
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>157</width>
<height>186</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>157</width>
<height>186</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>157</width>
<height>186</height>
</size>
</property>
<property name="styleSheet">
<string notr="true">background:url(:/images/simulator/Boxer/left.png);</string>
</property>
</widget>
<widget class="ButtonsWidget" name="rightbuttons" native="true">
<property name="geometry">
<rect>
<x>410</x>
<y>0</y>
<width>157</width>
<height>186</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>157</width>
<height>186</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>157</width>
<height>186</height>
</size>
</property>
<property name="styleSheet">
<string notr="true">background:url(:/images/simulator/Boxer/right.png)</string>
</property>
</widget>
<widget class="QWidget" name="bottom" native="true">
<property name="geometry">
<rect>
<x>155</x>
<y>176</y>
<width>256</width>
<height>10</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>10</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>256</width>
<height>10</height>
</size>
</property>
<property name="styleSheet">
<string notr="true">background:url(:/images/simulator/Boxer/bottom.png)</string>
</property>
</widget>
<widget class="LcdWidget" name="lcd" native="true">
<property name="geometry">
<rect>
<x>155</x>
<y>48</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>200</width>
<height>100</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>424</width>
<height>180</height>
</size>
</property>
<property name="styleSheet">
<string notr="true">background-color: rgb(215, 243, 255);</string>
</property>
</widget>
<widget class="QWidget" name="top" native="true">
<property name="geometry">
<rect>
<x>137</x>
<y>0</y>
<width>300</width>
<height>49</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>200</width>
<height>40</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>300</width>
<height>49</height>
</size>
</property>
<property name="styleSheet">
<string notr="true">background:url(:/images/simulator/Boxer/top.png)</string>
</property>
</widget>
<zorder>bottom</zorder>
<zorder>top</zorder>
<zorder>rightbuttons</zorder>
<zorder>leftbuttons</zorder>
<zorder>lcd</zorder>
</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>
@@ -116,6 +116,9 @@ SimulatorWidget::SimulatorWidget(QWidget * parent, SimulatorInterface * simulato
case Board::BOARD_RADIOMASTER_ZORRO:
radioUiWidget = new SimulatedUIWidgetZorro(simulator, this);
break;
case Board::BOARD_RADIOMASTER_BOXER:
radioUiWidget = new SimulatedUIWidgetBoxer(simulator, this);
break;
case Board::BOARD_RADIOMASTER_T8:
radioUiWidget = new SimulatedUIWidgetT8(simulator, this);
break;
+8 -1
View File
@@ -66,7 +66,7 @@ cd build
declare -a simulator_plugins=(x9lite x9lites
x7 x7-access
t8 t12 tx12 tx12mk2
zorro commando8
zorro commando8 boxer
tlite tpro lr3pro
x9d x9dp x9dp2019 x9e
xlite xlites
@@ -107,6 +107,9 @@ do
zorro)
BUILD_OPTIONS+="-DPCB=X7 -DPCBREV=ZORRO"
;;
boxer)
BUILD_OPTIONS+="-DPCB=X7 -DPCBREV=BOXER"
;;
lr3pro)
BUILD_OPTIONS+="-DPCB=X7 -DPCBREV=LR3PRO"
;;
@@ -158,6 +161,10 @@ do
commando8)
BUILD_OPTIONS+="-DPCB=X7 -DPCBREV=COMMANDO8"
;;
*)
echo "Unknown target: $target_name"
exit 1
;;
esac
rm -f CMakeCache.txt native/CMakeCache.txt