mirror of
https://github.com/EdgeTX/edgetx.git
synced 2025-07-23 16:25:12 +03:00
Companion support
This commit is contained in:
parent
f6a6ddd409
commit
78650bb662
9 changed files with 54 additions and 9 deletions
|
@ -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:
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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"));
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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) { }
|
||||||
|
|
|
@ -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)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue