diff --git a/companion/src/firmwares/opentx/opentxinterface.cpp b/companion/src/firmwares/opentx/opentxinterface.cpp index 794ad63e2..7f71b5ebd 100644 --- a/companion/src/firmwares/opentx/opentxinterface.cpp +++ b/companion/src/firmwares/opentx/opentxinterface.cpp @@ -1345,11 +1345,12 @@ void registerOpenTxFirmwares() registerOpenTxFirmware(firmware); addOpenTxRfOptions(firmware, FLEX); - /* Radiomaster TX16S board */ + // TX16S is unavailable until finalized + /* Radiomaster TX16S board firmware = new OpenTxFirmware("opentx-tx16s", Firmware::tr("Radiomaster TX16s / TX16s Hall / TX16s Masterfire"), BOARD_RADIOMASTER_TX16S); addOpenTxFrskyOptions(firmware); firmware->addOption("bluetooth", Firmware::tr("Support for bluetooth module")); - registerOpenTxFirmware(firmware); + registerOpenTxFirmware(firmware);*/ /* 9XR-Pro */ firmware = new OpenTxFirmware("opentx-9xrpro", Firmware::tr("Turnigy 9XR-PRO"), BOARD_9XRPRO); diff --git a/radio/src/gui/212x64/model_setup.cpp b/radio/src/gui/212x64/model_setup.cpp index 895e71f4c..e286261ee 100644 --- a/radio/src/gui/212x64/model_setup.cpp +++ b/radio/src/gui/212x64/model_setup.cpp @@ -130,8 +130,6 @@ enum MenuModelSetupItems { #define MODEL_SETUP_2ND_COLUMN (LCD_W-17*FW-MENUS_SCROLLBAR_WIDTH-1) #define MODEL_SETUP_3RD_COLUMN (MODEL_SETUP_2ND_COLUMN+6*FW) -#define MODEL_SETUP_BIND_OFS 3*FW-2 -#define MODEL_SETUP_RANGE_OFS 7*FW #define MODEL_SETUP_SET_FAILSAFE_OFS 10*FW-2 void copySelection(char * dst, const char * src, uint8_t size) @@ -353,7 +351,7 @@ void menuModelSetup(event_t event) LABEL(InternalModule), INTERNAL_MODULE_TYPE_ROWS, MODULE_CHANNELS_ROWS(INTERNAL_MODULE), - IF_NOT_ACCESS_MODULE_RF(INTERNAL_MODULE, IF_INTERNAL_MODULE_ON(isModuleRangeAvailable(INTERNAL_MODULE)? (uint8_t)2 : (uint8_t)1)), // RxNum, Range check and Register buttons + IF_NOT_ACCESS_MODULE_RF(INTERNAL_MODULE, IF_INTERNAL_MODULE_ON(isModuleBindRangeAvailable(INTERNAL_MODULE)? (uint8_t)2 : (uint8_t)1)), // RxNum, Range check and Register buttons IF_ACCESS_MODULE_RF(INTERNAL_MODULE, 0), // RxNum for ACCESS IF_INTERNAL_MODULE_ON(FAILSAFE_ROWS(INTERNAL_MODULE)), // Failsafe IF_ACCESS_MODULE_RF(INTERNAL_MODULE, 1), // Range check and Register buttons @@ -1093,9 +1091,8 @@ void menuModelSetup(event_t event) } else { horzpos_t l_posHorz = menuHorizontalPosition; - coord_t xOffsetBind = MODEL_SETUP_BIND_OFS; + coord_t bindButtonPos = MODEL_SETUP_2ND_COLUMN; if (!isModuleRxNumAvailable(moduleIdx)) { - xOffsetBind = 0; lcdDrawText(INDENT_WIDTH, y, STR_RECEIVER); if (attr) l_posHorz += 1; } @@ -1103,8 +1100,8 @@ void menuModelSetup(event_t event) lcdDrawText(INDENT_WIDTH, y, STR_RECEIVER_NUM); } if (isModuleBindRangeAvailable(moduleIdx)) { - if (xOffsetBind) - lcdDrawNumber(MODEL_SETUP_2ND_COLUMN, y, g_model.header.modelId[moduleIdx], (l_posHorz==0 ? attr : 0) | LEADING0|LEFT, 2); + lcdDrawNumber(MODEL_SETUP_2ND_COLUMN, y, g_model.header.modelId[moduleIdx], (l_posHorz==0 ? attr : 0) | LEADING0|LEFT, 2); + bindButtonPos = lcdNextPos + FW; if (attr && l_posHorz==0) { if (s_editMode>0) { CHECK_INCDEC_MODELVAR_ZERO(event, g_model.header.modelId[moduleIdx], getMaxRxNum(moduleIdx)); @@ -1121,8 +1118,8 @@ void menuModelSetup(event_t event) } } } - lcdDrawText(MODEL_SETUP_2ND_COLUMN+xOffsetBind, y, STR_MODULE_BIND, l_posHorz==1 ? attr : 0); - lcdDrawText(MODEL_SETUP_2ND_COLUMN+MODEL_SETUP_RANGE_OFS+xOffsetBind, y, STR_MODULE_RANGE, l_posHorz==2 ? attr : 0); + lcdDrawText(bindButtonPos, y, STR_MODULE_BIND, l_posHorz==1 ? attr : 0); + lcdDrawText(lcdNextPos + FW, y, STR_MODULE_RANGE, l_posHorz==2 ? attr : 0); uint8_t newFlag = 0; #if defined(MULTIMODULE) if (getMultiBindStatus(moduleIdx) == MULTI_BIND_FINISHED) { diff --git a/radio/src/gui/common/stdlcd/draw_functions.cpp b/radio/src/gui/common/stdlcd/draw_functions.cpp index 64c60448a..c11cbd4ae 100644 --- a/radio/src/gui/common/stdlcd/draw_functions.cpp +++ b/radio/src/gui/common/stdlcd/draw_functions.cpp @@ -387,11 +387,11 @@ void drawSensorCustomValue(coord_t x, coord_t y, uint8_t sensor, int32_t value, lcdDrawText(x, y, "OK", flags); } else { - for (uint8_t i=0; i<16; i++) { - if (value & (1 << i)) { + for (uint8_t i = 0; i < 16; i++) { + if (value & (1u << i)) { char s[] = "CH__ KO"; - strAppendUnsigned(&s[2], i+1, 2); - lcdDrawText(x, flags & DBLSIZE ? y+1 : y, s, flags & ~DBLSIZE); + strAppendUnsigned(&s[2], i + 1, 2); + lcdDrawText(x, flags & DBLSIZE ? y + 1 : y, s, flags & ~DBLSIZE); break; } } @@ -399,7 +399,7 @@ void drawSensorCustomValue(coord_t x, coord_t y, uint8_t sensor, int32_t value, } else { if (value == 0) { - lcdDrawText(x, flags & DBLSIZE ? y+1 : y, "Rx OK", flags & ~DBLSIZE); + lcdDrawText(x, flags & DBLSIZE ? y + 1 : y, "Rx OK", flags & ~DBLSIZE); } else { static const char * const RXS_STATUS[] = { @@ -415,23 +415,47 @@ void drawSensorCustomValue(coord_t x, coord_t y, uint8_t sensor, int32_t value, "Rx1 NS", "Rx2 NS", }; - for (uint8_t i=0; i= RB3040_OUTPUT_FIRST_ID && telemetrySensor.id <= RB3040_OUTPUT_LAST_ID) { + if (telemetrySensor.subId == 0) { + if (value == 0) { + lcdDrawText(x, y, "OK", flags); + } + else { + for (uint8_t i = 0; i < 9; i++) { + if (value & (1u << i)) { + if (i < 8) { + char s[] = "CH__ KO"; + strAppendUnsigned(&s[2], i + 17, 2); + lcdDrawText(x, flags & DBLSIZE ? y + 1 : y, s, flags & ~DBLSIZE); + break; + } + else { + char s[] = "S.P Ovl"; + lcdDrawText(x, flags & DBLSIZE ? y + 1 : y, s, flags & ~DBLSIZE); + break; + } + } + } + } + } + } } } else if (telemetrySensor.unit == UNIT_TEXT) { - lcdDrawSizedText(x, flags & DBLSIZE ? y+1 : y, telemetryItem.text, sizeof(telemetryItem.text), flags & ~DBLSIZE); + lcdDrawSizedText(x, flags & DBLSIZE ? y + 1 : y, telemetryItem.text, sizeof(telemetryItem.text), flags & ~DBLSIZE); } else { if (telemetrySensor.prec > 0) { - flags |= (telemetrySensor.prec==1 ? PREC1 : PREC2); + flags |= (telemetrySensor.prec == 1 ? PREC1 : PREC2); } drawValueWithUnit(x, y, value, telemetrySensor.unit == UNIT_CELLS ? UNIT_VOLTS : telemetrySensor.unit, flags); } diff --git a/radio/src/gui/common/stdlcd/model_receiver_options.cpp b/radio/src/gui/common/stdlcd/model_receiver_options.cpp index ed4dbcd48..6ce66ee29 100644 --- a/radio/src/gui/common/stdlcd/model_receiver_options.cpp +++ b/radio/src/gui/common/stdlcd/model_receiver_options.cpp @@ -46,14 +46,18 @@ void onRxOptionsUpdateConfirm(const char * result) enum { ITEM_RECEIVER_SETTINGS_PWM_RATE, ITEM_RECEIVER_SETTINGS_TELEMETRY, + ITEM_RECEIVER_SETTINGS_TELEMETRY_25MW, ITEM_RECEIVER_SETTINGS_SPORT_FPORT, ITEM_RECEIVER_SETTINGS_CAPABILITY_NOT_SUPPORTED1, ITEM_RECEIVER_SETTINGS_CAPABILITY_NOT_SUPPORTED2, ITEM_RECEIVER_SETTINGS_PINMAP_FIRST }; +#define IS_RECEIVER_CAPABILITY_ENABLED(capability) (reusableBuffer.hardwareAndSettings.modules[g_moduleIdx].receivers[receiverId].information.capabilities & (1 << capability)) +#define IF_RECEIVER_CAPABILITY(capability, count) uint8_t(IS_RECEIVER_CAPABILITY_ENABLED(capability) ? count : HIDDEN_ROW) -#define IF_RECEIVER_CAPABILITY(capability, count) uint8_t((reusableBuffer.hardwareAndSettings.modules[g_moduleIdx].receivers[receiverId].information.capabilities & (1 << capability)) ? count : HIDDEN_ROW) +#define CH_ENABLE_SPORT 4 +#define CH_ENABLE_SBUS 5 void menuModelReceiverOptions(event_t event) { @@ -76,6 +80,7 @@ void menuModelReceiverOptions(event_t event) SUBMENU_NOTITLE(ITEM_RECEIVER_SETTINGS_PINMAP_FIRST + outputsCount, { 0, // PWM rate isModuleR9MAccess(g_moduleIdx) && receiverVariant == PXX2_VARIANT_EU && reusableBuffer.hardwareAndSettings.moduleSettings.txPower > 14 /*25mW*/ ? READONLY_ROW : (uint8_t)0, // Telemetry + IF_RECEIVER_CAPABILITY(RECEIVER_CAPABILITY_TELEMETRY_25MW, 0), IF_RECEIVER_CAPABILITY(RECEIVER_CAPABILITY_FPORT, 0), uint8_t(reusableBuffer.hardwareAndSettings.modules[g_moduleIdx].receivers[receiverId].information.capabilityNotSupported ? READONLY_ROW : HIDDEN_ROW), uint8_t(reusableBuffer.hardwareAndSettings.modules[g_moduleIdx].receivers[receiverId].information.capabilityNotSupported ? READONLY_ROW : HIDDEN_ROW), @@ -139,7 +144,7 @@ void menuModelReceiverOptions(event_t event) switch (i) { case ITEM_RECEIVER_SETTINGS_PWM_RATE: - reusableBuffer.hardwareAndSettings.receiverSettings.pwmRate = editCheckBox(reusableBuffer.hardwareAndSettings.receiverSettings.pwmRate, RECEIVER_OPTIONS_2ND_COLUMN, y, isModuleR9MAccess(g_moduleIdx) ? "6.67ms PWM": "9ms PWM", attr, event); + reusableBuffer.hardwareAndSettings.receiverSettings.pwmRate = editCheckBox(reusableBuffer.hardwareAndSettings.receiverSettings.pwmRate, RECEIVER_OPTIONS_2ND_COLUMN, y, isModuleR9MAccess(g_moduleIdx) ? "6.67ms PWM": "7ms PWM", attr, event); if (attr && checkIncDec_Ret) { reusableBuffer.hardwareAndSettings.receiverSettings.dirty = RECEIVER_SETTINGS_DIRTY; } @@ -152,6 +157,13 @@ void menuModelReceiverOptions(event_t event) } break; + case ITEM_RECEIVER_SETTINGS_TELEMETRY_25MW: + reusableBuffer.hardwareAndSettings.receiverSettings.telemetry25mw = editCheckBox(reusableBuffer.hardwareAndSettings.receiverSettings.telemetry25mw, RECEIVER_OPTIONS_2ND_COLUMN, y, "25mw Tele", attr, event); + if (attr && checkIncDec_Ret) { + reusableBuffer.hardwareAndSettings.receiverSettings.dirty = RECEIVER_SETTINGS_DIRTY; + } + break; + case ITEM_RECEIVER_SETTINGS_SPORT_FPORT: reusableBuffer.hardwareAndSettings.receiverSettings.fport = editCheckBox(reusableBuffer.hardwareAndSettings.receiverSettings.fport, RECEIVER_OPTIONS_2ND_COLUMN, y, "F.Port", attr, event); if (attr && checkIncDec_Ret) { @@ -174,27 +186,49 @@ void menuModelReceiverOptions(event_t event) if (pin < reusableBuffer.hardwareAndSettings.receiverSettings.outputsCount) { uint8_t & mapping = reusableBuffer.hardwareAndSettings.receiverSettings.outputsMapping[pin]; uint8_t channel = g_model.moduleData[g_moduleIdx].channelsStart + mapping; - int32_t channelValue = channelOutputs[channel]; lcdDrawText(0, y, STR_PIN); lcdDrawNumber(lcdLastRightPos + 1, y, pin + 1); - putsChn(7 * FW, y, channel + 1, attr); + + uint8_t channelMax = sentModuleChannels(g_moduleIdx) - 1; + uint8_t selectionMax = channelMax; + + if (IS_RECEIVER_CAPABILITY_ENABLED(RECEIVER_CAPABILITY_ENABLE_PWM_CH5_CH6)) { + if (CH_ENABLE_SPORT == pin || CH_ENABLE_SBUS == pin) + selectionMax += 1; + + if (CH_ENABLE_SPORT == pin && selectionMax == channel) { + lcdDrawText(7 * FW, y, "S.PORT", attr); + } + else if (CH_ENABLE_SBUS == pin && selectionMax == channel) { + lcdDrawText(7 * FW, y, "SBUS", attr); + } + else { + putsChn(7 * FW, y, channel + 1, attr); + } + } + else { + putsChn(7 * FW, y, channel + 1, attr); + } // Channel if (attr) { - mapping = checkIncDec(event, mapping, 0, sentModuleChannels(g_moduleIdx) - 1); + mapping = checkIncDec(event, mapping, 0, selectionMax); if (checkIncDec_Ret) { reusableBuffer.hardwareAndSettings.receiverSettings.dirty = RECEIVER_SETTINGS_DIRTY; } } // Bargraph -#if !defined(PCBX7) // X7 LCD doesn't like too many horizontal lines - lcdDrawRect(RECEIVER_OPTIONS_2ND_COLUMN, y + 2, wbar + 1, 4); -#endif - const uint8_t lenChannel = limit(1, (abs(channelValue) * wbar / 2 + lim / 2) / lim, wbar / 2); - const coord_t xChannel = (channelValue > 0) ? RECEIVER_OPTIONS_2ND_COLUMN + wbar / 2 : RECEIVER_OPTIONS_2ND_COLUMN + wbar / 2 + 1 - lenChannel; - lcdDrawHorizontalLine(xChannel, y + 3, lenChannel, SOLID, 0); - lcdDrawHorizontalLine(xChannel, y + 4, lenChannel, SOLID, 0); + if (channel <= channelMax) { + int32_t channelValue = channelOutputs[channel]; + #if !defined(PCBX7) // X7 LCD doesn't like too many horizontal lines + lcdDrawRect(RECEIVER_OPTIONS_2ND_COLUMN, y + 2, wbar + 1, 4); + #endif + auto lenChannel = limit(1, (abs(channelValue) * wbar / 2 + lim / 2) / lim, wbar / 2); + auto xChannel = (channelValue > 0) ? RECEIVER_OPTIONS_2ND_COLUMN + wbar / 2 : RECEIVER_OPTIONS_2ND_COLUMN + wbar / 2 + 1 - lenChannel; + lcdDrawHorizontalLine(xChannel, y + 3, lenChannel, SOLID, 0); + lcdDrawHorizontalLine(xChannel, y + 4, lenChannel, SOLID, 0); + } } break; } diff --git a/radio/src/gui/common/stdlcd/radio_sdmanager.cpp b/radio/src/gui/common/stdlcd/radio_sdmanager.cpp index f47f967d6..637715d56 100644 --- a/radio/src/gui/common/stdlcd/radio_sdmanager.cpp +++ b/radio/src/gui/common/stdlcd/radio_sdmanager.cpp @@ -96,12 +96,12 @@ void onSdFormatConfirm(const char * result) void onUpdateConfirmation(const char * result) { if (result == STR_OK) { - OtaUpdateInformation * destination = moduleState[EXTERNAL_MODULE].otaUpdateInformation; - Pxx2OtaUpdate otaUpdate(EXTERNAL_MODULE, destination->candidateReceiversNames[destination->selectedReceiverIndex]); + OtaUpdateInformation * destination = moduleState[reusableBuffer.sdManager.otaUpdateInformation.module].otaUpdateInformation; + Pxx2OtaUpdate otaUpdate(reusableBuffer.sdManager.otaUpdateInformation.module, destination->candidateReceiversNames[destination->selectedReceiverIndex]); otaUpdate.flashFirmware(destination->filename, drawProgressScreen); } else { - moduleState[EXTERNAL_MODULE].mode = MODULE_MODE_NORMAL; + moduleState[reusableBuffer.sdManager.otaUpdateInformation.module].mode = MODULE_MODE_NORMAL; } } @@ -123,13 +123,13 @@ void onUpdateStateChanged() else { POPUP_WARNING(STR_OTA_UPDATE_ERROR); SET_WARNING_INFO(STR_UNSUPPORTED_RX, sizeof(TR_UNSUPPORTED_RX) - 1, 0); - moduleState[EXTERNAL_MODULE].mode = MODULE_MODE_NORMAL; + moduleState[reusableBuffer.sdManager.otaUpdateInformation.module].mode = MODULE_MODE_NORMAL; } } else { POPUP_WARNING(STR_OTA_UPDATE_ERROR); SET_WARNING_INFO(STR_UNKNOWN_RX, sizeof(TR_UNKNOWN_RX) - 1, 0); - moduleState[EXTERNAL_MODULE].mode = MODULE_MODE_NORMAL; + moduleState[reusableBuffer.sdManager.otaUpdateInformation.module].mode = MODULE_MODE_NORMAL; } } } @@ -251,10 +251,11 @@ void onSdManagerMenu(const char * result) } #endif #if defined(PXX2) - else if (result == STR_FLASH_RECEIVER_OTA) { + else if (result == STR_FLASH_RECEIVER_OTA_BY_INTERNAL || result == STR_FLASH_RECEIVER_OTA_BY_EXTERNAL) { memclear(&reusableBuffer.sdManager.otaUpdateInformation, sizeof(OtaUpdateInformation)); getSelectionFullPath(reusableBuffer.sdManager.otaUpdateInformation.filename); - moduleState[EXTERNAL_MODULE].startBind(&reusableBuffer.sdManager.otaUpdateInformation, onUpdateStateChanged); + reusableBuffer.sdManager.otaUpdateInformation.module = result == STR_FLASH_RECEIVER_OTA_BY_INTERNAL ? INTERNAL_MODULE : EXTERNAL_MODULE; + moduleState[reusableBuffer.sdManager.otaUpdateInformation.module].startBind(&reusableBuffer.sdManager.otaUpdateInformation, onUpdateStateChanged); } #endif #endif @@ -279,7 +280,7 @@ void onUpdateReceiverSelection(const char * result) } else { // the user pressed [Exit] - moduleState[EXTERNAL_MODULE].mode = MODULE_MODE_NORMAL; + moduleState[reusableBuffer.sdManager.otaUpdateInformation.module].mode = MODULE_MODE_NORMAL; } } #endif @@ -290,8 +291,8 @@ void menuRadioSdManager(event_t _event) int lastPos = menuVerticalPosition; #endif - if (moduleState[EXTERNAL_MODULE].mode == MODULE_MODE_BIND && EVT_KEY_MASK(_event) == KEY_EXIT) { - moduleState[EXTERNAL_MODULE].mode = MODULE_MODE_NORMAL; + if (moduleState[reusableBuffer.sdManager.otaUpdateInformation.module].mode == MODULE_MODE_BIND && EVT_KEY_MASK(_event) == KEY_EXIT) { + moduleState[reusableBuffer.sdManager.otaUpdateInformation.module].mode = MODULE_MODE_NORMAL; CLEAR_POPUP(); killEvents(KEY_EXIT); _event = 0; @@ -422,8 +423,12 @@ void menuRadioSdManager(event_t _event) POPUP_MENU_ADD_ITEM(STR_FLASH_EXTERNAL_MODULE); } #if defined(PXX2) - if (information.productFamily == FIRMWARE_FAMILY_RECEIVER) - POPUP_MENU_ADD_ITEM(STR_FLASH_RECEIVER_OTA); + if (information.productFamily == FIRMWARE_FAMILY_RECEIVER) { + if (isReceiverOTAEnabledFromModule(INTERNAL_MODULE, information.productId)) + POPUP_MENU_ADD_ITEM(STR_FLASH_RECEIVER_OTA_BY_INTERNAL); + if (isReceiverOTAEnabledFromModule(EXTERNAL_MODULE, information.productId)) + POPUP_MENU_ADD_ITEM(STR_FLASH_RECEIVER_OTA_BY_EXTERNAL); + } #endif #if defined(BLUETOOTH) if (information.productFamily == FIRMWARE_FAMILY_BLUETOOTH_CHIP) @@ -569,10 +574,10 @@ void menuRadioSdManager(event_t _event) } #if defined(PXX2) - if (moduleState[EXTERNAL_MODULE].mode == MODULE_MODE_BIND) { + if (moduleState[reusableBuffer.sdManager.otaUpdateInformation.module].mode == MODULE_MODE_BIND) { if (reusableBuffer.sdManager.otaUpdateInformation.step == BIND_INIT) { if (reusableBuffer.sdManager.otaUpdateInformation.candidateReceiversCount > 0) { - if(reusableBuffer.sdManager.otaUpdateInformation.candidateReceiversCount != popupMenuItemsCount) { + if (reusableBuffer.sdManager.otaUpdateInformation.candidateReceiversCount != popupMenuItemsCount) { CLEAR_POPUP(); popupMenuItemsCount = min(reusableBuffer.sdManager.otaUpdateInformation.candidateReceiversCount,PXX2_MAX_RECEIVERS_PER_MODULE); for (auto rx = 0; rx < popupMenuItemsCount; rx++) { diff --git a/radio/src/io/frsky_firmware_update.cpp b/radio/src/io/frsky_firmware_update.cpp index b9b9875be..43dac1678 100644 --- a/radio/src/io/frsky_firmware_update.cpp +++ b/radio/src/io/frsky_firmware_update.cpp @@ -314,12 +314,12 @@ const char * FrskyDeviceFirmwareUpdate::doFlashFirmware(const char * filename, P } else { #if defined(PCBHORUS) - information.productId = FIRMWARE_ID_XJT; + information.productId = FIRMWARE_ID_MODULE_XJT; #endif } #if defined(PCBHORUS) - if (module == INTERNAL_MODULE && information.productId == FIRMWARE_ID_XJT) { + if (module == INTERNAL_MODULE && information.productId == FIRMWARE_ID_MODULE_XJT) { INTERNAL_MODULE_ON(); RTOS_WAIT_MS(1); intmoduleSerialStart(38400, true, USART_Parity_No, USART_StopBits_1, USART_WordLength_8b); diff --git a/radio/src/io/frsky_firmware_update.h b/radio/src/io/frsky_firmware_update.h index eb9fb1a32..42996d46f 100644 --- a/radio/src/io/frsky_firmware_update.h +++ b/radio/src/io/frsky_firmware_update.h @@ -24,6 +24,7 @@ #include "dataconstants.h" #include "definitions.h" #include "frsky_pxx2.h" +#include "pulses/modules_helpers.h" #include "ff.h" #include "popups.h" @@ -36,12 +37,43 @@ enum FrskyFirmwareProductFamily { FIRMWARE_FAMILY_POWER_MANAGEMENT_UNIT, }; -enum FrskyFirmwareProductId { - FIRMWARE_ID_NONE, - FIRMWARE_ID_XJT = 0x01, - FIRMWARE_ID_ISRM = 0x02, +enum FrskyFirmwareModuleProductId { + FIRMWARE_ID_MODULE_NONE, + FIRMWARE_ID_MODULE_XJT = 0x01, + FIRMWARE_ID_MODULE_ISRM = 0x02, }; +enum FrskyFirmwareReceiverProductId { + FIRMWARE_ID_RECEIVER_NONE, + FIRMWARE_ID_RECEIVER_ARCHER = 0xC0, // TODO use the right constant + FIRMWARE_ID_RECEIVER_R9MX = 0xF0, // TODO use the right constant + // TODO fill the table + +}; + +inline bool isReceiverOTAEnabledFromModule(uint8_t moduleIdx, uint8_t productId) +{ + switch (productId) { + case FIRMWARE_ID_RECEIVER_ARCHER: + return isModuleISRM(moduleIdx); + + case FIRMWARE_ID_RECEIVER_R9MX: + return isModuleR9M(moduleIdx); + + // TODO add all those OTA receivers here + +/* + "R9-MINI-OTA", // this one has OTA (different bootloader) + "R9-MM-OTA", // this one has OTA (different bootloader) + "R9-SLIM+-OTA", // this one has OTA (different bootloader) + "R9SX", // this one has OTA + */ + + default: + return false; + } +} + PACK(struct FrSkyFirmwareInformation { uint32_t fourcc; uint8_t headerVersion; @@ -70,7 +102,7 @@ class FrskyDeviceFirmwareUpdate { }; public: - FrskyDeviceFirmwareUpdate(ModuleIndex module): + explicit FrskyDeviceFirmwareUpdate(ModuleIndex module): module(module) { } diff --git a/radio/src/lua/api_general.cpp b/radio/src/lua/api_general.cpp index d42e7e9a6..1439ec8cb 100644 --- a/radio/src/lua/api_general.cpp +++ b/radio/src/lua/api_general.cpp @@ -1751,7 +1751,7 @@ const luaR_value_entry opentxConstants[] = { { "EVT_VIRTUAL_INC_REPT", EVT_KEY_REPT(KEY_UP) }, #endif -#if defined(NAVIGATION_9X) || defined(NAVIGATION_XLITE) +#if defined(NAVIGATION_9X) { "EVT_VIRTUAL_PREV_PAGE", EVT_KEY_LONG(KEY_LEFT) }, { "EVT_VIRTUAL_NEXT_PAGE", EVT_KEY_BREAK(KEY_LEFT) }, { "EVT_VIRTUAL_MENU", EVT_KEY_BREAK(KEY_RIGHT) }, @@ -1759,6 +1759,14 @@ const luaR_value_entry opentxConstants[] = { { "EVT_VIRTUAL_ENTER", EVT_KEY_BREAK(KEY_ENTER) }, { "EVT_VIRTUAL_ENTER_LONG", EVT_KEY_LONG(KEY_ENTER) }, { "EVT_VIRTUAL_EXIT", EVT_KEY_BREAK(KEY_EXIT) }, +#elif defined(NAVIGATION_XLITE) + { "EVT_VIRTUAL_PREV_PAGE", EVT_KEY_LONG(KEY_LEFT) }, + { "EVT_VIRTUAL_NEXT_PAGE", EVT_KEY_LONG(KEY_RIGHT) }, + { "EVT_VIRTUAL_MENU", EVT_KEY_BREAK(KEY_SHIFT) }, + { "EVT_VIRTUAL_MENU_LONG", EVT_KEY_LONG(KEY_SHIFT) }, + { "EVT_VIRTUAL_ENTER", EVT_KEY_BREAK(KEY_ENTER) }, + { "EVT_VIRTUAL_ENTER_LONG", EVT_KEY_LONG(KEY_ENTER) }, + { "EVT_VIRTUAL_EXIT", EVT_KEY_BREAK(KEY_EXIT) }, #elif defined(NAVIGATION_X7) || defined(NAVIGATION_X9D) { "EVT_VIRTUAL_PREV_PAGE", EVT_KEY_LONG(KEY_PAGE) }, { "EVT_VIRTUAL_NEXT_PAGE", EVT_KEY_BREAK(KEY_PAGE) }, diff --git a/radio/src/opentx.h b/radio/src/opentx.h index 2836ce2c2..1847e4a72 100644 --- a/radio/src/opentx.h +++ b/radio/src/opentx.h @@ -262,17 +262,6 @@ #include "myeeprom.h" #include "curves.h" -inline void memclear(void * p, size_t size) -{ - memset(p, 0, size); -} - -inline bool is_memclear(void * p, size_t size) -{ - uint8_t * buf = (uint8_t *)p; - return buf[0] == 0 && memcmp(buf, buf + 1, size - 1) == 0; -} - void memswap(void * a, void * b, uint8_t size); #if defined(PCBX9D) || defined(PCBX9DP) || defined(PCBX9E) || defined(PCBHORUS) diff --git a/radio/src/opentx_helpers.h b/radio/src/opentx_helpers.h index 5e6b34395..6dc545028 100644 --- a/radio/src/opentx_helpers.h +++ b/radio/src/opentx_helpers.h @@ -21,6 +21,7 @@ #ifndef _OPENTX_HELPERS_H_ #define _OPENTX_HELPERS_H_ +#include #include "thirdparty/libopenui/src/libopenui_helpers.h" template @@ -37,4 +38,15 @@ inline void SWAP(T & a, T & b) a = tmp; } +inline void memclear(void * p, size_t size) +{ +memset(p, 0, size); +} + +inline bool is_memclear(void * p, size_t size) +{ +uint8_t * buf = (uint8_t *)p; +return buf[0] == 0 && memcmp(buf, buf + 1, size - 1) == 0; +} + #endif diff --git a/radio/src/pulses/modules_helpers.h b/radio/src/pulses/modules_helpers.h index e2984df28..4038ab9a1 100644 --- a/radio/src/pulses/modules_helpers.h +++ b/radio/src/pulses/modules_helpers.h @@ -25,6 +25,8 @@ #include "definitions.h" #include "opentx_helpers.h" #include "telemetry/telemetry.h" +#include "storage/storage.h" + #if defined(MULTIMODULE) #include "telemetry/multi.h" #endif @@ -471,11 +473,6 @@ inline bool isModuleBindRangeAvailable(uint8_t moduleIdx) return isModulePXX2(moduleIdx) || isModulePXX1(moduleIdx) || isModuleDSM2(moduleIdx) || isModuleMultimodule(moduleIdx); } -inline bool isModuleRangeAvailable(uint8_t moduleIdx) -{ - return isModuleXJTD16(moduleIdx) || isModuleXJTLR12(moduleIdx); -} - constexpr uint8_t MAX_RXNUM = 63; inline uint8_t getMaxRxNum(uint8_t idx) diff --git a/radio/src/pulses/pulses.h b/radio/src/pulses/pulses.h index 1e6f7f5ef..0f7cfc504 100644 --- a/radio/src/pulses/pulses.h +++ b/radio/src/pulses/pulses.h @@ -128,8 +128,10 @@ class ReceiverSettings { uint8_t receiverId; uint8_t dirty; uint8_t telemetryDisabled; + uint8_t telemetry25mw; uint8_t pwmRate; uint8_t fport; + uint8_t enablePwmCh5Ch6; uint8_t outputsCount; uint8_t outputsMapping[24]; }; @@ -151,6 +153,7 @@ class OtaUpdateInformation: public BindInformation { public: char filename[FF_MAX_LFN + 1]; uint32_t address; + uint32_t module; }; typedef void (* ModuleCallback)(); diff --git a/radio/src/pulses/pxx2.cpp b/radio/src/pulses/pxx2.cpp index 0febbe6fe..a709f6352 100644 --- a/radio/src/pulses/pxx2.cpp +++ b/radio/src/pulses/pxx2.cpp @@ -224,6 +224,10 @@ void Pxx2Pulses::setupReceiverSettingsFrame(uint8_t module) flag1 |= PXX2_RX_SETTINGS_FLAG1_FASTPWM; if (reusableBuffer.hardwareAndSettings.receiverSettings.fport) flag1 |= PXX2_RX_SETTINGS_FLAG1_FPORT; + if (reusableBuffer.hardwareAndSettings.receiverSettings.telemetry25mw) + flag1 |= PXX2_RX_SETTINGS_FLAG1_TELEMETRY_25MW; + if (reusableBuffer.hardwareAndSettings.receiverSettings.enablePwmCh5Ch6) + flag1 |= PXX2_RX_SETTINGS_FLAG1_ENABLE_PWM_CH5_CH6; Pxx2Transport::addByte(flag1); uint8_t outputsCount = min(24, reusableBuffer.hardwareAndSettings.receiverSettings.outputsCount); for (int i = 0; i < outputsCount; i++) { @@ -358,6 +362,8 @@ void Pxx2Pulses::sendOtaUpdate(uint8_t module, const char * rxName, uint32_t add if (module == EXTERNAL_MODULE) extmoduleSendNextFrame(); + else if (module == INTERNAL_MODULE) + intmoduleSendNextFrame(); } void Pxx2Pulses::setupAuthenticationFrame(uint8_t module, uint8_t mode, const uint8_t * outputMessage) @@ -467,7 +473,12 @@ const char * Pxx2OtaUpdate::nextStep(uint8_t step, const char * rxName, uint32_t destination->address = address; for (uint8_t retry = 0;; retry++) { - extmodulePulsesData.pxx2.sendOtaUpdate(module, rxName, address, (const char *) buffer); + if (module == EXTERNAL_MODULE) { + extmodulePulsesData.pxx2.sendOtaUpdate(module, rxName, address, (const char *) buffer); + } + else if (module == INTERNAL_MODULE) { + intmodulePulsesData.pxx2.sendOtaUpdate(module, rxName, address, (const char *) buffer); + } if (waitStep(step + 1, 20)) { return nullptr; } diff --git a/radio/src/pulses/pxx2.h b/radio/src/pulses/pxx2.h index a794cea76..9655ac521 100644 --- a/radio/src/pulses/pxx2.h +++ b/radio/src/pulses/pxx2.h @@ -54,6 +54,8 @@ #define PXX2_RX_SETTINGS_FLAG1_READONLY (1 << 6) #define PXX2_RX_SETTINGS_FLAG1_FASTPWM (1 << 4) #define PXX2_RX_SETTINGS_FLAG1_FPORT (1 << 3) +#define PXX2_RX_SETTINGS_FLAG1_TELEMETRY_25MW (1 << 2) +#define PXX2_RX_SETTINGS_FLAG1_ENABLE_PWM_CH5_CH6 (1 << 1) #define PXX2_TX_SETTINGS_FLAG0_WRITE (1 << 6) #define PXX2_TX_SETTINGS_FLAG1_EXTERNAL_ANTENNA (1 << 3) @@ -82,7 +84,7 @@ enum PXX2ModuleModelID { PXX2_MODULE_ISRM_S_X10E, PXX2_MODULE_XJT_LITE, PXX2_MODULE_ISRM_S_X10S, - PXX2_MODULE_ISRM_S_X9LITE, + PXX2_MODULE_ISRM_X9LITES, }; static const char * const PXX2ModulesNames[] = { @@ -99,7 +101,7 @@ static const char * const PXX2ModulesNames[] = { "ISRM-S-X10E", "XJT Lite", "ISRM-S-X10S", - "ISRM-S-X9Lite" + "ISRM-X9LiteS" }; inline const char * getPXX2ModuleName(uint8_t modelId) @@ -141,7 +143,7 @@ static const uint8_t PXX2ModuleOptions[] = { 0b00000101, // ISRM-S-X10E 0b00000001, // XJT_LITE 0b00000101, // ISRM-S-X10S - 0b00000101, // ISRM-S-X9LITE + 0b00000100, // ISRM-X9LITES }; inline uint8_t getPXX2ModuleOptions(uint8_t modelId) @@ -190,6 +192,9 @@ static const char * const PXX2ReceiversNames[] = { "R9-MINI-OTA", // this one has OTA (different bootloader) "R9-MM-OTA", // this one has OTA (different bootloader) "R9-SLIM+-OTA", // this one has OTA (different bootloader) + "Archer-X", // this one has OTA (internal module) + "R9MX", // this one has OTA + "R9SX", // this one has OTA }; inline const char * getPXX2ReceiverName(uint8_t modelId) @@ -240,6 +245,9 @@ static const uint8_t PXX2ReceiverOptions[] = { 0b11111111, // R9-MINI+OTA 0b11111111, // R9-MM+OTA 0b11111111, // R9-SLIM+OTA + 0b11111111, // ARCHER-X + 0b11111111, // R9MX + 0b11111111, // R9SX }; inline uint8_t getPXX2ReceiverOptions(uint8_t modelId) @@ -257,6 +265,8 @@ inline bool isPXX2ReceiverOptionAvailable(uint8_t modelId, uint8_t option) enum ReceiverCapabilities { RECEIVER_CAPABILITY_FPORT, + RECEIVER_CAPABILITY_TELEMETRY_25MW, + RECEIVER_CAPABILITY_ENABLE_PWM_CH5_CH6, RECEIVER_CAPABILITY_COUNT }; diff --git a/radio/src/storage/modelslist.cpp b/radio/src/storage/modelslist.cpp index 212378be3..ec8c109c2 100644 --- a/radio/src/storage/modelslist.cpp +++ b/radio/src/storage/modelslist.cpp @@ -148,7 +148,7 @@ void ModelCell::setModelId(uint8_t moduleIdx, uint8_t id) // getTimerString(timer, 0); // for (uint8_t i = 0; i < MAX_TIMERS; i++) { -// if (partialmodel.timers[i].mode > 0 && partialmodel.timers[i].persistent) { +// if (partialmodel.timers[i].mode != 0 && partialmodel.timers[i].persistent) { // getTimerString(timer, partialmodel.timers[i].value); // break; // } @@ -416,7 +416,7 @@ bool ModelsList::load() #else // YAML reader TRACE("YAML modelslist reader"); - + YamlParser yp; //TODO: move to re-usable buffer yp.init(get_modelslist_parser_calls(), get_modelslist_iter()); @@ -426,7 +426,7 @@ bool ModelsList::load() // reached EOF? if (bytes_read == 0) break; - + if (yp.parse(line, bytes_read) != YamlParser::CONTINUE_PARSING) break; } diff --git a/radio/src/telemetry/frsky.h b/radio/src/telemetry/frsky.h index 458a4901f..8218447e4 100644 --- a/radio/src/telemetry/frsky.h +++ b/radio/src/telemetry/frsky.h @@ -150,6 +150,16 @@ enum FrSkyDataState { #define ESC_RPM_CONS_LAST_ID 0x0B6f #define ESC_TEMPERATURE_FIRST_ID 0x0B70 #define ESC_TEMPERATURE_LAST_ID 0x0B7f +#define RB3040_OUTPUT_FIRST_ID 0x0B80 +#define RB3040_OUTPUT_LAST_ID 0x0B8F +#define RB3040_CH1_2_FIRST_ID 0x0B90 +#define RB3040_CH1_2_LAST_ID 0x0B9F +#define RB3040_CH3_4_FIRST_ID 0x0BA0 +#define RB3040_CH3_4_LAST_ID 0x0BAF +#define RB3040_CH5_6_FIRST_ID 0x0BB0 +#define RB3040_CH5_6_LAST_ID 0x0BBF +#define RB3040_CH7_8_FIRST_ID 0x0BC0 +#define RB3040_CH7_8_LAST_ID 0x0BCF #define X8R_FIRST_ID 0x0c20 #define X8R_LAST_ID 0x0c2F #define S6R_FIRST_ID 0x0c30 @@ -177,6 +187,7 @@ enum FrSkyDataState { #define DIY_STREAM_FIRST_ID 0x5000 #define DIY_STREAM_LAST_ID 0x50FF #define FACT_TEST_ID 0xF000 +#define FRAME_LOSS_RATE_ID 0xF010 #define RSSI_ID 0xF101 #define ADC1_ID 0xF102 #define ADC2_ID 0xF103 diff --git a/radio/src/telemetry/frsky_pxx2.cpp b/radio/src/telemetry/frsky_pxx2.cpp index 9153c504d..df4c30c54 100644 --- a/radio/src/telemetry/frsky_pxx2.cpp +++ b/radio/src/telemetry/frsky_pxx2.cpp @@ -86,6 +86,12 @@ void processReceiverSettingsFrame(uint8_t module, const uint8_t * frame) if (frame[4] & PXX2_RX_SETTINGS_FLAG1_TELEMETRY_DISABLED) destination->telemetryDisabled = 1; + if (frame[4] & PXX2_RX_SETTINGS_FLAG1_TELEMETRY_25MW) + destination->telemetry25mw = 1; + + if (frame[4] & PXX2_RX_SETTINGS_FLAG1_ENABLE_PWM_CH5_CH6) + destination->enablePwmCh5Ch6 = 1; + uint8_t outputsCount = min(16, frame[0] - 4); destination->outputsCount = outputsCount; for (uint8_t pin = 0; pin < outputsCount; pin++) { diff --git a/radio/src/telemetry/frsky_sport.cpp b/radio/src/telemetry/frsky_sport.cpp index 5143c5a33..f946f3c67 100644 --- a/radio/src/telemetry/frsky_sport.cpp +++ b/radio/src/telemetry/frsky_sport.cpp @@ -30,6 +30,7 @@ struct FrSkySportSensor { }; const FrSkySportSensor sportSensors[] = { + { FRAME_LOSS_RATE_ID, FRAME_LOSS_RATE_ID, 0, ZSTR_FLR, UNIT_PERCENT, 0 }, { RSSI_ID, RSSI_ID, 0, STR_SENSOR_RSSI, UNIT_DB, 0 }, #if defined(MULTIMODULE) { TX_RSSI_ID, TX_RSSI_ID, 0, STR_SENSOR_TX_RSSI , UNIT_DB , 0 }, @@ -84,6 +85,15 @@ const FrSkySportSensor sportSensors[] = { { GASSUIT_AVG_FLOW_FIRST_ID, GASSUIT_AVG_FLOW_LAST_ID, 0, STR_SENSOR_GASSUIT_AVG_FLOW, UNIT_MILLILITERS_PER_MINUTE, 0 }, { SBEC_POWER_FIRST_ID, SBEC_POWER_LAST_ID, 0, STR_SENSOR_SBEC_VOLTAGE, UNIT_VOLTS, 2 }, { SBEC_POWER_FIRST_ID, SBEC_POWER_LAST_ID, 1, STR_SENSOR_SBEC_CURRENT, UNIT_AMPS, 2 }, + { RB3040_OUTPUT_FIRST_ID, RB3040_OUTPUT_LAST_ID, 0, ZSTR_RB3040_EXTRA_STATE, UNIT_BITFIELD, 0 }, + { RB3040_CH1_2_FIRST_ID, RB3040_CH1_2_LAST_ID, 0, ZSTR_RB3040_CHANNEL1, UNIT_AMPS, 2 }, + { RB3040_CH1_2_FIRST_ID, RB3040_CH1_2_LAST_ID, 1, ZSTR_RB3040_CHANNEL2, UNIT_AMPS, 2 }, + { RB3040_CH3_4_FIRST_ID, RB3040_CH3_4_LAST_ID, 0, ZSTR_RB3040_CHANNEL3, UNIT_AMPS, 2 }, + { RB3040_CH3_4_FIRST_ID, RB3040_CH3_4_LAST_ID, 1, ZSTR_RB3040_CHANNEL4, UNIT_AMPS, 2 }, + { RB3040_CH5_6_FIRST_ID, RB3040_CH5_6_LAST_ID, 0, ZSTR_RB3040_CHANNEL5, UNIT_AMPS, 2 }, + { RB3040_CH5_6_FIRST_ID, RB3040_CH5_6_LAST_ID, 1, ZSTR_RB3040_CHANNEL6, UNIT_AMPS, 2 }, + { RB3040_CH7_8_FIRST_ID, RB3040_CH7_8_LAST_ID, 0, ZSTR_RB3040_CHANNEL7, UNIT_AMPS, 2 }, + { RB3040_CH7_8_FIRST_ID, RB3040_CH7_8_LAST_ID, 1, ZSTR_RB3040_CHANNEL8, UNIT_AMPS, 2 }, { 0, 0, 0, NULL, UNIT_RAW, 0 } // sentinel }; @@ -308,6 +318,10 @@ void sportProcessTelemetryPacketWithoutCrc(uint8_t origin, const uint8_t * packe } #endif } + else if (dataId >= RB3040_CH1_2_FIRST_ID && dataId <= RB3040_CH7_8_LAST_ID) { + sportProcessTelemetryPacket(dataId, 0, instance, data & 0xffff); + sportProcessTelemetryPacket(dataId, 1, instance, (data >> 16u) & 0xffff); + } else { sportProcessTelemetryPacket(dataId, 0, instance, data); } diff --git a/radio/src/telemetry/telemetry.h b/radio/src/telemetry/telemetry.h index 74dc66987..bdd90219d 100644 --- a/radio/src/telemetry/telemetry.h +++ b/radio/src/telemetry/telemetry.h @@ -24,6 +24,9 @@ #include "frsky.h" #include "io/frsky_sport.h" #include "crossfire.h" +#include "myeeprom.h" +#include "io/frsky_sport.h" + #if defined(MULTIMODULE) #include "spektrum.h" #include "flysky_ibus.h" diff --git a/radio/src/telemetry/telemetry_holders.h b/radio/src/telemetry/telemetry_holders.h index 70b2b6a9c..9db8d629f 100644 --- a/radio/src/telemetry/telemetry_holders.h +++ b/radio/src/telemetry/telemetry_holders.h @@ -22,6 +22,7 @@ #define _TELEMETRY_HOLDERS_H_ #include +#include #include "../timers.h" #define TELEMETRY_AVERAGE_COUNT 3 // we actually average one more reading! diff --git a/radio/src/translations.cpp b/radio/src/translations.cpp index 119ed442b..05d94a29e 100644 --- a/radio/src/translations.cpp +++ b/radio/src/translations.cpp @@ -438,6 +438,8 @@ const char STR_FIRMWARE_UPDATE_SUCCESS[] = TR_FIRMWARE_UPDATE_SUCCESS; const char STR_WRITING[] = TR_WRITING; const char STR_FLASH_EXTERNAL_DEVICE[] = TR_FLASH_EXTERNAL_DEVICE; const char STR_FLASH_RECEIVER_OTA[] = TR_FLASH_RECEIVER_OTA; +const char STR_FLASH_RECEIVER_OTA_BY_EXTERNAL[] = TR_FLASH_RECEIVER_OTA_BY_EXTERNAL; +const char STR_FLASH_RECEIVER_OTA_BY_INTERNAL[] = TR_FLASH_RECEIVER_OTA_BY_INTERNAL; const char STR_FLASH_BLUETOOTH_MODULE[] = TR_FLASH_BLUETOOTH_MODULE; const char STR_FLASH_POWER_MANAGEMENT_UNIT[] = TR_FLASH_POWER_MANAGEMENT_UNIT; const char STR_CONFIRM_FORMAT[] = TR_CONFIRM_FORMAT; diff --git a/radio/src/translations.h b/radio/src/translations.h index 7340b8a3b..31ca7eb9d 100644 --- a/radio/src/translations.h +++ b/radio/src/translations.h @@ -646,6 +646,8 @@ extern const char STR_VIEW_TEXT[]; extern const char STR_FLASH_BOOTLOADER[]; extern const char STR_FLASH_EXTERNAL_DEVICE[]; extern const char STR_FLASH_RECEIVER_OTA[]; +extern const char STR_FLASH_RECEIVER_OTA_BY_EXTERNAL[]; +extern const char STR_FLASH_RECEIVER_OTA_BY_INTERNAL[]; extern const char STR_FLASH_BLUETOOTH_MODULE[]; extern const char STR_FLASH_POWER_MANAGEMENT_UNIT[]; extern const char STR_CURRENT_VERSION[]; diff --git a/radio/src/translations/cz.h.txt b/radio/src/translations/cz.h.txt index 98cff9d9b..cd75fd371 100644 --- a/radio/src/translations/cz.h.txt +++ b/radio/src/translations/cz.h.txt @@ -831,6 +831,8 @@ #define TR_FLASH_BOOTLOADER "Flash bootloaderu" #define TR_FLASH_EXTERNAL_DEVICE TR("Flash S.Portem", "Flash S.Portem") #define TR_FLASH_RECEIVER_OTA "Flash příjímače OTA" +#define TR_FLASH_RECEIVER_OTA_BY_EXTERNAL "Flash RX by ext. OTA" +#define TR_FLASH_RECEIVER_OTA_BY_INTERNAL "Flash RX by int. OTA" #define TR_FLASH_BLUETOOTH_MODULE TR("Flash modulu BT", "Flash modulu Bluetooth") #define TR_FLASH_POWER_MANAGEMENT_UNIT TR("Flash řízení spotř.", "Flash jednotky řízení spotřeby") #define TR_CURRENT_VERSION TR("Současná ver. ", "Současná verze: ") @@ -1175,6 +1177,7 @@ #define TR_RTC_CHECK TR("Check RTC", "Check RTC voltage") #define TR_AUTH_FAILURE "Auth-failure" +#define ZSTR_FLR "FLR" #define ZSTR_RSSI "RSSI" #define ZSTR_R9PW "R9PW" #define ZSTR_RAS "SWR" @@ -1277,3 +1280,12 @@ #define ZSTR_GASSUIT_AVG_FLOW "GAFl" #define ZSTR_SBEC_VOLTAGE "BecV" #define ZSTR_SBEC_CURRENT "BecA" +#define ZSTR_RB3040_EXTRA_STATE "RBES" +#define ZSTR_RB3040_CHANNEL1 "CH1A" +#define ZSTR_RB3040_CHANNEL2 "CH2A" +#define ZSTR_RB3040_CHANNEL3 "CH3A" +#define ZSTR_RB3040_CHANNEL4 "CH4A" +#define ZSTR_RB3040_CHANNEL5 "CH5A" +#define ZSTR_RB3040_CHANNEL6 "CH6A" +#define ZSTR_RB3040_CHANNEL7 "CH7A" +#define ZSTR_RB3040_CHANNEL8 "CH8A" diff --git a/radio/src/translations/de.h.txt b/radio/src/translations/de.h.txt index a67cd1b96..46d715d97 100644 --- a/radio/src/translations/de.h.txt +++ b/radio/src/translations/de.h.txt @@ -838,6 +838,8 @@ #define TR_FLASH_BOOTLOADER TR("Flash bootloader","Flash bootloader") // #define TR_FLASH_EXTERNAL_DEVICE TR("Flash ext. Gerät","Flash externes Gerät") #define TR_FLASH_RECEIVER_OTA "Flash receiver OTA" +#define TR_FLASH_RECEIVER_OTA_BY_EXTERNAL "Flash RX by ext. OTA" +#define TR_FLASH_RECEIVER_OTA_BY_INTERNAL "Flash RX by int. OTA" #define TR_FLASH_BLUETOOTH_MODULE TR("Flash BT module", "Flash Bluetoothmodul") #define TR_FLASH_POWER_MANAGEMENT_UNIT TR("Flash pwr mngt unit", "Flash power management unit") #define TR_CURRENT_VERSION TR("Current vers. ", "Current version: ") @@ -1188,6 +1190,7 @@ #define TR_AUTH_FAILURE "Auth-failure" // ---------------------------------------------------------------- +#define ZSTR_FLR "FLR" #define ZSTR_RSSI "RSSI" #define ZSTR_R9PW "R9PW" #define ZSTR_RAS "SWR" @@ -1290,3 +1293,12 @@ #define ZSTR_GASSUIT_AVG_FLOW "GAFl" #define ZSTR_SBEC_VOLTAGE "BecV" #define ZSTR_SBEC_CURRENT "BecA" +#define ZSTR_RB3040_EXTRA_STATE "RBES" +#define ZSTR_RB3040_CHANNEL1 "CH1A" +#define ZSTR_RB3040_CHANNEL2 "CH2A" +#define ZSTR_RB3040_CHANNEL3 "CH3A" +#define ZSTR_RB3040_CHANNEL4 "CH4A" +#define ZSTR_RB3040_CHANNEL5 "CH5A" +#define ZSTR_RB3040_CHANNEL6 "CH6A" +#define ZSTR_RB3040_CHANNEL7 "CH7A" +#define ZSTR_RB3040_CHANNEL8 "CH8A" diff --git a/radio/src/translations/en.h.txt b/radio/src/translations/en.h.txt index 1fc4d74b2..9b13ef3bd 100644 --- a/radio/src/translations/en.h.txt +++ b/radio/src/translations/en.h.txt @@ -835,6 +835,8 @@ #define TR_FLASH_BOOTLOADER "Flash bootloader" #define TR_FLASH_EXTERNAL_DEVICE TR("Flash S.Port", "Flash S.Port device") #define TR_FLASH_RECEIVER_OTA "Flash receiver OTA" +#define TR_FLASH_RECEIVER_OTA_BY_EXTERNAL "Flash RX by ext. OTA" +#define TR_FLASH_RECEIVER_OTA_BY_INTERNAL "Flash RX by int. OTA" #define TR_FLASH_BLUETOOTH_MODULE TR("Flash BT module", "Flash Bluetooth module") #define TR_FLASH_POWER_MANAGEMENT_UNIT "Flash pwr mngt unit" #define TR_CURRENT_VERSION TR("Curr Vers: ", "Current version: ") @@ -1185,6 +1187,7 @@ #define TR_RTC_CHECK TR("Check RTC", "Check RTC voltage") #define TR_AUTH_FAILURE "Auth-failure" +#define ZSTR_FLR "FLR" #define ZSTR_RSSI "RSSI" #define ZSTR_R9PW "R9PW" #define ZSTR_RAS "SWR" @@ -1287,3 +1290,12 @@ #define ZSTR_GASSUIT_AVG_FLOW "GAFl" #define ZSTR_SBEC_VOLTAGE "BecV" #define ZSTR_SBEC_CURRENT "BecA" +#define ZSTR_RB3040_EXTRA_STATE "RBES" +#define ZSTR_RB3040_CHANNEL1 "CH1A" +#define ZSTR_RB3040_CHANNEL2 "CH2A" +#define ZSTR_RB3040_CHANNEL3 "CH3A" +#define ZSTR_RB3040_CHANNEL4 "CH4A" +#define ZSTR_RB3040_CHANNEL5 "CH5A" +#define ZSTR_RB3040_CHANNEL6 "CH6A" +#define ZSTR_RB3040_CHANNEL7 "CH7A" +#define ZSTR_RB3040_CHANNEL8 "CH8A" diff --git a/radio/src/translations/es.h.txt b/radio/src/translations/es.h.txt index 592a4d182..3eccbf397 100644 --- a/radio/src/translations/es.h.txt +++ b/radio/src/translations/es.h.txt @@ -52,8 +52,8 @@ #define LEN_VBEEPMODE "\005" #define TR_VBEEPMODE "Mudo ""Alarm""NoKey""Todo " -#define LEN_VBLMODE "\004" -#define TR_VBLMODE "OFF ""Keys""Stks""Both""ON\0" +#define LEN_VBLMODE "\005" +#define TR_VBLMODE "OFF\0 ""Keys\0""Stks\0""Ambos""ON\0" #define LEN_TRNMODE "\003" #define TR_TRNMODE "OFF""+=\0"":=" @@ -63,37 +63,37 @@ #define LEN_AUX_SERIAL_MODES "\015" #if defined(CLI) || defined(DEBUG) -#define TR_AUX_SERIAL_MODES "Debug\0 ""Telem Mirror\0""Telemetry In\0""SBUS Trainer\0""LUA\0 " +#define TR_AUX_SERIAL_MODES "Debug\0 ""Telem Mirror\0""Telemetria\0 ""Entrenador SBUS""LUA\0 " #else -#define TR_AUX_SERIAL_MODES "OFF\0 ""Telem Mirror\0""Telemetry In\0""SBUS Trainer\0""LUA\0 " +#define TR_AUX_SERIAL_MODES "OFF\0 ""Telem Mirror\0""Telemetria\0 ""Entrenador SBUS""LUA\0 " #endif #define LEN_SWTYPES "\006" -#define TR_SWTYPES "None\0 ""Toggle""2POS\0 ""3POS\0" +#define TR_SWTYPES "Nada\0 ""Palanc""2POS\0 ""3POS\0" #define LEN_POTTYPES TR("\013", "\017") -#define TR_POTTYPES TR("None ""Pot w det ""Multipos ""Pot ", "None ""Pot with detent""Multipos Switch""Pot\0") +#define TR_POTTYPES TR("Nada\0 ""Pot con fij""Multipos\0 ""Pot\0 ", "Nada\0 ""Pot con fijador""Switch multipos""Pot\0 ") #define LEN_SLIDERTYPES "\006" -#define TR_SLIDERTYPES "Rien\0 ""Slider" +#define TR_SLIDERTYPES "Nada\0 ""Slider" #define LEN_VLCD "\006" #define TR_VLCD "NormalOptrex" #define LEN_VPERSISTENT "\014" -#define TR_VPERSISTENT "OFF\0 ""Flight\0 ""Manual Reset" +#define TR_VPERSISTENT "OFF\0 ""Vuelo\0 ""Reset manual" #define LEN_COUNTRY_CODES TR("\002", "\007") #define TR_COUNTRY_CODES TR("US""JP""EU", "America""Japon\0 ""Europa\0") -#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_USBMODES TR("\006", "\008") +#define TR_USBMODES TR("Pregun""Joyst\0""SDCard""Serie\0", "Pregunta""Joystick""SDCard\0 ""Serie\0 ") #define LEN_JACK_MODES "\007" -#define TR_JACK_MODES "Ask\0 ""Audio\0 ""Trainer" +#define TR_JACK_MODES "Pregunt""Audio\0 ""Entrena" #define LEN_TELEMETRY_PROTOCOLS "\017" -#define TR_TELEMETRY_PROTOCOLS "FrSky S.PORT\0 ""FrSky D\0 ""FrSky D (cable)""TBS Crossfire\0 ""Spektrum\0 ""AFHDS2A IBUS\0 ""Multi Telemetry" +#define TR_TELEMETRY_PROTOCOLS "FrSky S.PORT\0 ""FrSky D\0 ""FrSky D (cable)""TBS Crossfire\0 ""Spektrum\0 ""AFHDS2A IBUS\0 ""Multi Telemetr." #define TR_MULTI_CUSTOM "Custom" @@ -101,19 +101,19 @@ #define TR_VTRIMINC TR("Expo ""ExFino""Fino ""Medio ""Grueso", "Exponencial""Extra Fino ""Fino ""Medio ""Grueso ") #define LEN_VDISPLAYTRIMS "\006" -#define TR_VDISPLAYTRIMS "No\0 ""Change""Yes\0" +#define TR_VDISPLAYTRIMS "No\0 ""Cambiar""Si\0 " #define LEN_VBEEPCOUNTDOWN "\006" -#define TR_VBEEPCOUNTDOWN "Silent""Beeps\0""Voz\0 ""Haptic" +#define TR_VBEEPCOUNTDOWN "SilencBeeps\0Voz\0 Haptic" #define LEN_COUNTDOWNVALUES "\003" #define TR_COUNTDOWNVALUES "5s\0""10s""20s""30s" -#define LEN_VVARIOCENTER "\006" -#define TR_VVARIOCENTER "Tone\0 ""Silent" +#define LEN_VVARIOCENTER "\008" +#define TR_VVARIOCENTER "Tono\0 ""Silencio" -#define LEN_CURVE_TYPES "\010" -#define TR_CURVE_TYPES "Standard""Custom\0" +#define LEN_CURVE_TYPES "\006" +#define TR_CURVE_TYPES "Normal""Custom" #define LEN_RETA123 "\001" @@ -183,9 +183,9 @@ #endif #if defined(HAPTIC) - #define TR_HAPTIC "Tactil\0 " + #define TR_HAPTIC "Haptic\0 " #else - #define TR_HAPTIC "[Tactil]\0 " + #define TR_HAPTIC "[Haptic]\0 " #endif #if defined(VOICE) @@ -213,7 +213,7 @@ #if defined(GVARS) #define TR_ADJUST_GVAR "Ajuste\0 " #else - #define TR_ADJUST_GVAR "[AdjustGV]" + #define TR_ADJUST_GVAR "[AjusteGV]" #endif #if defined(LUA) @@ -234,14 +234,14 @@ #define TR_SF_SAFETY "---\0 " #endif -#define TR_SF_SCREENSHOT "Screenshot" -#define TR_SF_RESERVE "[reserve]\0" +#define TR_SF_SCREENSHOT "Captura" +#define TR_SF_RESERVE "[reserv.]\0" -#define TR_VFSWFUNC TR_SF_SAFETY "Aprendiz\0 ""Inst. Trim""Reset\0 ""Set \0 " TR_ADJUST_GVAR "Volumen\0 " "SetFailsfe" "RangeCheck" "ModuleBind" TR_SOUND TR_PLAY_TRACK TR_PLAY_VALUE TR_SF_RESERVE TR_SF_PLAY_SCRIPT TR_SF_RESERVE TR_SF_BG_MUSIC TR_VVARIO TR_HAPTIC TR_SDCLOGS "Luz fondo\0" TR_SF_SCREENSHOT TR_SF_TEST +#define TR_VFSWFUNC TR_SF_SAFETY "Entrena.\0 ""Inst. Trim""Reset\0 ""Set \0 " TR_ADJUST_GVAR "Volumen\0 " "SetFailsfe" "RangeCheck" "ModuleBind" TR_SOUND TR_PLAY_TRACK TR_PLAY_VALUE TR_SF_RESERVE TR_SF_PLAY_SCRIPT TR_SF_RESERVE TR_SF_BG_MUSIC TR_VVARIO TR_HAPTIC TR_SDCLOGS "Luz fondo\0" TR_SF_SCREENSHOT TR_SF_TEST #define LEN_VFSWRESET TR("\004", "\011") -#define TR_FSW_RESET_TELEM TR("Telm", "Telemetry") +#define TR_FSW_RESET_TELEM TR("Telm", "Telemetria") #if defined(PCBTARANIS) #define TR_FSW_RESET_TIMERS "Timer 1\0 ""Timer 2\0 ""Timer 3\0 " @@ -278,8 +278,8 @@ #define LENGTH_UNIT_METR "m\0 " #define SPEED_UNIT_METR "kmh" - #define LEN_VUNITSSYSTEM TR("\006", "\010") - #define TR_VUNITSSYSTEM TR("Metric""Imper.", "Metric\0 ""Imperial") + #define LEN_VUNITSSYSTEM "\007" + #define TR_VUNITSSYSTEM "Metrico""Imperial" #define LEN_VTELEMUNIT "\003" #define TR_VTELEMUNIT "-\0 ""V\0 ""A\0 ""mA\0""kts""m/s""f/s""kmh""mph""m\0 ""ft\0""@C\0""@F\0""%\0 ""mAh""W\0 ""mW\0""dB\0""rpm""g\0 ""@\0 ""rad""ml\0""fOz" @@ -363,7 +363,7 @@ #endif #define TR_RESERVE_VSRCRAW "[--]" -#define TR_EXTRA_VSRCRAW "Batt""Time""GPS\0" TR_RESERVE_VSRCRAW TR_RESERVE_VSRCRAW TR_RESERVE_VSRCRAW TR_RESERVE_VSRCRAW "Tmr1""Tmr2""Tmr3" +#define TR_EXTRA_VSRCRAW "Bat\0""Time""GPS\0" TR_RESERVE_VSRCRAW TR_RESERVE_VSRCRAW TR_RESERVE_VSRCRAW TR_RESERVE_VSRCRAW "Tmr1""Tmr2""Tmr3" #define LEN_VTMRMODES "\003" #define TR_VTMRMODES "OFF""ABS""THs""TH%""THt" @@ -372,27 +372,27 @@ #define TR_VTRAINER_MASTER_OFF "Off\0 " #define TR_VTRAINER_MASTER_JACK "Master/Jack\0 " #define TR_VTRAINER_SLAVE_JACK "Esclav/Jack\0 " -#define TR_VTRAINER_MASTER_SBUS_MODULE "Master/SBUS Module" -#define TR_VTRAINER_MASTER_CPPM_MODULE "Master/CPPM Module" -#define TR_VTRAINER_MASTER_BATTERY "Master/Serial\0 " -#define TR_VTRAINER_BLUETOOTH TR("Master/BT\0 ""Slave/BT\0 ", "Master/Bluetooth\0 ""Slave/Bluetooth\0 ") +#define TR_VTRAINER_MASTER_SBUS_MODULE "Master/Modulo SBUS" +#define TR_VTRAINER_MASTER_CPPM_MODULE "Master/Modulo CPPM" +#define TR_VTRAINER_MASTER_BATTERY "Master/Serie\0 " +#define TR_VTRAINER_BLUETOOTH TR("Master/BT\0 ""Esclavo/BT\0 ", "Master/Bluetooth\0 ""Esclavo/Bluetooth\0") #define TR_VTRAINER_MULTI "Master/Multi" #define LEN_VFAILSAFE "\011" -#define TR_VFAILSAFE "Not set\0 ""Guardar\0 ""Adaptar\0 ""Sin pulso""Receiver\0" +#define TR_VFAILSAFE "No\0 ""Guardar\0 ""Adaptar\0 ""Sin pulso""Receptor\0" #define LEN_VSENSORTYPES "\012" -#define TR_VSENSORTYPES "Custom\0 ""Calculated" +#define TR_VSENSORTYPES "Custom\0 ""Calculado" #define LEN_VFORMULAS "\010" -#define TR_VFORMULAS "Add\0 ""Average\0""Min\0 ""Max\0 ""Multiply""Totalize""Cell\0 ""Consumpt""Distance" +#define TR_VFORMULAS "Suma\0 ""Media\0 ""Min\0 ""Max\0 ""Multipl.""Total\0 ""Cell\0 ""Consumo\0""Distanc." #define LEN_VPREC "\004" #define TR_VPREC "0.--""0.0 ""0.00" #define LEN_VCELLINDEX "\007" -#define TR_VCELLINDEX "Lowest\0""1\0 ""2\0 ""3\0 ""4\0 ""5\0 ""6\0 ""Highest""Delta\0" +#define TR_VCELLINDEX "Menor\0 ""1\0 ""2\0 ""3\0 ""4\0 ""5\0 ""6\0 ""Mayor\0 ""Delta\0" #define LEN_GYROS "\004" #define TR_GYROS "GyrX""GyrY" @@ -437,36 +437,32 @@ #define TR_COPYINGMODEL "Copiando modelo.." #define TR_MOVINGMODEL "Mover modelo..." #define TR_LOADINGMODEL "Cargar modelo..." -#define STR_NAME "Nom." +#define STR_NAME "Nombre" #define TR_MODELNAME "Nom.Modelo" #define TR_PHASENAME "Nom.Fase " #define TR_MIXNAME "Nom.Mezcla" -#define TR_INPUTNAME "Input Name" -#if defined(PCBTARANIS) - #define TR_EXPONAME "Line Name" -#else - #define TR_EXPONAME "Nom. Expo" -#endif +#define TR_INPUTNAME TR("N.entr","Nombre entrada") +#define TR_EXPONAME TR("N.expo","Nombre expo") #define TR_BITMAP "Imagen Modelo" #define TR_TIMER TR("Reloj","Reloj ") #define TR_START "Start" #define TR_ELIMITS TR("E.Limite","Ampliar Limites") #define TR_ETRIMS TR("E.Trims","Ampliar Trims") #define TR_TRIMINC "Paso Trim" -#define TR_DISPLAY_TRIMS "Display Trims" +#define TR_DISPLAY_TRIMS "Ver Trims" #define TR_TTRACE TR("Fuente-A", INDENT "Fuente Acelerad") #define TR_TTRIM TR("Trim-A", INDENT "Trim Acelerad") -#define TR_BEEPCTR TR("Ctr Beep","Center Beep") -#define TR_USE_GLOBAL_FUNCS "Use Global Funcs" +#define TR_BEEPCTR TR("Beep ctr","Beep centro") +#define TR_USE_GLOBAL_FUNCS "Funcs glob." #if defined(PCBSKY9X) && defined(REVX) #define TR_OUTPUT_TYPE INDENT "Output" #endif -#define TR_PROTO TR(INDENT"Proto",INDENT"Protocol") +#define TR_PROTO TR(INDENT"Proto",INDENT"Protocolo") #define TR_PPMFRAME "Trama PPM" -#define TR_REFRESHRATE TR(INDENT "Refresh", INDENT "Refresh rate") -#define STR_WARN_BATTVOLTAGE TR(INDENT "Output is VBAT: ", INDENT "Warning: output level is VBAT: ") +#define TR_REFRESHRATE TR(INDENT "Refresco", INDENT "Velocidad refresco") +#define STR_WARN_BATTVOLTAGE TR(INDENT "Salida es VBAT: ", INDENT "Aviso: señal salida es VBAT: ") #define TR_MS "ms" -#define TR_FREQUENCY INDENT "Frequency" +#define TR_FREQUENCY INDENT "Frequencia" #define TR_SWITCH "Interr" #define TR_TRIMS "Trims" #define TR_FADEIN "Inicio" @@ -476,14 +472,14 @@ #define OFS_CHECKTRIMS CENTER_OFS+(9*FW) #define TR_SWASHTYPE "Tipo ciclico" #define TR_COLLECTIVE TR("Colectivo", "Fuente Colectivo") -#define TR_AILERON TR("Lateral cyc.", "Lateral cyc. source") -#define TR_ELEVATOR TR("Long. cyc.", "Long. cyc. source") +#define TR_AILERON TR("Col. lateral", "Fuente col. lateral") +#define TR_ELEVATOR TR("Col. long. ", "Fuente col. longitudinal") #define TR_SWASHRING "Ciclico" #define TR_ELEDIRECTION TR("ELE Direccion","Largo cyc. direccion") #define TR_AILDIRECTION TR("AIL Direccion","Lateral cyc. direccion") #define TR_COLDIRECTION TR("PIT Direccion","Coll. pitch direccion") #define TR_MODE "Modo" -#define TR_SUBTYPE INDENT "Subtype" +#define TR_SUBTYPE INDENT "Subtipo" #define TR_NOFREEEXPO "No expo libre!" #define TR_NOFREEMIXER "No mezcla lib!" #define TR_SOURCE "Fuente" @@ -499,14 +495,14 @@ #define TR_FLMODE TR("Modo","Modos") #define TR_MIXWARNING "Aviso" #define TR_OFF "OFF" -#define TR_ANTENNA "Antenna" -#define TR_NO_INFORMATION TR("No info", "No information") -#define TR_MULTPX "Multpx" -#define TR_DELAYDOWN "Delay Dn" -#define TR_DELAYUP "Delay Up" -#define TR_SLOWDOWN "Slow Dn" -#define TR_SLOWUP "Slow Up" -#define TR_MIXES "Mezclas" +#define TR_ANTENNA "Antena" +#define TR_NO_INFORMATION TR("Sin info", "Sin informacion") +#define TR_MULTPX "Multipx" +#define TR_DELAYDOWN "Atraso bajar" +#define TR_DELAYUP "Atraso subir" +#define TR_SLOWDOWN "Bajar lento " +#define TR_SLOWUP "Subir lento" +#define TR_MIXES "MEZCLAS" #define TR_CV "CV" #if defined(PCBNV14) #define TR_GV "GV" @@ -515,15 +511,15 @@ #endif #define TR_ACHANNEL "A\004canal" #define TR_RANGE INDENT"Alcance" -#define TR_CENTER INDENT "Center" +#define TR_CENTER INDENT "Centro" #define TR_BAR "Bar" #define TR_ALARM "Alarma" #define TR_USRDATA "UsrData" #define TR_BLADES "Palas" -#define TR_SCREEN "Pantalla" +#define TR_SCREEN "Pant. " #define TR_SOUND_LABEL "Sonido" #define TR_LENGTH "Longitud" -#define TR_BEEP_LENGTH "Beep Length" +#define TR_BEEP_LENGTH "Duracion Beep" #define TR_BEEP_PITCH "Tono" #define TR_HAPTIC_LABEL "Tactil" #define TR_STRENGTH "Intensidad" @@ -540,35 +536,35 @@ #define TR_INACTIVITYALARM "Inactividad" #define TR_MEMORYWARNING "Memoria Baja" #define TR_ALARMWARNING "Sin Sonido" -#define TR_RSSI_SHUTDOWN_ALARM TR("Rssi Shutdown", "Check Rssi on Shutdown") -#define TR_MODEL_STILL_POWERED "Model still powered" -#define TR_MODEL_SHUTDOWN "Shutdown ?" -#define TR_PRESS_ENTER_TO_CONFIRM "Press enter to confirm" -#define TR_THROTTLE_LABEL "Throttle" +#define TR_RSSI_SHUTDOWN_ALARM TR("Apagado Rssi", "Check Rssi al apagar") +#define TR_MODEL_STILL_POWERED "Modelo aun encendido" +#define TR_MODEL_SHUTDOWN "Apagar ?" +#define TR_PRESS_ENTER_TO_CONFIRM "Enter para confirmar" +#define TR_THROTTLE_LABEL "Potencia" #define TR_THROTTLEREVERSE TR("Invert_Acel", INDENT "Invertir Acel.") #define TR_MINUTEBEEP TR("Minuto", "Cada Minuto") -#define TR_BEEPCOUNTDOWN INDENT"Cuentaatras" +#define TR_BEEPCOUNTDOWN INDENT"Cta. atras" #define TR_PERSISTENT TR(INDENT"Persist.", INDENT"Persistente") #define TR_BACKLIGHT_LABEL "Luz Fondo" #define TR_BLONBRIGHTNESS "MAS Brillo" #define TR_BLOFFBRIGHTNESS "MENOS Brillo" #define TR_BLCOLOR "Color" -#define TR_SPLASHSCREEN "Ptalla.inicio" -#define TR_PWR_ON_DELAY "Pwr On delay" -#define TR_PWR_OFF_DELAY "Pwr Off delay" +#define TR_SPLASHSCREEN "Pant. inicio" +#define TR_PWR_ON_DELAY "Atraso On" +#define TR_PWR_OFF_DELAY "Atraso Off" #define TR_THROTTLE_WARNING TR("Aviso-A", INDENT "Aviso Acelerador") #define TR_SWITCHWARNING TR("Aviso-I", INDENT "Aviso Intrptor") #define TR_POTWARNINGSTATE TR(INDENT "Pot&Slid.", INDENT "Pots & sliders") -#define TR_SLIDERWARNING TR(INDENT "Slid. pos.", INDENT "Slider positions") -#define TR_POTWARNING TR("Pot Warn.", INDENT "Pot Warning") +#define TR_SLIDERWARNING TR(INDENT "Pos. slid.", INDENT "Posiciones slider") +#define TR_POTWARNING TR("Aviso pot", INDENT "Aviso pot") #define TR_TIMEZONE TR("Zona Hora", "GPS Zona Hora") -#define TR_ADJUST_RTC TR("Adjust RTC", "Adjust RTC") +#define TR_ADJUST_RTC TR("Ajustar RTC", "Ajustar RTC") #define TR_GPS "GPS" #define TR_RXCHANNELORD TR("Rx Orden canal", "Orden habitual canales") #define TR_STICKS "Sticks" #define TR_POTS "Pots" #define TR_SWITCHES "Switches" -#define TR_SWITCHES_DELAY "Switches Delay" +#define TR_SWITCHES_DELAY "Atraso switch." #define TR_SLAVE "Esclavo" #define TR_MODESRC "Modo\006% Fuente" #define TR_MULTIPLIER "Multiplicar" @@ -578,22 +574,22 @@ #define TR_BG "BG:" #define TR_CALIB_DONE "Calibration completed" #if defined(PCBHORUS) - #define TR_MENUTOSTART "Press [Enter] to start" - #define TR_SETMIDPOINT "Center sticks/pots/sliders and press [Enter]" - #define TR_MOVESTICKSPOTS "Move sticks, pots and sliders and press [Enter]" + #define TR_MENUTOSTART "Presiona [Enter] para empezar" + #define TR_SETMIDPOINT "Centra sticks/pots/sliders y presiona [Enter]" + #define TR_MOVESTICKSPOTS "Mueve sticks, pots and sliders y presiona [Enter]" #else #define TR_MENUTOSTART CENTER "\010" TR_ENTER " EMPEZAR" #define TR_SETMIDPOINT TR(CENTER "\007STICKS AL CENTRO",CENTER "\010STICKS AL CENTRO") #define TR_MOVESTICKSPOTS CENTER "\006MOVER STICKS/POTS" #endif -#define TR_RXBATT "Rx Batt:" +#define TR_RXBATT "Rx Bat.:" #define TR_TXnRX "Tx:\0Rx:" #define OFS_RX 4 #define TR_ACCEL "Acc:" #define TR_NODATA CENTER "SIN DATOS" #define TR_US "us" -#define TR_TMIXMAXMS "Tmix max" -#define TR_FREE_STACK "Free stack" +#define TR_TMIXMAXMS "Tmix max" +#define TR_FREE_STACK "Stack libre" #define TR_MENUTORESET TR_ENTER "Resetear" #define TR_PPM_TRAINER "TR" #define TR_CH "CH" @@ -601,19 +597,19 @@ #define TR_FM "FM" #define TR_MIX "MIX" #define TR_EEPROMLOWMEM "EEPROM mem.baja" -#define TR_PRESS_ANY_KEY_TO_SKIP "Pulsar tecla omitir" +#define TR_PRESS_ANY_KEY_TO_SKIP "Pulsar tecla para omitir" #define TR_THROTTLE_NOT_IDLE "Aceler. Activado" #define TR_ALARMSDISABLED "Alarmas Desact." #define TR_PRESSANYKEY TR("\010Pulsa una Tecla", "Pulsa una Tecla") -#define TR_BADEEPROMDATA "Datos EEprom mal" -#define TR_BAD_RADIO_DATA "Bad Radio Data" +#define TR_BADEEPROMDATA "Error datos EEprom" +#define TR_BAD_RADIO_DATA "Error datos radio" #define TR_EEPROMFORMATTING "Formateo EEPROM" -#define TR_STORAGE_FORMAT "Storage Preparation" +#define TR_STORAGE_FORMAT "Preparacion alamacenamiento" #define TR_EEPROMOVERFLOW "Desborde EEPROM" #define TR_RADIO_SETUP "CONFIGURACION" #define TR_MENUDATEANDTIME "FECHA Y HORA" -#define TR_MENUTRAINER "APRENDIZ" -#define TR_MENUSPECIALFUNCS "GLOBAL FUNCTIONS" +#define TR_MENUTRAINER "ENTRENADOR" +#define TR_MENUSPECIALFUNCS "FUNCIONES GLOBALES" #define TR_MENUVERSION "VERSION" #define TR_MENU_RADIO_SWITCHES TR("INTERUPTS", "TEST INTERUP.") #define TR_MENU_RADIO_ANALOGS TR("ANAS", "ENTRADAS ANALOG") @@ -623,13 +619,13 @@ #else #define TR_TRIMS2OFFSETS "\006Trims => Offsets" #endif -#define TR_CHANNELS2FAILSAFE "Channels=>Failsafe" -#define TR_CHANNEL2FAILSAFE "Channel=>Failsafe" -#define TR_MENUMODELSEL TR("MODELSEL", "SELECCION MODELO") -#define TR_MENU_MODEL_SETUP TR("CONF.", "CONF.MODELO") -#define TR_MENUFLIGHTMODE "MODO VUELO" -#define TR_MENUFLIGHTMODES "MODOS VUELO" -#define TR_MENUHELISETUP "CONF. HELI" +#define TR_CHANNELS2FAILSAFE "Canales=>Failsafe" +#define TR_CHANNEL2FAILSAFE "Canal=>Failsafe" +#define TR_MENUMODELSEL TR("MODELOS", "SELECCION MODELO") +#define TR_MENU_MODEL_SETUP "CONFIG. MODELO" +#define TR_MENUFLIGHTMODE "MODO DE VUELO" +#define TR_MENUFLIGHTMODES "MODOS DE VUELO" +#define TR_MENUHELISETUP "CONFIGURACION HELI" // Alignment @@ -644,146 +640,146 @@ #define TR_MENUCURVES "CURVAS" #define TR_MENUCURVE "CURVA" -#define TR_MENULOGICALSWITCH "AJTE.INTERUP." -#define TR_MENULOGICALSWITCHES "AJTE.INTERUPTS." -#define TR_MENUCUSTOMFUNC "AJTE. FUNCIONES" +#define TR_MENULOGICALSWITCH "INTERRUP. LOGICO" +#define TR_MENULOGICALSWITCHES "INTERRUP. LOGICOS" +#define TR_MENUCUSTOMFUNC "FUNCIONES" #define TR_MENUCUSTOMSCRIPTS "CUSTOM SCRIPTS" #define TR_MENUTELEMETRY "TELEMETRIA" #define TR_MENUTEMPLATES "PLANTILLAS" -#define TR_MENUSTAT "STATS" +#define TR_MENUSTAT "ESTADISTICAS" #define TR_MENUDEBUG "DEBUG" -#define TR_MONITOR_CHANNELS1 "CHANNELS MONITOR 1/8" -#define TR_MONITOR_CHANNELS2 "CHANNELS MONITOR 9/16" -#define TR_MONITOR_SWITCHES "LOGICAL SWITCHES MONITOR" -#define TR_MONITOR_CHANNELS3 "CHANNELS MONITOR 17/24" -#define TR_MONITOR_CHANNELS4 "CHANNELS MONITOR 25/32" -#define TR_MONITOR_OUTPUT_DESC "Outputs" -#define TR_MONITOR_MIXER_DESC "Mixers" -#define TR_RECEIVER_NUM TR("RxNum", "Receptor No.") -#define TR_RECEIVER "Receiver" -#define TR_MULTI_RFTUNE TR("Freq tune", "RF Freq. fine tune") -#define TR_MULTI_TELEMETRY "Telemetry" -#define TR_MULTI_VIDFREQ TR("Vid. freq.", "Video frequency") -#define TR_RF_POWER "RF Power" -#define TR_MULTI_FIXEDID TR("FixedID", "Fixed ID") -#define TR_MULTI_OPTION TR("Option", "Option value") -#define TR_MULTI_AUTOBIND TR(INDENT "Bind Ch.",INDENT "Bind on channel") -#define TR_DISABLE_CH_MAP TR("No Ch. map", "Disable Ch. map") -#define TR_DISABLE_TELEM TR("No Telem", "Disable Telemetry") -#define TR_MULTI_DSM_AUTODTECT TR(INDENT "Autodetect", INDENT "Autodetect format") -#define TR_MULTI_LOWPOWER TR(INDENT "Low power", INDENT "Low power mode") +#define TR_MONITOR_CHANNELS1 "MONITOR CANALES 1/8" +#define TR_MONITOR_CHANNELS2 "MONITOR CANALES 9/16" +#define TR_MONITOR_SWITCHES "MONITOR INTERRP LOGICOS" +#define TR_MONITOR_CHANNELS3 "MONITOR CANALES 17/24" +#define TR_MONITOR_CHANNELS4 "MONITOR CANALES 25/32" +#define TR_MONITOR_OUTPUT_DESC "SALIDAS" +#define TR_MONITOR_MIXER_DESC "MEZCLAS" +#define TR_RECEIVER_NUM TR("RxNum", "Receptor No.") +#define TR_RECEIVER "Receptor" +#define TR_MULTI_RFTUNE TR("Sint.freq.", "RF Freq. sint.fina") +#define TR_MULTI_TELEMETRY "Telemetria" +#define TR_MULTI_VIDFREQ TR("Freq. Vid.", "Frecuancia Video") +#define TR_RF_POWER "RF Power" +#define TR_MULTI_FIXEDID TR("ID Fijo", "ID Fijo") +#define TR_MULTI_OPTION TR("Opcion", "Valor opcion") +#define TR_MULTI_AUTOBIND TR(INDENT "Emp Cnl",INDENT "Emparejar en canal") +#define TR_DISABLE_CH_MAP TR("No ch map", "Desactivar mapa cnl") +#define TR_DISABLE_TELEM TR("No Telem", "Desactivar Telemetria") +#define TR_MULTI_DSM_AUTODTECT TR(INDENT "Autodetect", INDENT "Autodetectar formato") +#define TR_MULTI_LOWPOWER TR(INDENT "Baja potencia", INDENT "Modo de baja potencia") #define TR_MODULE_TELEMETRY TR(INDENT "S.Port", INDENT "S.Port link") -#define TR_MODULE_TELEM_ON TR("ON", "Enabled") -#define TR_DISABLE_INTERNAL TR("Disable int. RF", "Disable internal RF") -#define TR_MODULE_NO_SERIAL_MODE TR("!serial mode", "Not in serial mode") -#define TR_MODULE_NO_INPUT TR("No input", "No serial input") -#define TR_MODULE_NO_TELEMETRY TR3( "No telmetry", "No MULTI_TELEMETRY", "No telemetry (enable MULTI_TELEMETRY)") -#define TR_MODULE_WAITFORBIND "Bind to load protocol" -#define TR_MODULE_BINDING "Binding" -#define TR_MODULE_UPGRADE_ALERT TR3("Upg. needed", "Module upgrade required", "Module\nUpgrade required") -#define TR_MODULE_UPGRADE TR("Upg. advised", "Module update recommended") -#define TR_REBIND "Rebinding required" -#define TR_REG_OK "Registration ok" -#define TR_BIND_OK "Bind successful" -#define TR_BINDING_CH1_8_TELEM_ON "Ch1-8 Telem ON" -#define TR_BINDING_CH1_8_TELEM_OFF "Ch1-8 Telem OFF" -#define TR_BINDING_CH9_16_TELEM_ON "Ch9-16 Telem ON" -#define TR_BINDING_CH9_16_TELEM_OFF "Ch9-16 Telem OFF" -#define TR_PROTOCOL_INVALID TR("Prot. invalid", "Protocol invalid") -#define TR_MODULE_STATUS TR(INDENT "Status", INDENT "Module Status") -#define TR_MODULE_SYNC TR(INDENT "Sync", INDENT "Proto Sync Status") -#define TR_MULTI_SERVOFREQ TR("Servo rate", "Servo update rate") -#define TR_MULTI_MAX_THROW TR("Max. Throw", "Enable max. throw") -#define TR_MULTI_RFCHAN TR("RF Channel", "Select RF channel") -#define TR_SYNCMENU "Sync " TR_ENTER -#define TR_LIMIT INDENT"Limite" -#define TR_MINRSSI "Min Rssi" +#define TR_MODULE_TELEM_ON TR("ON", "Activado") +#define TR_DISABLE_INTERNAL TR("Desac.RF int", "Desactivar modulo interno RF") +#define TR_MODULE_NO_SERIAL_MODE TR("No modo serie", "No en modo serie") +#define TR_MODULE_NO_INPUT TR("Sin señal", "Sin señal") +#define TR_MODULE_NO_TELEMETRY TR3( "No telemetria", "No MULTI_TELEMETRY", "No telemetria (activa MULTI_TELEMETRY)") +#define TR_MODULE_WAITFORBIND "Emparejar con protocolo" +#define TR_MODULE_BINDING "Emparejando" +#define TR_MODULE_UPGRADE_ALERT TR3("Actualizar", "Actualizar modulo", "Actualizar\nmodulo") +#define TR_MODULE_UPGRADE TR("Act recom", "Actualizar modulo recomendado") +#define TR_REBIND "Reemparejar " +#define TR_REG_OK "Registro ok" +#define TR_BIND_OK "Emparejado ok" +#define TR_BINDING_CH1_8_TELEM_ON "Ch1-8 Telem ON" +#define TR_BINDING_CH1_8_TELEM_OFF "Ch1-8 Telem OFF" +#define TR_BINDING_CH9_16_TELEM_ON "Ch9-16 Telem ON" +#define TR_BINDING_CH9_16_TELEM_OFF "Ch9-16 Telem OFF" +#define TR_PROTOCOL_INVALID TR("Prot. invalido", "Protocolo invalido") +#define TR_MODULE_STATUS TR(INDENT "EStado", INDENT "Estado modulo") +#define TR_MODULE_SYNC TR(INDENT "Sync", INDENT "Estado proto sync") +#define TR_MULTI_SERVOFREQ TR("V ref serv", "Vel. refr. servo") +#define TR_MULTI_MAX_THROW TR("Max. Throw", "Activar max. throw") +#define TR_MULTI_RFCHAN TR("Canal RF", "Selecciona canal RF") +#define TR_SYNCMENU "Sync " TR_ENTER +#define TR_LIMIT INDENT"Limite" +#define TR_MINRSSI "Min Rssi" #define TR_FLYSKY_TELEMETRY TR("FlySky RSSI #", "Use FlySky RSSI value without rescalling") #define TR_LATITUDE "Latitud" #define TR_LONGITUDE "Longitud" -#define TR_GPS_COORDS_FORMAT TR("GPS Coords", "GPS formato coordenadas") -#define TR_VARIO TR("Vario", "Variometro") -#define TR_PITCH_AT_ZERO "Pitch at Zero" -#define TR_PITCH_AT_MAX "Pitch at Max" -#define TR_REPEAT_AT_ZERO "Repeat at Zero" -#define TR_SHUTDOWN "APAGANDO" -#define TR_SAVE_MODEL "Saving model settings" -#define TR_BATT_CALIB "Calib.bateria" -#define TR_CURRENT_CALIB "Calib. actual" -#define TR_VOLTAGE INDENT"Voltaje" -#define TR_CURRENT INDENT"Actual" -#define TR_SELECT_MODEL "Selec Modelo" -#define TR_CREATE_CATEGORY "Create Category" -#define TR_RENAME_CATEGORY "Rename Category" -#define TR_DELETE_CATEGORY "Delete Category" -#define TR_CREATE_MODEL "Crear Modelo" -#define TR_DUPLICATE_MODEL "Duplicate Model" -#define TR_COPY_MODEL "Copiar Modelo" -#define TR_MOVE_MODEL "Mover Modelo" -#define TR_BACKUP_MODEL "Copia Sgdad Mod." -#define TR_DELETE_MODEL "Borrar Modelo" -#define TR_RESTORE_MODEL "Restaurar Modelo" -#define TR_DELETE_ERROR "Delete error" -#define TR_CAT_NOT_EMPTY "Category is not empty" -#define TR_SDCARD_ERROR "SDCARD Error" +#define TR_GPS_COORDS_FORMAT TR("Coords GPS", "GPS formato coordenadas") +#define TR_VARIO TR("Vario", "Variometro") +#define TR_PITCH_AT_ZERO "Pitch en cero" +#define TR_PITCH_AT_MAX "Pitch en max" +#define TR_REPEAT_AT_ZERO "Repet. en cero" +#define TR_SHUTDOWN "APAGANDO" +#define TR_SAVE_MODEL "Grabando modelo" +#define TR_BATT_CALIB "Calib.bat." +#define TR_CURRENT_CALIB "Calib. actual" +#define TR_VOLTAGE INDENT"Voltaje" +#define TR_CURRENT INDENT"Actual" +#define TR_SELECT_MODEL "Selec Modelo" +#define TR_CREATE_CATEGORY "Crear categoria" +#define TR_RENAME_CATEGORY "Renombrar categoria" +#define TR_DELETE_CATEGORY "Borrar categoria" +#define TR_CREATE_MODEL "Crear modelo" +#define TR_DUPLICATE_MODEL "Duplicar modelo" +#define TR_COPY_MODEL "Copiar modelo" +#define TR_MOVE_MODEL "Mover modelo" +#define TR_BACKUP_MODEL "Copia sgdad mod." +#define TR_DELETE_MODEL "Borrar modelo" +#define TR_RESTORE_MODEL "Restaurar modelo" +#define TR_DELETE_ERROR "Error de borrado" +#define TR_CAT_NOT_EMPTY "Categoria no esta vacia" +#define TR_SDCARD_ERROR "Error SDCARD" #define TR_SDCARD "SD Card" #define TR_NO_FILES_ON_SD "No files on SD!" -#define TR_NO_SDCARD "No SDCARD" -#define TR_WAITING_FOR_RX "Waiting for RX..." -#define TR_WAITING_FOR_TX "Waiting for TX..." -#define TR_NO_TOOLS "No tools available" +#define TR_NO_SDCARD "No SDCARD" +#define TR_WAITING_FOR_RX "Esperando a RX..." +#define TR_WAITING_FOR_TX "Esperando a TX..." +#define TR_NO_TOOLS "No hay utils" #define TR_NORMAL "Normal" -#define TR_NOT_INVERTED "Not inv" -#define TR_NOT_CONNECTED "!Connected" -#define TR_CONNECTED "Connected" +#define TR_NOT_INVERTED "No inv" +#define TR_NOT_CONNECTED "!Conectado" +#define TR_CONNECTED "Conectado" #define TR_FLEX_915 "Flex 915MHz" #define TR_FLEX_868 "Flex 868MHz" -#define TR_16CH_WITHOUT_TELEMETRY TR("16CH without telem.", "16CH without telemetry") -#define TR_16CH_WITH_TELEMETRY TR("16CH with telem.", "16CH with telemetry") -#define TR_8CH_WITH_TELEMETRY TR("8CH with telem.", "8CH with telemetry") -#define TR_EXT_ANTENNA "Ext. antenna" +#define TR_16CH_WITHOUT_TELEMETRY TR("16CH sin telem.", "16CH sin telemetria") +#define TR_16CH_WITH_TELEMETRY TR("16CH con telem.", "16CH con telemetria") +#define TR_8CH_WITH_TELEMETRY TR("8CH con telem.", "8CH con telemetria") +#define TR_EXT_ANTENNA "Antena ext." #define TR_PIN "Pin" -#define TR_UPDATE_RX_OPTIONS "Update RX options?" -#define TR_UPDATE_TX_OPTIONS "Update TX options?" -#define TR_MODULES_RX_VERSION "Modules / RX version" -#define TR_MENU_MODULES_RX_VERSION "MODULES / RX VERSION" -#define TR_MENU_FIRM_OPTIONS "FIRMWARE OPTIONS" +#define TR_UPDATE_RX_OPTIONS "Actualizar opciones RX?" +#define TR_UPDATE_TX_OPTIONS "Actualizar opciones TX?" +#define TR_MODULES_RX_VERSION "Modulos / version RX" +#define TR_MENU_MODULES_RX_VERSION "MODULOS / VERSION RX" +#define TR_MENU_FIRM_OPTIONS "OPCIONES FIRMWARE" #define TR_GYRO "Gyro" #define TR_STICKS_POTS_SLIDERS "Sticks/Pots/Sliders" #define TR_PWM_STICKS_POTS_SLIDERS "PWM Sticks/Pots/Sliders" -#define TR_RF_PROTOCOL "RF Protocol" -#define TR_MODULE_OPTIONS "Module options" -#define TR_POWER "Power" -#define TR_NO_TX_OPTIONS "No TX options" -#define TR_RTC_BATT "RTC Batt" -#define TR_POWER_METER_EXT "Power Meter (EXT)" -#define TR_POWER_METER_INT "Power Meter (INT)" -#define TR_SPECTRUM_ANALYSER_EXT "Spectrum (EXT)" -#define TR_SPECTRUM_ANALYSER_INT "Spectrum (INT)" -#define TR_SDCARD_FULL "SD Card Full" -#define TR_NEEDS_FILE "NEEDS FILE" +#define TR_RF_PROTOCOL "Protocolo RF" +#define TR_MODULE_OPTIONS "Opciones modulo" +#define TR_POWER "Potencia" +#define TR_NO_TX_OPTIONS "Sin pciones TX" +#define TR_RTC_BATT "Bat. RTC" +#define TR_POWER_METER_EXT "Medidor potencia(EXT)" +#define TR_POWER_METER_INT "Medidor potencia(INT)" +#define TR_SPECTRUM_ANALYSER_EXT "Spectro (EXT)" +#define TR_SPECTRUM_ANALYSER_INT "Spectro (INT)" +#define TR_SDCARD_FULL "SD Card llena" +#define TR_NEEDS_FILE "NECESITA ARCHIVO" #define TR_EXT_MULTI_SPEC "opentx-inv" #define TR_INT_MULTI_SPEC "stm-opentx-noinv" #define TR_INCOMPATIBLE "Incompatible" #define TR_WARNING "AVISO" #define TR_EEPROMWARN "EEPROM" -#define TR_STORAGE_WARNING "STORAGE" -#define TR_EEPROM_CONVERTING "EEPROM Converting" +#define TR_STORAGE_WARNING "ALMAC." +#define TR_EEPROM_CONVERTING "Convirtiendo EEPROM" #define TR_THROTTLE_UPPERCASE "ACELERADOR" #define TR_ALARMSWARN "ALARMAS" #define TR_SWITCHWARN "INTERPTOR" #define TR_FAILSAFEWARN "FAILSAFE" #define TR_TEST_WARNING TR("TESTING", "TEST BUILD") -#define TR_TEST_NOTSAFE "Use for tests only" -#define TR_WRONG_SDCARDVERSION TR("Expected ver: ","Expected version: ") -#define TR_WARN_RTC_BATTERY_LOW "RTC Battery low" -#define TR_WARN_MULTI_LOWPOWER "Low power mode" -#define TR_BATTERY "BATTERY" -#define TR_WRONG_PCBREV "Wrong PCB detected" -#define TR_EMERGENCY_MODE "EMERGENCY MODE" -#define TR_PCBREV_ERROR "PCB error" -#define TR_NO_FAILSAFE "Failsafe not set" -#define TR_KEYSTUCK "Key stuck" +#define TR_TEST_NOTSAFE "Usar solo para test" +#define TR_WRONG_SDCARDVERSION TR("Ver esperada: ","Version esperada: ") +#define TR_WARN_RTC_BATTERY_LOW "Bateria RTC baja" +#define TR_WARN_MULTI_LOWPOWER "Modo baja potencia" +#define TR_BATTERY "BATERiA" +#define TR_WRONG_PCBREV "Placa PCB erronea" +#define TR_EMERGENCY_MODE "MODO EMERGENCIA" +#define TR_PCBREV_ERROR "Error PCB" +#define TR_NO_FAILSAFE "Failsafe no fijado" +#define TR_KEYSTUCK "Tecla atascada" #define TR_INVERT_THR TR("Invertir Acel?", "Invertir Acel.?") #define TR_VOLUME "Volumen" #define TR_LCD "LCD" @@ -803,20 +799,20 @@ #define TR_SD_CARD "SD CARD" #define TR_SDHC_CARD "SD-HC CARD" #define TR_NO_SOUNDS_ON_SD "Sin sonidos en SD" -#define TR_NO_MODELS_ON_SD "Sin Modelos en SD" +#define TR_NO_MODELS_ON_SD "Sin modelos en SD" #define TR_NO_BITMAPS_ON_SD "Sin imagenes en SD" -#define TR_NO_SCRIPTS_ON_SD "No Scripts on SD" +#define TR_NO_SCRIPTS_ON_SD "No scripts en SD" #define TR_SCRIPT_SYNTAX_ERROR "Script syntax error" #define TR_SCRIPT_PANIC "Script panic" #define TR_SCRIPT_KILLED "Script killed" -#define TR_SCRIPT_ERROR "Unknown error" +#define TR_SCRIPT_ERROR "Error desconocido" #define TR_PLAY_FILE "Play" #define TR_DELETE_FILE "Borrar" #define TR_COPY_FILE "Copiar" #define TR_RENAME_FILE "Renombrar" -#define TR_ASSIGN_BITMAP "Asignar Imagen" -#define TR_ASSIGN_SPLASH "Splash screen" -#define TR_EXECUTE_FILE "Execute" +#define TR_ASSIGN_BITMAP "Asignar imagen" +#define TR_ASSIGN_SPLASH "Pant. bienvenida" +#define TR_EXECUTE_FILE "Ejecutar" #define TR_REMOVED "Borrado" #define TR_SD_INFO "Informacion" #define TR_SD_FORMAT "Formatear" @@ -828,17 +824,17 @@ #define TR_MAXBAUDRATE "Max bauds" #define TR_BLUETOOTH "Bluetooth" -#define TR_BLUETOOTH_DISC "Discover" +#define TR_BLUETOOTH_DISC "Buscar" #define TR_BLUETOOTH_INIT "Init" -#define TR_BLUETOOTH_DIST_ADDR "Dist addr" -#define TR_BLUETOOTH_LOCAL_ADDR "Local addr" -#define TR_BLUETOOTH_PIN_CODE "PIN code" -#define TR_BAUDRATE "BT Baudrate" +#define TR_BLUETOOTH_DIST_ADDR "Dir. remota" +#define TR_BLUETOOTH_LOCAL_ADDR "Dir. local" +#define TR_BLUETOOTH_PIN_CODE "Codigo PIN" +#define TR_BAUDRATE "Velocidad BT" #define LEN_BLUETOOTH_MODES "\011" #if defined(PCBX9E) -#define TR_BLUETOOTH_MODES "---\0 ""Enabled\0 " +#define TR_BLUETOOTH_MODES "---\0 ""Activo\0 " #else -#define TR_BLUETOOTH_MODES "---\0 ""Telemetry""Trainer\0" +#define TR_BLUETOOTH_MODES "---\0 ""Telemetria""Entrenador" #endif #define TR_SD_INFO_TITLE "SD INFO" #define TR_SD_TYPE "Tipo:" @@ -846,69 +842,71 @@ #define TR_SD_SECTORS "Sectores:" #define TR_SD_SIZE "Tamaño:" #define TR_TYPE INDENT "Tipo" -#define TR_GLOBAL_VARS "Global Variables" -#define TR_GVARS "GLOBAL V." -#define TR_GLOBAL_VAR "Global Variable" -#define TR_MENU_GLOBAL_VARS "GLOBAL VARIABLES" -#define TR_OWN "Propio" -#define TR_DATE "Fecha" -#define TR_MONTHS { "Jan", "Fev", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" } -#define TR_ROTARY_ENCODER "R.E." -#define TR_CHANNELS_MONITOR "MONITOR CANALES" -#define TR_MIXERS_MONITOR "MIXERS MONITOR" -#define TR_PATH_TOO_LONG "Path too long" -#define TR_VIEW_TEXT "View text" -#define TR_FLASH_BOOTLOADER "Flash bootloader" -#define TR_FLASH_EXTERNAL_DEVICE "Flash External Device" -#define TR_FLASH_RECEIVER_OTA "Flash receiver OTA" -#define TR_FLASH_BLUETOOTH_MODULE TR("Flash BT module", "Flash Bluetooth module") -#define TR_FLASH_POWER_MANAGEMENT_UNIT "Flash pwr mngt unit" -#define TR_CURRENT_VERSION TR("Current vers. ", "Current version: ") -#define TR_FLASH_INTERNAL_MODULE "Flash Internal Module" -#define TR_FLASH_INTERNAL_MULTI TR("Flash Int. Multi", "Flash Internal Multi") -#define TR_FLASH_EXTERNAL_MODULE "Flash external module" -#define TR_FLASH_EXTERNAL_MULTI TR("Flash Ext. Multi", "Flash External Multi") -#define TR_FIRMWARE_UPDATE_ERROR TR("FW update Error","Firmware update error") -#define TR_FIRMWARE_UPDATE_SUCCESS "Flash successful" -#define TR_WRITING "Writing..." -#define TR_CONFIRM_FORMAT "Confirm Format?" -#define TR_INTERNALRF "Interna RF" -#define TR_INTERNAL_MODULE TR("Int. module","Internal module") -#define TR_EXTERNAL_MODULE TR("Ext. module","External module") -#define TR_OPENTX_UPGRADE_REQUIRED "OpenTX upgrade required" -#define TR_TELEMETRY_DISABLED "Telem. disabled" -#define TR_MORE_OPTIONS_AVAILABLE "More options available" -#define TR_NO_MODULE_INFORMATION "No module information" -#define TR_EXTERNALRF "Externa RF" -#define TR_FAILSAFE INDENT"Modo sgdad." -#define TR_FAILSAFESET "AJUSTES SGDAD." +#define TR_GLOBAL_VARS "Variables globales" +#define TR_GVARS "V. GLOBAL" +#define TR_GLOBAL_VAR "Variable global" +#define TR_MENU_GLOBAL_VARS "VARIABLES GLOBALES" +#define TR_OWN "Propio" +#define TR_DATE "Fecha" +#define TR_MONTHS { "Ene", "Feb", "Mar", "Abr", "May", "Jun", "Jul", "Ago", "Sep", "Oct", "Nov", "Dic" } +#define TR_ROTARY_ENCODER "R.E." +#define TR_CHANNELS_MONITOR "MONITOR CANALES" +#define TR_MIXERS_MONITOR "MONITOR MEZCLAS" +#define TR_PATH_TOO_LONG "Path muy largo" +#define TR_VIEW_TEXT "Ver texto" +#define TR_FLASH_BOOTLOADER "Flash bootloader" +#define TR_FLASH_EXTERNAL_DEVICE "Flash disp. externo" +#define TR_FLASH_RECEIVER_OTA "Flash RX OTA" +#define TR_FLASH_RECEIVER_OTA_BY_EXTERNAL "Flash RX by ext. OTA" +#define TR_FLASH_RECEIVER_OTA_BY_INTERNAL "Flash RX by int. OTA" +#define TR_FLASH_BLUETOOTH_MODULE TR("Flash modulo BT", "Flash modulo bluetooth") +#define TR_FLASH_POWER_MANAGEMENT_UNIT "Flash unid. pwr mngt" +#define TR_CURRENT_VERSION TR("Vers. actual", "Version actual: ") +#define TR_FLASH_INTERNAL_MODULE TR("Flash modulo int", "Flash modulo interno") +#define TR_FLASH_INTERNAL_MULTI TR("Flash Multi int", "Flash Multi interno") +#define TR_FLASH_EXTERNAL_MODULE TR("Flash modulo ext", "Flash modulo externo") +#define TR_FLASH_EXTERNAL_MULTI TR("Flash Multi ext", "Flash Multi externo") +#define TR_FIRMWARE_UPDATE_ERROR TR("Error act FW","Error actualiz. firmware") +#define TR_FIRMWARE_UPDATE_SUCCESS "Flash ok" +#define TR_WRITING "Escribiendo..." +#define TR_CONFIRM_FORMAT "Confirmar formato?" +#define TR_INTERNALRF "RF interna" +#define TR_INTERNAL_MODULE TR("Modulo int","Modulo interno") +#define TR_EXTERNAL_MODULE TR("Modulo ext","Modulo externo") +#define TR_OPENTX_UPGRADE_REQUIRED "Actualiz. OpenTX requerida" +#define TR_TELEMETRY_DISABLED "Telem. inactiva" +#define TR_MORE_OPTIONS_AVAILABLE "Mas opciones disp." +#define TR_NO_MODULE_INFORMATION "Sin informacion modulo" +#define TR_EXTERNALRF "RF externa" +#define TR_FAILSAFE INDENT"Modo sgdad." +#define TR_FAILSAFESET "AJUSTES SGDAD." #define TR_REG_ID "Reg. ID" -#define TR_OWNER_ID "Owner ID" +#define TR_OWNER_ID "Pers. ID" #define TR_PINMAPSET "PINMAP" -#define TR_HOLD "Hold" +#define TR_HOLD "Hold" #define TR_HOLD_UPPERCASE "HOLD" -#define TR_NONE "None" -#define TR_NONE_UPPERCASE "NONE" -#define TR_MENUSENSOR "SENSOR" -#define TR_POWERMETER_PEAK "Peak" -#define TR_POWERMETER_POWER "Power" +#define TR_NONE "Nada" +#define TR_NONE_UPPERCASE "NADA" +#define TR_MENUSENSOR "SENSOR" +#define TR_POWERMETER_PEAK "Pico" +#define TR_POWERMETER_POWER "Potencia" #define TR_POWERMETER_ATTN "Attn" -#define TR_POWERMETER_FREQ "Freq." -#define TR_MENUTOOLS "TOOLS" -#define TR_TURN_OFF_RECEIVER "Turn off receiver" -#define TR_STOPPING "Stopping..." -#define TR_MENU_SPECTRUM_ANALYSER "SPECTRUM ANALYSER" -#define TR_MENU_POWER_METER "POWER METER" -#define TR_SENSOR "SENSOR" -#define TR_COUNTRY_CODE "Codigo Pais" -#define TR_USBMODE "USB Mode" -#define TR_JACK_MODE "Jack Mode" -#define TR_VOICE_LANGUAGE "Idioma voces" -#define TR_UNITS_SYSTEM "Unidades" -#define TR_EDIT "Editar" -#define TR_INSERT_BEFORE "Insertar antes" -#define TR_INSERT_AFTER "Insertar despues" -#define TR_COPY "Copiar" +#define TR_POWERMETER_FREQ "Frec." +#define TR_MENUTOOLS "UTILS" +#define TR_TURN_OFF_RECEIVER "Apaga el receptor" +#define TR_STOPPING "Parando..." +#define TR_MENU_SPECTRUM_ANALYSER "ANALIZADOR DE ESPECTRO" +#define TR_MENU_POWER_METER "MEDIDOR POTENCIA" +#define TR_SENSOR "SENSOR" +#define TR_COUNTRY_CODE "Codigo Pais" +#define TR_USBMODE "Modo USB" +#define TR_JACK_MODE "Modo Jack" +#define TR_VOICE_LANGUAGE "Idioma voces" +#define TR_UNITS_SYSTEM "Unidades" +#define TR_EDIT "Editar" +#define TR_INSERT_BEFORE "Insertar antes" +#define TR_INSERT_AFTER "Insertar despues" +#define TR_COPY "Copiar" #define TR_MOVE "Mover" #define TR_PASTE "Pegar" #define TR_PASTE_AFTER "Paste After" @@ -916,115 +914,116 @@ #define TR_DELETE "Borrar" #define TR_INSERT "Insertar" #define TR_RESET_FLIGHT "Reset Vuelo" -#define TR_RESET_TIMER1 "Reset Reloj1" -#define TR_RESET_TIMER2 "Reset Reloj2" -#define TR_RESET_TIMER3 "Reset Reloj3" +#define TR_RESET_TIMER1 "Reset Reloj 1" +#define TR_RESET_TIMER2 "Reset Reloj 2" +#define TR_RESET_TIMER3 "Reset Reloj 3" #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 Storage (SD)" -#define TR_USB_SERIAL "USB Serial (Debug)" -#define TR_SETUP_SCREENS "Setup screens" -#define TR_MONITOR_SCREENS "Monitors" +#define TR_USB_JOYSTICK "Joystick USB (HID)" +#define TR_USB_MASS_STORAGE "Almaz. USB (SD)" +#define TR_USB_SERIAL "Serie USB (Debug)" +#define TR_SETUP_SCREENS "Pantallas config" +#define TR_MONITOR_SCREENS "Monitores" #define TR_AND_SWITCH "AND Inter." #define TR_SF "CF" #define TR_GF "GF" #define TR_SPEAKER INDENT"Altavoz" #define TR_BUZZER INDENT"Zumbador" #define TR_BYTES "bytes" -#define TR_MODULE_BIND "[Enlace]" -#define TR_POWERMETER_ATTN_NEEDED "Attenuator needed" -#define TR_PXX2_SELECT_RX "Select RX..." -#define TR_PXX2_DEFAULT "" -#define TR_BT_SELECT_DEVICE "Select device..." -#define TR_DISCOVER "Discover" +#define TR_MODULE_BIND "[Enl.]" +#define TR_POWERMETER_ATTN_NEEDED "Necesita atenuador" +#define TR_PXX2_SELECT_RX "Selecciona RX..." +#define TR_PXX2_DEFAULT "" +#define TR_BT_SELECT_DEVICE "Selecciona dispositivo..." +#define TR_DISCOVER "Buscar" #define TR_BUTTON_INIT BUTTON("Init") -#define TR_WAITING "Waiting..." -#define TR_RECEIVER_DELETE "Delete receiver?" -#define TR_RECEIVER_RESET "Reset receiver?" -#define TR_SHARE "Share" -#define TR_BIND "Bind" -#define TR_REGISTER TR("Reg", "Register") -#define TR_MODULE_RANGE "[Limites]" -#define TR_RECEIVER_OPTIONS TR("REC. OPTIONS", "RECEIVER OPTIONS") -#define TR_DEL_BUTTON BUTTON(TR("Del", "Delete")) +#define TR_WAITING "Espera..." +#define TR_RECEIVER_DELETE "Borrar receptor?" +#define TR_RECEIVER_RESET "Reset receptor?" +#define TR_SHARE "Compartido" +#define TR_BIND "Emparejar" +#define TR_REGISTER TR("Reg", "Registrar") +#define TR_MODULE_RANGE "[Lim.]" +#define TR_RECEIVER_OPTIONS TR("REC. OPTIONS", "OPCIONES RECEPTOR") +#define TR_DEL_BUTTON BUTTON(TR("Del", "Borrar")) #define TR_RESET_BTN "[Reset]" #define TR_DEBUG "Debug" #define TR_KEYS_BTN BUTTON(TR("SW","Switches")) #define TR_ANALOGS_BTN BUTTON(TR("Analog","Analogs")) -#define TR_CALIBRATION "Calibration" +#define TR_CALIBRATION "Calibracion" #define TR_SET "[Ajuste]" -#define TR_TRAINER "Aprendiz" +#define TR_TRAINER "Entrena." #define TR_CHANS "Chans" #define TR_ANTENNAPROBLEM CENTER "¡Problema antena TX!" #define TR_MODELIDUSED TR("ID en uso", "ID modelo en uso") #define TR_MODULE "Modulo" -#define TR_RX_NAME "Rx Name" -#define TR_TELEMETRY_TYPE TR("Type", "Telemetry Type") -#define TR_TELEMETRY_SENSORS "Sensors" -#define TR_VALUE "Value" +#define TR_RX_NAME "Nombre Rx" +#define TR_TELEMETRY_TYPE TR("Tipo", "Tipo telemetria") +#define TR_TELEMETRY_SENSORS "Sensores" +#define TR_VALUE "Valor" #define TR_REPEAT "Repeat" #define TR_ENABLE "Enable" -#define TR_TOPLCDTIMER "Top LCD Timer" -#define TR_UNIT "Unit" -#define TR_TELEMETRY_NEWSENSOR INDENT "Add a new sensor..." -#define TR_CHANNELRANGE INDENT "Gama de canales" +#define TR_TOPLCDTIMER "Timer LCD superior" +#define TR_UNIT "Unidad" +#define TR_TELEMETRY_NEWSENSOR INDENT "Añadir nuevo sensor..." +#define TR_CHANNELRANGE INDENT "Canales" #define TR_RXFREQUENCY TR("Rx Freqency", "Rx Servo Frequency") -#define TR_ANTENNACONFIRM1 "EXT. ANTENNA" +#define TR_ANTENNACONFIRM1 "ANTENA EXT." #if defined(PCBX12S) #define LEN_ANTENNA_MODES "\023" -#define TR_ANTENNA_MODES "Internal\0 ""Ask\0 ""Per model\0 ""Internal + External" +#define TR_ANTENNA_MODES "Interna\0 ""Preguntar\0 ""Por modelo\0 ""Interno + Externo\0 " #else #define LEN_ANTENNA_MODES "\011" -#define TR_ANTENNA_MODES "Internal\0""Ask\0 ""Per model""External" +#define TR_ANTENNA_MODES "Interna\0 ""Preguntar\0""Por model""Externa\0 " #endif -#define TR_USE_INTERNAL_ANTENNA TR("Use int. antenna", "Use internal antenna") -#define TR_USE_EXTERNAL_ANTENNA TR("Use ext. antenna", "Use external antenna") -#define TR_ANTENNACONFIRM2 TR("Check antenna", "Make sure antenna is installed!") -#define TR_MODULE_PROTOCOL_FLEX_WARN_LINE1 "Requires non" -#define TR_MODULE_PROTOCOL_FCC_WARN_LINE1 "Requires FCC" -#define TR_MODULE_PROTOCOL_EU_WARN_LINE1 "Requires EU" -#define TR_MODULE_PROTOCOL_WARN_LINE2 "certified firmware" +#define TR_USE_INTERNAL_ANTENNA TR("Usa antena int.", "Usa antena interna") +#define TR_USE_EXTERNAL_ANTENNA TR("Use antena ext.", "Usa antena externa") +#define TR_ANTENNACONFIRM2 TR("Revisa antena", "Revisa que la antena este instalada!") + +#define TR_MODULE_PROTOCOL_FLEX_WARN_LINE1 "No requerido" +#define TR_MODULE_PROTOCOL_FCC_WARN_LINE1 "Requiere FCC" +#define TR_MODULE_PROTOCOL_EU_WARN_LINE1 "Requiere EU" +#define TR_MODULE_PROTOCOL_WARN_LINE2 "firmware certificado" #define TR_LOWALARM INDENT "Alarma baja" -#define TR_CRITICALALARM INDENT "Alarma Critica" -#define TR_RSSIALARM_WARN TR("RSSI","TELEMETRY RSSI") -#define TR_NO_RSSIALARM TR(INDENT "Alarms disabled", INDENT "Telemetry alarms disabled") -#define TR_DISABLE_ALARM TR(INDENT "Disable alarms", INDENT "Disable telemetry alarms") -#define TR_ENABLE_POPUP "Enable Popup" -#define TR_DISABLE_POPUP "Disable Popup" +#define TR_CRITICALALARM INDENT "Alarma critica" +#define TR_RSSIALARM_WARN TR("RSSI","TELEMETRY RSSI") +#define TR_NO_RSSIALARM TR(INDENT "Alarmas desact.", INDENT "Alarmas telemetria desact.") +#define TR_DISABLE_ALARM TR(INDENT "Desact. alarmas", INDENT "Desact. alarmas telem.") +#define TR_ENABLE_POPUP "Activa Popup" +#define TR_DISABLE_POPUP "Desactiva Popup" #define TR_POPUP "Popup" #define TR_MIN "Min" #define TR_MAX "Max" #define TR_CURVE_PRESET "Preset..." #define TR_PRESET "Preset" #define TR_MIRROR "Mirror" -#define TR_CLEAR "Clear" +#define TR_CLEAR "Borrar" #define TR_RESET "Reset" #define TR_RESET_SUBMENU "Reset..." -#define TR_COUNT "Count" +#define TR_COUNT "Puntos" #define TR_PT "pt" #define TR_PTS "pts" -#define TR_SMOOTH "Smooth" -#define TR_COPY_STICKS_TO_OFS TR("Cpy stick->subtrim", "Copy Sticks To Offset") -#define TR_COPY_MIN_MAX_TO_OUTPUTS TR("Cpy min/max to all", "Copy min/max/center to all outputs") -#define TR_COPY_TRIMS_TO_OFS TR("Cpy trim->subtrim", "Copy trims to subtrim") +#define TR_SMOOTH "Suaviz" +#define TR_COPY_STICKS_TO_OFS TR("Copia stick->subtr", "Copia Sticks a Offset") +#define TR_COPY_MIN_MAX_TO_OUTPUTS TR("Copia min/max a sal", "Copia min/max/ctr a salidas") +#define TR_COPY_TRIMS_TO_OFS TR("Copia trim->subtr", "Copia trims a subtrim") #define TR_INCDEC "Inc/Decrement" -#define TR_GLOBALVAR "Global Var" -#define TR_MIXSOURCE "Mixer Source" -#define TR_CONSTANT "Constant" +#define TR_GLOBALVAR "Var global" +#define TR_MIXSOURCE "Entrada mixer" +#define TR_CONSTANT "Constante" #define TR_PERSISTENT_MAH INDENT "Valor mAh" -#define TR_PREFLIGHT "Preflight Checks" -#define TR_CHECKLIST INDENT "Display Checklist" +#define TR_PREFLIGHT "Chequeos Prevuelo" +#define TR_CHECKLIST INDENT "Lista verif" #define TR_FAS_OFFSET TR(INDENT "FAS Ofs", INDENT "FAS Offset") -#define TR_AUX_SERIAL_MODE "Serial port" +#define TR_AUX_SERIAL_MODE "Puerto serie" #define TR_SCRIPT "Script" -#define TR_INPUTS "Inputs" -#define TR_OUTPUTS "Outputs" -#define STR_EEBACKUP "Backup the EEPROM" -#define STR_FACTORYRESET "Factory reset" -#define TR_CONFIRMRESET "Erase ALL models and settings?" -#define TR_TOO_MANY_LUA_SCRIPTS "Too many Lua scripts!" +#define TR_INPUTS "Entradas" +#define TR_OUTPUTS "Salidas" +#define STR_EEBACKUP "Copia seg. EEPROM" +#define STR_FACTORYRESET "Rest. fabrica" +#define TR_CONFIRMRESET "Borrar TODOS los modelos y configuracion?" +#define TR_TOO_MANY_LUA_SCRIPTS "Demasiados Lua scripts!" #define TR_SPORT_UPDATE_POWER_MODE "SP Power" #define LEN_SPORT_UPDATE_POWER_MODES "\004" #define TR_SPORT_UPDATE_POWER_MODES "AUTO""ON\0 " @@ -1033,10 +1032,10 @@ // Horus and Taranis column headers #define TR_PHASES_HEADERS_NAME "Nombre" #define TR_PHASES_HEADERS_SW "Interrup" -#define TR_PHASES_HEADERS_RUD_TRIM "Rudder Trim" -#define TR_PHASES_HEADERS_ELE_TRIM "Elevator Trim" -#define TR_PHASES_HEADERS_THT_TRIM "Throttle Trim" -#define TR_PHASES_HEADERS_AIL_TRIM "Aileron Trim" +#define TR_PHASES_HEADERS_RUD_TRIM "Trim timon" +#define TR_PHASES_HEADERS_ELE_TRIM "Trim elevador" +#define TR_PHASES_HEADERS_THT_TRIM "Trim potencia" +#define TR_PHASES_HEADERS_AIL_TRIM "Trim aleron" #define TR_PHASES_HEADERS_CH5_TRIM "Trim 5" #define TR_PHASES_HEADERS_CH6_TRIM "Trim 6" #define TR_PHASES_HEADERS_FAD_IN "Aparecer" @@ -1047,7 +1046,7 @@ #define TR_LIMITS_HEADERS_MIN "Min" #define TR_LIMITS_HEADERS_MAX "Max" #define TR_LIMITS_HEADERS_DIRECTION "Direccion" -#define TR_LIMITS_HEADERS_CURVE "Curve" +#define TR_LIMITS_HEADERS_CURVE "Curva" #define TR_LIMITS_HEADERS_PPMCENTER "Centrado PPM" #define TR_LIMITS_HEADERS_SUBTRIMMODE "Simetrica" @@ -1058,19 +1057,19 @@ #define TR_LSW_HEADERS_DURATION "Duracion" #define TR_LSW_HEADERS_DELAY "Retardo" -#define TR_GVAR_HEADERS_NAME "Name" -#define TR_GVAR_HEADERS_FM0 "Value on FM0" -#define TR_GVAR_HEADERS_FM1 "Value on FM1" -#define TR_GVAR_HEADERS_FM2 "Value on FM2" -#define TR_GVAR_HEADERS_FM3 "Value on FM3" -#define TR_GVAR_HEADERS_FM4 "Value on FM4" -#define TR_GVAR_HEADERS_FM5 "Value on FM5" -#define TR_GVAR_HEADERS_FM6 "Value on FM6" -#define TR_GVAR_HEADERS_FM7 "Value on FM7" -#define TR_GVAR_HEADERS_FM8 "Value on FM8" +#define TR_GVAR_HEADERS_NAME "Nombre" +#define TR_GVAR_HEADERS_FM0 "Valor en FM0" +#define TR_GVAR_HEADERS_FM1 "Valor en FM1" +#define TR_GVAR_HEADERS_FM2 "Valor en FM2" +#define TR_GVAR_HEADERS_FM3 "Valor en FM3" +#define TR_GVAR_HEADERS_FM4 "Valor en FM4" +#define TR_GVAR_HEADERS_FM5 "Valor en FM5" +#define TR_GVAR_HEADERS_FM6 "Valor en FM6" +#define TR_GVAR_HEADERS_FM7 "Valor en FM7" +#define TR_GVAR_HEADERS_FM8 "Valor en FM8" // Horus footer descriptions -#define TR_LSW_DESCRIPTIONS { "Comparison type or function", "First variable", "Second variable or constant", "Second variable or constant", "Additional condition for line to be enabled", "Minimum ON duration of the logical switch", "Minimum TRUE duration for the switch to become ON" } +#define TR_LSW_DESCRIPTIONS { "Tipo de comparacion o funcion", "Primera variable", "Segunda variable o constante", "Segunda variable o constante", "Condicion adicional para activar linea", "Duracion minima de switch logico", "Duracion minima TRUE para activar switch logico" } // Taranis About screen #define TR_ABOUTUS "Nosotros" @@ -1103,8 +1102,8 @@ #define TR_ABOUT_KJELL_1 "Kjell Kernen" #define TR_ABOUT_KJELL_2 "www.open-tx.org main author" -#define TR_ABOUT_KJELL_3 "OpenTX Recorder author" -#define TR_ABOUT_KJELL_4 "Companion contributor" +#define TR_ABOUT_KJELL_3 "Autor OpenTX Recorder" +#define TR_ABOUT_KJELL_4 "Colaborador Companion" #define TR_ABOUT_MARTIN_1 "Martin Hotar" #define TR_ABOUT_MARTIN_2 "Dise\201o grafico" @@ -1112,7 +1111,7 @@ #if defined(PCBTARANIS) #define TR_ABOUT_HARDWARE_1 "FrSky" #define TR_ABOUT_HARDWARE_2 "Productor dise\201o de hardware" - #define TR_ABOUT_HARDWARE_3 "Firmware contributor" + #define TR_ABOUT_HARDWARE_3 "Colaborador firmware" #else #define TR_ABOUT_HARDWARE_1 "Brent Nelson" #define TR_ABOUT_HARDWARE_2 "Sky9x dise\201ador/productor" @@ -1134,82 +1133,83 @@ #define TR_WAV_VOLUME "Volumen Wav" #define TR_BG_VOLUME "Volumen Bg" -#define TR_TOP_BAR "Top Bar" -#define TR_FLASH_ERASE "Flash erase..." -#define TR_FLASH_WRITE "Flash write..." -#define TR_OTA_UPDATE "OTA update..." -#define TR_MODULE_RESET "Module reset..." -#define TR_UNKNOWN_RX "Unknown RX" -#define TR_UNSUPPORTED_RX "Unsupported RX" -#define TR_OTA_UPDATE_ERROR "OTA update error" -#define TR_DEVICE_RESET "Device reset..." -#define TR_ALTITUDE INDENT "Altitude" -#define TR_SCALE "Scale" -#define TR_VIEW_CHANNELS "View Channels" -#define TR_VIEW_NOTES "View Notes" -#define TR_MODEL_SELECT "Model Select" -#define TR_MODS_FORBIDDEN "Modifications forbidden!" -#define TR_UNLOCKED "Unlocked" +#define TR_TOP_BAR "Panel superior" +#define TR_FLASH_ERASE "Borrar flash..." +#define TR_FLASH_WRITE "Escrivir flash..." +#define TR_OTA_UPDATE "Actualizacion OTA..." +#define TR_MODULE_RESET "Reset modulo..." +#define TR_UNKNOWN_RX "RX deconocido" +#define TR_UNSUPPORTED_RX "RX no soportado" +#define TR_OTA_UPDATE_ERROR "Error actualizacion OTA" +#define TR_DEVICE_RESET "Reset dispositivo..." +#define TR_ALTITUDE INDENT "Altitud" +#define TR_SCALE "Escala" +#define TR_VIEW_CHANNELS "Ver Canales" +#define TR_VIEW_NOTES "Ver Notas" +#define TR_MODEL_SELECT "Seleccionar modelo" +#define TR_MODS_FORBIDDEN "Modificacions prohibidas!" +#define TR_UNLOCKED "Desbloqueado" #define TR_ID "ID" #define TR_PRECISION "Precision" #define TR_RATIO "Ratio" #define TR_FORMULA "Formula" #define TR_CELLINDEX "Cell index" #define TR_LOGS "Logs" -#define TR_OPTIONS "Options" -#define TR_FIRMWARE_OPTIONS "Firmware options" +#define TR_OPTIONS "Opciones" +#define TR_FIRMWARE_OPTIONS "Opciones firmware" #define TR_ALTSENSOR "Alt sensor" #define TR_CELLSENSOR "Cell sensor" #define TR_GPSSENSOR "GPS sensor" #define TR_CURRENTSENSOR "Sensor" #define TR_AUTOOFFSET "Auto Offset" -#define TR_ONLYPOSITIVE "Positive" -#define TR_FILTER "Filter" -#define TR_TELEMETRYFULL TR("All slots full!", "All telemetry slots full!") +#define TR_ONLYPOSITIVE "Positivo" +#define TR_FILTER "Filtro" +#define TR_TELEMETRYFULL TR("Telem. llena!", "Todas las entradas de telemetria llenas!") #define TR_SERVOS_OK "Servos OK" #define TR_SERVOS_KO "Servos KO" -#define TR_INVERTED_SERIAL INDENT "Invert" -#define TR_IGNORE_INSTANCE INDENT "Ignore instance" -#define TR_DISCOVER_SENSORS "Discover new sensors" -#define TR_STOP_DISCOVER_SENSORS "Stop discovery" -#define TR_DELETE_ALL_SENSORS "Delete all sensors" -#define TR_CONFIRMDELETE "Really " LCDW_128_480_LINEBREAK "delete all ?" -#define TR_SELECT_WIDGET "Select widget" -#define TR_REMOVE_WIDGET "Remove widget" -#define TR_WIDGET_SETTINGS "Widget settings" -#define TR_REMOVE_SCREEN "Remove screen" -#define TR_SETUP_WIDGETS "Setup widgets" -#define TR_USER_INTERFACE "User interface" -#define TR_THEME "Theme" -#define TR_SETUP "Setup" -#define TR_MAINVIEWX "Main view X" -#define TR_LAYOUT "Layout" -#define TR_ADD_MAIN_VIEW "Add main view" -#define TR_BACKGROUND_COLOR "Background color" -#define TR_MAIN_COLOR "Main color" -#define TR_TEXT_VIEWER "Text Viewer" +#define TR_INVERTED_SERIAL INDENT "Invertir" +#define TR_IGNORE_INSTANCE INDENT "Ignorar instancia" +#define TR_DISCOVER_SENSORS "Buscar nuevos sensores" +#define TR_STOP_DISCOVER_SENSORS "Parar busqueda" +#define TR_DELETE_ALL_SENSORS "Borrar sensores" +#define TR_CONFIRMDELETE "Seguro " LCDW_128_480_LINEBREAK "borrar todo ?" +#define TR_SELECT_WIDGET "Seleccionar widget" +#define TR_REMOVE_WIDGET "Borrar widget" +#define TR_WIDGET_SETTINGS "Config. widget" +#define TR_REMOVE_SCREEN "Borar pantalla" +#define TR_SETUP_WIDGETS "Config. widgets" +#define TR_USER_INTERFACE "Interfaz" +#define TR_THEME "Tema" +#define TR_SETUP "Configiracion" +#define TR_MAINVIEWX "Vista pral. X" +#define TR_LAYOUT "Diseño" +#define TR_ADD_MAIN_VIEW "Añadir vista pral." +#define TR_BACKGROUND_COLOR "Color de fondo" +#define TR_MAIN_COLOR "Color principal" +#define TR_TEXT_VIEWER "Visor de texto" #define TR_MENU_INPUTS "\314Inputs" #define TR_MENU_LUA "\322Lua scripts" #define TR_MENU_STICKS "\307Sticks" #define TR_MENU_POTS "\310Pots" #define TR_MENU_MAX "\315MAX" -#define TR_MENU_HELI "\316Cyclic" +#define TR_MENU_HELI "\316Ciclico" #define TR_MENU_TRIMS "\313Trims" #define TR_MENU_SWITCHES "\312Switches" #define TR_MENU_LOGICAL_SWITCHES "\312Logical Switches" -#define TR_MENU_TRAINER "\317Trainer" -#define TR_MENU_CHANNELS "\320Channels" +#define TR_MENU_TRAINER "\317Entrenador" +#define TR_MENU_CHANNELS "\320Canales" #define TR_MENU_GVARS "\311GVars" -#define TR_MENU_TELEMETRY "\321Telemetry" -#define TR_MENU_DISPLAY "DISPLAY" -#define TR_MENU_OTHER "Other" -#define TR_MENU_INVERT "Invert" -#define TR_JITTER_FILTER "ADC Filter" -#define TR_RTC_CHECK TR("Check RTC", "Check RTC voltage") -#define TR_AUTH_FAILURE "Auth-failure" +#define TR_MENU_TELEMETRY "\321Telemetria" +#define TR_MENU_DISPLAY "Monitor" +#define TR_MENU_OTHER "Otros" +#define TR_MENU_INVERT "Invertir" +#define TR_JITTER_FILTER "Filtro ADC" +#define TR_RTC_CHECK TR("Check RTC", "Check RTC voltaje") +#define TR_AUTH_FAILURE "Fallo auth." +#define ZSTR_FLR "FLR" #define ZSTR_RSSI "RSSI" #define ZSTR_R9PW "R9PW" #define ZSTR_RAS "SWR" @@ -1312,3 +1312,12 @@ #define ZSTR_GASSUIT_AVG_FLOW "GAFl" #define ZSTR_SBEC_VOLTAGE "BecV" #define ZSTR_SBEC_CURRENT "BecA" +#define ZSTR_RB3040_EXTRA_STATE "RBES" +#define ZSTR_RB3040_CHANNEL1 "CH1A" +#define ZSTR_RB3040_CHANNEL2 "CH2A" +#define ZSTR_RB3040_CHANNEL3 "CH3A" +#define ZSTR_RB3040_CHANNEL4 "CH4A" +#define ZSTR_RB3040_CHANNEL5 "CH5A" +#define ZSTR_RB3040_CHANNEL6 "CH6A" +#define ZSTR_RB3040_CHANNEL7 "CH7A" +#define ZSTR_RB3040_CHANNEL8 "CH8A" diff --git a/radio/src/translations/fi.h.txt b/radio/src/translations/fi.h.txt index 70b509573..20e27d5fb 100644 --- a/radio/src/translations/fi.h.txt +++ b/radio/src/translations/fi.h.txt @@ -855,6 +855,8 @@ #define TR_FLASH_BOOTLOADER "Flash bootloader" #define TR_FLASH_EXTERNAL_DEVICE "Flash External Device" #define TR_FLASH_RECEIVER_OTA "Flash receiver OTA" +#define TR_FLASH_RECEIVER_OTA_BY_EXTERNAL "Flash RX by ext. OTA" +#define TR_FLASH_RECEIVER_OTA_BY_INTERNAL "Flash RX by int. OTA" #define TR_FLASH_BLUETOOTH_MODULE TR("Flash BT module", "Flash Bluetooth module") #define TR_FLASH_POWER_MANAGEMENT_UNIT "Flash pwr mngt unit" #define TR_CURRENT_VERSION TR("Current vers. ", "Current version: ") @@ -1198,6 +1200,7 @@ #define TR_RTC_CHECK TR("Check RTC", "Check RTC voltage") #define TR_AUTH_FAILURE "Auth-failure" +#define ZSTR_FLR "FLR" #define ZSTR_RSSI "RSSI" #define ZSTR_R9PW "R9PW" #define ZSTR_RAS "SWR" @@ -1299,3 +1302,12 @@ #define ZSTR_GASSUIT_MAX_FLOW "GMFl" #define ZSTR_SBEC_VOLTAGE "BecV" #define ZSTR_SBEC_CURRENT "BecA" +#define ZSTR_RB3040_EXTRA_STATE "RBES" +#define ZSTR_RB3040_CHANNEL1 "CH1A" +#define ZSTR_RB3040_CHANNEL2 "CH2A" +#define ZSTR_RB3040_CHANNEL3 "CH3A" +#define ZSTR_RB3040_CHANNEL4 "CH4A" +#define ZSTR_RB3040_CHANNEL5 "CH5A" +#define ZSTR_RB3040_CHANNEL6 "CH6A" +#define ZSTR_RB3040_CHANNEL7 "CH7A" +#define ZSTR_RB3040_CHANNEL8 "CH8A" diff --git a/radio/src/translations/fr.h.txt b/radio/src/translations/fr.h.txt index 6d8391762..b8286ab7e 100644 --- a/radio/src/translations/fr.h.txt +++ b/radio/src/translations/fr.h.txt @@ -857,6 +857,8 @@ #define TR_FLASH_BOOTLOADER "Flasher BootLoader" #define TR_FLASH_EXTERNAL_DEVICE TR("Flasher S.Port", "Flasher S.Port externe") #define TR_FLASH_RECEIVER_OTA "Flasher RX OTA" +#define TR_FLASH_RECEIVER_OTA_BY_EXTERNAL "Flash RX by ext. OTA" +#define TR_FLASH_RECEIVER_OTA_BY_INTERNAL "Flash RX by int. OTA" #define TR_FLASH_BLUETOOTH_MODULE TR("Flash module BT", "Flash module Bluetooth") #define TR_FLASH_POWER_MANAGEMENT_UNIT "Flasher pwr mngt unit" #define TR_CURRENT_VERSION "Version courante :" @@ -1211,6 +1213,7 @@ #define TR_RTC_CHECK TR("Vérif. RTC", "Vérif. pile RTC") #define TR_AUTH_FAILURE "Auth-failure" +#define ZSTR_FLR "FLR" #define ZSTR_RSSI "RSSI" #define ZSTR_R9PW "R9PW" #define ZSTR_RAS "SWR" @@ -1313,3 +1316,12 @@ #define ZSTR_GASSUIT_AVG_FLOW "GAFl" #define ZSTR_SBEC_VOLTAGE "BecV" #define ZSTR_SBEC_CURRENT "BecA" +#define ZSTR_RB3040_EXTRA_STATE "RBES" +#define ZSTR_RB3040_CHANNEL1 "CH1A" +#define ZSTR_RB3040_CHANNEL2 "CH2A" +#define ZSTR_RB3040_CHANNEL3 "CH3A" +#define ZSTR_RB3040_CHANNEL4 "CH4A" +#define ZSTR_RB3040_CHANNEL5 "CH5A" +#define ZSTR_RB3040_CHANNEL6 "CH6A" +#define ZSTR_RB3040_CHANNEL7 "CH7A" +#define ZSTR_RB3040_CHANNEL8 "CH8A" diff --git a/radio/src/translations/it.h.txt b/radio/src/translations/it.h.txt index 510f0cbdd..8658f15bd 100644 --- a/radio/src/translations/it.h.txt +++ b/radio/src/translations/it.h.txt @@ -860,6 +860,8 @@ #define TR_FLASH_BOOTLOADER "Prog. bootloader" #define TR_FLASH_EXTERNAL_DEVICE "Progr. dispositivo Esterno" #define TR_FLASH_RECEIVER_OTA TR("Prog. RX OTA", INDENT "Prog. ricevente OTA") +#define TR_FLASH_RECEIVER_OTA_BY_EXTERNAL "Flash RX by ext. OTA" +#define TR_FLASH_RECEIVER_OTA_BY_INTERNAL "Flash RX by int. OTA" #define TR_FLASH_BLUETOOTH_MODULE TR("Prog. mod. BT", INDENT "Prog. modulo Bluetooth") #define TR_FLASH_POWER_MANAGEMENT_UNIT TR("Prog. PMU", "Program. PMU") #define TR_CURRENT_VERSION TR("Vers. currente ", "Versione corrente: ") @@ -1210,6 +1212,7 @@ #define TR_RTC_CHECK TR("Controllo RTC", "Controllo voltaggio RTC") #define TR_AUTH_FAILURE "Auth-failure" +#define ZSTR_FLR "FLR" #define ZSTR_RSSI "RSSI" #define ZSTR_R9PW "R9PW" #define ZSTR_RAS "SWR" @@ -1312,3 +1315,12 @@ #define ZSTR_GASSUIT_AVG_FLOW "GAFl" #define ZSTR_SBEC_VOLTAGE "BecV" #define ZSTR_SBEC_CURRENT "BecA" +#define ZSTR_RB3040_EXTRA_STATE "RBES" +#define ZSTR_RB3040_CHANNEL1 "CH1A" +#define ZSTR_RB3040_CHANNEL2 "CH2A" +#define ZSTR_RB3040_CHANNEL3 "CH3A" +#define ZSTR_RB3040_CHANNEL4 "CH4A" +#define ZSTR_RB3040_CHANNEL5 "CH5A" +#define ZSTR_RB3040_CHANNEL6 "CH6A" +#define ZSTR_RB3040_CHANNEL7 "CH7A" +#define ZSTR_RB3040_CHANNEL8 "CH8A" diff --git a/radio/src/translations/nl.h.txt b/radio/src/translations/nl.h.txt index 130d0b3d4..068d6078d 100644 --- a/radio/src/translations/nl.h.txt +++ b/radio/src/translations/nl.h.txt @@ -842,6 +842,8 @@ #define TR_FLASH_BOOTLOADER "Flash bootloader" #define TR_FLASH_EXTERNAL_DEVICE "Flash extern Apparaat" #define TR_FLASH_RECEIVER_OTA "Flash receiver OTA" +#define TR_FLASH_RECEIVER_OTA_BY_EXTERNAL "Flash RX by ext. OTA" +#define TR_FLASH_RECEIVER_OTA_BY_INTERNAL "Flash RX by int. OTA" #define TR_FLASH_BLUETOOTH_MODULE TR("Flash BT module", "Flash Bluetooth module") #define TR_FLASH_POWER_MANAGEMENT_UNIT "Flash pwr mngt unit" #define TR_CURRENT_VERSION TR("Current vers. ", "Current version: ") @@ -1197,6 +1199,7 @@ #define TR_RTC_CHECK TR("Check RTC", "Check RTC voltage") #define TR_AUTH_FAILURE "Auth-failure" +#define ZSTR_FLR "FLR" #define ZSTR_RSSI "RSSI" #define ZSTR_R9PW "R9PW" #define ZSTR_RAS "SWR" @@ -1299,3 +1302,12 @@ #define ZSTR_GASSUIT_AVG_FLOW "GAFl" #define ZSTR_SBEC_VOLTAGE "BecV" #define ZSTR_SBEC_CURRENT "BecA" +#define ZSTR_RB3040_EXTRA_STATE "RBES" +#define ZSTR_RB3040_CHANNEL1 "CH1A" +#define ZSTR_RB3040_CHANNEL2 "CH2A" +#define ZSTR_RB3040_CHANNEL3 "CH3A" +#define ZSTR_RB3040_CHANNEL4 "CH4A" +#define ZSTR_RB3040_CHANNEL5 "CH5A" +#define ZSTR_RB3040_CHANNEL6 "CH6A" +#define ZSTR_RB3040_CHANNEL7 "CH7A" +#define ZSTR_RB3040_CHANNEL8 "CH8A" diff --git a/radio/src/translations/pl.h.txt b/radio/src/translations/pl.h.txt index cd4dd5c77..75cd94f54 100644 --- a/radio/src/translations/pl.h.txt +++ b/radio/src/translations/pl.h.txt @@ -856,6 +856,8 @@ #define TR_FLASH_BOOTLOADER "Flash bootloader" #define TR_FLASH_EXTERNAL_DEVICE "Sflashuj Moduł Zewnętrzny" #define TR_FLASH_RECEIVER_OTA "Flash receiver OTA" +#define TR_FLASH_RECEIVER_OTA_BY_EXTERNAL "Flash RX by ext. OTA" +#define TR_FLASH_RECEIVER_OTA_BY_INTERNAL "Flash RX by int. OTA" #define TR_FLASH_BLUETOOTH_MODULE TR("Flash BT module", "Flash Bluetooth module") #define TR_FLASH_POWER_MANAGEMENT_UNIT "Flash pwr mngt unit" #define TR_CURRENT_VERSION TR("Current vers. ", "Current version: ") @@ -1206,6 +1208,7 @@ #define TR_RTC_CHECK TR("Check RTC", "Check RTC voltage") #define TR_AUTH_FAILURE "Auth-failure" +#define ZSTR_FLR "FLR" #define ZSTR_RSSI "RSSI" #define ZSTR_R9PW "R9PW" #define ZSTR_RAS "SWR" @@ -1308,3 +1311,12 @@ #define ZSTR_GASSUIT_AVG_FLOW "GAFl" #define ZSTR_SBEC_VOLTAGE "BecV" #define ZSTR_SBEC_CURRENT "BecA" +#define ZSTR_RB3040_EXTRA_STATE "RBES" +#define ZSTR_RB3040_CHANNEL1 "CH1A" +#define ZSTR_RB3040_CHANNEL2 "CH2A" +#define ZSTR_RB3040_CHANNEL3 "CH3A" +#define ZSTR_RB3040_CHANNEL4 "CH4A" +#define ZSTR_RB3040_CHANNEL5 "CH5A" +#define ZSTR_RB3040_CHANNEL6 "CH6A" +#define ZSTR_RB3040_CHANNEL7 "CH7A" +#define ZSTR_RB3040_CHANNEL8 "CH8A" diff --git a/radio/src/translations/pt.h.txt b/radio/src/translations/pt.h.txt index 4a644e9c6..5e2afd82a 100644 --- a/radio/src/translations/pt.h.txt +++ b/radio/src/translations/pt.h.txt @@ -846,6 +846,8 @@ #define TR_FLASH_BOOTLOADER "Flash bootloader" #define TR_FLASH_EXTERNAL_DEVICE "Flash External Device" #define TR_FLASH_RECEIVER_OTA "Flash receiver OTA" +#define TR_FLASH_RECEIVER_OTA_BY_EXTERNAL "Flash RX by ext. OTA" +#define TR_FLASH_RECEIVER_OTA_BY_INTERNAL "Flash RX by int. OTA" #define TR_FLASH_BLUETOOTH_MODULE TR("Flash BT module", "Flash Bluetooth module") #define TR_FLASH_POWER_MANAGEMENT_UNIT "Flash pwr mngt unit" #define TR_CURRENT_VERSION TR("Current vers. ", "Current version: ") @@ -1195,6 +1197,7 @@ #define TR_RTC_CHECK TR("Check RTC", "Check RTC voltage") #define TR_AUTH_FAILURE "Auth-failure" +#define ZSTR_FLR "FLR" #define ZSTR_RSSI "RSSI" #define ZSTR_R9PW "R9PW" #define ZSTR_RAS "SWR" @@ -1297,3 +1300,12 @@ #define ZSTR_GASSUIT_AVG_FLOW "GAFl" #define ZSTR_SBEC_VOLTAGE "BecV" #define ZSTR_SBEC_CURRENT "BecA" +#define ZSTR_RB3040_EXTRA_STATE "RBES" +#define ZSTR_RB3040_CHANNEL1 "CH1A" +#define ZSTR_RB3040_CHANNEL2 "CH2A" +#define ZSTR_RB3040_CHANNEL3 "CH3A" +#define ZSTR_RB3040_CHANNEL4 "CH4A" +#define ZSTR_RB3040_CHANNEL5 "CH5A" +#define ZSTR_RB3040_CHANNEL6 "CH6A" +#define ZSTR_RB3040_CHANNEL7 "CH7A" +#define ZSTR_RB3040_CHANNEL8 "CH8A" diff --git a/radio/src/translations/se.h.txt b/radio/src/translations/se.h.txt index 39d2b1970..18d9411cb 100644 --- a/radio/src/translations/se.h.txt +++ b/radio/src/translations/se.h.txt @@ -859,6 +859,8 @@ #define TR_FLASH_BOOTLOADER "Skriv BootLoader" #define TR_FLASH_EXTERNAL_DEVICE "Flash External Device" #define TR_FLASH_RECEIVER_OTA "Flash receiver OTA" +#define TR_FLASH_RECEIVER_OTA_BY_EXTERNAL "Flash RX by ext. OTA" +#define TR_FLASH_RECEIVER_OTA_BY_INTERNAL "Flash RX by int. OTA" #define TR_FLASH_BLUETOOTH_MODULE TR("Flash BT module", "Flash Bluetooth module") #define TR_FLASH_POWER_MANAGEMENT_UNIT "Flash pwr mngt unit" #define TR_CURRENT_VERSION TR("Current vers. ", "Current version: ") @@ -1209,6 +1211,7 @@ #define TR_RTC_CHECK TR("Check RTC", "Check RTC voltage") #define TR_AUTH_FAILURE "Auth-failure" +#define ZSTR_FLR "FLR" #define ZSTR_RSSI "RSSI" #define ZSTR_R9PW "R9PW" #define ZSTR_RAS "SWR" @@ -1311,3 +1314,12 @@ #define ZSTR_GASSUIT_AVG_FLOW "GAFl" #define ZSTR_SBEC_VOLTAGE "BecV" #define ZSTR_SBEC_CURRENT "BecA" +#define ZSTR_RB3040_EXTRA_STATE "RBES" +#define ZSTR_RB3040_CHANNEL1 "CH1A" +#define ZSTR_RB3040_CHANNEL2 "CH2A" +#define ZSTR_RB3040_CHANNEL3 "CH3A" +#define ZSTR_RB3040_CHANNEL4 "CH4A" +#define ZSTR_RB3040_CHANNEL5 "CH5A" +#define ZSTR_RB3040_CHANNEL6 "CH6A" +#define ZSTR_RB3040_CHANNEL7 "CH7A" +#define ZSTR_RB3040_CHANNEL8 "CH8A" diff --git a/tools/build-companion-nightly.sh b/tools/build-companion-nightly.sh index 683e0e4d6..06f605c0d 100755 --- a/tools/build-companion-nightly.sh +++ b/tools/build-companion-nightly.sh @@ -4,7 +4,7 @@ set -e set -x -JOBS=2 +JOBS=3 while [ $# -gt 0 ] do