diff --git a/companion/src/CMakeLists.txt b/companion/src/CMakeLists.txt index b59e3b646..e3b20611e 100644 --- a/companion/src/CMakeLists.txt +++ b/companion/src/CMakeLists.txt @@ -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) diff --git a/companion/src/companion.qrc b/companion/src/companion.qrc index dcb9eb145..33b315545 100644 --- a/companion/src/companion.qrc +++ b/companion/src/companion.qrc @@ -234,6 +234,17 @@ images/simulator/Zorro/right-mdl.png images/simulator/Zorro/bottom.png images/simulator/Zorro/top.png + images/simulator/Boxer/bottom.png + images/simulator/Boxer/left.png + images/simulator/Boxer/left-sys.png + images/simulator/Boxer/left-pageup.png + images/simulator/Boxer/left-pagedn.png + images/simulator/Boxer/left-rtn.png + images/simulator/Boxer/left-tele.png + images/simulator/Boxer/right.png + images/simulator/Boxer/right-mdl.png + images/simulator/Boxer/right-ent.png + images/simulator/Boxer/top.png images/simulator/T8/left.png images/simulator/T8/left-pageup.png images/simulator/T8/left-pagedn.png diff --git a/companion/src/firmwares/boards.cpp b/companion/src/firmwares/boards.cpp index eff00db3f..cf054e623 100644 --- a/companion/src/firmwares/boards.cpp +++ b/companion/src/firmwares/boards.cpp @@ -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; diff --git a/companion/src/firmwares/boards.h b/companion/src/firmwares/boards.h index a4b91e687..2a46e967f 100644 --- a/companion/src/firmwares/boards.h +++ b/companion/src/firmwares/boards.h @@ -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 || diff --git a/companion/src/firmwares/generalsettings.cpp b/companion/src/firmwares/generalsettings.cpp index 744350bf2..b24dc9853 100644 --- a/companion/src/firmwares/generalsettings.cpp +++ b/companion/src/firmwares/generalsettings.cpp @@ -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; diff --git a/companion/src/firmwares/opentx/opentxinterface.cpp b/companion/src/firmwares/opentx/opentxinterface.cpp index 8269b5c7d..1a6f4df16 100644 --- a/companion/src/firmwares/opentx/opentxinterface.cpp +++ b/companion/src/firmwares/opentx/opentxinterface.cpp @@ -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); diff --git a/companion/src/images/simulator/Boxer/bottom.png b/companion/src/images/simulator/Boxer/bottom.png new file mode 100644 index 000000000..6c00a1a53 Binary files /dev/null and b/companion/src/images/simulator/Boxer/bottom.png differ diff --git a/companion/src/images/simulator/Boxer/left-pagedn.png b/companion/src/images/simulator/Boxer/left-pagedn.png new file mode 100644 index 000000000..49ac3ec84 Binary files /dev/null and b/companion/src/images/simulator/Boxer/left-pagedn.png differ diff --git a/companion/src/images/simulator/Boxer/left-pageup.png b/companion/src/images/simulator/Boxer/left-pageup.png new file mode 100644 index 000000000..2dff4b2d8 Binary files /dev/null and b/companion/src/images/simulator/Boxer/left-pageup.png differ diff --git a/companion/src/images/simulator/Boxer/left-rtn.png b/companion/src/images/simulator/Boxer/left-rtn.png new file mode 100644 index 000000000..44cfaa2ed Binary files /dev/null and b/companion/src/images/simulator/Boxer/left-rtn.png differ diff --git a/companion/src/images/simulator/Boxer/left-sys.png b/companion/src/images/simulator/Boxer/left-sys.png new file mode 100644 index 000000000..e22f48796 Binary files /dev/null and b/companion/src/images/simulator/Boxer/left-sys.png differ diff --git a/companion/src/images/simulator/Boxer/left-tele.png b/companion/src/images/simulator/Boxer/left-tele.png new file mode 100644 index 000000000..bc835305f Binary files /dev/null and b/companion/src/images/simulator/Boxer/left-tele.png differ diff --git a/companion/src/images/simulator/Boxer/left.png b/companion/src/images/simulator/Boxer/left.png new file mode 100644 index 000000000..89ed37d64 Binary files /dev/null and b/companion/src/images/simulator/Boxer/left.png differ diff --git a/companion/src/images/simulator/Boxer/right-ent.png b/companion/src/images/simulator/Boxer/right-ent.png new file mode 100644 index 000000000..6449dea55 Binary files /dev/null and b/companion/src/images/simulator/Boxer/right-ent.png differ diff --git a/companion/src/images/simulator/Boxer/right-mdl.png b/companion/src/images/simulator/Boxer/right-mdl.png new file mode 100644 index 000000000..53946e275 Binary files /dev/null and b/companion/src/images/simulator/Boxer/right-mdl.png differ diff --git a/companion/src/images/simulator/Boxer/right.png b/companion/src/images/simulator/Boxer/right.png new file mode 100644 index 000000000..bab435974 Binary files /dev/null and b/companion/src/images/simulator/Boxer/right.png differ diff --git a/companion/src/images/simulator/Boxer/top.png b/companion/src/images/simulator/Boxer/top.png new file mode 100644 index 000000000..10ab0f9f0 Binary files /dev/null and b/companion/src/images/simulator/Boxer/top.png differ diff --git a/companion/src/simulation/CMakeLists.txt b/companion/src/simulation/CMakeLists.txt index d0d4f03be..b9f824d2c 100644 --- a/companion/src/simulation/CMakeLists.txt +++ b/companion/src/simulation/CMakeLists.txt @@ -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 diff --git a/companion/src/simulation/simulateduiwidget.h b/companion/src/simulation/simulateduiwidget.h index c08e4ef18..e4eb209ff 100644 --- a/companion/src/simulation/simulateduiwidget.h +++ b/companion/src/simulation/simulateduiwidget.h @@ -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 diff --git a/companion/src/simulation/simulateduiwidgetBoxer.cpp b/companion/src/simulation/simulateduiwidgetBoxer.cpp new file mode 100644 index 000000000..f788b9ca2 --- /dev/null +++ b/companion/src/simulation/simulateduiwidgetBoxer.cpp @@ -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() << 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() << 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() << 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() << 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() << 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() << 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() << 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() << 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() << 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; +} diff --git a/companion/src/simulation/simulateduiwidgetBoxer.ui b/companion/src/simulation/simulateduiwidgetBoxer.ui new file mode 100644 index 000000000..1a4583b1b --- /dev/null +++ b/companion/src/simulation/simulateduiwidgetBoxer.ui @@ -0,0 +1,219 @@ + + + SimulatedUIWidgetBoxer + + + + 0 + 0 + 567 + 186 + + + + + 0 + 0 + + + + + 567 + 186 + + + + + 567 + 186 + + + + Radiomaster Boxer 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)); + + + + true + + + + 0 + 0 + 157 + 186 + + + + + 0 + 0 + + + + + 157 + 186 + + + + + 157 + 186 + + + + background:url(:/images/simulator/Boxer/left.png); + + + + + + 410 + 0 + 157 + 186 + + + + + 0 + 0 + + + + + 157 + 186 + + + + + 157 + 186 + + + + background:url(:/images/simulator/Boxer/right.png) + + + + + + 155 + 176 + 256 + 10 + + + + + 0 + 0 + + + + + 256 + 10 + + + + + 256 + 10 + + + + background:url(:/images/simulator/Boxer/bottom.png) + + + + + + 155 + 48 + 256 + 128 + + + + + 0 + 0 + + + + + 200 + 100 + + + + + 424 + 180 + + + + background-color: rgb(215, 243, 255); + + + + + + 137 + 0 + 300 + 49 + + + + + 0 + 0 + + + + + 200 + 40 + + + + + 300 + 49 + + + + background:url(:/images/simulator/Boxer/top.png) + + + bottom + top + rightbuttons + leftbuttons + lcd + + + + 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 2fc458dac..8c1b0f3e2 100644 --- a/companion/src/simulation/simulatorwidget.cpp +++ b/companion/src/simulation/simulatorwidget.cpp @@ -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; diff --git a/tools/build-companion.sh b/tools/build-companion.sh index 7df4b1f8a..ef6de2a86 100755 --- a/tools/build-companion.sh +++ b/tools/build-companion.sh @@ -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