1
0
Fork 0
mirror of https://github.com/EdgeTX/edgetx.git synced 2025-07-22 15:55:17 +03:00

[X10 Express] Compilation support added

This commit is contained in:
Bertrand Songis 2019-08-27 09:13:43 +02:00
parent ed64c59b37
commit d2f3e421af
No known key found for this signature in database
GPG key ID: F189F79290FEC50F
15 changed files with 65 additions and 36 deletions

View file

@ -345,6 +345,8 @@ if(PCB STREQUAL X7 AND PCBREV STREQUAL T12)
set(FLAVOUR t12)
elseif(PCB STREQUAL X9D+ AND PCBREV STREQUAL 2019)
set(FLAVOUR x9d+2019)
elseif(PCB STREQUAL X10 AND PCBREV STREQUAL EXPRESS)
set(FLAVOUR x10express)
else()
string(TOLOWER ${PCB} FLAVOUR)
endif()

View file

@ -59,6 +59,7 @@ uint32_t Boards::getFourCC(Type board)
case BOARD_X12S:
return 0x3478746F;
case BOARD_X10:
case BOARD_X10_EXPRESS:
return 0x3778746F;
case BOARD_TARANIS_XLITE:
return 0x3978746F;
@ -122,6 +123,7 @@ const int Boards::getEEpromSize(Board::Type board)
return EESIZE_MAX;
case BOARD_X12S:
case BOARD_X10:
case BOARD_X10_EXPRESS:
return 0;
}
@ -155,6 +157,7 @@ const int Boards::getFlashSize(Type board)
return FSIZE_TARANIS;
case BOARD_X12S:
case BOARD_X10:
case BOARD_X10_EXPRESS:
return FSIZE_HORUS;
case BOARD_UNKNOWN:
return FSIZE_MAX;
@ -522,6 +525,8 @@ const QString Boards::getBoardName(Board::Type board)
return "Horus X12S";
case BOARD_X10:
return "Horus X10/X10S";
case BOARD_X10_EXPRESS:
return "Horus X10 Express";
default:
return tr("Unknown");
}

View file

@ -46,6 +46,7 @@ namespace Board {
BOARD_TARANIS_X9E,
BOARD_X12S,
BOARD_X10,
BOARD_X10_EXPRESS,
BOARD_TARANIS_XLITE,
BOARD_TARANIS_XLITES,
BOARD_TARANIS_X9LITE,
@ -206,12 +207,11 @@ class Boards
#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_X10(board) (board==Board::BOARD_X10 || board==Board::BOARD_X10_EXPRESS)
#define IS_HORUS(board) (IS_HORUS_X12S(board) || IS_HORUS_X10(board))
#define IS_HORUS_OR_TARANIS(board) (IS_HORUS(board) || IS_TARANIS(board))
#define IS_STM32(board) (IS_TARANIS(board) || IS_HORUS(board))
#define IS_ARM(board) (IS_STM32(board) || IS_SKY9X(board))
#define IS_ACCESS_RADIO(board) (IS_TARANIS_X9LITE(board) || IS_TARANIS_XLITES(board))
#define HAS_LARGE_LCD(board) (IS_HORUS(board) || IS_TARANIS_X9(board))
#endif // _BOARDS_H_

View file

@ -345,7 +345,7 @@ class Firmware
virtual QTime getMaxTimerStart() = 0;
virtual int isAvailable(PulsesProtocol proto, int port=0) = 0;
virtual bool isAvailable(PulsesProtocol proto, int port=0) = 0;
const int getFlashSize();

View file

@ -203,7 +203,7 @@ int Er9xInterface::getSize(const GeneralSettings &settings)
return 0;
}
int Er9xInterface::isAvailable(PulsesProtocol prot, int port)
bool Er9xInterface::isAvailable(PulsesProtocol prot, int port)
{
switch (prot) {
case PULSES_PPM:

View file

@ -52,7 +52,7 @@ class Er9xInterface : public EEPROMInterface
virtual int getSize(const GeneralSettings &settings);
virtual int isAvailable(PulsesProtocol proto, int port=0);
virtual bool isAvailable(PulsesProtocol proto, int port=0);
virtual int getCapability(Capability capability);

View file

@ -251,7 +251,7 @@ int Ersky9xInterface::getSize(const GeneralSettings & settings)
return 0;
}
int Ersky9xInterface::isAvailable(PulsesProtocol prot, int port)
bool Ersky9xInterface::isAvailable(PulsesProtocol prot, int port)
{
switch (prot) {
case PULSES_PPM:

View file

@ -51,7 +51,7 @@ class Ersky9xInterface : public EEPROMInterface
virtual int getSize(const GeneralSettings & settings);
virtual int isAvailable(PulsesProtocol proto, int port=0);
virtual bool isAvailable(PulsesProtocol proto, int port=0);
virtual int getCapability(Capability capability);

View file

@ -163,8 +163,9 @@ void ModelData::clear()
moduleData[0].ppm.delay = 300;
moduleData[1].ppm.delay = 300;
moduleData[2].ppm.delay = 300;
int board = getCurrentBoard();
if (IS_ACCESS_RADIO(board)) {
Firmware * firmware = Firmware::getCurrentVariant();
int board = firmware->getBoard();
if (firmware->isAvailable(PULSES_ACCESS_ISRM, 0)) {
moduleData[0].protocol = PULSES_ACCESS_ISRM;
moduleData[1].protocol = PULSES_OFF;
}

View file

@ -94,6 +94,8 @@ const char * OpenTxEepromInterface::getName()
return "OpenTX for FrSky Horus";
case BOARD_X10:
return "OpenTX for FrSky X10";
case BOARD_X10_EXPRESS:
return "OpenTX for FrSky X10 Express";
default:
return "OpenTX for an unknown board";
}
@ -756,37 +758,38 @@ QTime OpenTxFirmware::getMaxTimerStart()
return QTime(0, 59, 59);
}
int OpenTxFirmware::isAvailable(PulsesProtocol proto, int port)
bool OpenTxFirmware::isAvailable(PulsesProtocol proto, int port)
{
if (IS_HORUS_OR_TARANIS(board)) {
switch (port) {
case 0:
switch (proto) {
case PULSES_OFF:
return 1;
return true;
case PULSES_PXX_XJT_X16:
case PULSES_PXX_XJT_LR12:
return (IS_TARANIS_XLITES(board) || IS_TARANIS_X9LITE(board)) ? 0 : 1;
return !(IS_TARANIS_XLITES(board) || IS_TARANIS_X9LITE(board));
case PULSES_PXX_XJT_D8:
return (IS_TARANIS_XLITES(board) || IS_TARANIS_X9LITE(board) || id.contains("eu")) ? 0 : 1;
return !(IS_TARANIS_XLITES(board) || IS_TARANIS_X9LITE(board) || id.contains("eu"));
case PULSES_PPM:
return id.contains("internalppm") ? 1 : 0;
return id.contains("internalppm");
case PULSES_ACCESS_ISRM:
return IS_TARANIS_XLITES(board) || IS_TARANIS_X9LITE(board) || board == BOARD_TARANIS_X9DP_2019 || board == BOARD_X10_EXPRESS || (IS_HORUS(board) && id.contains("internalaccess"));
case PULSES_ACCST_ISRM_D16:
return (IS_TARANIS_XLITES(board) || IS_TARANIS_X9LITE(board)) ? 1 : 0;
return (IS_TARANIS_XLITES(board) || IS_TARANIS_X9LITE(board));
default:
return 0;
return false;
}
case 1:
switch (proto) {
case PULSES_OFF:
case PULSES_PPM:
return 1;
return true;
case PULSES_PXX_XJT_X16:
case PULSES_PXX_XJT_D8:
case PULSES_PXX_XJT_LR12:
return (IS_TARANIS_XLITES(board) || IS_TARANIS_X9LITE(board)) ? 0 : 1;
return !(IS_TARANIS_XLITES(board) || IS_TARANIS_X9LITE(board));
case PULSES_PXX_R9M:
case PULSES_LP45:
case PULSES_DSM2:
@ -794,28 +797,28 @@ int OpenTxFirmware::isAvailable(PulsesProtocol proto, int port)
case PULSES_SBUS:
case PULSES_MULTIMODULE:
case PULSES_CROSSFIRE:
return 1;
return true;
case PULSES_ACCESS_R9M_LITE:
case PULSES_ACCESS_R9M_LITE_PRO:
return (IS_TARANIS_XLITES(board) || IS_TARANIS_X9LITE(board)) ? 1 : 0;
return (IS_TARANIS_XLITES(board) || IS_TARANIS_X9LITE(board));
case PULSES_XJT_LITE_X16:
case PULSES_XJT_LITE_D8:
case PULSES_XJT_LITE_LR12:
return (IS_TARANIS_XLITES(board) || IS_TARANIS_X9LITE(board)) ? 1 : 0;
return (IS_TARANIS_XLITES(board) || IS_TARANIS_X9LITE(board));
default:
return 0;
return false;
}
case -1:
switch (proto) {
case PULSES_PPM:
return 1;
return true;
default:
return 0;
return false;
}
default:
return 0;
return false;
}
}
else if (IS_SKY9X(board)) {
@ -832,21 +835,21 @@ int OpenTxFirmware::isAvailable(PulsesProtocol proto, int port)
case PULSES_DSMX:
case PULSES_SBUS:
case PULSES_MULTIMODULE:
return 1;
return true;
default:
return 0;
return false;
}
break;
case 1:
switch (proto) {
case PULSES_PPM:
return 1;
return true;
default:
return 0;
return false;
}
break;
default:
return 0;
return false;
}
}
else {
@ -858,9 +861,9 @@ int OpenTxFirmware::isAvailable(PulsesProtocol proto, int port)
// case PULSES_PXX_DJT: // Unavailable for now
case PULSES_PPM16:
case PULSES_PPMSIM:
return 1;
return true;
default:
return 0;
return false;
}
}
}
@ -1256,11 +1259,18 @@ void registerOpenTxFirmwares()
/* FrSky X10 board */
firmware = new OpenTxFirmware("opentx-x10", Firmware::tr("FrSky Horus X10 / X10S"), BOARD_X10);
addOpenTxFrskyOptions(firmware);
firmware->addOption("internalaccess", Firmware::tr("Support for ACCESS internal module replacement"));
registerOpenTxFirmware(firmware);
/* FrSky X10 Express board */
firmware = new OpenTxFirmware("opentx-x10express", Firmware::tr("FrSky Horus X10 Express"), BOARD_X10_EXPRESS);
addOpenTxFrskyOptions(firmware);
registerOpenTxFirmware(firmware);
/* FrSky X12 (Horus) board */
firmware = new OpenTxFirmware("opentx-x12s", Firmware::tr("FrSky Horus X12S"), BOARD_X12S);
addOpenTxFrskyOptions(firmware);
firmware->addOption("internalaccess", Firmware::tr("Support for ACCESS internal module replacement"));
firmware->addOption("pcbdev", Firmware::tr("Use ONLY with first DEV pcb version"));
registerOpenTxFirmware(firmware);

View file

@ -122,7 +122,7 @@ class OpenTxFirmware: public Firmware
virtual QTime getMaxTimerStart();
virtual int isAvailable(PulsesProtocol proto, int port=0);
virtual bool isAvailable(PulsesProtocol proto, int port=0);
protected:

View file

@ -90,6 +90,7 @@ SimulatorWidget::SimulatorWidget(QWidget * parent, SimulatorInterface * simulato
radioUiWidget = new SimulatedUIWidgetX12(simulator, this);
break;
case Board::BOARD_X10:
case Board::BOARD_X10_EXPRESS:
radioUiWidget = new SimulatedUIWidgetX10(simulator, this);
break;
case Board::BOARD_JUMPER_T12:

View file

@ -27,7 +27,6 @@ if(SPLASH STREQUAL OFF)
endif()
if (PCB STREQUAL X10)
set(FLAVOUR x10)
set(PCBREV "STD" CACHE STRING "PCB Revision")
add_definitions(-DPCBX10)
add_definitions(-DSOFTWARE_VOLUME)
@ -42,9 +41,11 @@ if (PCB STREQUAL X10)
set(LCD_DRIVER lcd_driver.cpp)
set(LUA_EXPORT lua_export_x10)
if (PCBREV STREQUAL EXPRESS)
set(FLAVOUR x10express)
option(INTERNAL_MODULE_PXX1 "Support for PXX1 internal module" OFF)
option(INTERNAL_MODULE_PXX2 "Support for PXX2 internal module" ON)
else()
set(FLAVOUR x10)
option(INTERNAL_MODULE_PXX1 "Support for PXX1 internal module" ON)
option(INTERNAL_MODULE_PXX2 "Support for PXX2 internal module" OFF)
endif()

View file

@ -59,10 +59,10 @@ make -j${JOBS} libsimulator
cmake ${COMMON_OPTIONS} -DPCB=X9D ${SRCDIR}
make -j${JOBS} libsimulator
cmake ${COMMON_OPTIONS} -DPCB=X9D+ -DPCBREV=2019 ${SRCDIR}
cmake ${COMMON_OPTIONS} -DPCB=X9D+ ${SRCDIR}
make -j${JOBS} libsimulator
cmake ${COMMON_OPTIONS} -DPCB=X9D+ ${SRCDIR}
cmake ${COMMON_OPTIONS} -DPCB=X9D+ -DPCBREV=2019 ${SRCDIR}
make -j${JOBS} libsimulator
cmake ${COMMON_OPTIONS} -DPCB=XLITE ${SRCDIR}
@ -77,6 +77,9 @@ make -j${JOBS} libsimulator
cmake ${COMMON_OPTIONS} -DPCB=X10 ${SRCDIR}
make -j${JOBS} libsimulator
cmake ${COMMON_OPTIONS} -DPCB=X10 -DPCBREV=EXPRESS ${SRCDIR}
make -j${JOBS} libsimulator
cmake ${COMMON_OPTIONS} -DPCB=X12S ${SRCDIR}
make -j${JOBS} libsimulator

View file

@ -59,6 +59,9 @@ make -j${JOBS} libsimulator
cmake ${COMMON_OPTIONS} -DPCB=X9D+ ${SRCDIR}
make -j${JOBS} libsimulator
cmake ${COMMON_OPTIONS} -DPCB=X9D+ -DPCBREV=2019 ${SRCDIR}
make -j${JOBS} libsimulator
cmake ${COMMON_OPTIONS} -DPCB=XLITE ${SRCDIR}
make -j${JOBS} libsimulator
@ -71,6 +74,9 @@ make -j${JOBS} libsimulator
cmake ${COMMON_OPTIONS} -DPCB=X10 ${SRCDIR}
make -j${JOBS} libsimulator
cmake ${COMMON_OPTIONS} -DPCB=X10 -DPCBREV=EXPRESS ${SRCDIR}
make -j${JOBS} libsimulator
cmake ${COMMON_OPTIONS} -DPCB=X12S ${SRCDIR}
make -j${JOBS} libsimulator