mirror of
https://github.com/opentx/opentx.git
synced 2025-07-24 16:55:20 +03:00
XLITE-S support
This commit is contained in:
parent
543021a300
commit
2388b90a90
28 changed files with 376 additions and 57 deletions
|
@ -1,7 +1,7 @@
|
|||
include(CMakeForceCompiler)
|
||||
include(Bitmaps)
|
||||
|
||||
set(PCB_TYPES X7 XLITE X9D X9D+ X9E X10 X12S SKY9X 9XRPRO AR9X)
|
||||
set(PCB_TYPES X7 XLITE XLITES X9D X9D+ X9E X10 X12S SKY9X 9XRPRO AR9X)
|
||||
set(GUI_LANGUAGES CZ DE EN ES FR IT PT SK SE PL HU NL)
|
||||
set(TTS_LANGUAGES CZ DE EN ES FR IT PT SK SE PL HU NL RU)
|
||||
|
||||
|
@ -82,7 +82,7 @@ set(FATFS_SRC
|
|||
|
||||
if(PCB STREQUAL X12S OR PCB STREQUAL X10)
|
||||
include(targets/horus/CMakeLists.txt)
|
||||
elseif(PCB STREQUAL X9E OR PCB STREQUAL X9D+ OR PCB STREQUAL X9D OR PCB STREQUAL X7 OR PCB STREQUAL XLITE)
|
||||
elseif(PCB STREQUAL X9E OR PCB STREQUAL X9D+ OR PCB STREQUAL X9D OR PCB STREQUAL X7 OR PCB STREQUAL XLITE OR PCB STREQUAL XLITES)
|
||||
include(targets/taranis/CMakeLists.txt)
|
||||
elseif(PCB STREQUAL SKY9X OR PCB STREQUAL 9XRPRO OR PCB STREQUAL AR9X)
|
||||
include(targets/sky9x/CMakeLists.txt)
|
||||
|
@ -133,7 +133,7 @@ else()
|
|||
add_definitions(-DEEPROM -DEEPROM_RAW)
|
||||
endif()
|
||||
|
||||
if(ARCH STREQUAL ARM AND NOT PCB STREQUAL X12S AND NOT PCB STREQUAL X10 AND NOT PCB STREQUAL XLITE)
|
||||
if(ARCH STREQUAL ARM AND NOT PCB STREQUAL X12S AND NOT PCB STREQUAL X10 AND NOT PCB STREQUAL XLITE AND NOT PCB STREQUAL XLITES)
|
||||
add_definitions(-DEEPROM_CONVERSIONS)
|
||||
set(SRC ${SRC} storage/eeprom_conversions.cpp)
|
||||
endif()
|
||||
|
@ -458,7 +458,7 @@ if(NOT MSVC)
|
|||
set(SRC ${SRC} bin_allocator.cpp)
|
||||
endif()
|
||||
|
||||
if(PCB STREQUAL XLITE OR PCB STREQUAL X9D OR PCB STREQUAL X9D+ OR PCB STREQUAL X9E OR PCB STREQUAL X7 OR PCB STREQUAL X10 OR PCB STREQUAL X12S)
|
||||
if(PCB STREQUAL XLITE OR PCB STREQUAL XLITES OR PCB STREQUAL X9D OR PCB STREQUAL X9D+ OR PCB STREQUAL X9E OR PCB STREQUAL X7 OR PCB STREQUAL X10 OR PCB STREQUAL X12S)
|
||||
add_subdirectory(targets/common/arm/stm32/bootloader)
|
||||
include_directories(${CMAKE_CURRENT_BINARY_DIR}/targets/common/arm/stm32/bootloader)
|
||||
set(FIRMWARE_DEPENDENCIES ${FIRMWARE_DEPENDENCIES} bootloader)
|
||||
|
|
|
@ -358,7 +358,7 @@ enum SwitchSources {
|
|||
|
||||
SWSRC_FIRST_SWITCH,
|
||||
|
||||
#if defined(PCBTARANIS) || defined(PCBHORUS)
|
||||
#if defined(PCBHORUS) || defined(PCBTARANIS)
|
||||
SWSRC_SA0 = SWSRC_FIRST_SWITCH,
|
||||
SWSRC_SA1,
|
||||
SWSRC_SA2,
|
||||
|
@ -371,22 +371,22 @@ enum SwitchSources {
|
|||
SWSRC_SD0,
|
||||
SWSRC_SD1,
|
||||
SWSRC_SD2,
|
||||
#if !defined(PCBX7) && !defined(PCBXLITE)
|
||||
#if defined(PCBHORUS) || defined(PCBX9) || defined(PCBXLITES)
|
||||
SWSRC_SE0,
|
||||
SWSRC_SE1,
|
||||
SWSRC_SE2,
|
||||
#endif
|
||||
#if !defined(PCBXLITE)
|
||||
#if defined(PCBHORUS) || defined(PCBX9) || defined(PCBX7) || defined(PCBXLITES)
|
||||
SWSRC_SF0,
|
||||
SWSRC_SF1,
|
||||
SWSRC_SF2,
|
||||
#endif
|
||||
#if !defined(PCBX7) && !defined(PCBXLITE)
|
||||
#if defined(PCBHORUS) || defined(PCBX9)
|
||||
SWSRC_SG0,
|
||||
SWSRC_SG1,
|
||||
SWSRC_SG2,
|
||||
#endif
|
||||
#if !defined(PCBXLITE)
|
||||
#if defined(PCBHORUS) || defined(PCBX9) || defined(PCBX7)
|
||||
SWSRC_SH0,
|
||||
SWSRC_SH1,
|
||||
SWSRC_SH2,
|
||||
|
@ -423,15 +423,11 @@ enum SwitchSources {
|
|||
SWSRC_SR1,
|
||||
SWSRC_SR2,
|
||||
#endif
|
||||
#if defined(PCBX9E)
|
||||
SWSRC_LAST_SWITCH = SWSRC_FIRST_SWITCH + NUM_SWITCHES_POSITIONS - 1,
|
||||
#if NUM_SWITCHES >= 8
|
||||
SWSRC_TRAINER = SWSRC_SH2,
|
||||
SWSRC_LAST_SWITCH = SWSRC_SR2,
|
||||
#elif defined(PCBXLITE)
|
||||
SWSRC_TRAINER = SWSRC_SD2,
|
||||
SWSRC_LAST_SWITCH = SWSRC_SD2,
|
||||
#else
|
||||
SWSRC_TRAINER = SWSRC_SH2,
|
||||
SWSRC_LAST_SWITCH = SWSRC_SH2,
|
||||
SWSRC_TRAINER = SWSRC_LAST_SWITCH,
|
||||
#endif
|
||||
#else // neither Taranis nor Horus
|
||||
SWSRC_ID0 = SWSRC_FIRST_SWITCH,
|
||||
|
@ -607,25 +603,23 @@ enum MixSources {
|
|||
|
||||
MIXSRC_FIRST_SWITCH,
|
||||
|
||||
#if defined(PCBXLITE)
|
||||
#if defined(PCBHORUS) || defined(PCBTARANIS)
|
||||
MIXSRC_SA = MIXSRC_FIRST_SWITCH, LUA_EXPORT("sa", "Switch A")
|
||||
MIXSRC_SB, LUA_EXPORT("sb", "Switch B")
|
||||
MIXSRC_SC, LUA_EXPORT("sc", "Switch C")
|
||||
MIXSRC_SD, LUA_EXPORT("sd", "Switch D")
|
||||
MIXSRC_LAST_SWITCH = MIXSRC_SD,
|
||||
#elif defined(PCBTARANIS) || defined(PCBHORUS)
|
||||
MIXSRC_SA = MIXSRC_FIRST_SWITCH, LUA_EXPORT("sa", "Switch A")
|
||||
MIXSRC_SB, LUA_EXPORT("sb", "Switch B")
|
||||
MIXSRC_SC, LUA_EXPORT("sc", "Switch C")
|
||||
MIXSRC_SD, LUA_EXPORT("sd", "Switch D")
|
||||
#if !defined(PCBX7)
|
||||
#if defined(PCBHORUS) || defined(PCBX9) || defined(PCBXLITES)
|
||||
MIXSRC_SE, LUA_EXPORT("se", "Switch E")
|
||||
#endif
|
||||
#if defined(PCBHORUS) || defined(PCBX9) || defined(PCBX7) || defined(PCBXLITES)
|
||||
MIXSRC_SF, LUA_EXPORT("sf", "Switch F")
|
||||
#if !defined(PCBX7)
|
||||
#endif
|
||||
#if defined(PCBHORUS) || defined(PCBX9)
|
||||
MIXSRC_SG, LUA_EXPORT("sg", "Switch G")
|
||||
#endif
|
||||
#if defined(PCBHORUS) || defined(PCBX9) || defined(PCBX7)
|
||||
MIXSRC_SH, LUA_EXPORT("sh", "Switch H")
|
||||
#endif
|
||||
#if defined(PCBX9E)
|
||||
MIXSRC_SI, LUA_EXPORT("si", "Switch I")
|
||||
MIXSRC_SJ, LUA_EXPORT("sj", "Switch J")
|
||||
|
@ -637,9 +631,6 @@ enum MixSources {
|
|||
MIXSRC_SP, LUA_EXPORT("sp", "Switch P")
|
||||
MIXSRC_SQ, LUA_EXPORT("sq", "Switch Q")
|
||||
MIXSRC_SR, LUA_EXPORT("sr", "Switch R")
|
||||
MIXSRC_LAST_SWITCH = MIXSRC_SR,
|
||||
#else
|
||||
MIXSRC_LAST_SWITCH = MIXSRC_SH,
|
||||
#endif
|
||||
#else
|
||||
MIXSRC_3POS = MIXSRC_FIRST_SWITCH,
|
||||
|
@ -649,7 +640,6 @@ enum MixSources {
|
|||
MIXSRC_AIL,
|
||||
MIXSRC_GEA,
|
||||
MIXSRC_TRN,
|
||||
MIXSRC_LAST_SWITCH = MIXSRC_TRN,
|
||||
#endif
|
||||
MIXSRC_FIRST_LOGICAL_SWITCH,
|
||||
MIXSRC_SW1 = MIXSRC_FIRST_LOGICAL_SWITCH, LUA_EXPORT_MULTIPLE("ls", "Logical switch L%d", MAX_LOGICAL_SWITCHES)
|
||||
|
@ -705,6 +695,7 @@ enum MixSources {
|
|||
|
||||
#define MIXSRC_FIRST (MIXSRC_NONE + 1)
|
||||
#define MIXSRC_LAST MIXSRC_LAST_CH
|
||||
#define MIXSRC_LAST_SWITCH (MIXSRC_FIRST_SWITCH + NUM_SWITCHES - 1)
|
||||
#define INPUTSRC_FIRST MIXSRC_Rud
|
||||
#define INPUTSRC_LAST MIXSRC_LAST_TELEM
|
||||
|
||||
|
|
|
@ -626,7 +626,8 @@ PACK(struct TrainerData {
|
|||
NOBACKUP(uint8_t jitterFilter:1); /* 0 - active */\
|
||||
NOBACKUP(uint8_t disableRssiPoweroffAlarm:1); \
|
||||
NOBACKUP(uint8_t USBMode:2); \
|
||||
NOBACKUP(uint8_t spareExtraArm:3); \
|
||||
NOBACKUP(uint8_t jackMode:2); \
|
||||
NOBACKUP(uint8_t spareExtraArm:1); \
|
||||
NOBACKUP(char ttsLanguage[2]); \
|
||||
NOBACKUP(int8_t beepVolume:4); \
|
||||
NOBACKUP(int8_t wavVolume:4); \
|
||||
|
@ -869,7 +870,10 @@ static inline void check_struct()
|
|||
CHKSIZE(RssiAlarmData, 2);
|
||||
CHKSIZE(TrainerData, 16);
|
||||
|
||||
#if defined(PCBXLITE)
|
||||
#if defined(PCBXLITES)
|
||||
CHKSIZE(RadioData, 850);
|
||||
CHKSIZE(ModelData, 6025);
|
||||
#elif defined(PCBXLITE)
|
||||
CHKSIZE(RadioData, 844);
|
||||
CHKSIZE(ModelData, 6025);
|
||||
#elif defined(PCBX7)
|
||||
|
|
|
@ -97,6 +97,7 @@ enum MenuRadioSetupItems {
|
|||
IF_FAI_CHOICE(ITEM_SETUP_FAI)
|
||||
ITEM_SETUP_SWITCHES_DELAY,
|
||||
CASE_STM32(ITEM_SETUP_USB_MODE)
|
||||
CASE_JACK_DETECT(ITEM_SETUP_JACK_MODE)
|
||||
ITEM_SETUP_RX_CHANNEL_ORD,
|
||||
ITEM_SETUP_STICK_MODE_LABELS,
|
||||
ITEM_SETUP_STICK_MODE,
|
||||
|
@ -131,7 +132,11 @@ void menuRadioSetup(event_t event)
|
|||
}
|
||||
#endif
|
||||
|
||||
MENU(STR_MENURADIOSETUP, menuTabGeneral, MENU_RADIO_SETUP, HEADER_LINE+ITEM_SETUP_MAX, { HEADER_LINE_COLUMNS CASE_RTCLOCK(2) CASE_RTCLOCK(2) CASE_BATTGRAPH(1) LABEL(SOUND), CASE_AUDIO(0) CASE_BUZZER(0) 0, 0, 0, 0, 0, CASE_AUDIO(0) CASE_VARIO(LABEL(VARIO)) CASE_VARIO(0) CASE_VARIO(0) CASE_VARIO(0) CASE_VARIO(0) CASE_HAPTIC(LABEL(HAPTIC)) CASE_HAPTIC(0) CASE_HAPTIC(0) CASE_HAPTIC(0) 0, LABEL(ALARMS), 0, CASE_CAPACITY(0) CASE_PCBSKY9X(0) 0, 0, 0, 0, IF_ROTARY_ENCODERS(0) LABEL(BACKLIGHT), 0, 0, 0, CASE_PWM_BACKLIGHT(0) CASE_PWM_BACKLIGHT(0) 0, CASE_SPLASH_PARAM(0) CASE_GPS(0) 0, CASE_GPS(0) CASE_PXX(0) 0, 0, IF_FAI_CHOICE(0) 0, CASE_STM32(0) 0, COL_TX_MODE, 0, 1/*to force edit mode*/});
|
||||
MENU(STR_MENURADIOSETUP, menuTabGeneral, MENU_RADIO_SETUP, HEADER_LINE+ITEM_SETUP_MAX, { HEADER_LINE_COLUMNS CASE_RTCLOCK(2) CASE_RTCLOCK(2) CASE_BATTGRAPH(1)
|
||||
LABEL(SOUND), CASE_AUDIO(0) CASE_BUZZER(0) 0, 0, 0, 0, 0, CASE_AUDIO(0) CASE_VARIO(LABEL(VARIO)) CASE_VARIO(0) CASE_VARIO(0) CASE_VARIO(0) CASE_VARIO(0) CASE_HAPTIC(LABEL(HAPTIC)) CASE_HAPTIC(0) CASE_HAPTIC(0) CASE_HAPTIC(0) 0, LABEL(ALARMS), 0, CASE_CAPACITY(0) CASE_PCBSKY9X(0) 0, 0, 0, 0, IF_ROTARY_ENCODERS(0) LABEL(BACKLIGHT), 0, 0, 0, CASE_PWM_BACKLIGHT(0) CASE_PWM_BACKLIGHT(0) 0, CASE_SPLASH_PARAM(0) CASE_GPS(0) 0, CASE_GPS(0) CASE_PXX(0) 0, 0, IF_FAI_CHOICE(0) 0,
|
||||
CASE_STM32(0) // USB mode
|
||||
CASE_JACK_DETECT(0) // Jack mode
|
||||
0, COL_TX_MODE, 0, 1/*to force edit mode*/});
|
||||
|
||||
if (event == EVT_ENTRY) {
|
||||
reusableBuffer.generalSettings.stickMode = g_eeGeneral.stickMode;
|
||||
|
@ -524,11 +529,19 @@ void menuRadioSetup(event_t event)
|
|||
lcdDrawText(lcdLastRightPos, y, STR_MS, attr);
|
||||
if (attr) CHECK_INCDEC_GENVAR(event, g_eeGeneral.switchesDelay, -15, 100-15);
|
||||
break;
|
||||
|
||||
#if defined(STM32)
|
||||
case ITEM_SETUP_USB_MODE:
|
||||
g_eeGeneral.USBMode = editChoice(RADIO_SETUP_2ND_COLUMN, y, STR_USBMODE, STR_USBMODES, g_eeGeneral.USBMode, USB_UNSELECTED_MODE, USB_MAX_MODE, attr, event);
|
||||
break;
|
||||
#endif
|
||||
|
||||
#if defined(JACK_DETECT_GPIO)
|
||||
case ITEM_SETUP_JACK_MODE:
|
||||
g_eeGeneral.jackMode = editChoice(RADIO_SETUP_2ND_COLUMN, y, STR_JACKMODE, STR_JACKMODES, g_eeGeneral.jackMode, JACK_UNSELECTED_MODE, JACK_MAX_MODE, attr, event);
|
||||
break;
|
||||
#endif
|
||||
|
||||
case ITEM_SETUP_RX_CHANNEL_ORD:
|
||||
lcdDrawTextAlignedLeft(y, STR_RXCHANNELORD); // RAET->AETR
|
||||
for (uint8_t i=1; i<=4; i++) {
|
||||
|
|
|
@ -671,9 +671,9 @@ bool luaLoadTelemetryScript(uint8_t index)
|
|||
ScriptInternalData & sid = scriptInternalData[luaScriptsCount++];
|
||||
sid.reference = SCRIPT_TELEMETRY_FIRST+index;
|
||||
sid.state = SCRIPT_NOFILE;
|
||||
char filename[sizeof(SCRIPTS_TELEM_PATH)+sizeof(script.file)+sizeof(SCRIPT_EXT)] = SCRIPTS_TELEM_PATH "/";
|
||||
strncpy(filename+sizeof(SCRIPTS_TELEM_PATH), script.file, sizeof(script.file));
|
||||
filename[sizeof(SCRIPTS_TELEM_PATH)+sizeof(script.file)] = '\0';
|
||||
char filename[sizeof(SCRIPTS_TELEM_PATH) + LEN_SCRIPT_FILENAME + sizeof(SCRIPT_EXT)] = SCRIPTS_TELEM_PATH "/";
|
||||
strncpy(filename + sizeof(SCRIPTS_TELEM_PATH), script.file, LEN_SCRIPT_FILENAME);
|
||||
filename[sizeof(SCRIPTS_TELEM_PATH) + LEN_SCRIPT_FILENAME] = '\0';
|
||||
strcat(filename + sizeof(SCRIPTS_TELEM_PATH), SCRIPT_EXT);
|
||||
if (luaLoad(lsScripts, filename, sid) == SCRIPT_PANIC) {
|
||||
return false;
|
||||
|
|
|
@ -74,6 +74,83 @@ void handleUsbConnection()
|
|||
#endif // defined(STM32) && !defined(SIMU)
|
||||
}
|
||||
|
||||
#if defined(JACK_DETECT_GPIO)
|
||||
bool isJackPlugged()
|
||||
{
|
||||
// debounce
|
||||
static bool debounced_state = 0;
|
||||
static bool last_state = 0;
|
||||
|
||||
if (GPIO_ReadInputDataBit(JACK_DETECT_GPIO, JACK_DETECT_GPIO_PIN)) {
|
||||
if (!last_state) {
|
||||
debounced_state = false;
|
||||
}
|
||||
last_state = false;
|
||||
}
|
||||
else {
|
||||
if (last_state) {
|
||||
debounced_state = true;
|
||||
}
|
||||
last_state = true;
|
||||
}
|
||||
return debounced_state;
|
||||
}
|
||||
#endif
|
||||
|
||||
enum JackState
|
||||
{
|
||||
SPEAKER_ACTIVE,
|
||||
HEADPHONE_ACTIVE,
|
||||
TRAINER_ACTIVE,
|
||||
};
|
||||
|
||||
uint8_t jackState = SPEAKER_ACTIVE;
|
||||
|
||||
const char STR_JACK_HEADPHONE[] = "Headphone";
|
||||
const char STR_JACK_TRAINER[] = "Trainer";
|
||||
|
||||
void onJackConnectMenu(const char * result)
|
||||
{
|
||||
if (result == STR_JACK_HEADPHONE) {
|
||||
jackState = HEADPHONE_ACTIVE;
|
||||
disableSpeaker();
|
||||
enableHeadphone();
|
||||
}
|
||||
else if (result == STR_JACK_TRAINER) {
|
||||
jackState = TRAINER_ACTIVE;
|
||||
enableTrainer();
|
||||
}
|
||||
}
|
||||
|
||||
void handleJackConnection()
|
||||
{
|
||||
#if defined(JACK_DETECT_GPIO)
|
||||
if (jackState == SPEAKER_ACTIVE && isJackPlugged()) {
|
||||
if (g_eeGeneral.jackMode == JACK_HEADPHONE_MODE) {
|
||||
jackState = HEADPHONE_ACTIVE;
|
||||
disableSpeaker();
|
||||
enableHeadphone();
|
||||
}
|
||||
else if (g_eeGeneral.jackMode == JACK_TRAINER_MODE) {
|
||||
jackState = TRAINER_ACTIVE;
|
||||
enableTrainer();
|
||||
}
|
||||
else if (popupMenuNoItems == 0) {
|
||||
POPUP_MENU_ADD_ITEM(STR_JACK_HEADPHONE);
|
||||
POPUP_MENU_ADD_ITEM(STR_JACK_TRAINER);
|
||||
POPUP_MENU_START(onJackConnectMenu);
|
||||
}
|
||||
}
|
||||
else if (jackState == SPEAKER_ACTIVE && !isJackPlugged() && popupMenuNoItems > 0 && popupMenuHandler == onJackConnectMenu) {
|
||||
popupMenuNoItems = 0;
|
||||
}
|
||||
else if (jackState != SPEAKER_ACTIVE && !isJackPlugged()) {
|
||||
jackState = SPEAKER_ACTIVE;
|
||||
enableSpeaker();
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
void checkSpeakerVolume()
|
||||
{
|
||||
if (currentSpeakerVolume != requiredSpeakerVolume) {
|
||||
|
@ -409,6 +486,7 @@ void perMain()
|
|||
checkEeprom();
|
||||
logsWrite();
|
||||
handleUsbConnection();
|
||||
handleJackConnection();
|
||||
checkTrainerSettings();
|
||||
periodicTick();
|
||||
DEBUG_TIMER_STOP(debugTimerPerMain1);
|
||||
|
|
|
@ -248,7 +248,9 @@ void generalDefault()
|
|||
g_eeGeneral.slidersConfig = 0x03; // LS and RS = sliders with detent
|
||||
#endif
|
||||
|
||||
#if defined(PCBXLITE)
|
||||
#if defined(PCBXLITES)
|
||||
g_eeGeneral.switchConfig = (SWITCH_TOGGLE << 10) + (SWITCH_TOGGLE << 8) + (SWITCH_2POS << 6) + (SWITCH_2POS << 4) + (SWITCH_3POS << 2) + (SWITCH_3POS << 0); // 2x3POS, 2x2POS
|
||||
#elif defined(PCBXLITE)
|
||||
g_eeGeneral.switchConfig = (SWITCH_2POS << 6) + (SWITCH_2POS << 4) + (SWITCH_3POS << 2) + (SWITCH_3POS << 0); // 2x3POS, 2x2POS
|
||||
#elif defined(PCBX7)
|
||||
g_eeGeneral.switchConfig = 0x000006ff; // 4x3POS, 1x2POS, 1xTOGGLE
|
||||
|
|
|
@ -211,6 +211,12 @@
|
|||
|
||||
#include "board.h"
|
||||
|
||||
#if defined(JACK_DETECT_GPIO)
|
||||
#define CASE_JACK_DETECT(x) x,
|
||||
#else
|
||||
#define CASE_JACK_DETECT(x)
|
||||
#endif
|
||||
|
||||
#if defined(DISK_CACHE)
|
||||
#include "disk_cache.h"
|
||||
#endif
|
||||
|
@ -1290,4 +1296,13 @@ extern JitterMeter<uint16_t> avgJitter[NUM_ANALOGS];
|
|||
#include "bluetooth.h"
|
||||
#endif
|
||||
|
||||
#if defined(JACK_DETECT_GPIO)
|
||||
enum JackMode {
|
||||
JACK_UNSELECTED_MODE,
|
||||
JACK_HEADPHONE_MODE,
|
||||
JACK_TRAINER_MODE,
|
||||
JACK_MAX_MODE = JACK_TRAINER_MODE
|
||||
};
|
||||
#endif
|
||||
|
||||
#endif // _OPENTX_H_
|
||||
|
|
|
@ -280,6 +280,7 @@ enum EnumSwitchesPositions
|
|||
SW_SH0,
|
||||
SW_SH1,
|
||||
SW_SH2,
|
||||
NUM_SWITCHES_POSITIONS
|
||||
};
|
||||
void keysInit(void);
|
||||
uint8_t keyState(uint8_t index);
|
||||
|
|
|
@ -98,9 +98,27 @@ elseif(PCB STREQUAL XLITE)
|
|||
set(FONTS_TARGET 9x_fonts_1bit)
|
||||
set(LCD_DRIVER lcd_driver_spi.cpp)
|
||||
set(GVAR_SCREEN model_gvars.cpp)
|
||||
elseif(PCB STREQUAL XLITES)
|
||||
set(PXX_FREQUENCY "HIGH" CACHE STRING "PXX frequency (LOW / HIGH)")
|
||||
set(PWR_BUTTON "PRESS" CACHE STRING "Pwr button type (PRESS/SWITCH)")
|
||||
set(CPU_TYPE STM32F2)
|
||||
set(CPU_TYPE_FULL STM32F205xE) # for size report
|
||||
set(LINKER_SCRIPT targets/taranis/stm32f2_flash.ld)
|
||||
set(HAPTIC YES)
|
||||
set(LUA_EXPORT lua_export_xlite)
|
||||
set(FLAVOUR xlites)
|
||||
add_definitions(-DPCBXLITES -DPCBXLITE -DSOFTWARE_VOLUME)
|
||||
add_definitions(-DEEPROM_VARIANT=0x2000)
|
||||
add_definitions(-DPWR_BUTTON_${PWR_BUTTON})
|
||||
set(GUI_DIR 128x64)
|
||||
set(NAVIGATION_TYPE xlite)
|
||||
set(BITMAPS_TARGET 9x_bitmaps)
|
||||
set(FONTS_TARGET 9x_fonts_1bit)
|
||||
set(LCD_DRIVER lcd_driver_spi.cpp)
|
||||
set(GVAR_SCREEN model_gvars.cpp)
|
||||
endif()
|
||||
|
||||
if(PCB STREQUAL XLITE)
|
||||
if(PCB STREQUAL XLITE OR PCB STREQUAL XLITES)
|
||||
if(PXX_FREQUENCY STREQUAL HIGH)
|
||||
add_definitions(-DPXX_FREQUENCY_HIGH)
|
||||
endif()
|
||||
|
@ -124,7 +142,7 @@ else()
|
|||
)
|
||||
endif()
|
||||
|
||||
if(PCB STREQUAL X9E OR PCB STREQUAL X7 OR PCB STREQUAL XLITE)
|
||||
if(PCB STREQUAL X9E OR PCB STREQUAL X7 OR PCB STREQUAL XLITE OR PCB STREQUAL XLITES)
|
||||
add_definitions(-DBLUETOOTH)
|
||||
set(TARGET_SRC
|
||||
${TARGET_SRC}
|
||||
|
@ -163,7 +181,7 @@ set(GUI_SRC ${GUI_SRC}
|
|||
../screenshot.cpp
|
||||
)
|
||||
|
||||
if(PCB STREQUAL X7 OR PCB STREQUAL XLITE)
|
||||
if(PCB STREQUAL X7 OR PCB STREQUAL XLITE OR PCB STREQUAL XLITES)
|
||||
set(LED_DRIVER led_driver.cpp)
|
||||
endif()
|
||||
|
||||
|
@ -177,7 +195,7 @@ set(TARGET_SRC
|
|||
../common/arm/stm32/adc_driver.cpp
|
||||
)
|
||||
|
||||
if(PCB STREQUAL XLITE)
|
||||
if(PCB STREQUAL XLITE OR PCB STREQUAL XLITES)
|
||||
set(TARGET_SRC
|
||||
${TARGET_SRC}
|
||||
../common/arm/stm32/sticks_pwm_driver.cpp
|
||||
|
|
|
@ -272,6 +272,15 @@ void boardInit()
|
|||
if (HAS_SPORT_UPDATE_CONNECTOR()) {
|
||||
sportUpdateInit();
|
||||
}
|
||||
|
||||
#if defined(AUDIO_JACK_DETECT_GPIO)
|
||||
initJackDetect(void);
|
||||
#endif
|
||||
|
||||
initSpeakerEnable();
|
||||
enableSpeaker();
|
||||
|
||||
initHeadphoneTrainerSwitch();
|
||||
#endif // !defined(SIMU)
|
||||
}
|
||||
|
||||
|
@ -357,3 +366,51 @@ uint16_t getBatteryVoltage()
|
|||
instant_vbat += 20; // add 0.2V because of the diode TODO check if this is needed, but removal will beak existing calibrations!!!
|
||||
return (uint16_t)instant_vbat;
|
||||
}
|
||||
|
||||
#if defined(AUDIO_SPEAKER_ENABLE_GPIO)
|
||||
void initSpeakerEnable()
|
||||
{
|
||||
GPIO_InitTypeDef GPIO_InitStructure;
|
||||
|
||||
GPIO_InitStructure.GPIO_Pin = AUDIO_SPEAKER_ENABLE_GPIO_PIN;
|
||||
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
|
||||
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;
|
||||
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
|
||||
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
|
||||
GPIO_Init(AUDIO_SPEAKER_ENABLE_GPIO, &GPIO_InitStructure);
|
||||
}
|
||||
|
||||
void enableSpeaker()
|
||||
{
|
||||
GPIO_SetBits(AUDIO_SPEAKER_ENABLE_GPIO, AUDIO_SPEAKER_ENABLE_GPIO_PIN);
|
||||
}
|
||||
|
||||
void disableSpeaker()
|
||||
{
|
||||
GPIO_ResetBits(AUDIO_SPEAKER_ENABLE_GPIO, AUDIO_SPEAKER_ENABLE_GPIO_PIN);
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(HEADPHONE_TRAINER_SWITCH_GPIO)
|
||||
void initHeadphoneTrainerSwitch()
|
||||
{
|
||||
GPIO_InitTypeDef GPIO_InitStructure;
|
||||
|
||||
GPIO_InitStructure.GPIO_Pin = HEADPHONE_TRAINER_SWITCH_GPIO_PIN;
|
||||
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
|
||||
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;
|
||||
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
|
||||
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
|
||||
GPIO_Init(HEADPHONE_TRAINER_SWITCH_GPIO, &GPIO_InitStructure);
|
||||
}
|
||||
|
||||
void enableHeadphone()
|
||||
{
|
||||
GPIO_ResetBits(HEADPHONE_TRAINER_SWITCH_GPIO, HEADPHONE_TRAINER_SWITCH_GPIO_PIN);
|
||||
}
|
||||
|
||||
void enableTrainer()
|
||||
{
|
||||
GPIO_SetBits(HEADPHONE_TRAINER_SWITCH_GPIO, HEADPHONE_TRAINER_SWITCH_GPIO_PIN);
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -313,22 +313,22 @@ enum EnumSwitchesPositions
|
|||
SW_SD0,
|
||||
SW_SD1,
|
||||
SW_SD2,
|
||||
#if !defined(PCBX7) && !defined(PCBXLITE)
|
||||
#if defined(PCBX9) || defined(PCBXLITES)
|
||||
SW_SE0,
|
||||
SW_SE1,
|
||||
SW_SE2,
|
||||
#endif
|
||||
#if !defined(PCBXLITE)
|
||||
#if defined(PCBX9) || defined(PCBX7) || defined(PCBXLITES)
|
||||
SW_SF0,
|
||||
SW_SF1,
|
||||
SW_SF2,
|
||||
#endif
|
||||
#if !defined(PCBX7) && !defined(PCBXLITE)
|
||||
#if defined(PCBX9)
|
||||
SW_SG0,
|
||||
SW_SG1,
|
||||
SW_SG2,
|
||||
#endif
|
||||
#if !defined(PCBXLITE)
|
||||
#if defined(PCBX9) || defined(PCBX7)
|
||||
SW_SH0,
|
||||
SW_SH1,
|
||||
SW_SH2,
|
||||
|
@ -365,8 +365,11 @@ enum EnumSwitchesPositions
|
|||
SW_SR1,
|
||||
SW_SR2,
|
||||
#endif
|
||||
NUM_SWITCHES_POSITIONS
|
||||
};
|
||||
#if defined(PCBXLITE)
|
||||
#if defined(PCBXLITES)
|
||||
#define NUM_SWITCHES 6
|
||||
#elif defined(PCBXLITE)
|
||||
#define NUM_SWITCHES 4
|
||||
#elif defined(PCBX7)
|
||||
#define NUM_SWITCHES 6
|
||||
|
@ -605,6 +608,28 @@ void setScaledVolume(uint8_t volume);
|
|||
void setVolume(uint8_t volume);
|
||||
int32_t getVolume(void);
|
||||
#endif
|
||||
#if defined(AUDIO_SPEAKER_ENABLE_GPIO)
|
||||
void initSpeakerEnable(void);
|
||||
void enableSpeaker();
|
||||
void disableSpeaker();
|
||||
#else
|
||||
static inline void initSpeakerEnable(void) { }
|
||||
static inline void enableSpeaker(void) { }
|
||||
static inline void disableSpeaker(void) { }
|
||||
#endif
|
||||
#if defined(HEADPHONE_TRAINER_SWITCH_GPIO)
|
||||
void initHeadphoneTrainerSwitch(void);
|
||||
void enableHeadphone(void);
|
||||
void enableTrainer(void);
|
||||
#else
|
||||
static inline void initHeadphoneTrainerSwitch(void) { }
|
||||
static inline void enableHeadphone(void) { }
|
||||
static inline void enableTrainer(void) { }
|
||||
#endif
|
||||
#if defined(AUDIO_JACK_DETECT_GPIO)
|
||||
void initJackDetect(void);
|
||||
bool isJackPlugged();
|
||||
#endif
|
||||
void audioConsumeCurrentBuffer();
|
||||
#define audioDisableIrq() __disable_irq()
|
||||
#define audioEnableIrq() __enable_irq()
|
||||
|
|
|
@ -253,6 +253,9 @@
|
|||
#define SWITCHES_GPIO_PIN_E_H GPIO_Pin_7 // PE.07
|
||||
#define SWITCHES_GPIO_REG_E_L GPIOE->IDR
|
||||
#define SWITCHES_GPIO_PIN_E_L GPIO_Pin_13 // PE.13
|
||||
#elif defined(PCBXLITES)
|
||||
#define SWITCHES_GPIO_REG_E GPIOE->IDR
|
||||
#define SWITCHES_GPIO_PIN_E GPIO_Pin_5 // PE.05
|
||||
#elif defined(PCBX7) || defined(PCBXLITE)
|
||||
// no SWE
|
||||
#else
|
||||
|
@ -265,6 +268,9 @@
|
|||
#if defined(PCBX9E)
|
||||
#define SWITCHES_GPIO_REG_F GPIOE->IDR
|
||||
#define SWITCHES_GPIO_PIN_F GPIO_Pin_11 // PE.11
|
||||
#elif defined(PCBXLITES)
|
||||
#define SWITCHES_GPIO_REG_F GPIOC->IDR
|
||||
#define SWITCHES_GPIO_PIN_F GPIO_Pin_3 // PC.03
|
||||
#elif defined(PCBXLITE)
|
||||
// no SWF
|
||||
#elif defined(PCBX7)
|
||||
|
@ -364,6 +370,12 @@
|
|||
#define KEYS_GPIOC_PINS (TRIMS_GPIO_PIN_RVD | TRIMS_GPIO_PIN_RVU | TRIMS_GPIO_PIN_RHL | TRIMS_GPIO_PIN_RHR)
|
||||
#define KEYS_GPIOD_PINS (KEYS_GPIO_PIN_MENU | KEYS_GPIO_PIN_EXIT | KEYS_GPIO_PIN_PAGE | SWITCHES_GPIO_PIN_H)
|
||||
#define KEYS_GPIOE_PINS (KEYS_GPIO_PIN_PLUS | KEYS_GPIO_PIN_ENTER | KEYS_GPIO_PIN_MINUS | TRIMS_GPIO_PIN_LHR | TRIMS_GPIO_PIN_LHL | TRIMS_GPIO_PIN_LVD | TRIMS_GPIO_PIN_LVU | SWITCHES_GPIO_PIN_F | SWITCHES_GPIO_PIN_A_L | SWITCHES_GPIO_PIN_B_H | SWITCHES_GPIO_PIN_B_L | SWITCHES_GPIO_PIN_C_H | SWITCHES_GPIO_PIN_D_H | SWITCHES_GPIO_PIN_D_L | SWITCHES_GPIO_PIN_G_H | SWITCHES_GPIO_PIN_G_L)
|
||||
#elif defined(PCBXLITES)
|
||||
#define KEYS_RCC_AHB1Periph (RCC_AHB1Periph_GPIOB | RCC_AHB1Periph_GPIOC | RCC_AHB1Periph_GPIOE)
|
||||
#define KEYS_GPIOA_PINS (GPIO_Pin_5 | GPIO_Pin_6)
|
||||
#define KEYS_GPIOB_PINS (GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_4 | GPIO_Pin_5)
|
||||
#define KEYS_GPIOC_PINS (GPIO_Pin_3 | GPIO_Pin_4 | GPIO_Pin_5)
|
||||
#define KEYS_GPIOE_PINS (GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3 | GPIO_Pin_5 | GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_10 | GPIO_Pin_11 | GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_14)
|
||||
#elif defined(PCBXLITE)
|
||||
#define KEYS_RCC_AHB1Periph (RCC_AHB1Periph_GPIOB | RCC_AHB1Periph_GPIOC | RCC_AHB1Periph_GPIOE)
|
||||
#define KEYS_GPIOA_PINS (GPIO_Pin_5 | GPIO_Pin_6)
|
||||
|
@ -576,11 +588,17 @@
|
|||
|
||||
// Internal Module
|
||||
#if defined(PCBXLITE)
|
||||
#define INTMODULE_RCC_AHB1Periph (RCC_AHB1Periph_GPIOB | RCC_AHB1Periph_GPIOD | RCC_AHB1Periph_DMA2)
|
||||
#define INTMODULE_RCC_APB1Periph RCC_APB1Periph_TIM3
|
||||
#define INTMODULE_RCC_APB2Periph RCC_APB2Periph_USART1
|
||||
#if defined(PCBXLITES)
|
||||
#define INTMODULE_RCC_AHB1Periph (RCC_AHB1Periph_GPIOA | RCC_AHB1Periph_GPIOB | RCC_AHB1Periph_DMA2)
|
||||
#define INTMODULE_PWR_GPIO GPIOA
|
||||
#define INTMODULE_PWR_GPIO_PIN GPIO_Pin_15 // PA.15
|
||||
#else
|
||||
#define INTMODULE_RCC_AHB1Periph (RCC_AHB1Periph_GPIOB | RCC_AHB1Periph_GPIOD | RCC_AHB1Periph_DMA2)
|
||||
#define INTMODULE_PWR_GPIO GPIOD
|
||||
#define INTMODULE_PWR_GPIO_PIN GPIO_Pin_9 // PD.09
|
||||
#endif
|
||||
#define INTMODULE_TX_GPIO GPIOB
|
||||
#define INTMODULE_TX_GPIO_PIN GPIO_Pin_6 // PB.06
|
||||
#define INTMODULE_RX_GPIO GPIOB
|
||||
|
@ -857,6 +875,19 @@
|
|||
#define BACKLIGHT_GPIO_PinSource_2 GPIO_PinSource13
|
||||
#define BACKLIGHT_GPIO_AF_1 GPIO_AF_TIM4
|
||||
#define BACKLIGHT_GPIO_AF_2 GPIO_AF_TIM4
|
||||
#elif defined(PCBXLITES)
|
||||
#define BACKLIGHT_RCC_AHB1Periph RCC_AHB1Periph_GPIOA
|
||||
#define BACKLIGHT_RCC_APB1Periph 0
|
||||
#define BACKLIGHT_RCC_APB2Periph RCC_APB2Periph_TIM1
|
||||
#define BACKLIGHT_TIMER_FREQ (PERI2_FREQUENCY * TIMER_MULT_APB2)
|
||||
#define BACKLIGHT_TIMER TIM1
|
||||
#define BACKLIGHT_GPIO GPIOA
|
||||
#define BACKLIGHT_GPIO_PIN GPIO_Pin_10 // PA.10
|
||||
#define BACKLIGHT_GPIO_PinSource GPIO_PinSource10
|
||||
#define BACKLIGHT_GPIO_AF GPIO_AF_TIM1
|
||||
#define BACKLIGHT_CCMR2 TIM_CCMR2_OC3M_1 | TIM_CCMR2_OC3M_2 // Channel 3, PWM
|
||||
#define BACKLIGHT_CCER TIM_CCER_CC3E
|
||||
#define BACKLIGHT_COUNTER_REGISTER BACKLIGHT_TIMER->CCR3
|
||||
#elif defined(PCBXLITE)
|
||||
#define BACKLIGHT_RCC_AHB1Periph RCC_AHB1Periph_GPIOA
|
||||
#define BACKLIGHT_RCC_APB1Periph 0
|
||||
|
@ -1005,6 +1036,23 @@
|
|||
#define I2C_ADDRESS_VOLUME 0x5C
|
||||
#define I2C_FLASH_PAGESIZE 64
|
||||
|
||||
// Second I2C Bus: IMU
|
||||
#if defined(PCBXLITES)
|
||||
#define I2CX_RCC_AHB1Periph (RCC_AHB1Periph_GPIOA | RCC_AHB1Periph_GPIOC)
|
||||
#define I2CX_RCC_APB1Periph RCC_APB1Periph_I2C3
|
||||
#define I2CX I2C3
|
||||
#define I2CX_SCL_GPIO GPIOA
|
||||
#define I2CX_SCL_GPIO_PIN GPIO_Pin_8 // PA.08
|
||||
#define I2CX_SDA_GPIO GPIOC
|
||||
#define I2CX_SDA_GPIO_PIN GPIO_Pin_9 // PC.09
|
||||
#define I2CX_GPIO_AF GPIO_AF_I2C3
|
||||
#define I2CX_SCL_GPIO_PinSource GPIO_PinSource8
|
||||
#define I2CX_SDA_GPIO_PinSource GPIO_PinSource9
|
||||
#define I2CX_SPEED 400000
|
||||
#define I2CX_IMU_INT_GPIO GPIOC
|
||||
#define I2CX_IMU_INT_GPIO_PIN GPIO_Pin_8 // PC.08
|
||||
#endif
|
||||
|
||||
// SD - SPI2
|
||||
#define SD_RCC_AHB1Periph (RCC_AHB1Periph_GPIOD | RCC_AHB1Periph_GPIOB | RCC_AHB1Periph_DMA1)
|
||||
#define SD_RCC_APB1Periph RCC_APB1Periph_SPI2
|
||||
|
@ -1037,7 +1085,6 @@
|
|||
#endif
|
||||
|
||||
// Audio
|
||||
#define AUDIO_RCC_AHB1Periph (RCC_AHB1Periph_GPIOA | RCC_AHB1Periph_DMA1)
|
||||
#define AUDIO_RCC_APB1Periph (RCC_APB1Periph_TIM6 | RCC_APB1Periph_DAC)
|
||||
#define AUDIO_OUTPUT_GPIO GPIOA
|
||||
#define AUDIO_OUTPUT_GPIO_PIN GPIO_Pin_4 // PA.04
|
||||
|
@ -1049,6 +1096,18 @@
|
|||
#define AUDIO_TIMER TIM6
|
||||
#define AUDIO_DMA DMA1
|
||||
|
||||
#if defined(PCBXLITES)
|
||||
#define AUDIO_RCC_AHB1Periph (RCC_AHB1Periph_GPIOA | RCC_AHB1Periph_GPIOC | RCC_AHB1Periph_GPIOD | RCC_AHB1Periph_DMA1)
|
||||
#define JACK_DETECT_GPIO GPIOC
|
||||
#define JACK_DETECT_GPIO_PIN GPIO_Pin_13 // PC.13
|
||||
#define AUDIO_SPEAKER_ENABLE_GPIO GPIOD
|
||||
#define AUDIO_SPEAKER_ENABLE_GPIO_PIN GPIO_Pin_14 // PD.14
|
||||
#define HEADPHONE_TRAINER_SWITCH_GPIO GPIOD
|
||||
#define HEADPHONE_TRAINER_SWITCH_GPIO_PIN GPIO_Pin_13 // PD.13
|
||||
#else
|
||||
#define AUDIO_RCC_AHB1Periph (RCC_AHB1Periph_GPIOA | RCC_AHB1Periph_DMA1)
|
||||
#endif
|
||||
|
||||
// Haptic
|
||||
#if defined(PCBXLITE)
|
||||
#define HAPTIC_PWM
|
||||
|
|
|
@ -204,7 +204,11 @@ uint32_t switchState(uint8_t index)
|
|||
ADD_3POS_CASE(B, 1);
|
||||
ADD_3POS_CASE(C, 2);
|
||||
ADD_3POS_CASE(D, 3);
|
||||
#if defined(PCBXLITE)
|
||||
#if defined(PCBXLITES)
|
||||
ADD_2POS_CASE(E);
|
||||
ADD_2POS_CASE(F);
|
||||
// no SWF, SWG and SWH on XLITE
|
||||
#elif defined(PCBXLITE)
|
||||
// no SWF, SWG and SWH on XLITE
|
||||
#elif defined(PCBX7)
|
||||
ADD_2POS_CASE(F);
|
||||
|
|
|
@ -88,6 +88,7 @@ const char STR_OPEN9X[] =
|
|||
ISTR(VVARIOCENTER)
|
||||
ISTR(COUNTRYCODES)
|
||||
ISTR(USBMODES)
|
||||
ISTR(JACKMODES)
|
||||
ISTR(VFAILSAFE)
|
||||
ISTR(VTRAINERMODES)
|
||||
ISTR(TARANIS_PROTOCOLS)
|
||||
|
@ -359,6 +360,7 @@ const char STR_MODULE_TELEMETRY[] = TR_MODULE_TELEMETRY;
|
|||
const char STR_MODULE_TELEM_ON[] = TR_MODULE_TELEM_ON;
|
||||
const char STR_COUNTRYCODE[] = TR_COUNTRYCODE;
|
||||
const char STR_USBMODE[] = TR_USBMODE;
|
||||
const char STR_JACKMODE[] = TR_JACKMODE;
|
||||
const char STR_FAILSAFE[] = TR_FAILSAFE;
|
||||
const char STR_FAILSAFESET[] = TR_FAILSAFESET;
|
||||
const char STR_HOLD[] = TR_HOLD;
|
||||
|
|
|
@ -185,7 +185,8 @@ extern const char STR_OPEN9X[];
|
|||
#define OFS_VVARIOCENTER (OFS_VBEEPCOUNTDOWN + sizeof(TR_VBEEPCOUNTDOWN))
|
||||
#define OFS_COUNTRYCODES (OFS_VVARIOCENTER + sizeof(TR_VVARIOCENTER))
|
||||
#define OFS_USBMODES (OFS_COUNTRYCODES + sizeof(TR_COUNTRYCODES))
|
||||
#define OFS_VFAILSAFE (OFS_USBMODES + sizeof(TR_USBMODES))
|
||||
#define OFS_JACKMODES (OFS_USBMODES + sizeof(TR_USBMODES))
|
||||
#define OFS_VFAILSAFE (OFS_JACKMODES + sizeof(TR_JACKMODES))
|
||||
#define OFS_VTRAINERMODES (OFS_VFAILSAFE + sizeof(TR_VFAILSAFE))
|
||||
#define OFS_TARANIS_PROTOCOLS (OFS_VTRAINERMODES + sizeof(TR_VTRAINERMODES))
|
||||
#define OFS_R9M_REGION (OFS_TARANIS_PROTOCOLS + sizeof(TR_TARANIS_PROTOCOLS))
|
||||
|
@ -290,6 +291,7 @@ extern const char STR_OPEN9X[];
|
|||
|
||||
#define STR_COUNTRYCODES (STR_OPEN9X + OFS_COUNTRYCODES)
|
||||
#define STR_USBMODES (STR_OPEN9X + OFS_USBMODES)
|
||||
#define STR_JACKMODES (STR_OPEN9X + OFS_JACKMODES)
|
||||
#define STR_VFAILSAFE (STR_OPEN9X + OFS_VFAILSAFE)
|
||||
|
||||
#define STR_VTRAINERMODES (STR_OPEN9X + OFS_VTRAINERMODES)
|
||||
|
@ -579,6 +581,7 @@ extern const char STR_MENUSENSOR[];
|
|||
extern const char STR_SENSOR[];
|
||||
extern const char STR_COUNTRYCODE[];
|
||||
extern const char STR_USBMODE[];
|
||||
extern const char STR_JACKMODE[];
|
||||
extern const char STR_DISABLE_INTERNAL[];
|
||||
|
||||
#if defined(TELEMETRY_FRSKY)
|
||||
|
|
|
@ -99,6 +99,9 @@
|
|||
#define LEN_USBMODES TR("\006", "\010")
|
||||
#define TR_USBMODES TR("Ask\0 ""Joyst\0""SDCard""Serial", "Ask\0 ""Joystick""Storage\0""Serial\0 ")
|
||||
|
||||
#define LEN_JACKMODES "\007"
|
||||
#define TR_JACKMODES "Popup\0 ""Audio\0 ""Trainer"
|
||||
|
||||
#define LEN_TARANIS_PROTOCOLS "\004"
|
||||
#define TR_TARANIS_PROTOCOLS "Vyp\0""PPM\0""XJT\0""DSM2""CRSF""MULT""R9M\0""SBUS"
|
||||
|
||||
|
@ -927,6 +930,7 @@
|
|||
#define TR_SENSOR "SENZOR"
|
||||
#define TR_COUNTRYCODE "Kód regionu"
|
||||
#define TR_USBMODE "USB Mode"
|
||||
#define TR_JACKMODE "Jack Mode"
|
||||
#define TR_VOICELANG "Jazyk hlasu"
|
||||
#define TR_UNITSSYSTEM "Jednotky"
|
||||
#define TR_EDIT "Upravit"
|
||||
|
|
|
@ -101,6 +101,9 @@
|
|||
#define LEN_USBMODES TR("\006", "\010")
|
||||
#define TR_USBMODES TR("Fragen""Joyst\0""SDCard""Serial", "Fragen\0 ""Joystick""Speicher""Seriell\0")
|
||||
|
||||
#define LEN_JACKMODES "\007"
|
||||
#define TR_JACKMODES "Popup\0 ""Audio\0 ""Trainer"
|
||||
|
||||
#define LEN_TARANIS_PROTOCOLS "\004"
|
||||
#define TR_TARANIS_PROTOCOLS "AUS\0""PPM\0""XJT\0""DSM?""CRSF""MULT""R9M\0""SBUS"
|
||||
|
||||
|
@ -932,6 +935,7 @@
|
|||
#define TR_SENSOR "SENSOR"
|
||||
#define TR_COUNTRYCODE "Landescode"
|
||||
#define TR_USBMODE "USB Modus"
|
||||
#define TR_JACKMODE "Jack Mode"
|
||||
#define TR_VOICELANG "Sprach-Ansagen"
|
||||
#define TR_UNITSSYSTEM "Einheiten"
|
||||
#define TR_EDIT "Zeile Editieren"
|
||||
|
|
|
@ -101,6 +101,9 @@
|
|||
#define LEN_USBMODES TR("\006", "\010")
|
||||
#define TR_USBMODES TR("Ask\0 ""Joyst\0""SDCard""Serial", "Ask\0 ""Joystick""Storage\0""Serial\0 ")
|
||||
|
||||
#define LEN_JACKMODES "\007"
|
||||
#define TR_JACKMODES "Ask\0 ""Audio\0 ""Trainer"
|
||||
|
||||
#define LEN_TARANIS_PROTOCOLS "\004"
|
||||
#define TR_TARANIS_PROTOCOLS "OFF\0""PPM\0""XJT\0""DSM2""CRSF""MULT""R9M\0""SBUS"
|
||||
|
||||
|
@ -420,6 +423,9 @@
|
|||
#elif defined(PCBX9E)
|
||||
#define TR_POTS_VSRCRAW "\310F1\0""\310F2\0""\310F3\0""\310F4\0""\311S1\0""\311S2\0""\311LS\0""\311RS\0"
|
||||
#define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0""\312SE\0""\312SF\0""\312SG\0""\312SH\0""\312SI\0""\312SJ\0""\312SK\0""\312SL\0""\312SM\0""\312SN\0""\312SO\0""\312SP\0""\312SQ\0""\312SR\0"
|
||||
#elif defined(PCBXLITES)
|
||||
#define TR_POTS_VSRCRAW "\310S1\0""\310S2\0"
|
||||
#define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0""\312SE\0""\312SF\0"
|
||||
#elif defined(PCBXLITE)
|
||||
#define TR_POTS_VSRCRAW "\310S1\0""\310S2\0"
|
||||
#define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0"
|
||||
|
@ -931,6 +937,7 @@
|
|||
#define TR_SENSOR "SENSOR"
|
||||
#define TR_COUNTRYCODE "Country code"
|
||||
#define TR_USBMODE "USB Mode"
|
||||
#define TR_JACKMODE "Jack Mode"
|
||||
#define TR_VOICELANG "Voice language"
|
||||
#define TR_UNITSSYSTEM "Units"
|
||||
#define TR_EDIT "Edit"
|
||||
|
|
|
@ -101,6 +101,9 @@
|
|||
#define LEN_USBMODES TR("\006", "\010")
|
||||
#define TR_USBMODES TR("Ask\0 ""Joyst\0""SDCard""Serial", "Ask\0 ""Joystick""Storage\0""Serial\0 ")
|
||||
|
||||
#define LEN_JACKMODES "\007"
|
||||
#define TR_JACKMODES "Ask\0 ""Audio\0 ""Trainer"
|
||||
|
||||
#define LEN_TARANIS_PROTOCOLS "\004"
|
||||
#define TR_TARANIS_PROTOCOLS "OFF\0""PPM\0""XJT\0""DSM2""CRSF""MULT""R9M\0""SBUS"
|
||||
|
||||
|
@ -938,6 +941,7 @@
|
|||
#define TR_SENSOR "SENSOR"
|
||||
#define TR_COUNTRYCODE "Codigo Pais"
|
||||
#define TR_USBMODE "USB Mode"
|
||||
#define TR_JACKMODE "Jack Mode"
|
||||
#define TR_VOICELANG "Idioma voces"
|
||||
#define TR_UNITSSYSTEM "Unidades"
|
||||
#define TR_EDIT "Editar"
|
||||
|
|
|
@ -101,6 +101,9 @@
|
|||
#define LEN_USBMODES TR("\006", "\010")
|
||||
#define TR_USBMODES TR("Ask\0 ""Joyst\0""SDCard""Serial", "Ask\0 ""Joystick""Storage\0""Serial\0 ")
|
||||
|
||||
#define LEN_JACKMODES "\007"
|
||||
#define TR_JACKMODES "Ask\0 ""Audio\0 ""Trainer"
|
||||
|
||||
#define LEN_TARANIS_PROTOCOLS "\004"
|
||||
#define TR_TARANIS_PROTOCOLS "OFF\0""PPM\0""XJT\0""DSM2""CRSF""MULT""R9M\0""SBUS"
|
||||
|
||||
|
@ -930,6 +933,7 @@
|
|||
#define TR_SENSOR "SENSOR"
|
||||
#define TR_COUNTRYCODE "Country Code"
|
||||
#define TR_USBMODE "USB Mode"
|
||||
#define TR_JACKMODE "Jack Mode"
|
||||
#define TR_VOICELANG "Voice Language"
|
||||
#define TR_UNITSSYSTEM "Units"
|
||||
#define TR_EDIT "Edit"
|
||||
|
|
|
@ -101,6 +101,9 @@
|
|||
#define LEN_USBMODES TR("\006", "\010")
|
||||
#define TR_USBMODES TR("Popup\0""Joyst\0""SDCard""Série\0", "Demander""Joystick""Stockage""Série\0 ")
|
||||
|
||||
#define LEN_JACKMODES "\007"
|
||||
#define TR_JACKMODES "Ask\0 ""Audio\0 ""Trainer"
|
||||
|
||||
#define LEN_TARANIS_PROTOCOLS "\004"
|
||||
#define TR_TARANIS_PROTOCOLS "OFF\0""PPM\0""XJT\0""DSM2""CRSF""MULT""R9M\0""SBUS"
|
||||
|
||||
|
@ -942,6 +945,7 @@
|
|||
#define TR_SENSOR "SENSOR"
|
||||
#define TR_COUNTRYCODE TR("Zone géo.", "Zone géographique")
|
||||
#define TR_USBMODE "USB Mode"
|
||||
#define TR_JACKMODE "Jack Mode"
|
||||
#define TR_VOICELANG TR("Langue voix", "Langue annonces vocales")
|
||||
#define TR_UNITSSYSTEM "Unités"
|
||||
#define TR_EDIT "Editer"
|
||||
|
|
|
@ -101,6 +101,9 @@
|
|||
#define LEN_USBMODES TR("\006", "\010")
|
||||
#define TR_USBMODES TR("Ask\0 ""Joyst\0""SDCard""Serial", "Ask\0 ""Joystick""Storage\0""Serial\0 ")
|
||||
|
||||
#define LEN_JACKMODES "\007"
|
||||
#define TR_JACKMODES "Ask\0 ""Audio\0 ""Trainer"
|
||||
|
||||
#define LEN_TARANIS_PROTOCOLS "\004"
|
||||
#define TR_TARANIS_PROTOCOLS "OFF\0""PPM\0""XJT\0""DSM2""CRSF""MULT""R9M\0""SBUS"
|
||||
|
||||
|
@ -932,6 +935,7 @@
|
|||
#define TR_SENSOR "SENSOR"
|
||||
#define TR_COUNTRYCODE TR("Codice Paese","Standard 2.4Ghz")
|
||||
#define TR_USBMODE "USB Mode"
|
||||
#define TR_JACKMODE "Jack Mode"
|
||||
#define TR_VOICELANG "Lingua Voce"
|
||||
#define TR_UNITSSYSTEM "Unità"
|
||||
#define TR_EDIT "Modifica"
|
||||
|
|
|
@ -103,6 +103,9 @@
|
|||
#define LEN_USBMODES TR("\006", "\010")
|
||||
#define TR_USBMODES TR("Ask\0 ""Joyst\0""SDCard""Serial", "Ask\0 ""Joystick""Storage\0""Serial\0 ")
|
||||
|
||||
#define LEN_JACKMODES "\007"
|
||||
#define TR_JACKMODES "Popup\0 ""Audio\0 ""Trainer"
|
||||
|
||||
#define LEN_TARANIS_PROTOCOLS "\004"
|
||||
#define TR_TARANIS_PROTOCOLS "UIT\0""PPM\0""XJT\0""DSM2""CRSF""MULT""R9M\0""SBUS"
|
||||
|
||||
|
@ -933,6 +936,7 @@
|
|||
#define TR_SENSOR "SENSOR"
|
||||
#define TR_COUNTRYCODE "Landcode"
|
||||
#define TR_USBMODE "USB Mode"
|
||||
#define TR_JACKMODE "Jack Mode"
|
||||
#define TR_VOICELANG "Taal"
|
||||
#define TR_UNITSSYSTEM "Eenheden"
|
||||
#define TR_EDIT "Wijzigen"
|
||||
|
|
|
@ -101,6 +101,9 @@
|
|||
#define LEN_USBMODES TR("\006", "\010")
|
||||
#define TR_USBMODES TR("Ask\0 ""Joyst\0""SDCard""Serial", "Ask\0 ""Joystick""Storage\0""Serial\0 ")
|
||||
|
||||
#define LEN_JACKMODES "\007"
|
||||
#define TR_JACKMODES "Ask\0 ""Audio\0 ""Trainer"
|
||||
|
||||
#define LEN_TARANIS_PROTOCOLS "\004"
|
||||
#define TR_TARANIS_PROTOCOLS "OFF\0""PPM\0""XJT\0""DSM2""CRSF""MULT""R9M\0""SBUS"
|
||||
|
||||
|
@ -933,6 +936,7 @@
|
|||
#define TR_SENSOR "SENSOR"
|
||||
#define TR_COUNTRYCODE "Kod regionu"
|
||||
#define TR_USBMODE "USB Mode"
|
||||
#define TR_JACKMODE "Jack Mode"
|
||||
#define TR_VOICELANG "Język głosu"
|
||||
#define TR_UNITSSYSTEM "Jednostki"
|
||||
#define TR_EDIT "Edytuj"
|
||||
|
|
|
@ -101,6 +101,9 @@
|
|||
#define LEN_USBMODES TR("\006", "\010")
|
||||
#define TR_USBMODES TR("Ask\0 ""Joyst\0""SDCard""Serial", "Ask\0 ""Joystick""Storage\0""Serial\0 ")
|
||||
|
||||
#define LEN_JACKMODES "\007"
|
||||
#define TR_JACKMODES "Popup\0 ""Audio\0 ""Trainer"
|
||||
|
||||
#define LEN_TARANIS_PROTOCOLS "\004"
|
||||
#define TR_TARANIS_PROTOCOLS "OFF\0""PPM\0""XJT\0""DSM2""CRSF""MULT""R9M\0""SBUS"
|
||||
|
||||
|
@ -937,6 +940,7 @@
|
|||
#define TR_SENSOR "SENSOR"
|
||||
#define TR_COUNTRYCODE "Country Code"
|
||||
#define TR_USBMODE "USB Mode"
|
||||
#define TR_JACKMODE "Jack Mode"
|
||||
#define TR_VOICELANG "Voice Language"
|
||||
#define TR_UNITSSYSTEM "Units"
|
||||
#define TR_EDIT "Edit"
|
||||
|
|
|
@ -101,6 +101,9 @@
|
|||
#define LEN_USBMODES TR("\006", "\010")
|
||||
#define TR_USBMODES TR("Ask\0 ""Joyst\0""SDCard""Serial", "Ask\0 ""Joystick""Storage\0""Serial\0 ")
|
||||
|
||||
#define LEN_JACKMODES "\007"
|
||||
#define TR_JACKMODES "Ask\0 ""Audio\0 ""Trainer"
|
||||
|
||||
#define LEN_TARANIS_PROTOCOLS "\004"
|
||||
#define TR_TARANIS_PROTOCOLS "Av\0 ""PPM\0""XJT\0""DSM2""CRSF""MULT""R9M\0""SBUS"
|
||||
|
||||
|
@ -944,6 +947,7 @@
|
|||
#define TR_SENSOR "SENSOR"
|
||||
#define TR_COUNTRYCODE "Landskod"
|
||||
#define TR_USBMODE "USB Mode"
|
||||
#define TR_JACKMODE "Jack Mode"
|
||||
#define TR_VOICELANG "Röstspråk"
|
||||
#define TR_UNITSSYSTEM "Enheter"
|
||||
#define TR_EDIT "Redigera"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue