Companion T12 support (#6480)

* Introduce T12 own variant, radio side

* T12 Companion support continued

* Remove warnings

* Cosmetics
This commit is contained in:
3djc
2019-06-05 11:32:35 +02:00
committed by Andre Bernet
parent 808aa74c5c
commit e4327e4461
9 changed files with 50 additions and 27 deletions
+18 -15
View File
@@ -148,6 +148,7 @@ const int Boards::getFlashSize(Type board)
case BOARD_TARANIS_X9D:
case BOARD_TARANIS_X9DP:
case BOARD_TARANIS_X9E:
case BOARD_JUMPER_T12:
return FSIZE_TARANIS;
case BOARD_X12S:
case BOARD_X10:
@@ -200,6 +201,18 @@ const SwitchInfo Boards::getSwitchInfo(Board::Type board, int index)
if (index < DIM(switches))
return switches[index];
}
else if (IS_JUMPER_T12(board)) {
const Board::SwitchInfo switches[] = {
{SWITCH_3POS, "SA"},
{SWITCH_3POS, "SB"},
{SWITCH_3POS, "SC"},
{SWITCH_3POS, "SD"},
{SWITCH_2POS, "SG"},
{SWITCH_2POS, "SH"}
};
if (index < DIM(switches))
return switches[index];
}
else if (IS_HORUS_OR_TARANIS(board)) {
const Board::SwitchInfo switches[] = {
{SWITCH_3POS, "SA"},
@@ -224,18 +237,6 @@ const SwitchInfo Boards::getSwitchInfo(Board::Type board, int index)
if (index < DIM(switches))
return switches[index];
}
else if (IS_JUMPER_T12(board)) {
const Board::SwitchInfo switches[] = {
{SWITCH_3POS, "SA"},
{SWITCH_3POS, "SB"},
{SWITCH_3POS, "SC"},
{SWITCH_3POS, "SD"},
{SWITCH_2POS, "SG"},
{SWITCH_2POS, "SH"}
};
if (index < DIM(switches))
return switches[index];
}
else {
const Board::SwitchInfo switches[] = {
{SWITCH_3POS, "3POS"},
@@ -311,14 +312,14 @@ const int Boards::getCapability(Board::Type board, Board::Capability capability)
return 5;
else if (IS_TARANIS_X7(board))
return 8;
else if (IS_JUMPER_T12(board))
return 6;
else if (IS_TARANIS_XLITES(board))
return 6;
else if (IS_TARANIS_XLITE(board))
return 4;
else if (IS_HORUS_OR_TARANIS(board))
return 8;
else if (IS_JUMPER_T12(board))
return 6;
else
return 7;
@@ -472,7 +473,9 @@ const QString Boards::getBoardName(Board::Type board)
return "MEGA2560";
case BOARD_TARANIS_X7:
return "Taranis X7/X7S";
case BOARD_TARANIS_XLITE:
case BOARD_JUMPER_T12:
return "Jumper T12";
case BOARD_TARANIS_XLITE:
return "Taranis X-Lite";
case BOARD_TARANIS_XLITES:
return "Taranis X-Lite S/PRO";
+3 -3
View File
@@ -51,7 +51,7 @@ namespace Board {
BOARD_JUMPER_T12
};
constexpr int BOARD_TYPE_MAX = BOARD_TARANIS_X9LITE ;
constexpr int BOARD_TYPE_MAX = BOARD_JUMPER_T12 ;
enum PotType
{
@@ -200,8 +200,8 @@ class Boards
#define IS_TARANIS_X9D(board) (board==Board::BOARD_TARANIS_X9D || board==Board::BOARD_TARANIS_X9DP)
#define IS_TARANIS_PLUS(board) (board==Board::BOARD_TARANIS_X9DP || board==Board::BOARD_TARANIS_X9E)
#define IS_TARANIS_X9E(board) (board==Board::BOARD_TARANIS_X9E)
#define IS_TARANIS(board) (IS_TARANIS_X9(board) || IS_TARANIS_X7(board) || IS_TARANIS_X9LITE(board) || IS_TARANIS_XLITE(board))
#define IS_TARANIS_SMALL(board) (IS_TARANIS_X7(board) || IS_TARANIS_XLITE(board) || IS_TARANIS_X9LITE(board))
#define IS_TARANIS(board) (IS_TARANIS_X9(board) || IS_TARANIS_X7(board) || IS_TARANIS_X9LITE(board) || IS_TARANIS_XLITE(board) || IS_JUMPER_T12(board))
#define IS_TARANIS_SMALL(board) (IS_TARANIS_X7(board) || IS_TARANIS_XLITE(board) || IS_TARANIS_X9LITE(board) || IS_JUMPER_T12(board))
#define IS_HORUS_X12S(board) (board==Board::BOARD_X12S)
#define IS_HORUS_X10(board) (board==Board::BOARD_X10)
#define IS_HORUS(board) (IS_HORUS_X12S(board) || IS_HORUS_X10(board))
@@ -107,6 +107,7 @@ enum Capability {
HasFailsafe,
HasSoundMixer,
NumModules,
NumFirstUsableModule,
HasModuleR9MFlex,
HasModuleR9MMini,
PPMCenter,
@@ -35,7 +35,7 @@
#define TARANIS_XLITE_VARIANT 0x2000
#define TARANIS_XLITES_VARIANT 0x1000
#define TARANIS_X9LITE_VARIANT 0x0800
#define JUMPER_T12_VARIANT TARANIS_X7_VARIANT
#define JUMPER_T12_VARIANT 0x4001
#define SIMU_STOCK_VARIANTS (GVARS_VARIANT|FRSKY_VARIANT)
#define SIMU_M128_VARIANTS (M128_VARIANT|SIMU_STOCK_VARIANTS)
@@ -624,6 +624,8 @@ int OpenTxFirmware::getCapability(::Capability capability)
return (IS_ARM(board) ? 32 : 0);
case NumModules:
return (IS_ARM(board) ? 2 : 1);
case NumFirstUsableModule:
return (IS_JUMPER_T12(board) ? 1 : 0);
case HasModuleR9MFlex:
return id.contains("flexr9m");
case HasModuleR9MMini:
@@ -789,7 +791,10 @@ int OpenTxFirmware::isAvailable(PulsesProtocol proto, int port)
case PULSES_SBUS:
return 1;
case PULSES_MULTIMODULE:
return id.contains("multimodule") ? 1 : 0;
if(IS_JUMPER_T12(board))
return 1;
else
return id.contains("multimodule") ? 1 : 0;
case PULSES_CROSSFIRE:
return id.contains("crossfire") ? 1 : 0;
case PULSES_ACCESS_R9M_LITE:
@@ -975,13 +980,13 @@ bool OpenTxEepromInterface::checkVariant(unsigned int version, unsigned int vari
variantError = true;
}
}
else if (IS_TARANIS(board)) {
if (variant != 0) {
else if (IS_JUMPER_T12(board)) {
if (variant != JUMPER_T12_VARIANT) {
variantError = true;
}
}
else if (IS_JUMPER_T12(board)) {
if (variant != JUMPER_T12_VARIANT) {
else if (IS_TARANIS(board)) {
if (variant != 0) {
variantError = true;
}
}
+1 -1
View File
@@ -1051,7 +1051,7 @@ SetupPanel::SetupPanel(QWidget * parent, ModelData & model, GeneralSettings & ge
ui->trimsDisplay->hide();
}
for (int i=0; i<firmware->getCapability(NumModules); i++) {
for (int i=firmware->getCapability(NumFirstUsableModule); i<firmware->getCapability(NumModules); i++) {
modules[i] = new ModulePanel(this, model, model.moduleData[i], generalSettings, firmware, i);
ui->modulesLayout->addWidget(modules[i]);
connect(modules[i], &ModulePanel::modified, this, &SetupPanel::modified);
@@ -269,6 +269,7 @@ void convertModelData_218_to_219(ModelData &model)
void convertRadioData_218_to_219(RadioData & settings)
{
settings.version = 219;
settings.variant = EEPROM_VARIANT;
#if defined(PCBHORUS)
RadioData_v218 settings_v218 = (RadioData_v218 &)settings;
+13 -1
View File
@@ -776,7 +776,19 @@ bool eeLoadGeneral()
}
#endif
#if defined(PCBTARANIS)
#if defined(RADIO_T12)
if (g_eeGeneral.variant != (EEPROM_VARIANT & 0xFFFE)) {
TRACE("EEPROM variant %d instead of %d", g_eeGeneral.variant, EEPROM_VARIANT);
return false;
}
else if (g_eeGeneral.variant != EEPROM_VARIANT && g_eeGeneral.version == 218) {
TRACE("V218 T12/X7 detected, allowing use", g_eeGeneral.variant, EEPROM_VARIANT); // Production firmware use v218 X7 variant
}
else {
TRACE("EEPROM variant %d instead of %d", g_eeGeneral.variant, EEPROM_VARIANT);
return false;
}
#elif defined(PCBTARANIS)
if (g_eeGeneral.variant != EEPROM_VARIANT) {
TRACE("EEPROM variant %d instead of %d", g_eeGeneral.variant, EEPROM_VARIANT);
return false;
+2 -1
View File
@@ -80,14 +80,15 @@ elseif(PCB STREQUAL X7)
set(NAVIGATION_TYPE 9x)
set(MULTIMODULE ON)
add_definitions(-DRADIO_T12)
add_definitions(-DEEPROM_VARIANT=0x4001)
else()
set(LUA_EXPORT lua_export_x7)
set(FLAVOUR x7)
set(NAVIGATION_TYPE x7)
add_definitions(-DRADIO_X7)
add_definitions(-DEEPROM_VARIANT=0x4000)
endif()
add_definitions(-DPCBX7 -DSOFTWARE_VOLUME)
add_definitions(-DEEPROM_VARIANT=0x4000)
add_definitions(-DPWR_BUTTON_${PWR_BUTTON})
set(GUI_DIR 128x64)
set(BITMAPS_TARGET 9x_bitmaps)