mirror of
https://github.com/opentx/opentx.git
synced 2025-07-19 14:25:11 +03:00
Allow USB mode selection on USB connect (#5193)
Allow all USB modes to be compiled in at the same time
This commit is contained in:
parent
2910488a30
commit
b7acee5723
45 changed files with 1515 additions and 1239 deletions
|
@ -3703,7 +3703,8 @@ OpenTxGeneralData::OpenTxGeneralData(GeneralSettings & generalData, Board::Type
|
|||
if (version >= 218) {
|
||||
internalField.Append(new BoolField<1>(this, generalData.jitterFilter));
|
||||
internalField.Append(new BoolField<1>(this, generalData.disableRssiPoweroffAlarm));
|
||||
internalField.Append(new SpareBitsField<5>(this));
|
||||
internalField.Append(new UnsignedField<2>(this, generalData.usbMode));
|
||||
internalField.Append(new SpareBitsField<3>(this));
|
||||
}
|
||||
else {
|
||||
internalField.Append(new SpareBitsField<7>(this));
|
||||
|
|
|
@ -1133,10 +1133,6 @@ void addOpenTxFrskyOptions(OpenTxFirmware * firmware)
|
|||
firmware->addOption("lua", QObject::tr("Support for Lua model scripts"));
|
||||
firmware->addOption("luac", QObject::tr("Enable Lua compiler"));
|
||||
firmware->addOption("bindopt", QObject::tr("Enable bindings options"));
|
||||
Option usb_options[] = {{"massstorage", QObject::tr("Instead of Joystick emulation, USB connection is Mass Storage (as in the Bootloader)")},
|
||||
{"cli", QObject::tr("Instead of Joystick emulation, USB connection is Command Line Interface")},
|
||||
{NULL}};
|
||||
firmware->addOptions(usb_options);
|
||||
}
|
||||
|
||||
void addOpenTxTaranisOptions(OpenTxFirmware * firmware)
|
||||
|
|
|
@ -152,6 +152,14 @@ ui(new Ui::GeneralSetup)
|
|||
ui->adjustRTC->hide();
|
||||
}
|
||||
|
||||
if (IS_STM32(firmware->getBoard())){
|
||||
ui->usbModeCB->setCurrentIndex(generalSettings.usbMode);
|
||||
}
|
||||
else {
|
||||
ui->usbModeLabel->hide();
|
||||
ui->usbModeCB->hide();
|
||||
}
|
||||
|
||||
if (!firmware->getCapability(OptrexDisplay)) {
|
||||
ui->label_displayType->hide();
|
||||
ui->displayTypeCB->setDisabled(true);
|
||||
|
@ -332,6 +340,14 @@ void GeneralSetupPanel::on_backlightswCB_currentIndexChanged(int index)
|
|||
}
|
||||
}
|
||||
|
||||
void GeneralSetupPanel::on_usbModeCB_currentIndexChanged(int index)
|
||||
{
|
||||
if (!lock) {
|
||||
generalSettings.usbMode = ui->usbModeCB->currentIndex();
|
||||
emit modified();
|
||||
}
|
||||
}
|
||||
|
||||
void GeneralSetupPanel::on_backlightColor_SL_valueChanged()
|
||||
{
|
||||
if (!lock) {
|
||||
|
|
|
@ -59,6 +59,7 @@ class GeneralSetupPanel : public GeneralPanel
|
|||
void on_hapticmodeCB_currentIndexChanged(int index);
|
||||
void on_hapticLengthCB_currentIndexChanged(int index);
|
||||
void on_backlightswCB_currentIndexChanged(int index);
|
||||
void on_usbModeCB_currentIndexChanged(int index);
|
||||
void on_backlightColor_SL_valueChanged();
|
||||
void on_mavbaud_CB_currentIndexChanged(int index);
|
||||
void on_voiceLang_CB_currentIndexChanged(int index);
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -1184,6 +1184,7 @@ class GeneralSettings {
|
|||
BeeperMode beeperMode;
|
||||
bool disableAlarmWarning;
|
||||
bool disableRssiPoweroffAlarm;
|
||||
unsigned int usbMode;
|
||||
BeeperMode hapticMode;
|
||||
unsigned int stickMode; // TODO enum
|
||||
int timezone;
|
||||
|
|
|
@ -897,7 +897,8 @@ PACK(struct TrainerData {
|
|||
NOBACKUP(uint8_t imperial:1); \
|
||||
NOBACKUP(uint8_t jitterFilter:1); /* 0 - active */\
|
||||
NOBACKUP(uint8_t disableRssiPoweroffAlarm:1); \
|
||||
NOBACKUP(uint8_t spareExtraArm:5); \
|
||||
NOBACKUP(uint8_t USBMode:2); \
|
||||
NOBACKUP(uint8_t spareExtraArm:3); \
|
||||
NOBACKUP(char ttsLanguage[2]); \
|
||||
NOBACKUP(int8_t beepVolume:4); \
|
||||
NOBACKUP(int8_t wavVolume:4); \
|
||||
|
|
|
@ -34,6 +34,8 @@
|
|||
extern "C" {
|
||||
#endif
|
||||
|
||||
uint8_t serial2TracesEnabled();
|
||||
|
||||
#if defined(SIMU)
|
||||
typedef void (*traceCallbackFunc)(const char * text);
|
||||
extern traceCallbackFunc traceCallback;
|
||||
|
@ -41,14 +43,10 @@ extern "C" {
|
|||
#elif defined(SEMIHOSTING)
|
||||
#include <stdio.h>
|
||||
#define debugPrintf(...) printf(__VA_ARGS__)
|
||||
#elif defined(DEBUG) && defined(CLI) && defined(USB_SERIAL)
|
||||
#define debugPrintf(...) do { if (cliTracesEnabled) serialPrintf(__VA_ARGS__); } while(0)
|
||||
#elif defined(DEBUG) && defined(CLI)
|
||||
uint8_t serial2TracesEnabled();
|
||||
#define debugPrintf(...) do { if (serial2TracesEnabled() && cliTracesEnabled) serialPrintf(__VA_ARGS__); } while(0)
|
||||
#elif defined(DEBUG) && defined(CPUARM) && !defined(PCBX7)
|
||||
uint8_t serial2TracesEnabled();
|
||||
#define debugPrintf(...) do { if (serial2TracesEnabled()) serialPrintf(__VA_ARGS__); } while(0)
|
||||
#define debugPrintf(...) do { if (cliTracesEnabled) serialPrintf(__VA_ARGS__); } while(0)
|
||||
#elif defined(DEBUG) && defined(CPUARM) && defined(SERIAL2)
|
||||
#define debugPrintf(...) do { serialPrintf(__VA_ARGS__); } while(0)
|
||||
#else
|
||||
#define debugPrintf(...)
|
||||
#endif
|
||||
|
|
|
@ -107,6 +107,7 @@ enum MenuRadioSetupItems {
|
|||
IF_FAI_CHOICE(ITEM_SETUP_FAI)
|
||||
CASE_MAVLINK(ITEM_MAVLINK_BAUD)
|
||||
CASE_CPUARM(ITEM_SETUP_SWITCHES_DELAY)
|
||||
CASE_STM32(ITEM_SETUP_USB_MODE)
|
||||
ITEM_SETUP_RX_CHANNEL_ORD,
|
||||
ITEM_SETUP_STICK_MODE_LABELS,
|
||||
ITEM_SETUP_STICK_MODE,
|
||||
|
@ -141,7 +142,7 @@ 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) CASE_VOICE(0) CASE_CPUARM(0) CASE_CPUARM(0) CASE_CPUARM(0) 0, CASE_AUDIO(0) CASE_VARIO_CPUARM(LABEL(VARIO)) CASE_VARIO_CPUARM(0) CASE_VARIO_CPUARM(0) CASE_VARIO_CPUARM(0) CASE_VARIO_CPUARM(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, CASE_CPUARM(0) IF_ROTARY_ENCODERS(0) LABEL(BACKLIGHT), 0, 0, CASE_CPUARM(0) CASE_PWM_BACKLIGHT(0) CASE_PWM_BACKLIGHT(0) 0, CASE_SPLASH_PARAM(0) CASE_GPS(0) CASE_CPUARM(0) CASE_GPS(0) CASE_PXX(0) CASE_CPUARM(0) CASE_CPUARM(0) IF_FAI_CHOICE(0) CASE_MAVLINK(0) CASE_CPUARM(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) CASE_VOICE(0) CASE_CPUARM(0) CASE_CPUARM(0) CASE_CPUARM(0) 0, CASE_AUDIO(0) CASE_VARIO_CPUARM(LABEL(VARIO)) CASE_VARIO_CPUARM(0) CASE_VARIO_CPUARM(0) CASE_VARIO_CPUARM(0) CASE_VARIO_CPUARM(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, CASE_CPUARM(0) IF_ROTARY_ENCODERS(0) LABEL(BACKLIGHT), 0, 0, CASE_CPUARM(0) CASE_PWM_BACKLIGHT(0) CASE_PWM_BACKLIGHT(0) 0, CASE_SPLASH_PARAM(0) CASE_GPS(0) CASE_CPUARM(0) CASE_GPS(0) CASE_PXX(0) CASE_CPUARM(0) CASE_CPUARM(0) IF_FAI_CHOICE(0) CASE_MAVLINK(0) CASE_STM32(0) 0, COL_TX_MODE, 0, 1/*to force edit mode*/});
|
||||
|
||||
if (event == EVT_ENTRY) {
|
||||
reusableBuffer.generalSettings.stickMode = g_eeGeneral.stickMode;
|
||||
|
@ -564,7 +565,11 @@ void menuRadioSetup(event_t event)
|
|||
if (attr) CHECK_INCDEC_GENVAR(event, g_eeGeneral.switchesDelay, -15, 100-15);
|
||||
break;
|
||||
#endif
|
||||
|
||||
#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
|
||||
case ITEM_SETUP_RX_CHANNEL_ORD:
|
||||
lcdDrawTextAlignedLeft(y, STR_RXCHANNELORD); // RAET->AETR
|
||||
for (uint8_t i=1; i<=4; i++) {
|
||||
|
|
|
@ -88,6 +88,7 @@ enum MenuRadioSetupItems {
|
|||
IF_FAI_CHOICE(ITEM_SETUP_FAI)
|
||||
CASE_MAVLINK(ITEM_MAVLINK_BAUD)
|
||||
ITEM_SETUP_SWITCHES_DELAY,
|
||||
ITEM_SETUP_USB_MODE,
|
||||
ITEM_SETUP_RX_CHANNEL_ORD,
|
||||
ITEM_SETUP_STICK_MODE_LABELS,
|
||||
ITEM_SETUP_STICK_MODE,
|
||||
|
@ -478,6 +479,10 @@ void menuRadioSetup(event_t event)
|
|||
if (attr) CHECK_INCDEC_GENVAR(event, g_eeGeneral.switchesDelay, -15, 100-15);
|
||||
break;
|
||||
|
||||
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;
|
||||
|
||||
case ITEM_SETUP_RX_CHANNEL_ORD:
|
||||
lcdDrawTextAlignedLeft(y, STR_RXCHANNELORD); // RAET->AETR
|
||||
for (uint8_t i=1; i<=4; i++) {
|
||||
|
|
|
@ -92,13 +92,6 @@ void menuStatisticsView(event_t event)
|
|||
#define MENU_DEBUG_Y_USB (5*FH)
|
||||
#define MENU_DEBUG_Y_RTOS (6*FH)
|
||||
|
||||
#if defined(USB_SERIAL)
|
||||
extern uint16_t usbWraps;
|
||||
extern uint16_t charsWritten;
|
||||
extern "C" volatile uint32_t APP_Rx_ptr_in;
|
||||
extern "C" volatile uint32_t APP_Rx_ptr_out;
|
||||
#endif
|
||||
|
||||
void menuStatisticsDebug(event_t event)
|
||||
{
|
||||
TITLE(STR_MENUDEBUG);
|
||||
|
|
|
@ -76,6 +76,7 @@ enum menuRadioSetupItems {
|
|||
IF_FAI_CHOICE(ITEM_SETUP_FAI)
|
||||
// CASE_MAVLINK(ITEM_MAVLINK_BAUD)
|
||||
ITEM_SETUP_SWITCHES_DELAY,
|
||||
ITEM_SETUP_USB_MODE,
|
||||
ITEM_SETUP_RX_CHANNEL_ORD,
|
||||
ITEM_SETUP_STICK_MODE,
|
||||
ITEM_SETUP_MAX
|
||||
|
@ -460,6 +461,11 @@ bool menuRadioSetup(event_t event)
|
|||
if (attr) CHECK_INCDEC_GENVAR(event, g_eeGeneral.switchesDelay, -15, 100-15);
|
||||
break;
|
||||
|
||||
case ITEM_SETUP_USB_MODE:
|
||||
lcdDrawText(MENUS_MARGIN_LEFT, y, STR_USBMODE);
|
||||
g_eeGeneral.USBMode = editChoice(RADIO_SETUP_2ND_COLUMN, y, STR_USBMODES, g_eeGeneral.USBMode, USB_UNSELECTED_MODE, USB_MAX_MODE, attr, event);
|
||||
break;
|
||||
|
||||
case ITEM_SETUP_RX_CHANNEL_ORD:
|
||||
{
|
||||
lcdDrawText(MENUS_MARGIN_LEFT, y, STR_RXCHANNELORD); // RAET->AETR
|
||||
|
|
|
@ -24,20 +24,49 @@ uint8_t currentSpeakerVolume = 255;
|
|||
uint8_t requiredSpeakerVolume = 255;
|
||||
uint8_t mainRequestFlags = 0;
|
||||
|
||||
#if defined(STM32)
|
||||
void onUSBConnectMenu(const char *result)
|
||||
{
|
||||
if (result == STR_USB_MASS_STORAGE) {
|
||||
setSelectedUsbMode(USB_MASS_STORAGE_MODE);
|
||||
}
|
||||
else if (result == STR_USB_JOYSTICK) {
|
||||
setSelectedUsbMode(USB_JOYSTICK_MODE);
|
||||
}
|
||||
else if (result == STR_USB_SERIAL) {
|
||||
setSelectedUsbMode(USB_SERIAL_MODE);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
void handleUsbConnection()
|
||||
{
|
||||
#if defined(STM32) && !defined(SIMU)
|
||||
if (!usbStarted() && usbPlugged()) {
|
||||
if (!usbStarted() && usbPlugged() && !(getSelectedUsbMode() == USB_UNSELECTED_MODE)) {
|
||||
usbStart();
|
||||
#if defined(USB_MASS_STORAGE)
|
||||
if (getSelectedUsbMode() == USB_MASS_STORAGE_MODE) {
|
||||
opentxClose(false);
|
||||
usbPluggedIn();
|
||||
#endif
|
||||
}
|
||||
}
|
||||
if (!usbStarted() && usbPlugged() && getSelectedUsbMode() == USB_UNSELECTED_MODE) {
|
||||
if((g_eeGeneral.USBMode == 0) && (popupMenuNoItems == 0)) {
|
||||
POPUP_MENU_ADD_ITEM(STR_USB_JOYSTICK);
|
||||
POPUP_MENU_ADD_ITEM(STR_USB_MASS_STORAGE);
|
||||
POPUP_MENU_ADD_ITEM(STR_USB_SERIAL);
|
||||
POPUP_MENU_START(onUSBConnectMenu);
|
||||
}
|
||||
if (g_eeGeneral.USBMode != USB_UNSELECTED_MODE) {
|
||||
setSelectedUsbMode(g_eeGeneral.USBMode);
|
||||
}
|
||||
}
|
||||
if (usbStarted() && !usbPlugged()) {
|
||||
usbStop();
|
||||
#if defined(USB_MASS_STORAGE) && !defined(EEPROM)
|
||||
if (getSelectedUsbMode() == USB_MASS_STORAGE_MODE) {
|
||||
opentxResume();
|
||||
}
|
||||
#if !defined(BOOT)
|
||||
setSelectedUsbMode(USB_UNSELECTED_MODE);
|
||||
#endif
|
||||
}
|
||||
#endif // defined(STM32) && !defined(SIMU)
|
||||
|
@ -403,11 +432,9 @@ void perMain()
|
|||
}
|
||||
#endif
|
||||
|
||||
#if defined(PCBHORUS)
|
||||
// TODO if it is OK on HORUS it could be ported to all other boards
|
||||
// But in this case it's needed to define sdMount for all boards, because sdInit also initializes the SD mutex
|
||||
static uint32_t sdcard_present_before = SD_CARD_PRESENT();
|
||||
uint32_t sdcard_present_now = SD_CARD_PRESENT();
|
||||
#if defined(STM32)
|
||||
static bool sdcard_present_before = SD_CARD_PRESENT();
|
||||
bool sdcard_present_now = SD_CARD_PRESENT();
|
||||
if (sdcard_present_now && !sdcard_present_before) {
|
||||
sdMount();
|
||||
}
|
||||
|
@ -423,7 +450,7 @@ void perMain()
|
|||
#endif
|
||||
|
||||
#if defined(USB_MASS_STORAGE)
|
||||
if (usbPlugged()) {
|
||||
if (usbPlugged() && getSelectedUsbMode() == USB_MASS_STORAGE_MODE) {
|
||||
// disable access to menus
|
||||
lcdClear();
|
||||
menuMainView(0);
|
||||
|
@ -459,4 +486,3 @@ void perMain()
|
|||
gpsWakeup();
|
||||
#endif
|
||||
}
|
||||
|
||||
|
|
|
@ -1996,9 +1996,7 @@ void opentxResume()
|
|||
menuHandlers[0] = menuMainView;
|
||||
|
||||
sdMount();
|
||||
|
||||
storageReadAll();
|
||||
|
||||
#if defined(PCBHORUS)
|
||||
loadTheme();
|
||||
loadFontCache();
|
||||
|
|
|
@ -50,6 +50,12 @@
|
|||
#define IF_CPUARM(x)
|
||||
#endif
|
||||
|
||||
#if defined(STM32)
|
||||
#define CASE_STM32(x) x,
|
||||
#else
|
||||
#define CASE_STM32(x)
|
||||
#endif
|
||||
|
||||
#if defined(VARIO) && defined(CPUARM)
|
||||
#define CASE_VARIO_CPUARM(x) x,
|
||||
#else
|
||||
|
|
|
@ -25,11 +25,11 @@
|
|||
|
||||
#define PRINTF_BUFFER_SIZE 128
|
||||
|
||||
void serialPutc(char c)
|
||||
{
|
||||
#if defined(USB_SERIAL)
|
||||
void serialPutc(char c) {
|
||||
if (getSelectedUsbMode() == USB_SERIAL_MODE)
|
||||
usbSerialPutc(c);
|
||||
#elif defined(SERIAL2)
|
||||
#if defined(SERIAL2)
|
||||
if (serial2TracesEnabled())
|
||||
serial2Putc(c);
|
||||
#endif
|
||||
}
|
||||
|
|
|
@ -1,8 +1,6 @@
|
|||
set(LUA "NO" CACHE STRING "Lua scripts (YES/NO/NO_MODEL_SCRIPTS)")
|
||||
set_property(CACHE LUA PROPERTY STRINGS YES NO NO_MODEL_SCRIPTS)
|
||||
set(LUA_SCRIPT_LOAD_MODE "" CACHE STRING "Script loading mode and compilation flags [btTxcd] (see loadScript() API docs). Blank for default ('bt' on radio, 'T' on SIMU/DEBUG builds)")
|
||||
set(USB "JOYSTICK" CACHE STRING "USB option (JOYSTICK/MASSSTORAGE/SERIAL)")
|
||||
set_property(CACHE USB PROPERTY STRINGS JOYSTICK MASSSTORAGE SERIAL)
|
||||
option(LUA_COMPILER "Pre-compile and save Lua scripts" OFF)
|
||||
|
||||
set(ARCH ARM)
|
||||
|
@ -38,7 +36,6 @@ set(FIRMWARE_TARGET_SRC
|
|||
../common/arm/stm32/usbd_usr.cpp
|
||||
../common/arm/stm32/usb_driver.cpp
|
||||
)
|
||||
if(USB STREQUAL SERIAL)
|
||||
add_definitions(-DUSB_SERIAL)
|
||||
set(FIRMWARE_TARGET_SRC
|
||||
${FIRMWARE_TARGET_SRC}
|
||||
|
@ -48,7 +45,6 @@ if(USB STREQUAL SERIAL)
|
|||
${STM32USB_SRC}
|
||||
STM32_USB_Device_Library/Class/cdc/src/usbd_cdc_core.c
|
||||
)
|
||||
elseif(USB STREQUAL MASSSTORAGE)
|
||||
add_definitions(-DUSB_MASS_STORAGE)
|
||||
set(STM32USB_SRC
|
||||
${STM32USB_SRC}
|
||||
|
@ -61,13 +57,11 @@ elseif(USB STREQUAL MASSSTORAGE)
|
|||
${FIRMWARE_TARGET_SRC}
|
||||
../common/arm/stm32/usbd_storage_msd.cpp
|
||||
)
|
||||
else()
|
||||
add_definitions(-DUSB_JOYSTICK)
|
||||
set(FIRMWARE_TARGET_SRC
|
||||
${FIRMWARE_TARGET_SRC}
|
||||
../common/arm/stm32/usbd_hid_joystick.c
|
||||
)
|
||||
endif()
|
||||
if(GVARS)
|
||||
set(GUI_SRC
|
||||
${GUI_SRC}
|
||||
|
|
|
@ -91,7 +91,7 @@ void serial2Init(unsigned int mode, unsigned int protocol)
|
|||
case UART_MODE_TELEMETRY_MIRROR:
|
||||
uart3Setup(FRSKY_SPORT_BAUDRATE, false);
|
||||
break;
|
||||
#if !defined(USB_SERIAL) && (defined(DEBUG) || defined(CLI))
|
||||
#if defined(DEBUG) || defined(CLI)
|
||||
case UART_MODE_DEBUG:
|
||||
uart3Setup(DEBUG_BAUDRATE, false);
|
||||
break;
|
||||
|
@ -153,7 +153,8 @@ extern "C" void SERIAL_USART_IRQHandler(void)
|
|||
}
|
||||
}
|
||||
|
||||
#if !defined(USB_SERIAL) && defined(CLI)
|
||||
#if defined(CLI)
|
||||
if (!(getSelectedUsbMode() == USB_SERIAL_MODE)) {
|
||||
// Receive
|
||||
uint32_t status = SERIAL_USART->SR;
|
||||
while (status & (USART_FLAG_RXNE | USART_FLAG_ERRORS)) {
|
||||
|
@ -167,5 +168,6 @@ extern "C" void SERIAL_USART_IRQHandler(void)
|
|||
}
|
||||
status = SERIAL_USART->SR;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
|
|
@ -31,6 +31,21 @@ extern "C" {
|
|||
#include "debug.h"
|
||||
|
||||
static bool usbDriverStarted = false;
|
||||
#if defined(BOOT)
|
||||
static usbMode selectedUsbMode = USB_MASS_STORAGE_MODE;
|
||||
#else
|
||||
static usbMode selectedUsbMode = USB_UNSELECTED_MODE;
|
||||
#endif
|
||||
|
||||
int getSelectedUsbMode()
|
||||
{
|
||||
return selectedUsbMode;
|
||||
}
|
||||
|
||||
void setSelectedUsbMode(int mode)
|
||||
{
|
||||
selectedUsbMode = usbMode (mode);
|
||||
}
|
||||
|
||||
int usbPlugged()
|
||||
{
|
||||
|
@ -70,16 +85,23 @@ void usbInit()
|
|||
|
||||
void usbStart()
|
||||
{
|
||||
#if defined(USB_JOYSTICK)
|
||||
switch (getSelectedUsbMode()) {
|
||||
#if !defined(BOOT)
|
||||
case USB_JOYSTICK_MODE:
|
||||
// initialize USB as HID device
|
||||
USBD_Init(&USB_OTG_dev, USB_OTG_FS_CORE_ID, &USR_desc, &USBD_HID_cb, &USR_cb);
|
||||
#elif defined(USB_SERIAL)
|
||||
break;
|
||||
case USB_SERIAL_MODE:
|
||||
// initialize USB as CDC device (virtual serial port)
|
||||
USBD_Init(&USB_OTG_dev, USB_OTG_FS_CORE_ID, &USR_desc, &USBD_CDC_cb, &USR_cb);
|
||||
#elif defined(USB_MASS_STORAGE)
|
||||
break;
|
||||
#endif
|
||||
default:
|
||||
case USB_MASS_STORAGE_MODE:
|
||||
// initialize USB as MSC device
|
||||
USBD_Init(&USB_OTG_dev, USB_OTG_FS_CORE_ID, &USR_desc, &USBD_MSC_cb, &USR_cb);
|
||||
#endif
|
||||
break;
|
||||
}
|
||||
usbDriverStarted = true;
|
||||
}
|
||||
|
||||
|
@ -89,7 +111,7 @@ void usbStop()
|
|||
USBD_DeInit(&USB_OTG_dev);
|
||||
}
|
||||
|
||||
uint8_t usbStarted()
|
||||
bool usbStarted()
|
||||
{
|
||||
return usbDriverStarted;
|
||||
}
|
||||
|
|
51
radio/src/targets/common/arm/stm32/usb_driver.h
Normal file
51
radio/src/targets/common/arm/stm32/usb_driver.h
Normal file
|
@ -0,0 +1,51 @@
|
|||
/*
|
||||
* Copyright (C) OpenTX
|
||||
*
|
||||
* Based on code named
|
||||
* th9x - http://code.google.com/p/th9x
|
||||
* er9x - http://code.google.com/p/er9x
|
||||
* gruvin9x - http://code.google.com/p/gruvin9x
|
||||
*
|
||||
* License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*/
|
||||
|
||||
#ifndef OPENTX_USB_DRIVER_H
|
||||
#define OPENTX_USB_DRIVER_H
|
||||
|
||||
// USB driver
|
||||
enum usbMode {
|
||||
USB_UNSELECTED_MODE,
|
||||
USB_JOYSTICK_MODE,
|
||||
USB_SERIAL_MODE,
|
||||
USB_MASS_STORAGE_MODE,
|
||||
USB_MAX_MODE=USB_MASS_STORAGE_MODE
|
||||
};
|
||||
|
||||
int usbPlugged();
|
||||
void usbInit();
|
||||
void usbStart();
|
||||
void usbStop();
|
||||
bool usbStarted();
|
||||
int getSelectedUsbMode();
|
||||
void setSelectedUsbMode(int mode);
|
||||
|
||||
void usbSerialPutc(uint8_t c);
|
||||
|
||||
// Used in view_statistics.cpp
|
||||
#if defined(USB_SERIAL)
|
||||
extern uint16_t usbWraps;
|
||||
extern uint16_t charsWritten;
|
||||
extern volatile uint32_t APP_Rx_ptr_in;
|
||||
extern volatile uint32_t APP_Rx_ptr_out;
|
||||
#endif
|
||||
|
||||
#endif
|
|
@ -61,4 +61,3 @@
|
|||
|
||||
|
||||
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
|
||||
|
||||
|
|
|
@ -29,6 +29,9 @@
|
|||
#include "usbd_req.h"
|
||||
#include "usb_regs.h"
|
||||
|
||||
|
||||
#include "usb_driver.h"
|
||||
|
||||
/** @addtogroup STM32_USB_OTG_DEVICE_LIBRARY
|
||||
* @{
|
||||
*/
|
||||
|
@ -59,27 +62,25 @@
|
|||
|
||||
|
||||
#if defined(BOOT)
|
||||
#define USBD_PID 0x5720
|
||||
#define USBD_PRODUCT_FS_STRING USB_NAME " Bootloader"
|
||||
#define USBD_CONFIGURATION_FS_STRING "MSC Config"
|
||||
#define USBD_INTERFACE_FS_STRING "MSC Interface"
|
||||
#elif defined(USB_JOYSTICK)
|
||||
#define USBD_PID 0x5710
|
||||
#define USBD_PRODUCT_FS_STRING USB_NAME " Joystick"
|
||||
#define USBD_CONFIGURATION_FS_STRING "HID Config"
|
||||
#define USBD_INTERFACE_FS_STRING "HID Interface"
|
||||
#elif defined(USB_SERIAL)
|
||||
#define USBD_PID 0x5740 // do not change, this ID is used by the ST USB driver for Windows
|
||||
#define USBD_PRODUCT_FS_STRING USB_NAME " Serial Port"
|
||||
#define USBD_CONFIGURATION_FS_STRING "VSP Config"
|
||||
#define USBD_INTERFACE_FS_STRING "VSP Interface"
|
||||
#elif defined(USB_MASS_STORAGE)
|
||||
#define USBD_PID 0x5720
|
||||
#define USBD_PRODUCT_FS_STRING USB_NAME " Mass Storage"
|
||||
#define USBD_CONFIGURATION_FS_STRING "MSC Config"
|
||||
#define USBD_INTERFACE_FS_STRING "MSC Interface"
|
||||
#define USBD_MSC_PRODUCT_FS_STRING USB_NAME " Bootloader"
|
||||
#else
|
||||
#define USBD_MSC_PRODUCT_FS_STRING USB_NAME " Mass Storage"
|
||||
#endif
|
||||
|
||||
#define USBD_MSC_PID 0x5720
|
||||
#define USBD_MSC_CONFIGURATION_FS_STRING "MSC Config"
|
||||
#define USBD_MSC_INTERFACE_FS_STRING "MSC Interface"
|
||||
|
||||
#define USBD_HID_PID 0x5710
|
||||
#define USBD_HID_PRODUCT_FS_STRING USB_NAME " Joystick"
|
||||
#define USBD_HID_CONFIGURATION_FS_STRING "HID Config"
|
||||
#define USBD_HID_INTERFACE_FS_STRING "HID Interface"
|
||||
|
||||
#define USBD_CDC_PID 0x5740 // do not change, this ID is used by the ST USB driver for Windows
|
||||
#define USBD_CDC_PRODUCT_FS_STRING USB_NAME " Serial Port"
|
||||
#define USBD_CDC_CONFIGURATION_FS_STRING "VSP Config"
|
||||
#define USBD_CDC_INTERFACE_FS_STRING "VSP Interface"
|
||||
|
||||
const USBD_DEVICE USR_desc =
|
||||
{
|
||||
USBD_USR_DeviceDescriptor,
|
||||
|
@ -91,28 +92,6 @@ const USBD_DEVICE USR_desc =
|
|||
USBD_USR_InterfaceStrDescriptor,
|
||||
};
|
||||
|
||||
/* USB Standard Device Descriptor */
|
||||
__ALIGN_BEGIN const uint8_t USBD_DeviceDesc[USB_SIZ_DEVICE_DESC] __ALIGN_END =
|
||||
{
|
||||
USB_SIZ_DEVICE_DESC, /*bLength */
|
||||
USB_DEVICE_DESCRIPTOR_TYPE, /*bDescriptorType*/
|
||||
0x00, /*bcdUSB */
|
||||
0x02,
|
||||
0x00, /*bDeviceClass*/
|
||||
0x00, /*bDeviceSubClass*/
|
||||
0x00, /*bDeviceProtocol*/
|
||||
USB_OTG_MAX_EP0_SIZE, /*bMaxPacketSize*/
|
||||
LOBYTE(USBD_VID), /*idVendor*/
|
||||
HIBYTE(USBD_VID), /*idVendor*/
|
||||
LOBYTE(USBD_PID), /*idVendor*/
|
||||
HIBYTE(USBD_PID), /*idVendor*/
|
||||
0x00, /*bcdDevice rel. 2.00*/
|
||||
0x02,
|
||||
USBD_IDX_MFC_STR, /*Index of manufacturer string*/
|
||||
USBD_IDX_PRODUCT_STR, /*Index of product string*/
|
||||
USBD_IDX_SERIAL_STR, /*Index of serial number string*/
|
||||
USBD_CFG_MAX_NUM /*bNumConfigurations*/
|
||||
}; /* USB_DeviceDescriptor */
|
||||
|
||||
/* USB Standard Device Descriptor */
|
||||
__ALIGN_BEGIN const uint8_t USBD_DeviceQualifierDesc[USB_LEN_DEV_QUALIFIER_DESC] __ALIGN_END =
|
||||
|
@ -149,6 +128,43 @@ __ALIGN_BEGIN uint8_t USBD_StrDesc[USB_MAX_STR_DESC_SIZ] __ALIGN_END ; // modifi
|
|||
*/
|
||||
uint8_t * USBD_USR_DeviceDescriptor( uint8_t speed , uint16_t *length)
|
||||
{
|
||||
int pid=0;
|
||||
|
||||
switch (getSelectedUsbMode()) {
|
||||
case USB_JOYSTICK_MODE:
|
||||
pid = USBD_HID_PID;
|
||||
break;
|
||||
case USB_SERIAL_MODE:
|
||||
pid = USBD_CDC_PID;
|
||||
break;
|
||||
case USB_MASS_STORAGE_MODE:
|
||||
pid = USBD_MSC_PID;
|
||||
break;
|
||||
}
|
||||
|
||||
/* USB Standard Device Descriptor */
|
||||
__ALIGN_BEGIN const uint8_t USBD_DeviceDesc[USB_SIZ_DEVICE_DESC] __ALIGN_END =
|
||||
{
|
||||
USB_SIZ_DEVICE_DESC, /*bLength */
|
||||
USB_DEVICE_DESCRIPTOR_TYPE, /*bDescriptorType*/
|
||||
0x00, /*bcdUSB */
|
||||
0x02,
|
||||
0x00, /*bDeviceClass*/
|
||||
0x00, /*bDeviceSubClass*/
|
||||
0x00, /*bDeviceProtocol*/
|
||||
USB_OTG_MAX_EP0_SIZE, /*bMaxPacketSize*/
|
||||
LOBYTE(USBD_VID), /*idVendor*/
|
||||
HIBYTE(USBD_VID), /*idVendor*/
|
||||
LOBYTE(pid), /*idVendor*/
|
||||
HIBYTE(pid), /*idVendor*/
|
||||
0x00, /*bcdDevice rel. 2.00*/
|
||||
0x02,
|
||||
USBD_IDX_MFC_STR, /*Index of manufacturer string*/
|
||||
USBD_IDX_PRODUCT_STR, /*Index of product string*/
|
||||
USBD_IDX_SERIAL_STR, /*Index of serial number string*/
|
||||
USBD_CFG_MAX_NUM /*bNumConfigurations*/
|
||||
}; /* USB_DeviceDescriptor */
|
||||
|
||||
*length = sizeof(USBD_DeviceDesc);
|
||||
memcpy(USBD_StrDesc, USBD_DeviceDesc, *length);
|
||||
return USBD_StrDesc;
|
||||
|
@ -178,7 +194,18 @@ uint8_t * USBD_USR_LangIDStrDescriptor( uint8_t speed , uint16_t *length)
|
|||
*/
|
||||
uint8_t * USBD_USR_ProductStrDescriptor( uint8_t speed , uint16_t *length)
|
||||
{
|
||||
USBD_GetString ((uint8_t*)USBD_PRODUCT_FS_STRING, USBD_StrDesc, length);
|
||||
switch (getSelectedUsbMode()) {
|
||||
case USB_JOYSTICK_MODE:
|
||||
USBD_GetString ((uint8_t*)USBD_HID_PRODUCT_FS_STRING, USBD_StrDesc, length);
|
||||
break;
|
||||
case USB_SERIAL_MODE:
|
||||
USBD_GetString ((uint8_t*)USBD_CDC_PRODUCT_FS_STRING, USBD_StrDesc, length);
|
||||
break;
|
||||
case USB_MASS_STORAGE_MODE:
|
||||
USBD_GetString ((uint8_t*)USBD_MSC_PRODUCT_FS_STRING, USBD_StrDesc, length);
|
||||
break;
|
||||
}
|
||||
|
||||
return USBD_StrDesc;
|
||||
}
|
||||
|
||||
|
@ -217,7 +244,17 @@ uint8_t * USBD_USR_SerialStrDescriptor( uint8_t speed , uint16_t *length)
|
|||
*/
|
||||
uint8_t * USBD_USR_ConfigStrDescriptor( uint8_t speed , uint16_t *length)
|
||||
{
|
||||
USBD_GetString ((uint8_t *)USBD_CONFIGURATION_FS_STRING, USBD_StrDesc, length);
|
||||
switch (getSelectedUsbMode()) {
|
||||
case USB_JOYSTICK_MODE:
|
||||
USBD_GetString ((uint8_t*)USBD_HID_CONFIGURATION_FS_STRING, USBD_StrDesc, length);
|
||||
break;
|
||||
case USB_SERIAL_MODE:
|
||||
USBD_GetString ((uint8_t*)USBD_CDC_CONFIGURATION_FS_STRING, USBD_StrDesc, length);
|
||||
break;
|
||||
case USB_MASS_STORAGE_MODE:
|
||||
USBD_GetString ((uint8_t*)USBD_MSC_CONFIGURATION_FS_STRING, USBD_StrDesc, length);
|
||||
break;
|
||||
}
|
||||
return USBD_StrDesc;
|
||||
}
|
||||
|
||||
|
@ -231,9 +268,18 @@ uint8_t * USBD_USR_ConfigStrDescriptor( uint8_t speed , uint16_t *length)
|
|||
*/
|
||||
uint8_t * USBD_USR_InterfaceStrDescriptor( uint8_t speed , uint16_t *length)
|
||||
{
|
||||
USBD_GetString ((uint8_t*)USBD_INTERFACE_FS_STRING, USBD_StrDesc, length);
|
||||
switch (getSelectedUsbMode()) {
|
||||
case USB_JOYSTICK_MODE:
|
||||
USBD_GetString ((uint8_t*)USBD_HID_INTERFACE_FS_STRING, USBD_StrDesc, length);
|
||||
break;
|
||||
case USB_SERIAL_MODE:
|
||||
USBD_GetString ((uint8_t*)USBD_CDC_INTERFACE_FS_STRING, USBD_StrDesc, length);
|
||||
break;
|
||||
case USB_MASS_STORAGE_MODE:
|
||||
USBD_GetString ((uint8_t*)USBD_MSC_INTERFACE_FS_STRING, USBD_StrDesc, length);
|
||||
break;
|
||||
}
|
||||
return USBD_StrDesc;
|
||||
}
|
||||
|
||||
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
|
||||
|
||||
|
|
|
@ -112,9 +112,10 @@ void USBD_USR_DeviceConnected (void)
|
|||
*/
|
||||
void USBD_USR_DeviceDisconnected (void)
|
||||
{
|
||||
#if !defined(BOOT) && defined(USB_MASS_STORAGE) && defined(EEPROM)
|
||||
#if !defined(BOOT) && defined(EEPROM)
|
||||
// TODO is it really needed if we didn't write the EEPROM?
|
||||
NVIC_SystemReset();
|
||||
// if (getSelectedUsbMode() == USB_MASS_STORAGE_MODE)
|
||||
// NVIC_SystemReset();
|
||||
#endif
|
||||
}
|
||||
|
||||
|
|
|
@ -22,6 +22,7 @@
|
|||
#define _BOARD_HORUS_H_
|
||||
|
||||
#include "stddef.h"
|
||||
#include "stdbool.h"
|
||||
|
||||
#if defined(__cplusplus) && !defined(SIMU)
|
||||
extern "C" {
|
||||
|
@ -62,6 +63,7 @@ extern "C" {
|
|||
#pragma clang diagnostic pop
|
||||
#endif
|
||||
|
||||
#include "usb_driver.h"
|
||||
|
||||
#if !defined(SIMU)
|
||||
#include "usbd_cdc_core.h"
|
||||
|
@ -447,14 +449,7 @@ void backlightEnable(uint8_t dutyCycle);
|
|||
#define BACKLIGHT_DISABLE() backlightEnable(unexpectedShutdown ? 100 : g_eeGeneral.blOffBright)
|
||||
#define isBacklightEnabled() true
|
||||
|
||||
// USB driver
|
||||
int usbPlugged();
|
||||
void usbInit();
|
||||
void usbStart();
|
||||
void usbStop();
|
||||
uint8_t usbStarted();
|
||||
void usbSerialPutc(uint8_t c);
|
||||
#if defined(USB_JOYSTICK) && !defined(SIMU)
|
||||
#if !defined(SIMU)
|
||||
void usbJoystickUpdate();
|
||||
#endif
|
||||
#if defined(PCBX12S)
|
||||
|
|
|
@ -645,6 +645,8 @@ uint32_t pwrPressed()
|
|||
#if defined(STM32)
|
||||
void pwrInit() { }
|
||||
int usbPlugged() { return false; }
|
||||
int getSelectedUsbMode() { return USB_JOYSTICK_MODE; }
|
||||
void setSelectedUsbMode(int mode) {}
|
||||
void USART_DeInit(USART_TypeDef* ) { }
|
||||
ErrorStatus RTC_SetTime(uint32_t RTC_Format, RTC_TimeTypeDef* RTC_TimeStruct) { return SUCCESS; }
|
||||
ErrorStatus RTC_SetDate(uint32_t RTC_Format, RTC_DateTypeDef* RTC_DateStruct) { return SUCCESS; }
|
||||
|
|
|
@ -22,6 +22,7 @@
|
|||
#define _BOARD_H_
|
||||
|
||||
#include "stddef.h"
|
||||
#include "stdbool.h"
|
||||
|
||||
#if defined(__cplusplus) && !defined(SIMU)
|
||||
extern "C" {
|
||||
|
@ -71,6 +72,7 @@ extern "C" {
|
|||
#pragma clang diagnostic pop
|
||||
#endif
|
||||
|
||||
#include "usb_driver.h"
|
||||
#if !defined(SIMU)
|
||||
#include "usbd_cdc_core.h"
|
||||
#include "usbd_msc_core.h"
|
||||
|
@ -157,13 +159,14 @@ uint32_t sdGetSpeed(void);
|
|||
#define sdInit()
|
||||
#define sdMount()
|
||||
#define sdDone()
|
||||
#define SD_CARD_PRESENT() true
|
||||
#else
|
||||
void sdInit(void);
|
||||
void sdMount(void);
|
||||
void sdDone(void);
|
||||
void sdPoll10ms(void);
|
||||
uint32_t sdMounted(void);
|
||||
#define SD_CARD_PRESENT() (~SD_GPIO_PRESENT->IDR & SD_GPIO_PIN_PRESENT)
|
||||
#define SD_CARD_PRESENT() ((SD_GPIO_PRESENT->IDR & SD_GPIO_PIN_PRESENT)==0)
|
||||
#endif
|
||||
|
||||
// Flash Write driver
|
||||
|
@ -453,14 +456,7 @@ uint8_t isBacklightEnabled(void);
|
|||
#define BACKLIGHT_ENABLE() backlightEnable(g_eeGeneral.backlightBright)
|
||||
#endif
|
||||
|
||||
// USB driver
|
||||
int usbPlugged();
|
||||
void usbInit();
|
||||
void usbStart();
|
||||
void usbStop();
|
||||
uint8_t usbStarted();
|
||||
void usbSerialPutc(uint8_t c);
|
||||
#if defined(USB_JOYSTICK) && !defined(SIMU)
|
||||
#if !defined(SIMU)
|
||||
void usbJoystickUpdate();
|
||||
#endif
|
||||
#define USB_NAME "FrSky Taranis"
|
||||
|
|
|
@ -999,7 +999,12 @@ void sdInit(void)
|
|||
//sd error
|
||||
return;
|
||||
}
|
||||
sdMount();
|
||||
}
|
||||
|
||||
void sdMount()
|
||||
{
|
||||
TRACE("sdMount");
|
||||
if (f_mount(&g_FATFS_Obj, "", 1) == FR_OK) {
|
||||
// call sdGetFreeSectors() now because f_getfree() takes a long time first time it's called
|
||||
sdGetFreeSectors();
|
||||
|
|
|
@ -138,7 +138,7 @@ void mixerTask(void * pdata)
|
|||
|
||||
uint32_t now = CoGetOSTime();
|
||||
bool run = false;
|
||||
#if defined(USB_JOYSTICK) && !defined(SIMU)
|
||||
#if !defined(SIMU) && defined(STM32)
|
||||
if ((now - lastRunTime) >= (usbStarted() ? 5 : 10)) { // run at least every 20ms (every 10ms if USB is active)
|
||||
#else
|
||||
if ((now - lastRunTime) >= 10) { // run at least every 20ms
|
||||
|
|
|
@ -436,7 +436,7 @@ __ALIGN_BEGIN const uint8_t usbd_cdc_OtherCfgDesc[USB_CDC_CONFIG_DESC_SIZ] __AL
|
|||
uint8_t usbd_cdc_Init (void *pdev,
|
||||
uint8_t cfgidx)
|
||||
{
|
||||
uint8_t *pbuf;
|
||||
//uint8_t *pbuf;
|
||||
|
||||
APP_Rx_ptr_in = 0; // modified by OpenTX
|
||||
APP_Rx_ptr_out = 0; // modified by OpenTX
|
||||
|
@ -463,9 +463,10 @@ uint8_t usbd_cdc_Init (void *pdev,
|
|||
CDC_CMD_PACKET_SZE,
|
||||
USB_OTG_EP_INT);
|
||||
|
||||
pbuf = (uint8_t *)USBD_DeviceDesc;
|
||||
/* schwabe: We don't provide direct to this, but our usb descriptor has always the same values (02 and 00) */
|
||||
/*pbuf = (uint8_t *)USBD_DeviceDesc;
|
||||
pbuf[4] = DEVICE_CLASS_CDC;
|
||||
pbuf[5] = DEVICE_SUBCLASS_CDC;
|
||||
pbuf[5] = DEVICE_SUBCLASS_CDC; */
|
||||
|
||||
/* Initialize the Interface physical components */
|
||||
APP_FOPS.pIf_Init();
|
||||
|
|
|
@ -61,7 +61,7 @@
|
|||
* @{
|
||||
*/
|
||||
|
||||
extern const USBD_Class_cb_TypeDef USBD_MSC_cb; // modified my OpenTX
|
||||
extern const USBD_Class_cb_TypeDef USBD_MSC_cb; // modified by OpenTX
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
|
|
@ -102,6 +102,7 @@ const pm_char STR_OPEN9X[] PROGMEM =
|
|||
#endif
|
||||
#if defined(PXX) || defined(CPUARM)
|
||||
ISTR(COUNTRYCODES)
|
||||
ISTR(USBMODES)
|
||||
ISTR(VFAILSAFE)
|
||||
#endif
|
||||
#if defined(CPUARM)
|
||||
|
@ -385,6 +386,7 @@ const pm_char STR_INTERNALRF[] PROGMEM = TR_INTERNALRF;
|
|||
const pm_char STR_EXTERNALRF[] PROGMEM = TR_EXTERNALRF;
|
||||
const pm_char STR_SPORT_OUT[] PROGMEM = TR_SPORT_OUT;
|
||||
const pm_char STR_COUNTRYCODE[] PROGMEM = TR_COUNTRYCODE;
|
||||
const pm_char STR_USBMODE[] PROGMEM = TR_USBMODE;
|
||||
const pm_char STR_FAILSAFE[] PROGMEM = TR_FAILSAFE;
|
||||
const pm_char STR_FAILSAFESET[] PROGMEM = TR_FAILSAFESET;
|
||||
const pm_char STR_HOLD[] PROGMEM = TR_HOLD;
|
||||
|
@ -457,6 +459,9 @@ const pm_char STR_RESET_TIMER3[] PROGMEM = TR_RESET_TIMER3;
|
|||
const pm_char STR_RESET_TELEMETRY[] PROGMEM = TR_RESET_TELEMETRY;
|
||||
const pm_char STR_STATISTICS[] PROGMEM = TR_STATISTICS;
|
||||
const pm_char STR_ABOUT_US[] PROGMEM = TR_ABOUT_US;
|
||||
const pm_char STR_USB_JOYSTICK[] PROGMEM = TR_USB_JOYSTICK;
|
||||
const pm_char STR_USB_MASS_STORAGE[] PROGMEM = TR_USB_MASS_STORAGE;
|
||||
const pm_char STR_USB_SERIAL[] PROGMEM = TR_USB_SERIAL;
|
||||
const pm_char STR_SETUP_SCREENS[] PROGMEM = TR_SETUP_SCREENS;
|
||||
const pm_char STR_MONITOR_SCREENS[] PROGMEM = TR_MONITOR_SCREENS;
|
||||
#endif
|
||||
|
|
|
@ -207,11 +207,12 @@ extern const pm_char STR_OPEN9X[];
|
|||
#define OFS_VBEEPCOUNTDOWN (OFS_VUNITSSYSTEM + sizeof(TR_VUNITSSYSTEM))
|
||||
#define OFS_VVARIOCENTER (OFS_VBEEPCOUNTDOWN + sizeof(TR_VBEEPCOUNTDOWN))
|
||||
#define OFS_COUNTRYCODES (OFS_VVARIOCENTER + sizeof(TR_VVARIOCENTER))
|
||||
#define OFS_USBMODES (OFS_COUNTRYCODES + sizeof(TR_COUNTRYCODES))
|
||||
#else
|
||||
#define OFS_COUNTRYCODES (OFS_VLCD)
|
||||
#endif
|
||||
#if defined(PXX) || defined(CPUARM)
|
||||
#define OFS_VFAILSAFE (OFS_COUNTRYCODES + sizeof(TR_COUNTRYCODES))
|
||||
#define OFS_VFAILSAFE (OFS_USBMODES + sizeof(TR_USBMODES))
|
||||
#define OFS_VTRAINERMODES (OFS_VFAILSAFE + sizeof(TR_VFAILSAFE))
|
||||
#else
|
||||
#define OFS_VFAILSAFE (OFS_COUNTRYCODES)
|
||||
|
@ -340,6 +341,7 @@ extern const pm_char STR_OPEN9X[];
|
|||
|
||||
#if defined(PXX) || defined(CPUARM)
|
||||
#define STR_COUNTRYCODES (STR_OPEN9X + OFS_COUNTRYCODES)
|
||||
#define STR_USBMODES (STR_OPEN9X + OFS_USBMODES)
|
||||
#define STR_VFAILSAFE (STR_OPEN9X + OFS_VFAILSAFE)
|
||||
#endif
|
||||
|
||||
|
@ -632,6 +634,7 @@ extern const pm_char STR_NONE[];
|
|||
extern const pm_char STR_MENUSENSOR[];
|
||||
extern const pm_char STR_SENSOR[];
|
||||
extern const pm_char STR_COUNTRYCODE[];
|
||||
extern const pm_char STR_USBMODE[];
|
||||
extern const pm_char STR_DISABLE_INTERNAL[];
|
||||
#endif
|
||||
|
||||
|
@ -703,6 +706,9 @@ extern const pm_char STR_PERSISTENT_MAH[];
|
|||
extern const pm_char STR_RESET_TELEMETRY[];
|
||||
extern const pm_char STR_STATISTICS[];
|
||||
extern const pm_char STR_ABOUT_US[];
|
||||
extern const pm_char STR_USB_JOYSTICK[];
|
||||
extern const pm_char STR_USB_MASS_STORAGE[];
|
||||
extern const pm_char STR_USB_SERIAL[];
|
||||
extern const pm_char STR_SETUP_SCREENS[];
|
||||
extern const pm_char STR_MONITOR_SCREENS[];
|
||||
#endif
|
||||
|
|
|
@ -92,6 +92,9 @@
|
|||
#define LEN_COUNTRYCODES TR("\002", "\010")
|
||||
#define TR_COUNTRYCODES TR("US""JP""EU", "Amerika\0""Japonsko""Evropa\0 ")
|
||||
|
||||
#define LEN_USBMODES TR("\006", "\010")
|
||||
#define TR_USBMODES TR("Ask\0 ""Joyst\0""SDCard""Debug\0", "Ask\0 ""Joystick""Storage\0""Debug\0 ")
|
||||
|
||||
#define LEN_TARANIS_PROTOCOLS "\004"
|
||||
#define TR_TARANIS_PROTOCOLS "Vyp\0""PPM\0""XJT\0""DSM2""CRSF""MULT""R9M\0"
|
||||
|
||||
|
@ -996,6 +999,7 @@
|
|||
#define TR_MENUSENSOR "SENZOR"
|
||||
#define TR_SENSOR "SENZOR"
|
||||
#define TR_COUNTRYCODE "Kód regionu"
|
||||
#define TR_USBMODE "USB Mode"
|
||||
#define TR_VOICELANG "Jazyk hlasu"
|
||||
#define TR_UNITSSYSTEM "Jednotky"
|
||||
#define TR_EDIT "Upravit"
|
||||
|
@ -1013,6 +1017,9 @@
|
|||
#define TR_RESET_TELEMETRY "Telemetrii"
|
||||
#define TR_STATISTICS "Statistika"
|
||||
#define TR_ABOUT_US "O nás"
|
||||
#define TR_USB_JOYSTICK "USB Joystick (HID)"
|
||||
#define TR_USB_MASS_STORAGE "USB mass storage"
|
||||
#define TR_USB_SERIAL "USB Serial (Debug)"
|
||||
#define TR_SETUP_SCREENS "Setup screens"
|
||||
#define TR_MONITOR_SCREENS "Monitory"
|
||||
#define TR_AND_SWITCH "AND Spínač"
|
||||
|
|
|
@ -98,6 +98,9 @@
|
|||
#define LEN_COUNTRYCODES TR("\002", "\007")
|
||||
#define TR_COUNTRYCODES TR("US""JP""EU", "Amerika""Japan\0 ""Europa\0")
|
||||
|
||||
#define LEN_USBMODES TR("\006", "\010")
|
||||
#define TR_USBMODES TR("Ask\0 ""Joyst\0""SDCard""Debug\0", "Ask\0 ""Joystick""Storage\0""Debug\0 ")
|
||||
|
||||
#define LEN_TARANIS_PROTOCOLS "\004"
|
||||
#define TR_TARANIS_PROTOCOLS "AUS\0""PPM\0""XJT\0""DSM?""CRSF""MULT""R9M\0"
|
||||
|
||||
|
@ -1018,6 +1021,7 @@
|
|||
#define TR_MENUSENSOR "SENSOR"
|
||||
#define TR_SENSOR "SENSOR"
|
||||
#define TR_COUNTRYCODE "Landescode"
|
||||
#define TR_USBMODE "USB Mode"
|
||||
#define TR_VOICELANG "Sprach-Ansage"
|
||||
#define TR_UNITSSYSTEM "Einheiten"
|
||||
#define TR_EDIT "Zeile Editieren"
|
||||
|
@ -1035,6 +1039,9 @@
|
|||
#define TR_RESET_TELEMETRY "Reset Telemetrie"
|
||||
#define TR_STATISTICS "Statistik Timer Gas"
|
||||
#define TR_ABOUT_US "Die Programmierer"
|
||||
#define TR_USB_JOYSTICK "USB Joystick (HID)"
|
||||
#define TR_USB_MASS_STORAGE "USB mass storage"
|
||||
#define TR_USB_SERIAL "USB Serial (Debug)"
|
||||
#define TR_SETUP_SCREENS "Setup Hautbildschirme"
|
||||
#define TR_MONITOR_SCREENS "Monitore Mischer Kanal Logik"
|
||||
#define TR_AND_SWITCH "UND Schalt" //UND mit weiterem Schaltern
|
||||
|
|
|
@ -98,6 +98,9 @@
|
|||
#define LEN_COUNTRYCODES TR("\002", "\007")
|
||||
#define TR_COUNTRYCODES TR("US""JP""EU", "America""Japan\0 ""Europe\0")
|
||||
|
||||
#define LEN_USBMODES TR("\006", "\010")
|
||||
#define TR_USBMODES TR("Ask\0 ""Joyst\0""SDCard""Debug\0", "Ask\0 ""Joystick""Storage\0""Debug\0 ")
|
||||
|
||||
#define LEN_TARANIS_PROTOCOLS "\004"
|
||||
#define TR_TARANIS_PROTOCOLS "OFF\0""PPM\0""XJT\0""DSM2""CRSF""MULT""R9M\0"
|
||||
|
||||
|
@ -1000,6 +1003,7 @@
|
|||
#define TR_MENUSENSOR "SENSOR"
|
||||
#define TR_SENSOR "SENSOR"
|
||||
#define TR_COUNTRYCODE "Country code"
|
||||
#define TR_USBMODE "USB Mode"
|
||||
#define TR_VOICELANG "Voice language"
|
||||
#define TR_UNITSSYSTEM "Units"
|
||||
#define TR_EDIT "Edit"
|
||||
|
@ -1017,6 +1021,9 @@
|
|||
#define TR_RESET_TELEMETRY "Reset telemetry"
|
||||
#define TR_STATISTICS "Statistics"
|
||||
#define TR_ABOUT_US "About"
|
||||
#define TR_USB_JOYSTICK "USB Joystick (HID)"
|
||||
#define TR_USB_MASS_STORAGE "USB mass storage"
|
||||
#define TR_USB_SERIAL "USB Serial (Debug)"
|
||||
#define TR_SETUP_SCREENS "Setup screens"
|
||||
#define TR_MONITOR_SCREENS "Monitors"
|
||||
#define TR_AND_SWITCH "AND switch"
|
||||
|
|
|
@ -94,6 +94,9 @@
|
|||
#define LEN_COUNTRYCODES TR("\002", "\007")
|
||||
#define TR_COUNTRYCODES TR("US""JP""EU", "America""Japon\0 ""Europa\0")
|
||||
|
||||
#define LEN_USBMODES TR("\006", "\010")
|
||||
#define TR_USBMODES TR("Ask\0 ""Joyst\0""SDCard""Debug\0", "Ask\0 ""Joystick""Storage\0""Debug\0 ")
|
||||
|
||||
#define LEN_TARANIS_PROTOCOLS "\004"
|
||||
#define TR_TARANIS_PROTOCOLS "OFF\0""PPM\0""XJT\0""DSM2""CRSF""MULT""R9M\0"
|
||||
|
||||
|
@ -976,6 +979,7 @@
|
|||
#define TR_MENUSENSOR "SENSOR"
|
||||
#define TR_SENSOR "SENSOR"
|
||||
#define TR_COUNTRYCODE "Codigo Pais"
|
||||
#define TR_USBMODE "USB Mode"
|
||||
#define TR_VOICELANG "Idioma voces"
|
||||
#define TR_UNITSSYSTEM "Unidades"
|
||||
#define TR_EDIT "Editar"
|
||||
|
@ -993,6 +997,9 @@
|
|||
#define TR_RESET_TELEMETRY "Reset Telemetria"
|
||||
#define TR_STATISTICS "Estadisticas"
|
||||
#define TR_ABOUT_US "Nosotros"
|
||||
#define TR_USB_JOYSTICK "USB Joystick (HID)"
|
||||
#define TR_USB_MASS_STORAGE "USB mass storage"
|
||||
#define TR_USB_SERIAL "USB Serial (Debug)"
|
||||
#define TR_SETUP_SCREENS "Setup screens"
|
||||
#define TR_MONITOR_SCREENS "Monitors"
|
||||
#define TR_AND_SWITCH "AND Inter."
|
||||
|
|
|
@ -94,6 +94,9 @@
|
|||
#define LEN_COUNTRYCODES TR("\002", "\007")
|
||||
#define TR_COUNTRYCODES TR("US""JP""EU", "Amerikk""Japani\0""Euroopp")
|
||||
|
||||
#define LEN_USBMODES TR("\006", "\010")
|
||||
#define TR_USBMODES TR("Ask\0 ""Joyst\0""SDCard""Debug\0", "Ask\0 ""Joystick""Storage\0""Debug\0 ")
|
||||
|
||||
#define LEN_TARANIS_PROTOCOLS "\004"
|
||||
#define TR_TARANIS_PROTOCOLS "OFF\0""PPM\0""XJT\0""DSM2""CRSF""MULT""R9M\0"
|
||||
|
||||
|
@ -972,6 +975,7 @@
|
|||
#define TR_MENUSENSOR "SENSOR"
|
||||
#define TR_SENSOR "SENSOR"
|
||||
#define TR_COUNTRYCODE "Country Code"
|
||||
#define TR_USBMODE "USB Mode"
|
||||
#define TR_VOICELANG "Voice Language"
|
||||
#define TR_UNITSSYSTEM "Units"
|
||||
#define TR_EDIT "Edit"
|
||||
|
@ -989,6 +993,9 @@
|
|||
#define TR_RESET_TELEMETRY "Reset Telemetry"
|
||||
#define TR_STATISTICS "Statistics"
|
||||
#define TR_ABOUT_US "About"
|
||||
#define TR_USB_JOYSTICK "USB Joystick (HID)"
|
||||
#define TR_USB_MASS_STORAGE "USB mass storage"
|
||||
#define TR_USB_SERIAL "USB Serial (Debug)"
|
||||
#define TR_SETUP_SCREENS "Setup screens"
|
||||
#define TR_MONITOR_SCREENS "Monitors"
|
||||
#define TR_AND_SWITCH "AND Switch"
|
||||
|
|
|
@ -94,6 +94,9 @@
|
|||
#define LEN_COUNTRYCODES TR("\002", "\006")
|
||||
#define TR_COUNTRYCODES TR("US""JP""EU", "USA\0 ""Japon\0""Europe")
|
||||
|
||||
#define LEN_USBMODES TR("\006", "\010")
|
||||
#define TR_USBMODES TR("Ask\0 ""Joyst\0""SDCard""Debug\0", "Ask\0 ""Joystick""Storage\0""Debug\0 ")
|
||||
|
||||
#define LEN_TARANIS_PROTOCOLS "\004"
|
||||
#define TR_TARANIS_PROTOCOLS "OFF\0""PPM\0""XJT\0""DSM2""CRSF""MULT""R9M\0"
|
||||
|
||||
|
@ -997,6 +1000,7 @@
|
|||
#define TR_MENUSENSOR "CAPTEUR"
|
||||
#define TR_SENSOR "SENSOR"
|
||||
#define TR_COUNTRYCODE TR("Zone géo.", "Zone géographique")
|
||||
#define TR_USBMODE "USB Mode"
|
||||
#define TR_VOICELANG TR("Langue voix", "Langue annonces vocales")
|
||||
#define TR_UNITSSYSTEM "Unités"
|
||||
#define TR_EDIT "Editer"
|
||||
|
@ -1014,6 +1018,9 @@
|
|||
#define TR_RESET_TELEMETRY TR("Réinit. Télém.", "Réinit. Télémesure")
|
||||
#define TR_STATISTICS "Statistiques"
|
||||
#define TR_ABOUT_US "A propos"
|
||||
#define TR_USB_JOYSTICK "USB Joystick (HID)"
|
||||
#define TR_USB_MASS_STORAGE "USB mass storage"
|
||||
#define TR_USB_SERIAL "USB Serial (Debug)"
|
||||
#define TR_SETUP_SCREENS "Configuration écrans"
|
||||
#define TR_MONITOR_SCREENS "Moniteurs"
|
||||
#define TR_AND_SWITCH "ET suppl."
|
||||
|
|
|
@ -94,6 +94,9 @@
|
|||
#define LEN_COUNTRYCODES TR("\002", "\007")
|
||||
#define TR_COUNTRYCODES TR("US""JP""EU", "America""Japan\0 ""Europa\0")
|
||||
|
||||
#define LEN_USBMODES TR("\006", "\010")
|
||||
#define TR_USBMODES TR("Ask\0 ""Joyst\0""SDCard""Debug\0", "Ask\0 ""Joystick""Storage\0""Debug\0 ")
|
||||
|
||||
#define LEN_TARANIS_PROTOCOLS "\004"
|
||||
#define TR_TARANIS_PROTOCOLS "OFF\0""PPM\0""XJT\0""DSM2""CRSF""MULT""R9M\0"
|
||||
|
||||
|
@ -1001,6 +1004,7 @@
|
|||
#define TR_MENUSENSOR "SENSOR"
|
||||
#define TR_SENSOR "SENSOR"
|
||||
#define TR_COUNTRYCODE TR("Codice Paese","Standard 2.4Ghz")
|
||||
#define TR_USBMODE "USB Mode"
|
||||
#define TR_VOICELANG "Lingua Voce"
|
||||
#define TR_UNITSSYSTEM "Unità"
|
||||
#define TR_EDIT "Modifica"
|
||||
|
@ -1018,6 +1022,9 @@
|
|||
#define TR_RESET_TELEMETRY "Azzera Telemetria"
|
||||
#define TR_STATISTICS "Statistiche"
|
||||
#define TR_ABOUT_US "Info su"
|
||||
#define TR_USB_JOYSTICK "USB Joystick (HID)"
|
||||
#define TR_USB_MASS_STORAGE "USB mass storage"
|
||||
#define TR_USB_SERIAL "USB Serial (Debug)"
|
||||
#define TR_SETUP_SCREENS "Setup screens"
|
||||
#define TR_MONITOR_SCREENS "Monitors"
|
||||
#define TR_AND_SWITCH "Inter. AND"
|
||||
|
|
|
@ -99,6 +99,9 @@
|
|||
#define LEN_COUNTRYCODES TR("\002", "\007")
|
||||
#define TR_COUNTRYCODES TR("US""JP""EU", "Amerika""Japan\0 ""Europa\0")
|
||||
|
||||
#define LEN_USBMODES TR("\006", "\010")
|
||||
#define TR_USBMODES TR("Ask\0 ""Joyst\0""SDCard""Debug\0", "Ask\0 ""Joystick""Storage\0""Debug\0 ")
|
||||
|
||||
#define LEN_TARANIS_PROTOCOLS "\004"
|
||||
#define TR_TARANIS_PROTOCOLS "UIT\0""PPM\0""XJT\0""DSM2""CRSF""MULT""R9M\0"
|
||||
|
||||
|
@ -996,6 +999,7 @@
|
|||
#define TR_MENUSENSOR "SENSOR"
|
||||
#define TR_SENSOR "SENSOR"
|
||||
#define TR_COUNTRYCODE "Landcode"
|
||||
#define TR_USBMODE "USB Mode"
|
||||
#define TR_VOICELANG "Taal"
|
||||
#define TR_UNITSSYSTEM "Eenheden"
|
||||
#define TR_EDIT "Wijzigen"
|
||||
|
@ -1013,6 +1017,9 @@
|
|||
#define TR_RESET_TELEMETRY "Reset Telemetrie"
|
||||
#define TR_STATISTICS "Statistieken"
|
||||
#define TR_ABOUT_US "De Programmeurs"
|
||||
#define TR_USB_JOYSTICK "USB Joystick (HID)"
|
||||
#define TR_USB_MASS_STORAGE "USB mass storage"
|
||||
#define TR_USB_SERIAL "USB Serial (Debug)"
|
||||
#define TR_SETUP_SCREENS "Setup screens"
|
||||
#define TR_MONITOR_SCREENS "Monitors"
|
||||
#define TR_AND_SWITCH "AND Switch"
|
||||
|
|
|
@ -95,6 +95,9 @@
|
|||
#define LEN_COUNTRYCODES TR("\002", "\007")
|
||||
#define TR_COUNTRYCODES TR("US""JP""EU", "Ameryka""Japonia""Europa\0")
|
||||
|
||||
#define LEN_USBMODES TR("\006", "\010")
|
||||
#define TR_USBMODES TR("Ask\0 ""Joyst\0""SDCard""Debug\0", "Ask\0 ""Joystick""Storage\0""Debug\0 ")
|
||||
|
||||
#define LEN_TARANIS_PROTOCOLS "\004"
|
||||
#define TR_TARANIS_PROTOCOLS "OFF\0""PPM\0""XJT\0""DSM2""CRSF""MULT""R9M\0"
|
||||
|
||||
|
@ -1004,6 +1007,7 @@
|
|||
#define TR_MENUSENSOR "CZUJNIK"
|
||||
#define TR_SENSOR "SENSOR"
|
||||
#define TR_COUNTRYCODE "Kod regionu"
|
||||
#define TR_USBMODE "USB Mode"
|
||||
#define TR_VOICELANG "Język głosu"
|
||||
#define TR_UNITSSYSTEM "Jednostki"
|
||||
#define TR_EDIT "Edytuj"
|
||||
|
@ -1021,6 +1025,9 @@
|
|||
#define TR_RESET_TELEMETRY "Wyczyść telemetrię"
|
||||
#define TR_STATISTICS "Statystyki"
|
||||
#define TR_ABOUT_US "O nas"
|
||||
#define TR_USB_JOYSTICK "USB Joystick (HID)"
|
||||
#define TR_USB_MASS_STORAGE "USB mass storage"
|
||||
#define TR_USB_SERIAL "USB Serial (Debug)"
|
||||
#define TR_SETUP_SCREENS "Setup screens"
|
||||
#define TR_MONITOR_SCREENS "Monitors"
|
||||
#define TR_AND_SWITCH "Przełącznik AND"
|
||||
|
|
|
@ -94,6 +94,9 @@
|
|||
#define LEN_COUNTRYCODES TR("\002", "\007")
|
||||
#define TR_COUNTRYCODES TR("US""JP""EU", "America""Japan\0 ""Europe\0")
|
||||
|
||||
#define LEN_USBMODES TR("\006", "\010")
|
||||
#define TR_USBMODES TR("Ask\0 ""Joyst\0""SDCard""Debug\0", "Ask\0 ""Joystick""Storage\0""Debug\0 ")
|
||||
|
||||
#define LEN_TARANIS_PROTOCOLS "\004"
|
||||
#define TR_TARANIS_PROTOCOLS "OFF\0""PPM\0""XJT\0""DSM2""CRSF""MULT""R9M\0"
|
||||
|
||||
|
@ -977,6 +980,7 @@
|
|||
#define TR_MENUSENSOR "SENSOR"
|
||||
#define TR_SENSOR "SENSOR"
|
||||
#define TR_COUNTRYCODE "Country Code"
|
||||
#define TR_USBMODE "USB Mode"
|
||||
#define TR_VOICELANG "Voice Language"
|
||||
#define TR_UNITSSYSTEM "Units"
|
||||
#define TR_EDIT "Edit"
|
||||
|
@ -994,6 +998,9 @@
|
|||
#define TR_RESET_TELEMETRY "Reset Telemetry"
|
||||
#define TR_STATISTICS "Statistics"
|
||||
#define TR_ABOUT_US "About Us"
|
||||
#define TR_USB_JOYSTICK "USB Joystick (HID)"
|
||||
#define TR_USB_MASS_STORAGE "USB mass storage"
|
||||
#define TR_USB_SERIAL "USB Serial (Debug)"
|
||||
#define TR_SETUP_SCREENS "Setup screens"
|
||||
#define TR_MONITOR_SCREENS "Monitors"
|
||||
#define TR_AND_SWITCH "AND Switch"
|
||||
|
|
|
@ -94,6 +94,9 @@
|
|||
#define LEN_COUNTRYCODES TR("\002", "\007")
|
||||
#define TR_COUNTRYCODES TR("US""JP""EU", "Amerika""Japan\0 ""Europa\0")
|
||||
|
||||
#define LEN_USBMODES TR("\006", "\010")
|
||||
#define TR_USBMODES TR("Ask\0 ""Joyst\0""SDCard""Debug\0", "Ask\0 ""Joystick""Storage\0""Debug\0 ")
|
||||
|
||||
#define LEN_TARANIS_PROTOCOLS "\004"
|
||||
#define TR_TARANIS_PROTOCOLS "Av\0 ""PPM\0""XJT\0""DSM2""CRSF""MULT""R9M\0"
|
||||
|
||||
|
@ -1015,6 +1018,7 @@
|
|||
#define TR_MENUSENSOR "SENSOR"
|
||||
#define TR_SENSOR "SENSOR"
|
||||
#define TR_COUNTRYCODE "Landskod"
|
||||
#define TR_USBMODE "USB Mode"
|
||||
#define TR_VOICELANG "Röstspråk"
|
||||
#define TR_UNITSSYSTEM "Enheter"
|
||||
#define TR_EDIT "Redigera"
|
||||
|
@ -1032,6 +1036,9 @@
|
|||
#define TR_RESET_TELEMETRY "Nollställ Telemetri"
|
||||
#define TR_STATISTICS "Statistik"
|
||||
#define TR_ABOUT_US "Om Oss"
|
||||
#define TR_USB_JOYSTICK "USB Joystick (HID)"
|
||||
#define TR_USB_MASS_STORAGE "USB mass storage"
|
||||
#define TR_USB_SERIAL "USB Serial (Debug)"
|
||||
#define TR_SETUP_SCREENS "Setup screens"
|
||||
#define TR_MONITOR_SCREENS "Monitors"
|
||||
#define TR_AND_SWITCH "OCH Brytare"
|
||||
|
|
|
@ -242,8 +242,6 @@ options_taranis = {
|
|||
"faimode": ("FAI", "YES", None),
|
||||
"faichoice": ("FAI", "CHOICE", None),
|
||||
"nooverridech": ("OVERRIDE_CHANNEL_FUNCTION", "NO", "YES"),
|
||||
"massstorage": ("USB", "MASSSTORAGE", None),
|
||||
"cli": ("USB", "SERIAL", None),
|
||||
"internalppm": ("TARANIS_INTERNAL_PPM", "YES", "NO"),
|
||||
"shutdownconfirm": ("SHUTDOWN_CONFIRMATION", "YES", "NO"),
|
||||
"eu": ("SUPPORT_D16_EU_ONLY", "YES", "NO"),
|
||||
|
@ -262,8 +260,6 @@ options_taranisplus = {
|
|||
"faimode": ("FAI", "YES", None),
|
||||
"faichoice": ("FAI", "CHOICE", None),
|
||||
"nooverridech": ("OVERRIDE_CHANNEL_FUNCTION", "NO", "YES"),
|
||||
"massstorage": ("USB", "MASSSTORAGE", None),
|
||||
"cli": ("USB", "SERIAL", None),
|
||||
"internalppm": ("TARANIS_INTERNAL_PPM", "YES", "NO"),
|
||||
"shutdownconfirm": ("SHUTDOWN_CONFIRMATION", "YES", "NO"),
|
||||
"eu": ("SUPPORT_D16_EU_ONLY", "YES", "NO"),
|
||||
|
@ -282,8 +278,6 @@ options_taranisx9e = {
|
|||
"faimode": ("FAI", "YES", None),
|
||||
"faichoice": ("FAI", "CHOICE", None),
|
||||
"nooverridech": ("OVERRIDE_CHANNEL_FUNCTION", "NO", "YES"),
|
||||
"massstorage": ("USB", "MASSSTORAGE", None),
|
||||
"cli": ("USB", "SERIAL", None),
|
||||
"internalppm": ("TARANIS_INTERNAL_PPM", "YES", "NO"),
|
||||
"shutdownconfirm": ("SHUTDOWN_CONFIRMATION", "YES", "NO"),
|
||||
"eu": ("SUPPORT_D16_EU_ONLY", "YES", "NO"),
|
||||
|
@ -301,8 +295,6 @@ options_x12s = {
|
|||
"faimode": ("FAI", "YES", None),
|
||||
"faichoice": ("FAI", "CHOICE", None),
|
||||
"nooverridech": ("OVERRIDE_CHANNEL_FUNCTION", "NO", "YES"),
|
||||
"massstorage": ("USB", "MASSSTORAGE", None),
|
||||
"cli": ("USB", "SERIAL", None),
|
||||
"eu": ("SUPPORT_D16_EU_ONLY", "YES", "NO"),
|
||||
"multimodule": ("MULTIMODULE", "YES", "NO"),
|
||||
"pcbdev": ("PCBREV", "10", None),
|
||||
|
@ -318,8 +310,6 @@ options_x10 = {
|
|||
"faimode": ("FAI", "YES", None),
|
||||
"faichoice": ("FAI", "CHOICE", None),
|
||||
"nooverridech": ("OVERRIDE_CHANNEL_FUNCTION", "NO", "YES"),
|
||||
"massstorage": ("USB", "MASSSTORAGE", None),
|
||||
"cli": ("USB", "SERIAL", None),
|
||||
"eu": ("SUPPORT_D16_EU_ONLY", "YES", "NO"),
|
||||
"multimodule": ("MULTIMODULE", "YES", "NO"),
|
||||
"bindopt": ("BINDING_OPTIONS", "YES", "NO")
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue