Add LiteRadio3_Pro target on companion and simulator
@@ -84,7 +84,7 @@ jobs:
|
|||||||
- t16
|
- t16
|
||||||
- t18
|
- t18
|
||||||
- t8;zorro;commando8
|
- t8;zorro;commando8
|
||||||
- tlite;tpro
|
- tlite;tpro;lr3pro
|
||||||
- tx12;tx12mk2
|
- tx12;tx12mk2
|
||||||
- tx16s
|
- tx16s
|
||||||
- x10;x10-access
|
- x10;x10-access
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ jobs:
|
|||||||
- t16
|
- t16
|
||||||
- t18
|
- t18
|
||||||
- t8;zorro;commando8
|
- t8;zorro;commando8
|
||||||
- tlite;tpro
|
- tlite;tpro;lr3pro
|
||||||
- tx12;tx12mk2
|
- tx12;tx12mk2
|
||||||
- tx16s
|
- tx16s
|
||||||
- x10;x10-access
|
- x10;x10-access
|
||||||
|
|||||||
@@ -335,6 +335,8 @@ elseif(PCB STREQUAL X7 AND PCBREV STREQUAL TX12MK2)
|
|||||||
set(FLAVOUR tx12mk2)
|
set(FLAVOUR tx12mk2)
|
||||||
elseif(PCB STREQUAL X7 AND PCBREV STREQUAL ZORRO)
|
elseif(PCB STREQUAL X7 AND PCBREV STREQUAL ZORRO)
|
||||||
set(FLAVOUR zorro)
|
set(FLAVOUR zorro)
|
||||||
|
elseif(PCB STREQUAL X7 AND PCBREV STREQUAL LR3PRO)
|
||||||
|
set(FLAVOUR lr3pro)
|
||||||
elseif(PCB STREQUAL X7 AND PCBREV STREQUAL T8)
|
elseif(PCB STREQUAL X7 AND PCBREV STREQUAL T8)
|
||||||
set(FLAVOUR t8)
|
set(FLAVOUR t8)
|
||||||
elseif(PCB STREQUAL X9D+ AND PCBREV STREQUAL 2019)
|
elseif(PCB STREQUAL X9D+ AND PCBREV STREQUAL 2019)
|
||||||
|
|||||||
@@ -214,6 +214,16 @@
|
|||||||
<file>images/simulator/Zorro/right-mdl.png</file>
|
<file>images/simulator/Zorro/right-mdl.png</file>
|
||||||
<file>images/simulator/Zorro/bottom.png</file>
|
<file>images/simulator/Zorro/bottom.png</file>
|
||||||
<file>images/simulator/Zorro/top.png</file>
|
<file>images/simulator/Zorro/top.png</file>
|
||||||
|
<file>images/simulator/LR3PRO/top.png</file>
|
||||||
|
<file>images/simulator/LR3PRO/bottom.png</file>
|
||||||
|
<file>images/simulator/LR3PRO/left.png</file>
|
||||||
|
<file>images/simulator/LR3PRO/right.png</file>
|
||||||
|
<file>images/simulator/LR3PRO/right_plus.png</file>
|
||||||
|
<file>images/simulator/LR3PRO/right_minus.png</file>
|
||||||
|
<file>images/simulator/LR3PRO/right_up.png</file>
|
||||||
|
<file>images/simulator/LR3PRO/right_down.png</file>
|
||||||
|
<file>images/simulator/LR3PRO/right_enter.png</file>
|
||||||
|
<file>images/simulator/LR3PRO/left_escape.png</file>
|
||||||
<file>images/simulator/T8/left.png</file>
|
<file>images/simulator/T8/left.png</file>
|
||||||
<file>images/simulator/T8/left-pageup.png</file>
|
<file>images/simulator/T8/left-pageup.png</file>
|
||||||
<file>images/simulator/T8/left-pagedn.png</file>
|
<file>images/simulator/T8/left-pagedn.png</file>
|
||||||
|
|||||||
@@ -79,6 +79,8 @@ uint32_t Boards::getFourCC(Type board)
|
|||||||
case BOARD_AR9X:
|
case BOARD_AR9X:
|
||||||
case BOARD_9XRPRO:
|
case BOARD_9XRPRO:
|
||||||
return 0x3278746F;
|
return 0x3278746F;
|
||||||
|
case BOARD_BETAFPV_LR3PRO:
|
||||||
|
return 0x4578746F;
|
||||||
case BOARD_JUMPER_T12:
|
case BOARD_JUMPER_T12:
|
||||||
return 0x3D78746F;
|
return 0x3D78746F;
|
||||||
case BOARD_JUMPER_TLITE:
|
case BOARD_JUMPER_TLITE:
|
||||||
@@ -122,6 +124,7 @@ int Boards::getEEpromSize(Board::Type board)
|
|||||||
case BOARD_TARANIS_X9DP:
|
case BOARD_TARANIS_X9DP:
|
||||||
case BOARD_TARANIS_X9DP_2019:
|
case BOARD_TARANIS_X9DP_2019:
|
||||||
case BOARD_TARANIS_X9E:
|
case BOARD_TARANIS_X9E:
|
||||||
|
case BOARD_BETAFPV_LR3PRO:
|
||||||
case BOARD_JUMPER_T12:
|
case BOARD_JUMPER_T12:
|
||||||
case BOARD_JUMPER_TLITE:
|
case BOARD_JUMPER_TLITE:
|
||||||
case BOARD_JUMPER_TPRO:
|
case BOARD_JUMPER_TPRO:
|
||||||
@@ -162,6 +165,7 @@ int Boards::getFlashSize(Type board)
|
|||||||
case BOARD_TARANIS_X9DP:
|
case BOARD_TARANIS_X9DP:
|
||||||
case BOARD_TARANIS_X9DP_2019:
|
case BOARD_TARANIS_X9DP_2019:
|
||||||
case BOARD_TARANIS_X9E:
|
case BOARD_TARANIS_X9E:
|
||||||
|
case BOARD_BETAFPV_LR3PRO:
|
||||||
case BOARD_JUMPER_T12:
|
case BOARD_JUMPER_T12:
|
||||||
case BOARD_JUMPER_TLITE:
|
case BOARD_JUMPER_TLITE:
|
||||||
case BOARD_JUMPER_TPRO:
|
case BOARD_JUMPER_TPRO:
|
||||||
@@ -201,7 +205,7 @@ SwitchInfo Boards::getSwitchInfo(Board::Type board, int index)
|
|||||||
if (index < DIM(switches))
|
if (index < DIM(switches))
|
||||||
return switches[index];
|
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[] = {
|
const Board::SwitchInfo switches[] = {
|
||||||
{SWITCH_3POS, "SA"},
|
{SWITCH_3POS, "SA"},
|
||||||
{SWITCH_3POS, "SB"},
|
{SWITCH_3POS, "SB"},
|
||||||
@@ -368,7 +372,7 @@ int Boards::getCapability(Board::Type board, Board::Capability capability)
|
|||||||
case Pots:
|
case Pots:
|
||||||
if (IS_TARANIS_X9LITE(board))
|
if (IS_TARANIS_X9LITE(board))
|
||||||
return 1;
|
return 1;
|
||||||
else if (IS_JUMPER_TLITE(board))
|
else if (IS_JUMPER_TLITE(board) || IS_BETAFPV_LR3PRO(board))
|
||||||
return 0;
|
return 0;
|
||||||
else if (IS_TARANIS_SMALL(board) || IS_JUMPER_TPRO(board))
|
else if (IS_TARANIS_SMALL(board) || IS_JUMPER_TPRO(board))
|
||||||
return 2;
|
return 2;
|
||||||
@@ -432,7 +436,7 @@ int Boards::getCapability(Board::Type board, Board::Capability capability)
|
|||||||
return 7;
|
return 7;
|
||||||
else if (board == BOARD_TARANIS_X7)
|
else if (board == BOARD_TARANIS_X7)
|
||||||
return 8;
|
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;
|
return 4;
|
||||||
else if (board == BOARD_FLYSKY_NV14)
|
else if (board == BOARD_FLYSKY_NV14)
|
||||||
return 8;
|
return 8;
|
||||||
@@ -455,7 +459,7 @@ int Boards::getCapability(Board::Type board, Board::Capability capability)
|
|||||||
case FactoryInstalledSwitches:
|
case FactoryInstalledSwitches:
|
||||||
if (IS_TARANIS_X9E(board))
|
if (IS_TARANIS_X9E(board))
|
||||||
return 8;
|
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;
|
return 4;
|
||||||
else if(IS_RADIOMASTER_ZORRO(board))
|
else if(IS_RADIOMASTER_ZORRO(board))
|
||||||
return 8;
|
return 8;
|
||||||
@@ -667,6 +671,8 @@ QString Boards::getBoardName(Board::Type board)
|
|||||||
return "Radiomaster T8";
|
return "Radiomaster T8";
|
||||||
case BOARD_FLYSKY_NV14:
|
case BOARD_FLYSKY_NV14:
|
||||||
return "FlySky NV14";
|
return "FlySky NV14";
|
||||||
|
case BOARD_BETAFPV_LR3PRO:
|
||||||
|
return "BETAFPV LR3PRO";
|
||||||
default:
|
default:
|
||||||
return CPN_STR_UNKNOWN_ITEM;
|
return CPN_STR_UNKNOWN_ITEM;
|
||||||
}
|
}
|
||||||
@@ -878,6 +884,7 @@ int Boards::getDefaultInternalModules(Board::Type board)
|
|||||||
return (int)MODULE_TYPE_MULTIMODULE;
|
return (int)MODULE_TYPE_MULTIMODULE;
|
||||||
|
|
||||||
case BOARD_RADIOMASTER_ZORRO:
|
case BOARD_RADIOMASTER_ZORRO:
|
||||||
|
case BOARD_BETAFPV_LR3PRO:
|
||||||
return (int)MODULE_TYPE_CROSSFIRE;
|
return (int)MODULE_TYPE_CROSSFIRE;
|
||||||
|
|
||||||
case BOARD_FLYSKY_NV14:
|
case BOARD_FLYSKY_NV14:
|
||||||
|
|||||||
@@ -65,6 +65,7 @@ namespace Board {
|
|||||||
BOARD_FLYSKY_NV14,
|
BOARD_FLYSKY_NV14,
|
||||||
BOARD_RADIOMASTER_ZORRO,
|
BOARD_RADIOMASTER_ZORRO,
|
||||||
BOARD_JUMPER_TPRO,
|
BOARD_JUMPER_TPRO,
|
||||||
|
BOARD_BETAFPV_LR3PRO,
|
||||||
BOARD_TYPE_COUNT,
|
BOARD_TYPE_COUNT,
|
||||||
BOARD_TYPE_MAX = BOARD_TYPE_COUNT - 1
|
BOARD_TYPE_MAX = BOARD_TYPE_COUNT - 1
|
||||||
};
|
};
|
||||||
@@ -242,6 +243,11 @@ inline bool IS_9XRPRO(Board::Type board)
|
|||||||
return board == Board::BOARD_9XRPRO;
|
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)
|
inline bool IS_JUMPER_T12(Board::Type board)
|
||||||
{
|
{
|
||||||
return board == Board::BOARD_JUMPER_T12;
|
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_ZORRO ||
|
||||||
board == Board::BOARD_RADIOMASTER_T8 ||
|
board == Board::BOARD_RADIOMASTER_T8 ||
|
||||||
board == Board::BOARD_JUMPER_TLITE ||
|
board == Board::BOARD_JUMPER_TLITE ||
|
||||||
|
board == Board::BOARD_BETAFPV_LR3PRO ||
|
||||||
board == Board::BOARD_JUMPER_TPRO;
|
board == Board::BOARD_JUMPER_TPRO;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -37,6 +37,7 @@
|
|||||||
#define TARANIS_X9LITES_VARIANT 0x0801
|
#define TARANIS_X9LITES_VARIANT 0x0801
|
||||||
#define JUMPER_T12_VARIANT 0x4001
|
#define JUMPER_T12_VARIANT 0x4001
|
||||||
#define RADIOMASTER_TX12_VARIANT 0x4002
|
#define RADIOMASTER_TX12_VARIANT 0x4002
|
||||||
|
#define BETAFPV_LR3PRO_VARIANT 0x4007
|
||||||
#define JUMPER_TLITE_VARIANT 0x4003
|
#define JUMPER_TLITE_VARIANT 0x4003
|
||||||
#define RADIOMASTER_T8_VARIANT 0x4004
|
#define RADIOMASTER_T8_VARIANT 0x4004
|
||||||
#define RADIOMASTER_ZORRO_VARIANT 0x4006
|
#define RADIOMASTER_ZORRO_VARIANT 0x4006
|
||||||
|
|||||||
@@ -110,6 +110,8 @@ const char * OpenTxEepromInterface::getName()
|
|||||||
return "EdgeTX for FrSky X10 Express";
|
return "EdgeTX for FrSky X10 Express";
|
||||||
case BOARD_FLYSKY_NV14:
|
case BOARD_FLYSKY_NV14:
|
||||||
return "EdgeTX for FlySky NV14";
|
return "EdgeTX for FlySky NV14";
|
||||||
|
case BOARD_BETAFPV_LR3PRO:
|
||||||
|
return "EdgeTx for BETAFPV LR3PRO";
|
||||||
default:
|
default:
|
||||||
return "Board is unknown to EdgeTX";
|
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)) {
|
else if (IS_TARANIS_XLITE(board)) {
|
||||||
variant |= TARANIS_XLITE_VARIANT;
|
variant |= TARANIS_XLITE_VARIANT;
|
||||||
}
|
}
|
||||||
|
else if (IS_BETAFPV_LR3PRO(board)) {
|
||||||
|
variant |= BETAFPV_LR3PRO_VARIANT;
|
||||||
|
}
|
||||||
else if (IS_JUMPER_T12(board)) {
|
else if (IS_JUMPER_T12(board)) {
|
||||||
variant |= JUMPER_T12_VARIANT;
|
variant |= JUMPER_T12_VARIANT;
|
||||||
}
|
}
|
||||||
@@ -709,6 +714,8 @@ int OpenTxFirmware::getCapability(::Capability capability)
|
|||||||
return TARANIS_XLITES_VARIANT;
|
return TARANIS_XLITES_VARIANT;
|
||||||
else if (IS_TARANIS_XLITE(board))
|
else if (IS_TARANIS_XLITE(board))
|
||||||
return TARANIS_XLITE_VARIANT;
|
return TARANIS_XLITE_VARIANT;
|
||||||
|
else if (IS_BETAFPV_LR3PRO(board))
|
||||||
|
return BETAFPV_LR3PRO_VARIANT;
|
||||||
else if (IS_JUMPER_T12(board))
|
else if (IS_JUMPER_T12(board))
|
||||||
return JUMPER_T12_VARIANT;
|
return JUMPER_T12_VARIANT;
|
||||||
else if (IS_JUMPER_TLITE(board))
|
else if (IS_JUMPER_TLITE(board))
|
||||||
@@ -819,7 +826,7 @@ bool OpenTxFirmware::isAvailable(PulsesProtocol proto, int port)
|
|||||||
case PULSES_ACCST_ISRM_D16:
|
case PULSES_ACCST_ISRM_D16:
|
||||||
return IS_ACCESS_RADIO(board, id);
|
return IS_ACCESS_RADIO(board, id);
|
||||||
case PULSES_MULTIMODULE:
|
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:
|
case PULSES_AFHDS3:
|
||||||
return IS_FLYSKY_NV14(board);
|
return IS_FLYSKY_NV14(board);
|
||||||
default:
|
default:
|
||||||
@@ -853,7 +860,7 @@ bool OpenTxFirmware::isAvailable(PulsesProtocol proto, int port)
|
|||||||
case PULSES_XJT_LITE_X16:
|
case PULSES_XJT_LITE_X16:
|
||||||
case PULSES_XJT_LITE_D8:
|
case PULSES_XJT_LITE_D8:
|
||||||
case PULSES_XJT_LITE_LR12:
|
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:
|
default:
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -1044,6 +1051,11 @@ bool OpenTxEepromInterface::checkVariant(unsigned int version, unsigned int vari
|
|||||||
variantError = true;
|
variantError = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else if (IS_BETAFPV_LR3PRO(board)) {
|
||||||
|
if (variant != BETAFPV_LR3PRO_VARIANT) {
|
||||||
|
variantError = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
else if (IS_JUMPER_T12(board)) {
|
else if (IS_JUMPER_T12(board)) {
|
||||||
if (variant != JUMPER_T12_VARIANT) {
|
if (variant != JUMPER_T12_VARIANT) {
|
||||||
variantError = true;
|
variantError = true;
|
||||||
@@ -1485,6 +1497,16 @@ void registerOpenTxFirmwares()
|
|||||||
addOpenTxRfOptions(firmware, FLEX + AFHDS3);
|
addOpenTxRfOptions(firmware, FLEX + AFHDS3);
|
||||||
registerOpenTxFirmware(firmware);
|
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 */
|
/* 9XR-Pro */
|
||||||
firmware = new OpenTxFirmware(FIRMWAREID("9xrpro"), Firmware::tr("Turnigy 9XR-PRO"), BOARD_9XRPRO);
|
firmware = new OpenTxFirmware(FIRMWAREID("9xrpro"), Firmware::tr("Turnigy 9XR-PRO"), BOARD_9XRPRO);
|
||||||
addOpenTxArm9xOptions(firmware, false);
|
addOpenTxArm9xOptions(firmware, false);
|
||||||
|
|||||||
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 472 B |
|
After Width: | Height: | Size: 18 KiB |
|
After Width: | Height: | Size: 24 KiB |
|
After Width: | Height: | Size: 18 KiB |
|
After Width: | Height: | Size: 25 KiB |
|
After Width: | Height: | Size: 25 KiB |
|
After Width: | Height: | Size: 25 KiB |
|
After Width: | Height: | Size: 25 KiB |
|
After Width: | Height: | Size: 25 KiB |
|
After Width: | Height: | Size: 4.2 KiB |
@@ -19,6 +19,7 @@ set(simulation_SRCS
|
|||||||
simulateduiwidgetJumperT18.cpp
|
simulateduiwidgetJumperT18.cpp
|
||||||
simulateduiwidgetTX12.cpp
|
simulateduiwidgetTX12.cpp
|
||||||
simulateduiwidgetZorro.cpp
|
simulateduiwidgetZorro.cpp
|
||||||
|
simulateduiwidgetLR3PRO.cpp
|
||||||
simulateduiwidgetT8.cpp
|
simulateduiwidgetT8.cpp
|
||||||
simulateduiwidgetTX16S.cpp
|
simulateduiwidgetTX16S.cpp
|
||||||
simulateduiwidgetNV14.cpp
|
simulateduiwidgetNV14.cpp
|
||||||
@@ -52,6 +53,7 @@ set(simulation_UIS
|
|||||||
simulateduiwidgetJumperT18.ui
|
simulateduiwidgetJumperT18.ui
|
||||||
simulateduiwidgetTX12.ui
|
simulateduiwidgetTX12.ui
|
||||||
simulateduiwidgetZorro.ui
|
simulateduiwidgetZorro.ui
|
||||||
|
simulateduiwidgetLR3PRO.ui
|
||||||
simulateduiwidgetT8.ui
|
simulateduiwidgetT8.ui
|
||||||
simulateduiwidgetTX16S.ui
|
simulateduiwidgetTX16S.ui
|
||||||
simulateduiwidgetNV14.ui
|
simulateduiwidgetNV14.ui
|
||||||
|
|||||||
@@ -119,6 +119,7 @@ namespace Ui {
|
|||||||
class SimulatedUIWidgetTX16S;
|
class SimulatedUIWidgetTX16S;
|
||||||
class SimulatedUIWidgetTX12;
|
class SimulatedUIWidgetTX12;
|
||||||
class SimulatedUIWidgetZorro;
|
class SimulatedUIWidgetZorro;
|
||||||
|
class SimulatedUIWidgetLR3PRO;
|
||||||
class SimulatedUIWidgetT8;
|
class SimulatedUIWidgetT8;
|
||||||
class SimulatedUIWidgetNV14;
|
class SimulatedUIWidgetNV14;
|
||||||
}
|
}
|
||||||
@@ -271,6 +272,18 @@ class SimulatedUIWidgetJumperTPRO: public SimulatedUIWidget
|
|||||||
Ui::SimulatedUIWidgetJumperTPRO * ui;
|
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
|
class SimulatedUIWidgetJumperT16: public SimulatedUIWidget
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
@@ -319,7 +332,6 @@ class SimulatedUIWidgetZorro: public SimulatedUIWidget
|
|||||||
Ui::SimulatedUIWidgetZorro * ui;
|
Ui::SimulatedUIWidgetZorro * ui;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
class SimulatedUIWidgetT8: public SimulatedUIWidget
|
class SimulatedUIWidgetT8: public SimulatedUIWidget
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|||||||
@@ -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<int>() << 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<int>() << 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<int>() << 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<int>() << 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<int>() << 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<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(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;
|
||||||
|
}
|
||||||
@@ -0,0 +1,258 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<ui version="4.0">
|
||||||
|
<class>SimulatedUIWidgetLR3PRO</class>
|
||||||
|
<widget class="QWidget" name="SimulatedUIWidgetLR3PRO">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>0</x>
|
||||||
|
<y>0</y>
|
||||||
|
<width>501</width>
|
||||||
|
<height>310</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>501</width>
|
||||||
|
<height>310</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>501</width>
|
||||||
|
<height>310</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="windowTitle">
|
||||||
|
<string notr="true">Jumper T-Lite 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>
|
||||||
|
<layout class="QGridLayout" name="gridLayout">
|
||||||
|
<property name="leftMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="topMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="rightMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="bottomMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="spacing">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<item row="1" column="0" rowspan="3">
|
||||||
|
<widget class="ButtonsWidget" name="leftbuttons" native="true">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>122</width>
|
||||||
|
<height>287</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>122</width>
|
||||||
|
<height>287</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="styleSheet">
|
||||||
|
<string notr="true">background:url(:/images/simulator/LR3PRO/left.png);</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="1">
|
||||||
|
<widget class="LcdWidget" name="lcd" native="true">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>800</width>
|
||||||
|
<height>155</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>800</width>
|
||||||
|
<height>117</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="styleSheet">
|
||||||
|
<string notr="true">background-color: rgb(215, 243, 255);</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="2" rowspan="3">
|
||||||
|
<widget class="ButtonsWidget" name="rightbuttons" native="true">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>122</width>
|
||||||
|
<height>287</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>122</width>
|
||||||
|
<height>287</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="styleSheet">
|
||||||
|
<string notr="true">background:url(:/images/simulator/LR3PRO/right.png)</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="1">
|
||||||
|
<widget class="QWidget" name="top" native="true">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>258</width>
|
||||||
|
<height>26</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>258</width>
|
||||||
|
<height>26</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="styleSheet">
|
||||||
|
<string notr="true">background:url(:/images/simulator/LR3PRO/top.png)</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="3" column="1">
|
||||||
|
<widget class="ButtonsWidget" name="bottombuttons" native="true">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>258</width>
|
||||||
|
<height>106</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>258</width>
|
||||||
|
<height>106</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="styleSheet">
|
||||||
|
<string notr="true">background:url(:/images/simulator/LR3PRO/bottom.png)</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="0" colspan="3">
|
||||||
|
<widget class="QLabel" name="label">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>0</width>
|
||||||
|
<height>10</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>16777215</width>
|
||||||
|
<height>12</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="baseSize">
|
||||||
|
<size>
|
||||||
|
<width>0</width>
|
||||||
|
<height>12</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="styleSheet">
|
||||||
|
<string notr="true">background-color: rgb(255, 255, 255);</string>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string notr="true"/>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="4" column="0" colspan="3">
|
||||||
|
<widget class="QLabel" name="label_2">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>0</width>
|
||||||
|
<height>10</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>16777215</width>
|
||||||
|
<height>10</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="styleSheet">
|
||||||
|
<string notr="true">background-color: rgb(247, 245, 245);</string>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string notr="true"/>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</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/>
|
||||||
|
<connections/>
|
||||||
|
</ui>
|
||||||
@@ -109,6 +109,9 @@ SimulatorWidget::SimulatorWidget(QWidget * parent, SimulatorInterface * simulato
|
|||||||
case Board::BOARD_RADIOMASTER_ZORRO:
|
case Board::BOARD_RADIOMASTER_ZORRO:
|
||||||
radioUiWidget = new SimulatedUIWidgetZorro(simulator, this);
|
radioUiWidget = new SimulatedUIWidgetZorro(simulator, this);
|
||||||
break;
|
break;
|
||||||
|
case Board::BOARD_BETAFPV_LR3PRO:
|
||||||
|
radioUiWidget = new SimulatedUIWidgetLR3PRO(simulator, this);
|
||||||
|
break;
|
||||||
case Board::BOARD_RADIOMASTER_T8:
|
case Board::BOARD_RADIOMASTER_T8:
|
||||||
radioUiWidget = new SimulatedUIWidgetT8(simulator, this);
|
radioUiWidget = new SimulatedUIWidgetT8(simulator, this);
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -67,7 +67,7 @@ declare -a simulator_plugins=(x9lite x9lites
|
|||||||
x7 x7-access
|
x7 x7-access
|
||||||
t8 t12 tx12
|
t8 t12 tx12
|
||||||
zorro
|
zorro
|
||||||
tlite tpro
|
tlite tpro lr3pro
|
||||||
x9d x9dp x9dp2019 x9e
|
x9d x9dp x9dp2019 x9e
|
||||||
xlite xlites
|
xlite xlites
|
||||||
nv14
|
nv14
|
||||||
@@ -104,6 +104,9 @@ do
|
|||||||
zorro)
|
zorro)
|
||||||
BUILD_OPTIONS+="-DPCB=X7 -DPCBREV=ZORRO"
|
BUILD_OPTIONS+="-DPCB=X7 -DPCBREV=ZORRO"
|
||||||
;;
|
;;
|
||||||
|
lr3pro)
|
||||||
|
BUILD_OPTIONS+="-DPCB=X7 -DPCBREV=LR3PRO"
|
||||||
|
;;
|
||||||
tlite)
|
tlite)
|
||||||
BUILD_OPTIONS+="-DPCB=X7 -DPCBREV=TLITE"
|
BUILD_OPTIONS+="-DPCB=X7 -DPCBREV=TLITE"
|
||||||
;;
|
;;
|
||||||
|
|||||||
@@ -94,6 +94,9 @@ do
|
|||||||
t8)
|
t8)
|
||||||
BUILD_OPTIONS+="-DPCB=X7 -DPCBREV=T8"
|
BUILD_OPTIONS+="-DPCB=X7 -DPCBREV=T8"
|
||||||
;;
|
;;
|
||||||
|
lr3pro)
|
||||||
|
BUILD_OPTIONS+="-DPCB=X7 -DPCBREV=LR3PRO"
|
||||||
|
;;
|
||||||
tlite)
|
tlite)
|
||||||
BUILD_OPTIONS+="-DPCB=X7 -DPCBREV=TLITE"
|
BUILD_OPTIONS+="-DPCB=X7 -DPCBREV=TLITE"
|
||||||
;;
|
;;
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ if [[ -n ${GCC_ARM} ]] ; then
|
|||||||
export PATH=${GCC_ARM}:$PATH
|
export PATH=${GCC_ARM}:$PATH
|
||||||
fi
|
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")/..}
|
: ${SRCDIR:=$(dirname "$(pwd)/$0")/..}
|
||||||
|
|
||||||
: ${COMMON_OPTIONS:="-DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_RULE_MESSAGES=OFF -Wno-dev -DYAML_STORAGE=YES "}
|
: ${COMMON_OPTIONS:="-DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_RULE_MESSAGES=OFF -Wno-dev -DYAML_STORAGE=YES "}
|
||||||
@@ -50,6 +50,9 @@ do
|
|||||||
zorro)
|
zorro)
|
||||||
BUILD_OPTIONS+="-DPCB=X7 -DPCBREV=ZORRO"
|
BUILD_OPTIONS+="-DPCB=X7 -DPCBREV=ZORRO"
|
||||||
;;
|
;;
|
||||||
|
lr3pro)
|
||||||
|
BUILD_OPTIONS+="-DPCB=X7 -DPCBREV=LR3PRO"
|
||||||
|
;;
|
||||||
t8)
|
t8)
|
||||||
BUILD_OPTIONS+="-DPCB=X7 -DPCBREV=T8"
|
BUILD_OPTIONS+="-DPCB=X7 -DPCBREV=T8"
|
||||||
;;
|
;;
|
||||||
|
|||||||