1
0
Fork 0
mirror of https://github.com/EdgeTX/edgetx.git synced 2025-07-23 08:15:13 +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_AR9X:
return EESIZE_9XRPRO;
case BOARD_TARANIS_XLITES:
case BOARD_TARANIS_XLITE:
case BOARD_TARANIS_X7:
case BOARD_TARANIS_X9D:
@ -124,6 +125,7 @@ const int Boards::getFlashSize(Type board)
case BOARD_9XRPRO:
case BOARD_AR9X:
return FSIZE_9XRPRO;
case BOARD_TARANIS_XLITES:
case BOARD_TARANIS_XLITE:
case BOARD_TARANIS_X7:
case BOARD_TARANIS_X9D:
@ -145,7 +147,19 @@ const SwitchInfo Boards::getSwitchInfo(Board::Type board, int index)
if (index < 0)
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[] = {
{SWITCH_3POS, "SA"},
{SWITCH_3POS, "SB"},
@ -155,7 +169,7 @@ const SwitchInfo Boards::getSwitchInfo(Board::Type board, int index)
if (index < DIM(switches))
return switches[index];
}
if (IS_TARANIS_X7(board)) {
else if (IS_TARANIS_X7(board)) {
const Board::SwitchInfo switches[] = {
{SWITCH_3POS, "SA"},
{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);
case MultiposPots:
return IS_HORUS_OR_TARANIS(board) ? 3 : 0;
return IS_HORUS_OR_TARANIS(board) ? getCapability(board, Board::Pots) : 0;
case MultiposPotsPositions:
return IS_HORUS_OR_TARANIS(board) ? 6 : 0;
@ -256,6 +270,8 @@ const int Boards::getCapability(Board::Type board, Board::Capability capability)
return 18;
else if (IS_TARANIS_X7(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))
@ -405,6 +421,8 @@ const QString Boards::getBoardName(Board::Type board)
return "Taranis X7/X7S";
case BOARD_TARANIS_XLITE:
return "Taranis X-Lite";
case BOARD_TARANIS_XLITES:
return "Taranis X-Lite S";
case BOARD_TARANIS_X9D:
return "Taranis X9D";
case BOARD_TARANIS_X9DP:

View file

@ -46,6 +46,7 @@ namespace Board {
BOARD_X12S,
BOARD_X10,
BOARD_TARANIS_XLITE,
BOARD_TARANIS_XLITES,
BOARD_ENUM_COUNT
};
@ -186,14 +187,15 @@ class Boards
#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_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_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_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_XLITE(board))
#define IS_TARANIS_SMALL(board) (board==Board::BOARD_TARANIS_X7 || board==Board::BOARD_TARANIS_XLITE)
#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 || board==Board::BOARD_TARANIS_XLITES)
#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_X10(board) (board==Board::BOARD_X10)

View file

@ -33,6 +33,7 @@
#define TARANIS_X9E_VARIANT 0x8000
#define TARANIS_X7_VARIANT 0x4000
#define TARANIS_XLITE_VARIANT 0x2000
#define TARANIS_XLITES_VARIANT 0x1000
#define SIMU_STOCK_VARIANTS (GVARS_VARIANT|FRSKY_VARIANT)
#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)) {
variant |= TARANIS_X7_VARIANT;
}
else if (IS_TARANIS_XLITES(board)) {
variant |= TARANIS_XLITES_VARIANT;
}
else if (IS_TARANIS_XLITE(board)) {
variant |= TARANIS_XLITE_VARIANT;
}
@ -691,6 +694,8 @@ int OpenTxFirmware::getCapability(::Capability capability)
return TARANIS_X9E_VARIANT;
else if (IS_TARANIS_X7(board))
return TARANIS_X7_VARIANT;
else if (IS_TARANIS_XLITES(board))
return TARANIS_XLITES_VARIANT;
else if (IS_TARANIS_XLITE(board))
return TARANIS_XLITE_VARIANT;
else
@ -921,6 +926,11 @@ bool OpenTxEepromInterface::checkVariant(unsigned int version, unsigned int vari
variantError = true;
}
}
else if (IS_TARANIS_XLITES(board)) {
if (variant != TARANIS_XLITES_VARIANT) {
variantError = true;
}
}
else if (IS_TARANIS_XLITE(board)) {
if (variant != TARANIS_XLITE_VARIANT) {
variantError = true;
@ -1165,6 +1175,12 @@ void registerOpenTxFirmwares()
addOpenTxTaranisOptions(firmware, false);
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 */
firmware = new OpenTxFirmware("opentx-xlite", Firmware::tr("FrSky Taranis X-Lite"), BOARD_TARANIS_XLITE);
// 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);
break;
case Board::BOARD_TARANIS_XLITE:
case Board::BOARD_TARANIS_XLITES:
radioUiWidget = new SimulatedUIWidgetXLITE(simulator, this);
break;
case Board::BOARD_TARANIS_X9E:
@ -108,7 +109,7 @@ SimulatorWidget::SimulatorWidget(QWidget * parent, SimulatorInterface * simulato
vJoyLeft = new VirtualJoystickWidget(this, 'L');
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);
connect(vJoyLeft, &VirtualJoystickWidget::valueChange, this, &SimulatorWidget::onRadioWidgetValueChange);

View file

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

View file

@ -129,6 +129,9 @@ const char * getFileExtension(const char * filename, uint8_t size=0, uint8_t ext
#elif defined(PCBX9E)
#define OTX_FOURCC 0x3578746F // otx 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)
#define OTX_FOURCC 0x3978746F // otx 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) { }
#endif
#if defined(PCBXLITES)
bool isJackPlugged() { return false; }
#endif
void serialPrintf(const char * format, ...) { }
void serialCrlf() { }
void serialPutc(char c) { }

View file

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