1
0
Fork 0
mirror of https://github.com/EdgeTX/edgetx.git synced 2025-07-23 16:25:12 +03:00

Companion support

This commit is contained in:
Kilrah 2018-08-20 22:15:10 +02:00 committed by Bertrand Songis
parent f6a6ddd409
commit 78650bb662
9 changed files with 54 additions and 9 deletions

View file

@ -96,6 +96,7 @@ const int Boards::getEEpromSize(Board::Type board)
case BOARD_9XRPRO: case BOARD_9XRPRO:
case BOARD_AR9X: case BOARD_AR9X:
return EESIZE_9XRPRO; return EESIZE_9XRPRO;
case BOARD_TARANIS_XLITES:
case BOARD_TARANIS_XLITE: case BOARD_TARANIS_XLITE:
case BOARD_TARANIS_X7: case BOARD_TARANIS_X7:
case BOARD_TARANIS_X9D: case BOARD_TARANIS_X9D:
@ -124,6 +125,7 @@ const int Boards::getFlashSize(Type board)
case BOARD_9XRPRO: case BOARD_9XRPRO:
case BOARD_AR9X: case BOARD_AR9X:
return FSIZE_9XRPRO; return FSIZE_9XRPRO;
case BOARD_TARANIS_XLITES:
case BOARD_TARANIS_XLITE: case BOARD_TARANIS_XLITE:
case BOARD_TARANIS_X7: case BOARD_TARANIS_X7:
case BOARD_TARANIS_X9D: case BOARD_TARANIS_X9D:
@ -145,7 +147,19 @@ const SwitchInfo Boards::getSwitchInfo(Board::Type board, int index)
if (index < 0) if (index < 0)
return {SWITCH_NOT_AVAILABLE, CPN_STR_UNKNOWN_ITEM}; return {SWITCH_NOT_AVAILABLE, CPN_STR_UNKNOWN_ITEM};
if (IS_TARANIS_XLITE(board)) { if (IS_TARANIS_XLITES(board)) {
const Board::SwitchInfo switches[] = {
{SWITCH_3POS, "SA"},
{SWITCH_3POS, "SB"},
{SWITCH_2POS, "SC"},
{SWITCH_2POS, "SD"},
{SWITCH_TOGGLE, "SE"},
{SWITCH_TOGGLE, "SF"}
};
if (index < DIM(switches))
return switches[index];
}
else if (IS_TARANIS_XLITE(board)) {
const Board::SwitchInfo switches[] = { const Board::SwitchInfo switches[] = {
{SWITCH_3POS, "SA"}, {SWITCH_3POS, "SA"},
{SWITCH_3POS, "SB"}, {SWITCH_3POS, "SB"},
@ -155,7 +169,7 @@ const SwitchInfo Boards::getSwitchInfo(Board::Type board, int index)
if (index < DIM(switches)) if (index < DIM(switches))
return switches[index]; return switches[index];
} }
if (IS_TARANIS_X7(board)) { else if (IS_TARANIS_X7(board)) {
const Board::SwitchInfo switches[] = { const Board::SwitchInfo switches[] = {
{SWITCH_3POS, "SA"}, {SWITCH_3POS, "SA"},
{SWITCH_3POS, "SB"}, {SWITCH_3POS, "SB"},
@ -246,7 +260,7 @@ const int Boards::getCapability(Board::Type board, Board::Capability capability)
return getCapability(board, Board::Sticks) + getCapability(board, Board::Pots) + getCapability(board, Board::Sliders) + getCapability(board, Board::MouseAnalogs); return getCapability(board, Board::Sticks) + getCapability(board, Board::Pots) + getCapability(board, Board::Sliders) + getCapability(board, Board::MouseAnalogs);
case MultiposPots: case MultiposPots:
return IS_HORUS_OR_TARANIS(board) ? 3 : 0; return IS_HORUS_OR_TARANIS(board) ? getCapability(board, Board::Pots) : 0;
case MultiposPotsPositions: case MultiposPotsPositions:
return IS_HORUS_OR_TARANIS(board) ? 6 : 0; return IS_HORUS_OR_TARANIS(board) ? 6 : 0;
@ -256,6 +270,8 @@ const int Boards::getCapability(Board::Type board, Board::Capability capability)
return 18; return 18;
else if (IS_TARANIS_X7(board)) else if (IS_TARANIS_X7(board))
return 6; return 6;
else if (IS_TARANIS_XLITES(board))
return 6;
else if (IS_TARANIS_XLITE(board)) else if (IS_TARANIS_XLITE(board))
return 4; return 4;
else if (IS_HORUS_OR_TARANIS(board)) else if (IS_HORUS_OR_TARANIS(board))
@ -405,6 +421,8 @@ const QString Boards::getBoardName(Board::Type board)
return "Taranis X7/X7S"; return "Taranis X7/X7S";
case BOARD_TARANIS_XLITE: case BOARD_TARANIS_XLITE:
return "Taranis X-Lite"; return "Taranis X-Lite";
case BOARD_TARANIS_XLITES:
return "Taranis X-Lite S";
case BOARD_TARANIS_X9D: case BOARD_TARANIS_X9D:
return "Taranis X9D"; return "Taranis X9D";
case BOARD_TARANIS_X9DP: case BOARD_TARANIS_X9DP:

View file

@ -46,6 +46,7 @@ namespace Board {
BOARD_X12S, BOARD_X12S,
BOARD_X10, BOARD_X10,
BOARD_TARANIS_XLITE, BOARD_TARANIS_XLITE,
BOARD_TARANIS_XLITES,
BOARD_ENUM_COUNT BOARD_ENUM_COUNT
}; };
@ -186,14 +187,15 @@ class Boards
#define IS_2560(board) (board==Board::BOARD_GRUVIN9X || board==Board::BOARD_MEGA2560) #define IS_2560(board) (board==Board::BOARD_GRUVIN9X || board==Board::BOARD_MEGA2560)
#define IS_SKY9X(board) (board==Board::BOARD_SKY9X || board==Board::BOARD_9XRPRO || board==Board::BOARD_AR9X) #define IS_SKY9X(board) (board==Board::BOARD_SKY9X || board==Board::BOARD_9XRPRO || board==Board::BOARD_AR9X)
#define IS_9XRPRO(board) (board==Board::BOARD_9XRPRO) #define IS_9XRPRO(board) (board==Board::BOARD_9XRPRO)
#define IS_TARANIS_XLITE(board) (board==Board::BOARD_TARANIS_XLITE) #define IS_TARANIS_XLITE(board) (board==Board::BOARD_TARANIS_XLITE || board==Board::BOARD_TARANIS_XLITES)
#define IS_TARANIS_XLITES(board) (board==Board::BOARD_TARANIS_XLITES)
#define IS_TARANIS_X7(board) (board==Board::BOARD_TARANIS_X7) #define IS_TARANIS_X7(board) (board==Board::BOARD_TARANIS_X7)
#define IS_TARANIS_X9(board) (board==Board::BOARD_TARANIS_X9D || board==Board::BOARD_TARANIS_X9DP || board==Board::BOARD_TARANIS_X9E) #define IS_TARANIS_X9(board) (board==Board::BOARD_TARANIS_X9D || board==Board::BOARD_TARANIS_X9DP || board==Board::BOARD_TARANIS_X9E)
#define IS_TARANIS_X9D(board) (board==Board::BOARD_TARANIS_X9D || board==Board::BOARD_TARANIS_X9DP) #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_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_X9E(board) (board==Board::BOARD_TARANIS_X9E)
#define IS_TARANIS(board) (IS_TARANIS_X9(board) || IS_TARANIS_X7(board) || IS_TARANIS_XLITE(board)) #define IS_TARANIS(board) (IS_TARANIS_X9(board) || IS_TARANIS_X7(board) || IS_TARANIS_XLITE(board) || IS_TARANIS_XLITES(board))
#define IS_TARANIS_SMALL(board) (board==Board::BOARD_TARANIS_X7 || board==Board::BOARD_TARANIS_XLITE) #define IS_TARANIS_SMALL(board) (board==Board::BOARD_TARANIS_X7 || board==Board::BOARD_TARANIS_XLITE || board==Board::BOARD_TARANIS_XLITES)
#define IS_TARANIS_NOT_X9E(board) (IS_TARANIS(board) && !IS_TARANIS_X9E(board)) #define IS_TARANIS_NOT_X9E(board) (IS_TARANIS(board) && !IS_TARANIS_X9E(board))
#define IS_HORUS_X12S(board) (board==Board::BOARD_X12S) #define IS_HORUS_X12S(board) (board==Board::BOARD_X12S)
#define IS_HORUS_X10(board) (board==Board::BOARD_X10) #define IS_HORUS_X10(board) (board==Board::BOARD_X10)

View file

@ -33,6 +33,7 @@
#define TARANIS_X9E_VARIANT 0x8000 #define TARANIS_X9E_VARIANT 0x8000
#define TARANIS_X7_VARIANT 0x4000 #define TARANIS_X7_VARIANT 0x4000
#define TARANIS_XLITE_VARIANT 0x2000 #define TARANIS_XLITE_VARIANT 0x2000
#define TARANIS_XLITES_VARIANT 0x1000
#define SIMU_STOCK_VARIANTS (GVARS_VARIANT|FRSKY_VARIANT) #define SIMU_STOCK_VARIANTS (GVARS_VARIANT|FRSKY_VARIANT)
#define SIMU_M128_VARIANTS (M128_VARIANT|SIMU_STOCK_VARIANTS) #define SIMU_M128_VARIANTS (M128_VARIANT|SIMU_STOCK_VARIANTS)

View file

@ -317,6 +317,9 @@ int OpenTxEepromInterface::save(uint8_t * eeprom, const RadioData & radioData, u
else if (IS_TARANIS_X7(board)) { else if (IS_TARANIS_X7(board)) {
variant |= TARANIS_X7_VARIANT; variant |= TARANIS_X7_VARIANT;
} }
else if (IS_TARANIS_XLITES(board)) {
variant |= TARANIS_XLITES_VARIANT;
}
else if (IS_TARANIS_XLITE(board)) { else if (IS_TARANIS_XLITE(board)) {
variant |= TARANIS_XLITE_VARIANT; variant |= TARANIS_XLITE_VARIANT;
} }
@ -691,6 +694,8 @@ int OpenTxFirmware::getCapability(::Capability capability)
return TARANIS_X9E_VARIANT; return TARANIS_X9E_VARIANT;
else if (IS_TARANIS_X7(board)) else if (IS_TARANIS_X7(board))
return TARANIS_X7_VARIANT; return TARANIS_X7_VARIANT;
else if (IS_TARANIS_XLITES(board))
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 else
@ -921,6 +926,11 @@ bool OpenTxEepromInterface::checkVariant(unsigned int version, unsigned int vari
variantError = true; variantError = true;
} }
} }
else if (IS_TARANIS_XLITES(board)) {
if (variant != TARANIS_XLITES_VARIANT) {
variantError = true;
}
}
else if (IS_TARANIS_XLITE(board)) { else if (IS_TARANIS_XLITE(board)) {
if (variant != TARANIS_XLITE_VARIANT) { if (variant != TARANIS_XLITE_VARIANT) {
variantError = true; variantError = true;
@ -1165,6 +1175,12 @@ void registerOpenTxFirmwares()
addOpenTxTaranisOptions(firmware, false); addOpenTxTaranisOptions(firmware, false);
registerOpenTxFirmware(firmware); registerOpenTxFirmware(firmware);
/* FrSky X-Lite S board */
firmware = new OpenTxFirmware("opentx-xlites", QCoreApplication::translate("Firmware", "FrSky Taranis X-Lite S"), BOARD_TARANIS_XLITES);
// firmware->addOption("stdr9m", QCoreApplication::translate("Firmware", "Use JR-sized R9M module"));
addOpenTxTaranisOptions(firmware);
registerOpenTxFirmware(firmware);
/* FrSky X-Lite board */ /* FrSky X-Lite board */
firmware = new OpenTxFirmware("opentx-xlite", Firmware::tr("FrSky Taranis X-Lite"), BOARD_TARANIS_XLITE); firmware = new OpenTxFirmware("opentx-xlite", Firmware::tr("FrSky Taranis X-Lite"), BOARD_TARANIS_XLITE);
// firmware->addOption("stdr9m", Firmware::tr("Use JR-sized R9M module")); // firmware->addOption("stdr9m", Firmware::tr("Use JR-sized R9M module"));

View file

@ -77,6 +77,7 @@ SimulatorWidget::SimulatorWidget(QWidget * parent, SimulatorInterface * simulato
radioUiWidget = new SimulatedUIWidgetX9(simulator, this); radioUiWidget = new SimulatedUIWidgetX9(simulator, this);
break; break;
case Board::BOARD_TARANIS_XLITE: case Board::BOARD_TARANIS_XLITE:
case Board::BOARD_TARANIS_XLITES:
radioUiWidget = new SimulatedUIWidgetXLITE(simulator, this); radioUiWidget = new SimulatedUIWidgetXLITE(simulator, this);
break; break;
case Board::BOARD_TARANIS_X9E: case Board::BOARD_TARANIS_X9E:
@ -108,7 +109,7 @@ SimulatorWidget::SimulatorWidget(QWidget * parent, SimulatorInterface * simulato
vJoyLeft = new VirtualJoystickWidget(this, 'L'); vJoyLeft = new VirtualJoystickWidget(this, 'L');
ui->leftStickLayout->addWidget(vJoyLeft); ui->leftStickLayout->addWidget(vJoyLeft);
vJoyRight = new VirtualJoystickWidget(this, 'R', (m_board == Board::BOARD_TARANIS_XLITE ? false : true)); // TODO: maybe remove trims for both joysticks and add a cross in the middle? vJoyRight = new VirtualJoystickWidget(this, 'R', (m_board == Board::BOARD_TARANIS_XLITE || m_board == Board::BOARD_TARANIS_XLITES ? false : true)); // TODO: maybe remove trims for both joysticks and add a cross in the middle?
ui->rightStickLayout->addWidget(vJoyRight); ui->rightStickLayout->addWidget(vJoyRight);
connect(vJoyLeft, &VirtualJoystickWidget::valueChange, this, &SimulatorWidget::onRadioWidgetValueChange); connect(vJoyLeft, &VirtualJoystickWidget::valueChange, this, &SimulatorWidget::onRadioWidgetValueChange);

View file

@ -74,7 +74,7 @@ void handleUsbConnection()
#endif // defined(STM32) && !defined(SIMU) #endif // defined(STM32) && !defined(SIMU)
} }
#if defined(JACK_DETECT_GPIO) #if defined(JACK_DETECT_GPIO) && !defined(SIMU)
bool isJackPlugged() bool isJackPlugged()
{ {
// debounce // debounce

View file

@ -129,6 +129,9 @@ const char * getFileExtension(const char * filename, uint8_t size=0, uint8_t ext
#elif defined(PCBX9E) #elif defined(PCBX9E)
#define OTX_FOURCC 0x3578746F // otx for Taranis X9E #define OTX_FOURCC 0x3578746F // otx for Taranis X9E
#define O9X_FOURCC 0x3378396F // o9x for Taranis X9E #define O9X_FOURCC 0x3378396F // o9x for Taranis X9E
#elif defined(PCBXLITES)
#define OTX_FOURCC 0x3B78746F // otx for Taranis X-Lite S
#define O9X_FOURCC 0x3B78396F // o9x for Taranis X-Lite S
#elif defined(PCBXLITE) #elif defined(PCBXLITE)
#define OTX_FOURCC 0x3978746F // otx for Taranis X-Lite #define OTX_FOURCC 0x3978746F // otx for Taranis X-Lite
#define O9X_FOURCC 0x3978396F // o9x for Taranis X-Lite #define O9X_FOURCC 0x3978396F // o9x for Taranis X-Lite

View file

@ -693,6 +693,10 @@ uint32_t isBootloaderStart(const uint8_t * block) { return 1; }
void LCD_ControlLight(uint16_t dutyCycle) { } void LCD_ControlLight(uint16_t dutyCycle) { }
#endif #endif
#if defined(PCBXLITES)
bool isJackPlugged() { return false; }
#endif
void serialPrintf(const char * format, ...) { } void serialPrintf(const char * format, ...) { }
void serialCrlf() { } void serialCrlf() { }
void serialPutc(char c) { } void serialPutc(char c) { }

View file

@ -108,7 +108,7 @@ elseif(PCB STREQUAL XLITES)
set(LUA_EXPORT lua_export_xlite) set(LUA_EXPORT lua_export_xlite)
set(FLAVOUR xlites) set(FLAVOUR xlites)
add_definitions(-DPCBXLITES -DPCBXLITE -DSOFTWARE_VOLUME) add_definitions(-DPCBXLITES -DPCBXLITE -DSOFTWARE_VOLUME)
add_definitions(-DEEPROM_VARIANT=0x2000) add_definitions(-DEEPROM_VARIANT=0x1000)
add_definitions(-DPWR_BUTTON_${PWR_BUTTON}) add_definitions(-DPWR_BUTTON_${PWR_BUTTON})
set(GUI_DIR 128x64) set(GUI_DIR 128x64)
set(NAVIGATION_TYPE xlite) set(NAVIGATION_TYPE xlite)