diff --git a/.github/workflows/actions.yml b/.github/workflows/actions.yml
index 388357d5a..a9603a87b 100644
--- a/.github/workflows/actions.yml
+++ b/.github/workflows/actions.yml
@@ -84,7 +84,7 @@ jobs:
- t16
- t18
- t8;zorro;commando8
- - tlite;tpro
+ - tlite;tpro;lr3pro
- tx12;tx12mk2
- tx16s
- x10;x10-access
diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml
index 8e102774e..866d757e1 100644
--- a/.github/workflows/nightly.yml
+++ b/.github/workflows/nightly.yml
@@ -23,7 +23,7 @@ jobs:
- t16
- t18
- t8;zorro;commando8
- - tlite;tpro
+ - tlite;tpro;lr3pro
- tx12;tx12mk2
- tx16s
- x10;x10-access
diff --git a/companion/src/CMakeLists.txt b/companion/src/CMakeLists.txt
index 1ad36385b..fa3439263 100644
--- a/companion/src/CMakeLists.txt
+++ b/companion/src/CMakeLists.txt
@@ -335,6 +335,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 LR3PRO)
+ set(FLAVOUR lr3pro)
elseif(PCB STREQUAL X7 AND PCBREV STREQUAL T8)
set(FLAVOUR t8)
elseif(PCB STREQUAL X9D+ AND PCBREV STREQUAL 2019)
diff --git a/companion/src/companion.qrc b/companion/src/companion.qrc
index 9bdbdee8b..144bfeaad 100644
--- a/companion/src/companion.qrc
+++ b/companion/src/companion.qrc
@@ -214,6 +214,16 @@
images/simulator/Zorro/right-mdl.png
images/simulator/Zorro/bottom.png
images/simulator/Zorro/top.png
+ images/simulator/LR3PRO/top.png
+ images/simulator/LR3PRO/bottom.png
+ images/simulator/LR3PRO/left.png
+ images/simulator/LR3PRO/right.png
+ images/simulator/LR3PRO/right_plus.png
+ images/simulator/LR3PRO/right_minus.png
+ images/simulator/LR3PRO/right_up.png
+ images/simulator/LR3PRO/right_down.png
+ images/simulator/LR3PRO/right_enter.png
+ images/simulator/LR3PRO/left_escape.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 bab5e977e..07eb074ee 100644
--- a/companion/src/firmwares/boards.cpp
+++ b/companion/src/firmwares/boards.cpp
@@ -79,6 +79,8 @@ uint32_t Boards::getFourCC(Type board)
case BOARD_AR9X:
case BOARD_9XRPRO:
return 0x3278746F;
+ case BOARD_BETAFPV_LR3PRO:
+ return 0x4578746F;
case BOARD_JUMPER_T12:
return 0x3D78746F;
case BOARD_JUMPER_TLITE:
@@ -122,6 +124,7 @@ int Boards::getEEpromSize(Board::Type board)
case BOARD_TARANIS_X9DP:
case BOARD_TARANIS_X9DP_2019:
case BOARD_TARANIS_X9E:
+ case BOARD_BETAFPV_LR3PRO:
case BOARD_JUMPER_T12:
case BOARD_JUMPER_TLITE:
case BOARD_JUMPER_TPRO:
@@ -162,6 +165,7 @@ int Boards::getFlashSize(Type board)
case BOARD_TARANIS_X9DP:
case BOARD_TARANIS_X9DP_2019:
case BOARD_TARANIS_X9E:
+ case BOARD_BETAFPV_LR3PRO:
case BOARD_JUMPER_T12:
case BOARD_JUMPER_TLITE:
case BOARD_JUMPER_TPRO:
@@ -201,7 +205,7 @@ SwitchInfo Boards::getSwitchInfo(Board::Type board, int index)
if (index < DIM(switches))
return switches[index];
}
- else if (IS_TARANIS_XLITE(board) || IS_JUMPER_TLITE(board) || IS_JUMPER_TPRO(board)) {
+ else if (IS_TARANIS_XLITE(board) || IS_JUMPER_TLITE(board) || IS_JUMPER_TPRO(board) || IS_BETAFPV_LR3PRO(board)) {
const Board::SwitchInfo switches[] = {
{SWITCH_3POS, "SA"},
{SWITCH_3POS, "SB"},
@@ -368,7 +372,7 @@ int Boards::getCapability(Board::Type board, Board::Capability capability)
case Pots:
if (IS_TARANIS_X9LITE(board))
return 1;
- else if (IS_JUMPER_TLITE(board))
+ else if (IS_JUMPER_TLITE(board) || IS_BETAFPV_LR3PRO(board))
return 0;
else if (IS_TARANIS_SMALL(board) || IS_JUMPER_TPRO(board))
return 2;
@@ -432,7 +436,7 @@ int Boards::getCapability(Board::Type board, Board::Capability capability)
return 7;
else if (board == BOARD_TARANIS_X7)
return 8;
- else if (board == BOARD_JUMPER_TLITE || board == BOARD_JUMPER_TPRO)
+ else if (board == BOARD_JUMPER_TLITE || board == BOARD_JUMPER_TPRO || board == BOARD_BETAFPV_LR3PRO)
return 4;
else if (board == BOARD_FLYSKY_NV14)
return 8;
@@ -455,7 +459,7 @@ int Boards::getCapability(Board::Type board, Board::Capability capability)
case FactoryInstalledSwitches:
if (IS_TARANIS_X9E(board))
return 8;
- else if (IS_JUMPER_TLITE(board) || IS_JUMPER_TPRO(board))
+ else if (IS_JUMPER_TLITE(board) || IS_JUMPER_TPRO(board) || IS_BETAFPV_LR3PRO(board))
return 4;
else if(IS_RADIOMASTER_ZORRO(board))
return 8;
@@ -667,6 +671,8 @@ QString Boards::getBoardName(Board::Type board)
return "Radiomaster T8";
case BOARD_FLYSKY_NV14:
return "FlySky NV14";
+ case BOARD_BETAFPV_LR3PRO:
+ return "BETAFPV LR3PRO";
default:
return CPN_STR_UNKNOWN_ITEM;
}
@@ -878,6 +884,7 @@ int Boards::getDefaultInternalModules(Board::Type board)
return (int)MODULE_TYPE_MULTIMODULE;
case BOARD_RADIOMASTER_ZORRO:
+ case BOARD_BETAFPV_LR3PRO:
return (int)MODULE_TYPE_CROSSFIRE;
case BOARD_FLYSKY_NV14:
diff --git a/companion/src/firmwares/boards.h b/companion/src/firmwares/boards.h
index 71f298fef..03b9ad5c9 100644
--- a/companion/src/firmwares/boards.h
+++ b/companion/src/firmwares/boards.h
@@ -65,6 +65,7 @@ namespace Board {
BOARD_FLYSKY_NV14,
BOARD_RADIOMASTER_ZORRO,
BOARD_JUMPER_TPRO,
+ BOARD_BETAFPV_LR3PRO,
BOARD_TYPE_COUNT,
BOARD_TYPE_MAX = BOARD_TYPE_COUNT - 1
};
@@ -242,6 +243,11 @@ inline bool IS_9XRPRO(Board::Type board)
return board == Board::BOARD_9XRPRO;
}
+inline bool IS_BETAFPV_LR3PRO(Board::Type board)
+{
+ return board == Board::BOARD_BETAFPV_LR3PRO;
+}
+
inline bool IS_JUMPER_T12(Board::Type board)
{
return board == Board::BOARD_JUMPER_T12;
@@ -300,6 +306,7 @@ inline bool IS_FAMILY_T12(Board::Type board)
board == Board::BOARD_RADIOMASTER_ZORRO ||
board == Board::BOARD_RADIOMASTER_T8 ||
board == Board::BOARD_JUMPER_TLITE ||
+ board == Board::BOARD_BETAFPV_LR3PRO ||
board == Board::BOARD_JUMPER_TPRO;
}
diff --git a/companion/src/firmwares/opentx/opentxeeprom.h b/companion/src/firmwares/opentx/opentxeeprom.h
index 5ad907871..affc01f60 100644
--- a/companion/src/firmwares/opentx/opentxeeprom.h
+++ b/companion/src/firmwares/opentx/opentxeeprom.h
@@ -37,6 +37,7 @@
#define TARANIS_X9LITES_VARIANT 0x0801
#define JUMPER_T12_VARIANT 0x4001
#define RADIOMASTER_TX12_VARIANT 0x4002
+#define BETAFPV_LR3PRO_VARIANT 0x4007
#define JUMPER_TLITE_VARIANT 0x4003
#define RADIOMASTER_T8_VARIANT 0x4004
#define RADIOMASTER_ZORRO_VARIANT 0x4006
diff --git a/companion/src/firmwares/opentx/opentxinterface.cpp b/companion/src/firmwares/opentx/opentxinterface.cpp
index e8c03f992..27997993b 100644
--- a/companion/src/firmwares/opentx/opentxinterface.cpp
+++ b/companion/src/firmwares/opentx/opentxinterface.cpp
@@ -110,6 +110,8 @@ const char * OpenTxEepromInterface::getName()
return "EdgeTX for FrSky X10 Express";
case BOARD_FLYSKY_NV14:
return "EdgeTX for FlySky NV14";
+ case BOARD_BETAFPV_LR3PRO:
+ return "EdgeTx for BETAFPV LR3PRO";
default:
return "Board is unknown to EdgeTX";
}
@@ -343,6 +345,9 @@ int OpenTxEepromInterface::save(uint8_t * eeprom, const RadioData & radioData, u
else if (IS_TARANIS_XLITE(board)) {
variant |= TARANIS_XLITE_VARIANT;
}
+ else if (IS_BETAFPV_LR3PRO(board)) {
+ variant |= BETAFPV_LR3PRO_VARIANT;
+ }
else if (IS_JUMPER_T12(board)) {
variant |= JUMPER_T12_VARIANT;
}
@@ -709,6 +714,8 @@ int OpenTxFirmware::getCapability(::Capability capability)
return TARANIS_XLITES_VARIANT;
else if (IS_TARANIS_XLITE(board))
return TARANIS_XLITE_VARIANT;
+ else if (IS_BETAFPV_LR3PRO(board))
+ return BETAFPV_LR3PRO_VARIANT;
else if (IS_JUMPER_T12(board))
return JUMPER_T12_VARIANT;
else if (IS_JUMPER_TLITE(board))
@@ -819,7 +826,7 @@ bool OpenTxFirmware::isAvailable(PulsesProtocol proto, int port)
case PULSES_ACCST_ISRM_D16:
return IS_ACCESS_RADIO(board, id);
case PULSES_MULTIMODULE:
- return id.contains("internalmulti") || IS_RADIOMASTER_TX16S(board) || IS_JUMPER_T18(board) || IS_RADIOMASTER_TX12(board) || IS_JUMPER_TLITE(board);
+ return id.contains("internalmulti") || IS_RADIOMASTER_TX16S(board) || IS_JUMPER_T18(board) || IS_RADIOMASTER_TX12(board) || IS_JUMPER_TLITE(board) || IS_BETAFPV_LR3PRO(board);
case PULSES_AFHDS3:
return IS_FLYSKY_NV14(board);
default:
@@ -853,7 +860,7 @@ bool OpenTxFirmware::isAvailable(PulsesProtocol proto, int port)
case PULSES_XJT_LITE_X16:
case PULSES_XJT_LITE_D8:
case PULSES_XJT_LITE_LR12:
- return (IS_TARANIS_XLITE(board) || IS_TARANIS_X9LITE(board) || IS_JUMPER_TLITE(board));
+ return (IS_TARANIS_XLITE(board) || IS_TARANIS_X9LITE(board) || IS_JUMPER_TLITE(board) || IS_BETAFPV_LR3PRO(board));
default:
return false;
}
@@ -1044,6 +1051,11 @@ bool OpenTxEepromInterface::checkVariant(unsigned int version, unsigned int vari
variantError = true;
}
}
+ else if (IS_BETAFPV_LR3PRO(board)) {
+ if (variant != BETAFPV_LR3PRO_VARIANT) {
+ variantError = true;
+ }
+ }
else if (IS_JUMPER_T12(board)) {
if (variant != JUMPER_T12_VARIANT) {
variantError = true;
@@ -1485,6 +1497,16 @@ void registerOpenTxFirmwares()
addOpenTxRfOptions(firmware, FLEX + AFHDS3);
registerOpenTxFirmware(firmware);
+ /* BETAFPV LR3PRO board */
+ firmware = new OpenTxFirmware(FIRMWAREID("lr3pro"), QCoreApplication::translate("Firmware", "BETAFPV LiteRadio3 Pro"), BOARD_BETAFPV_LR3PRO);
+ 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);
+
/* 9XR-Pro */
firmware = new OpenTxFirmware(FIRMWAREID("9xrpro"), Firmware::tr("Turnigy 9XR-PRO"), BOARD_9XRPRO);
addOpenTxArm9xOptions(firmware, false);
diff --git a/companion/src/images/simulator/LR3PRO/bottom.png b/companion/src/images/simulator/LR3PRO/bottom.png
new file mode 100644
index 000000000..71b010e30
Binary files /dev/null and b/companion/src/images/simulator/LR3PRO/bottom.png differ
diff --git a/companion/src/images/simulator/LR3PRO/center_LCD.png b/companion/src/images/simulator/LR3PRO/center_LCD.png
new file mode 100644
index 000000000..f3249de16
Binary files /dev/null and b/companion/src/images/simulator/LR3PRO/center_LCD.png differ
diff --git a/companion/src/images/simulator/LR3PRO/left.png b/companion/src/images/simulator/LR3PRO/left.png
new file mode 100644
index 000000000..14c88f5c5
Binary files /dev/null and b/companion/src/images/simulator/LR3PRO/left.png differ
diff --git a/companion/src/images/simulator/LR3PRO/left_escape.png b/companion/src/images/simulator/LR3PRO/left_escape.png
new file mode 100644
index 000000000..111a25b4b
Binary files /dev/null and b/companion/src/images/simulator/LR3PRO/left_escape.png differ
diff --git a/companion/src/images/simulator/LR3PRO/right.png b/companion/src/images/simulator/LR3PRO/right.png
new file mode 100644
index 000000000..100afea8c
Binary files /dev/null and b/companion/src/images/simulator/LR3PRO/right.png differ
diff --git a/companion/src/images/simulator/LR3PRO/right_down.png b/companion/src/images/simulator/LR3PRO/right_down.png
new file mode 100644
index 000000000..e2f8d7fbb
Binary files /dev/null and b/companion/src/images/simulator/LR3PRO/right_down.png differ
diff --git a/companion/src/images/simulator/LR3PRO/right_enter.png b/companion/src/images/simulator/LR3PRO/right_enter.png
new file mode 100644
index 000000000..584b7230f
Binary files /dev/null and b/companion/src/images/simulator/LR3PRO/right_enter.png differ
diff --git a/companion/src/images/simulator/LR3PRO/right_minus.png b/companion/src/images/simulator/LR3PRO/right_minus.png
new file mode 100644
index 000000000..3bcdcd7ba
Binary files /dev/null and b/companion/src/images/simulator/LR3PRO/right_minus.png differ
diff --git a/companion/src/images/simulator/LR3PRO/right_plus.png b/companion/src/images/simulator/LR3PRO/right_plus.png
new file mode 100644
index 000000000..16362ad01
Binary files /dev/null and b/companion/src/images/simulator/LR3PRO/right_plus.png differ
diff --git a/companion/src/images/simulator/LR3PRO/right_up.png b/companion/src/images/simulator/LR3PRO/right_up.png
new file mode 100644
index 000000000..e091a54a2
Binary files /dev/null and b/companion/src/images/simulator/LR3PRO/right_up.png differ
diff --git a/companion/src/images/simulator/LR3PRO/top.png b/companion/src/images/simulator/LR3PRO/top.png
new file mode 100644
index 000000000..9e4bcf6c6
Binary files /dev/null and b/companion/src/images/simulator/LR3PRO/top.png differ
diff --git a/companion/src/simulation/CMakeLists.txt b/companion/src/simulation/CMakeLists.txt
index 348016614..70d6dcac4 100644
--- a/companion/src/simulation/CMakeLists.txt
+++ b/companion/src/simulation/CMakeLists.txt
@@ -19,6 +19,7 @@ set(simulation_SRCS
simulateduiwidgetJumperT18.cpp
simulateduiwidgetTX12.cpp
simulateduiwidgetZorro.cpp
+ simulateduiwidgetLR3PRO.cpp
simulateduiwidgetT8.cpp
simulateduiwidgetTX16S.cpp
simulateduiwidgetNV14.cpp
@@ -52,6 +53,7 @@ set(simulation_UIS
simulateduiwidgetJumperT18.ui
simulateduiwidgetTX12.ui
simulateduiwidgetZorro.ui
+ simulateduiwidgetLR3PRO.ui
simulateduiwidgetT8.ui
simulateduiwidgetTX16S.ui
simulateduiwidgetNV14.ui
diff --git a/companion/src/simulation/simulateduiwidget.h b/companion/src/simulation/simulateduiwidget.h
index 187a60660..23400d237 100644
--- a/companion/src/simulation/simulateduiwidget.h
+++ b/companion/src/simulation/simulateduiwidget.h
@@ -119,6 +119,7 @@ namespace Ui {
class SimulatedUIWidgetTX16S;
class SimulatedUIWidgetTX12;
class SimulatedUIWidgetZorro;
+ class SimulatedUIWidgetLR3PRO;
class SimulatedUIWidgetT8;
class SimulatedUIWidgetNV14;
}
@@ -271,6 +272,18 @@ class SimulatedUIWidgetJumperTPRO: public SimulatedUIWidget
Ui::SimulatedUIWidgetJumperTPRO * ui;
};
+class SimulatedUIWidgetLR3PRO: public SimulatedUIWidget
+{
+ Q_OBJECT
+
+ public:
+ explicit SimulatedUIWidgetLR3PRO(SimulatorInterface * simulator, QWidget * parent = NULL);
+ virtual ~SimulatedUIWidgetLR3PRO();
+
+ private:
+ Ui::SimulatedUIWidgetLR3PRO * ui;
+};
+
class SimulatedUIWidgetJumperT16: public SimulatedUIWidget
{
Q_OBJECT
@@ -319,7 +332,6 @@ class SimulatedUIWidgetZorro: public SimulatedUIWidget
Ui::SimulatedUIWidgetZorro * ui;
};
-
class SimulatedUIWidgetT8: public SimulatedUIWidget
{
Q_OBJECT
diff --git a/companion/src/simulation/simulateduiwidgetLR3PRO.cpp b/companion/src/simulation/simulateduiwidgetLR3PRO.cpp
new file mode 100644
index 000000000..a922dc56c
--- /dev/null
+++ b/companion/src/simulation/simulateduiwidgetLR3PRO.cpp
@@ -0,0 +1,60 @@
+#include "simulateduiwidget.h"
+#include "ui_simulateduiwidgetLR3PRO.h"
+
+// NOTE: RadioUiAction(NUMBER,...): NUMBER relates to enum EnumKeys in the specific board.h
+
+SimulatedUIWidgetLR3PRO::SimulatedUIWidgetLR3PRO(SimulatorInterface *simulator, QWidget * parent):
+ SimulatedUIWidget(simulator, parent),
+ ui(new Ui::SimulatedUIWidgetLR3PRO)
+{
+ RadioUiAction * act;
+
+ ui->setupUi(this);
+
+ act = new RadioUiAction(3, QList() << Qt::Key_Up << Qt::Key_PageUp, SIMU_STR_HLP_KEYS_GO_UP, SIMU_STR_HLP_ACT_UP);
+ addRadioWidget(ui->rightbuttons->addArea(QRect(30, 68, 30, 20), "LR3PRO/right_up.png", act));
+
+ act = new RadioUiAction(2, QList() << Qt::Key_Down << Qt::Key_PageDown, SIMU_STR_HLP_KEYS_GO_DN, SIMU_STR_HLP_ACT_DN);
+ addRadioWidget(ui->rightbuttons->addArea(QRect(30, 130, 30, 20), "LR3PRO/right_down.png", act));
+
+ act = new RadioUiAction(4, QList() << Qt::Key_Right << Qt::Key_Plus, SIMU_STR_HLP_KEY_RGT % "|" % SIMU_STR_HLP_KEY_PLS, SIMU_STR_HLP_ACT_PLS);
+ addRadioWidget(ui->rightbuttons->addArea(QRect(70, 95, 20, 30), "LR3PRO/right_plus.png", act));
+
+ act = new RadioUiAction(5, QList() << Qt::Key_Left << Qt::Key_Minus, SIMU_STR_HLP_KEY_LFT % "|" % SIMU_STR_HLP_KEY_MIN, SIMU_STR_HLP_ACT_MIN);
+ addRadioWidget(ui->rightbuttons->addArea(QRect(0, 95, 20, 30), "LR3PRO/right_minus.png", act));
+
+ m_mouseMidClickAction = new RadioUiAction(1, QList() << Qt::Key_Enter << Qt::Key_Return, SIMU_STR_HLP_KEYS_ACTIVATE, SIMU_STR_HLP_ACT_ENT);
+ addRadioWidget(ui->rightbuttons->addArea(QRect(30, 95, 30, 30), "LR3PRO/right_enter.png", m_mouseMidClickAction));
+
+ act = new RadioUiAction(0, 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(58, 98, 30, 30), "LR3PRO/left_escape.png", act));
+
+ //addRadioWidget(ui->leftbuttons->addArea(QRect(10, 65, 70, 50), "LR3PRO/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);
+}
+
+SimulatedUIWidgetLR3PRO::~SimulatedUIWidgetLR3PRO()
+{
+ delete ui;
+}
diff --git a/companion/src/simulation/simulateduiwidgetLR3PRO.ui b/companion/src/simulation/simulateduiwidgetLR3PRO.ui
new file mode 100644
index 000000000..a5fde6156
--- /dev/null
+++ b/companion/src/simulation/simulateduiwidgetLR3PRO.ui
@@ -0,0 +1,258 @@
+
+
+ SimulatedUIWidgetLR3PRO
+
+
+
+ 0
+ 0
+ 501
+ 310
+
+
+
+
+ 0
+ 0
+
+
+
+
+ 501
+ 310
+
+
+
+
+ 501
+ 310
+
+
+
+ Jumper T-Lite 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
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 122
+ 287
+
+
+
+
+ 122
+ 287
+
+
+
+ background:url(:/images/simulator/LR3PRO/left.png);
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 800
+ 155
+
+
+
+
+ 800
+ 117
+
+
+
+ background-color: rgb(215, 243, 255);
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 122
+ 287
+
+
+
+
+ 122
+ 287
+
+
+
+ background:url(:/images/simulator/LR3PRO/right.png)
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 258
+ 26
+
+
+
+
+ 258
+ 26
+
+
+
+ background:url(:/images/simulator/LR3PRO/top.png)
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 258
+ 106
+
+
+
+
+ 258
+ 106
+
+
+
+ background:url(:/images/simulator/LR3PRO/bottom.png)
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 0
+ 10
+
+
+
+
+ 16777215
+ 12
+
+
+
+
+ 0
+ 12
+
+
+
+ background-color: rgb(255, 255, 255);
+
+
+
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 0
+ 10
+
+
+
+
+ 16777215
+ 10
+
+
+
+ background-color: rgb(247, 245, 245);
+
+
+
+
+
+
+
+
+
+
+ LcdWidget
+ QWidget
+
+ 1
+
+
+ ButtonsWidget
+ QWidget
+
+ 1
+
+
+
+
+
diff --git a/companion/src/simulation/simulatorwidget.cpp b/companion/src/simulation/simulatorwidget.cpp
index 406e2bdbe..295cb857a 100644
--- a/companion/src/simulation/simulatorwidget.cpp
+++ b/companion/src/simulation/simulatorwidget.cpp
@@ -109,6 +109,9 @@ SimulatorWidget::SimulatorWidget(QWidget * parent, SimulatorInterface * simulato
case Board::BOARD_RADIOMASTER_ZORRO:
radioUiWidget = new SimulatedUIWidgetZorro(simulator, this);
break;
+ case Board::BOARD_BETAFPV_LR3PRO:
+ radioUiWidget = new SimulatedUIWidgetLR3PRO(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 0518e54da..94b375b73 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
zorro
- tlite tpro
+ tlite tpro lr3pro
x9d x9dp x9dp2019 x9e
xlite xlites
nv14
@@ -104,6 +104,9 @@ do
zorro)
BUILD_OPTIONS+="-DPCB=X7 -DPCBREV=ZORRO"
;;
+ lr3pro)
+ BUILD_OPTIONS+="-DPCB=X7 -DPCBREV=LR3PRO"
+ ;;
tlite)
BUILD_OPTIONS+="-DPCB=X7 -DPCBREV=TLITE"
;;
diff --git a/tools/commit-tests.sh b/tools/commit-tests.sh
index f9f3670d2..d628cf5e8 100755
--- a/tools/commit-tests.sh
+++ b/tools/commit-tests.sh
@@ -94,6 +94,9 @@ do
t8)
BUILD_OPTIONS+="-DPCB=X7 -DPCBREV=T8"
;;
+ lr3pro)
+ BUILD_OPTIONS+="-DPCB=X7 -DPCBREV=LR3PRO"
+ ;;
tlite)
BUILD_OPTIONS+="-DPCB=X7 -DPCBREV=TLITE"
;;
diff --git a/tools/generate-yaml.sh b/tools/generate-yaml.sh
index 30ad4154b..fc106c6f2 100755
--- a/tools/generate-yaml.sh
+++ b/tools/generate-yaml.sh
@@ -9,7 +9,7 @@ if [[ -n ${GCC_ARM} ]] ; then
export PATH=${GCC_ARM}:$PATH
fi
-: ${FLAVOR:="t12;t8;tlite;tpro;tx12;tx12mk2;zorro;tx16s;x12s;nv14;x7;x9d;x9dp;x9e;x9lite;x9lites;xlite;xlites"}
+: ${FLAVOR:="t12;t8;tlite;tpro;lr3pro;tx12;tx12mk2;zorro;tx16s;x12s;nv14;x7;x9d;x9dp;x9e;x9lite;x9lites;xlite;xlites"}
: ${SRCDIR:=$(dirname "$(pwd)/$0")/..}
: ${COMMON_OPTIONS:="-DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_RULE_MESSAGES=OFF -Wno-dev -DYAML_STORAGE=YES "}
@@ -50,6 +50,9 @@ do
zorro)
BUILD_OPTIONS+="-DPCB=X7 -DPCBREV=ZORRO"
;;
+ lr3pro)
+ BUILD_OPTIONS+="-DPCB=X7 -DPCBREV=LR3PRO"
+ ;;
t8)
BUILD_OPTIONS+="-DPCB=X7 -DPCBREV=T8"
;;