feat(cpn): Initial TX12MK2 support
This commit is contained in:
committed by
Peter Feerick
parent
dc99dd40d2
commit
9cbb3cb2a8
@@ -95,6 +95,8 @@ uint32_t Boards::getFourCC(Type board)
|
||||
return 0x3878746F;
|
||||
case BOARD_RADIOMASTER_TX12:
|
||||
return 0x4178746F;
|
||||
case BOARD_RADIOMASTER_TX12_MK2:
|
||||
return 0x4878746F;
|
||||
case BOARD_RADIOMASTER_ZORRO:
|
||||
return 0x4778746F;
|
||||
case BOARD_RADIOMASTER_T8:
|
||||
@@ -129,6 +131,7 @@ int Boards::getEEpromSize(Board::Type board)
|
||||
case BOARD_JUMPER_TLITE:
|
||||
case BOARD_JUMPER_TPRO:
|
||||
case BOARD_RADIOMASTER_TX12:
|
||||
case BOARD_RADIOMASTER_TX12_MK2:
|
||||
case BOARD_RADIOMASTER_T8:
|
||||
case BOARD_RADIOMASTER_ZORRO:
|
||||
return EESIZE_TARANIS;
|
||||
@@ -170,6 +173,7 @@ int Boards::getFlashSize(Type board)
|
||||
case BOARD_JUMPER_TLITE:
|
||||
case BOARD_JUMPER_TPRO:
|
||||
case BOARD_RADIOMASTER_TX12:
|
||||
case BOARD_RADIOMASTER_TX12_MK2:
|
||||
case BOARD_RADIOMASTER_ZORRO:
|
||||
case BOARD_RADIOMASTER_T8:
|
||||
return FSIZE_TARANIS;
|
||||
@@ -256,6 +260,18 @@ SwitchInfo Boards::getSwitchInfo(Board::Type board, int index)
|
||||
if (index < DIM(switches))
|
||||
return switches[index];
|
||||
}
|
||||
else if (IS_RADIOMASTER_TX12_MK2(board)) {
|
||||
const Board::SwitchInfo switches[] = {
|
||||
{SWITCH_TOGGLE, "SA"},
|
||||
{SWITCH_3POS, "SB"},
|
||||
{SWITCH_3POS, "SC"},
|
||||
{SWITCH_TOGGLE, "SD"},
|
||||
{SWITCH_3POS, "SE"},
|
||||
{SWITCH_3POS, "SF"}
|
||||
};
|
||||
if (index < DIM(switches))
|
||||
return switches[index];
|
||||
}
|
||||
else if (IS_RADIOMASTER_ZORRO(board)) {
|
||||
const Board::SwitchInfo switches[] = {
|
||||
{SWITCH_TOGGLE, "SA"},
|
||||
@@ -440,6 +456,8 @@ 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)
|
||||
return 6;
|
||||
else if (IS_FAMILY_T12(board))
|
||||
return 8;
|
||||
else if (IS_TARANIS_XLITE(board))
|
||||
@@ -665,6 +683,8 @@ QString Boards::getBoardName(Board::Type board)
|
||||
return "Radiomaster TX16S";
|
||||
case BOARD_RADIOMASTER_TX12:
|
||||
return "Radiomaster TX12";
|
||||
case BOARD_RADIOMASTER_TX12_MK2:
|
||||
return "Radiomaster TX12 Mark II";
|
||||
case BOARD_RADIOMASTER_ZORRO:
|
||||
return "Radiomaster Zorro";
|
||||
case BOARD_RADIOMASTER_T8:
|
||||
@@ -885,6 +905,7 @@ int Boards::getDefaultInternalModules(Board::Type board)
|
||||
|
||||
case BOARD_RADIOMASTER_ZORRO:
|
||||
case BOARD_BETAFPV_LR3PRO:
|
||||
case BOARD_RADIOMASTER_TX12_MK2:
|
||||
return (int)MODULE_TYPE_CROSSFIRE;
|
||||
|
||||
case BOARD_FLYSKY_NV14:
|
||||
|
||||
@@ -60,6 +60,7 @@ namespace Board {
|
||||
BOARD_RADIOMASTER_TX16S,
|
||||
BOARD_JUMPER_T18,
|
||||
BOARD_RADIOMASTER_TX12,
|
||||
BOARD_RADIOMASTER_TX12_MK2,
|
||||
BOARD_RADIOMASTER_T8,
|
||||
BOARD_JUMPER_TLITE,
|
||||
BOARD_FLYSKY_NV14,
|
||||
@@ -283,6 +284,11 @@ inline bool IS_RADIOMASTER_TX12(Board::Type board)
|
||||
return board == Board::BOARD_RADIOMASTER_TX12;
|
||||
}
|
||||
|
||||
inline bool IS_RADIOMASTER_TX12_MK2(Board::Type board)
|
||||
{
|
||||
return board == Board::BOARD_RADIOMASTER_TX12_MK2;
|
||||
}
|
||||
|
||||
inline bool IS_RADIOMASTER_ZORRO(Board::Type board)
|
||||
{
|
||||
return board == Board::BOARD_RADIOMASTER_ZORRO;
|
||||
@@ -303,6 +309,7 @@ inline bool IS_FAMILY_T12(Board::Type board)
|
||||
{
|
||||
return board == Board::BOARD_JUMPER_T12 ||
|
||||
board == Board::BOARD_RADIOMASTER_TX12 ||
|
||||
board == Board::BOARD_RADIOMASTER_TX12_MK2 ||
|
||||
board == Board::BOARD_RADIOMASTER_ZORRO ||
|
||||
board == Board::BOARD_RADIOMASTER_T8 ||
|
||||
board == Board::BOARD_JUMPER_TLITE ||
|
||||
|
||||
@@ -42,6 +42,7 @@
|
||||
#define RADIOMASTER_T8_VARIANT 0x4004
|
||||
#define RADIOMASTER_ZORRO_VARIANT 0x4006
|
||||
#define JUMPER_TPRO_VARIANT 0x4005
|
||||
#define RADIOMASTER_TX12_MK2_VARIANT 0x4008
|
||||
|
||||
class OpenTxGeneralData: public TransformedField {
|
||||
public:
|
||||
|
||||
@@ -72,6 +72,8 @@ const char * OpenTxEepromInterface::getName()
|
||||
return "EdgeTX for Radiomaster TX16S";
|
||||
case BOARD_RADIOMASTER_TX12:
|
||||
return "EdgeTX for Radiomaster TX12";
|
||||
case BOARD_RADIOMASTER_TX12_MK2:
|
||||
return "EdgeTX for Radiomaster TX12 Mark II";
|
||||
case BOARD_RADIOMASTER_ZORRO:
|
||||
return "EdgeTX for Radiomaster Zorro";
|
||||
case BOARD_RADIOMASTER_T8:
|
||||
@@ -360,6 +362,9 @@ int OpenTxEepromInterface::save(uint8_t * eeprom, const RadioData & radioData, u
|
||||
else if (IS_RADIOMASTER_TX12(board)) {
|
||||
variant |= RADIOMASTER_TX12_VARIANT;
|
||||
}
|
||||
else if (IS_RADIOMASTER_TX12_MK2(board)) {
|
||||
variant |= RADIOMASTER_TX12_MK2_VARIANT;
|
||||
}
|
||||
else if (IS_RADIOMASTER_ZORRO(board)) {
|
||||
variant |= RADIOMASTER_ZORRO_VARIANT;
|
||||
}
|
||||
@@ -753,12 +758,12 @@ int OpenTxFirmware::getCapability(::Capability capability)
|
||||
case HasAuxSerialMode:
|
||||
return (IS_FAMILY_HORUS_OR_T16(board) && !IS_FLYSKY_NV14(board)) ||
|
||||
(IS_TARANIS_X9(board) && !IS_TARANIS_X9DP_2019(board)) ||
|
||||
IS_RADIOMASTER_ZORRO(board);
|
||||
IS_RADIOMASTER_ZORRO(board) || IS_RADIOMASTER_TX12_MK2(board);
|
||||
case HasAux2SerialMode:
|
||||
return IS_FAMILY_T16(board);
|
||||
case HasVCPSerialMode:
|
||||
return IS_FAMILY_HORUS_OR_T16(board) || IS_RADIOMASTER_ZORRO(board) ||
|
||||
IS_JUMPER_TPRO(board);
|
||||
IS_JUMPER_TPRO(board) || IS_RADIOMASTER_TX12_MK2(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:
|
||||
@@ -777,8 +782,8 @@ int OpenTxFirmware::getCapability(::Capability capability)
|
||||
return (IS_TARANIS_X9E(board) || IS_TARANIS_X9DP_2019(board) ||
|
||||
IS_TARANIS_X7(board) || IS_JUMPER_TPRO(board) ||
|
||||
IS_TARANIS_X9LITE(board) || IS_RADIOMASTER_TX12(board) ||
|
||||
IS_RADIOMASTER_ZORRO(board) || IS_RADIOMASTER_TX16S(board) ||
|
||||
IS_JUMPER_T18(board));
|
||||
IS_RADIOMASTER_TX12_MK2(board) || IS_RADIOMASTER_ZORRO(board) ||
|
||||
IS_RADIOMASTER_TX16S(board) || IS_JUMPER_T18(board));
|
||||
case HasSoftwareSerialPower:
|
||||
return IS_RADIOMASTER_TX16S(board);
|
||||
default:
|
||||
@@ -827,6 +832,8 @@ bool OpenTxFirmware::isAvailable(PulsesProtocol proto, int port)
|
||||
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) || IS_BETAFPV_LR3PRO(board);
|
||||
case PULSES_CROSSFIRE:
|
||||
IS_RADIOMASTER_TX12_MK2(board);
|
||||
case PULSES_AFHDS3:
|
||||
return IS_FLYSKY_NV14(board);
|
||||
default:
|
||||
@@ -1076,6 +1083,11 @@ bool OpenTxEepromInterface::checkVariant(unsigned int version, unsigned int vari
|
||||
variantError = true;
|
||||
}
|
||||
}
|
||||
else if (IS_RADIOMASTER_TX12_MK2(board)) {
|
||||
if (variant != RADIOMASTER_TX12_MK2_VARIANT) {
|
||||
variantError = true;
|
||||
}
|
||||
}
|
||||
else if (IS_RADIOMASTER_ZORRO(board)) {
|
||||
if (variant != RADIOMASTER_ZORRO_VARIANT) {
|
||||
variantError = true;
|
||||
@@ -1449,6 +1461,16 @@ void registerOpenTxFirmwares()
|
||||
registerOpenTxFirmware(firmware);
|
||||
addOpenTxRfOptions(firmware, FLEX);
|
||||
|
||||
/* Radiomaster TX12 board */
|
||||
firmware = new OpenTxFirmware(FIRMWAREID("tx12mk2"), QCoreApplication::translate("Firmware", "Radiomaster TX12 Mark II"), BOARD_RADIOMASTER_TX12_MK2);
|
||||
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);
|
||||
|
||||
/* Radiomaster Zorro board */
|
||||
firmware = new OpenTxFirmware(FIRMWAREID("zorro"), QCoreApplication::translate("Firmware", "Radiomaster Zorro"), Board::BOARD_RADIOMASTER_ZORRO);
|
||||
addOpenTxCommonOptions(firmware);
|
||||
|
||||
@@ -104,6 +104,7 @@ SimulatorWidget::SimulatorWidget(QWidget * parent, SimulatorInterface * simulato
|
||||
radioUiWidget = new SimulatedUIWidgetJumperT18(simulator, this);
|
||||
break;
|
||||
case Board::BOARD_RADIOMASTER_TX12:
|
||||
case Board::BOARD_RADIOMASTER_TX12_MK2:
|
||||
radioUiWidget = new SimulatedUIWidgetTX12(simulator, this);
|
||||
break;
|
||||
case Board::BOARD_RADIOMASTER_ZORRO:
|
||||
|
||||
Reference in New Issue
Block a user