diff --git a/companion/src/firmwares/edgetx/yaml_generalsettings.cpp b/companion/src/firmwares/edgetx/yaml_generalsettings.cpp index b61b8c91dd1..b5443099623 100644 --- a/companion/src/firmwares/edgetx/yaml_generalsettings.cpp +++ b/companion/src/firmwares/edgetx/yaml_generalsettings.cpp @@ -76,7 +76,7 @@ const YamlLookupTable serialPortLut = { const YamlLookupTable uartModeLut = { { GeneralSettings::AUX_SERIAL_OFF, "NONE" }, { GeneralSettings::AUX_SERIAL_TELE_MIRROR, "TELEMETRY_MIRROR" }, - { GeneralSettings::AUX_SERIAL_TELE_IN, "TELEMETRY" }, + { GeneralSettings::AUX_SERIAL_TELE_IN, "TELEMETRY_IN" }, { GeneralSettings::AUX_SERIAL_SBUS_TRAINER, "SBUS_TRAINER" }, { GeneralSettings::AUX_SERIAL_LUA, "LUA" }, { GeneralSettings::AUX_SERIAL_CLI, "CLI" }, @@ -214,9 +214,10 @@ Node convert::encode(const GeneralSettings& rhs) Node serialPort; for (int i = 0; i < GeneralSettings::SP_COUNT; i++) { - if (rhs.serialPort[i] != UART_MODE_NONE) { + if (rhs.serialPort[i] != GeneralSettings::AUX_SERIAL_OFF || rhs.serialPower[i]) { Node mode = uartModeLut << rhs.serialPort[i]; serialPort[LookupValue(serialPortLut, i)]["mode"] = mode; + serialPort[LookupValue(serialPortLut, i)]["power"] = (int)rhs.serialPower[i]; } } if (serialPort && serialPort.IsMap()) @@ -404,11 +405,13 @@ bool convert::decode(const Node& node, GeneralSettings& rhs) node["varioRepeat"] >> rhs.varioRepeat; node["backgroundVolume"] >> ioffset_int(rhs.backgroundVolume, 2); + // depreciated v2.7 replaced by serialPort if (node["auxSerialMode"]) { node["auxSerialMode"] >> oldUartModeLut >> rhs.serialPort[GeneralSettings::SP_AUX1]; } + // depreciated v2.7 replaced by serialPort if (node["aux2SerialMode"]) { node["aux2SerialMode"] >> oldUartModeLut >> rhs.serialPort[GeneralSettings::SP_AUX2]; @@ -421,13 +424,23 @@ bool convert::decode(const Node& node, GeneralSettings& rhs) YAML::Node port_nr = port.first >> serialPortLut; if (port_nr) { int p = port_nr.as(); - if (p >= 0 && p < GeneralSettings::SP_COUNT && port.second.IsMap()) + if (p >= 0 && p < GeneralSettings::SP_COUNT && port.second.IsMap()) { port.second["mode"] >> uartModeLut >> rhs.serialPort[p]; + // introduced v2.8 + Node port_pwr = port.second["power"]; + if (port_pwr && port_pwr.IsScalar()) { + try { + int pwr = port_pwr.as(); + if (pwr == 0 || pwr == 1) + rhs.serialPower[p] = pwr; + } catch(...) {} + } + } } } } } - + node["antennaMode"] >> antennaModeLut >> rhs.antennaMode; node["backlightColor"] >> rhs.backlightColor; node["pwrOnSpeed"] >> rhs.pwrOnSpeed; diff --git a/companion/src/firmwares/eeprominterface.h b/companion/src/firmwares/eeprominterface.h index 22abfde3f17..890ef7495d4 100644 --- a/companion/src/firmwares/eeprominterface.h +++ b/companion/src/firmwares/eeprominterface.h @@ -168,7 +168,8 @@ enum Capability { TopBarZones, HasModelsList, HasFlySkyGimbals, - RotaryEncoderNavigation + RotaryEncoderNavigation, + HasSoftwareSerialPower }; class EEPROMInterface diff --git a/companion/src/firmwares/generalsettings.h b/companion/src/firmwares/generalsettings.h index 3da7d996e09..3ca8c1e3fc4 100644 --- a/companion/src/firmwares/generalsettings.h +++ b/companion/src/firmwares/generalsettings.h @@ -243,6 +243,7 @@ class GeneralSettings { unsigned int mavbaud; unsigned int switchUnlockStates; unsigned int serialPort[SP_COUNT]; + bool serialPower[SP_COUNT]; int antennaMode; unsigned int backlightColor; CustomFunctionData customFn[CPN_MAX_SPECIAL_FUNCTIONS]; diff --git a/companion/src/firmwares/opentx/opentxinterface.cpp b/companion/src/firmwares/opentx/opentxinterface.cpp index bab62bac150..e8f28ed2ffd 100644 --- a/companion/src/firmwares/opentx/opentxinterface.cpp +++ b/companion/src/firmwares/opentx/opentxinterface.cpp @@ -772,6 +772,8 @@ int OpenTxFirmware::getCapability(::Capability capability) IS_TARANIS_X9LITE(board) || IS_RADIOMASTER_TX12(board) || IS_RADIOMASTER_ZORRO(board) || IS_RADIOMASTER_TX16S(board) || IS_JUMPER_T18(board)); + case HasSoftwareSerialPower: + return IS_RADIOMASTER_TX16S(board); default: return 0; } diff --git a/companion/src/generaledit/hardware.cpp b/companion/src/generaledit/hardware.cpp index 5403392a1de..c0136980bb1 100644 --- a/companion/src/generaledit/hardware.cpp +++ b/companion/src/generaledit/hardware.cpp @@ -219,32 +219,46 @@ HardwarePanel::HardwarePanel(QWidget * parent, GeneralSettings & generalSettings ExclusiveComboGroup *exclGroup = new ExclusiveComboGroup( this, [=](const QVariant &value) { return value == 0; }); + addSection(tr("Serial port"), row); + if (firmware->getCapability(HasAuxSerialMode)) { - QString lbl = "Serial Port"; - if (IS_RADIOMASTER_TX16S(board)) - lbl.append(" (TTL)"); + QString lbl = "AUX1"; addLabel(tr("%1").arg(lbl), row, 0); AutoComboBox *serialPortMode = new AutoComboBox(this); serialPortMode->setModel(editorItemModels->getItemModel(auxmodelid)); serialPortMode->setField(generalSettings.serialPort[GeneralSettings::SP_AUX1]); exclGroup->addCombo(serialPortMode); - addParams(row, serialPortMode); + + AutoCheckBox *serialPortPower = new AutoCheckBox(this); + serialPortPower->setField(generalSettings.serialPower[GeneralSettings::SP_AUX1], this); + serialPortPower->setText(tr("Power")); + + addParams(row, serialPortMode, serialPortPower); + + if (!firmware->getCapability(HasSoftwareSerialPower)) + serialPortPower->setVisible(false); } if (firmware->getCapability(HasAux2SerialMode)) { - QString lbl = "Serial Port 2"; - if (IS_RADIOMASTER_TX16S(board)) - lbl.append(" (TTL)"); + QString lbl = "AUX2"; addLabel(tr("%1").arg(lbl), row, 0); AutoComboBox *serialPortMode = new AutoComboBox(this); serialPortMode->setModel(editorItemModels->getItemModel(auxmodelid)); serialPortMode->setField(generalSettings.serialPort[GeneralSettings::SP_AUX2]); exclGroup->addCombo(serialPortMode); - addParams(row, serialPortMode); + + AutoCheckBox *serialPortPower = new AutoCheckBox(this); + serialPortPower->setField(generalSettings.serialPower[GeneralSettings::SP_AUX2], this); + serialPortPower->setText(tr("Power")); + + addParams(row, serialPortMode, serialPortPower); + + if (!firmware->getCapability(HasSoftwareSerialPower)) + serialPortPower->setVisible(false); } if (firmware->getCapability(HasVCPSerialMode)) { - addLabel(tr("Serial Port VCP"), row, 0); + addLabel(tr("VCP"), row, 0); AutoComboBox *serialPortMode = new AutoComboBox(this); serialPortMode->setModel(editorItemModels->getItemModel(vcpmodelid)); serialPortMode->setField(generalSettings.serialPort[GeneralSettings::SP_VCP]); diff --git a/radio/src/datastructs.h b/radio/src/datastructs.h index 0517503854b..f66bd4822ca 100644 --- a/radio/src/datastructs.h +++ b/radio/src/datastructs.h @@ -116,33 +116,33 @@ static inline void check_struct() CHKSIZE(TrainerData, 16); #if defined(PCBXLITES) - CHKSIZE(RadioData, 859); + CHKSIZE(RadioData, 861); CHKSIZE(ModelData, 6161); #elif defined(PCBXLITE) - CHKSIZE(RadioData, 857); + CHKSIZE(RadioData, 859); CHKSIZE(ModelData, 6161); #elif defined(RADIO_TPRO) - CHKSIZE(RadioData, 840); + CHKSIZE(RadioData, 842); CHKSIZE(ModelData, 6186); #elif defined(PCBX7) - CHKSIZE(RadioData, 863); + CHKSIZE(RadioData, 865); CHKSIZE(ModelData, 6161); #elif defined(PCBX9E) - CHKSIZE(RadioData, 953); + CHKSIZE(RadioData, 955); CHKSIZE(ModelData, 6613); #elif defined(PCBX9D) || defined(PCBX9DP) - CHKSIZE(RadioData, 895); + CHKSIZE(RadioData, 897); CHKSIZE(ModelData, 6605); #elif defined(PCBHORUS) #if defined(PCBX10) - CHKSIZE(RadioData, 919); + CHKSIZE(RadioData, 921); CHKSIZE(ModelData, 11025); #else - CHKSIZE(RadioData, 901); + CHKSIZE(RadioData, 903); CHKSIZE(ModelData, 11023); #endif #elif defined(PCBNV14) - CHKSIZE(RadioData, 849); + CHKSIZE(RadioData, 851); CHKSIZE(ModelData, 10839); #endif diff --git a/radio/src/datastructs_private.h b/radio/src/datastructs_private.h index 0be20cbeb33..4248046e27d 100644 --- a/radio/src/datastructs_private.h +++ b/radio/src/datastructs_private.h @@ -28,6 +28,7 @@ #include "definitions.h" #include "opentx_types.h" #include "globals.h" +#include "serial.h" #if defined(PCBTARANIS) #define N_TARANIS_FIELD(x) @@ -902,7 +903,7 @@ PACK(struct RadioData { CUST_ATTR(auxSerialMode, r_serialMode, nullptr); CUST_ATTR(aux2SerialMode, r_serialMode, nullptr); - NOBACKUP(uint16_t serialPort ARRAY(STORAGE_SERIAL_PORTS,struct_serialConfig,nullptr)); + NOBACKUP(uint32_t serialPort ARRAY(SERIAL_CONF_BITS_PER_PORT,struct_serialConfig,nullptr)); EXTRA_GENERAL_FIELDS diff --git a/radio/src/gui/colorlcd/radio_hardware.cpp b/radio/src/gui/colorlcd/radio_hardware.cpp index 4446a67991b..141c2013694 100644 --- a/radio/src/gui/colorlcd/radio_hardware.cpp +++ b/radio/src/gui/colorlcd/radio_hardware.cpp @@ -235,6 +235,22 @@ class SerialConfigWindow : public FormGroup aux->setAvailableHandler( [=](int value) { return isSerialModeAvailable(port_nr, value); }); grid.nextLine(); + +#if defined(SWSERIALPOWER) + if (port_nr < SP_VCP) + { + new StaticText(this, grid.getLabelSlot(true), STR_AUX_SERIAL_PORT_POWER, 0, COLOR_THEME_PRIMARY1); + new CheckBox( + this, grid.getFieldSlot(1, 0), + [=] { return serialGetPower(port_nr); }, + [=](int8_t newValue) { + serialSetPower(port_nr, (bool)newValue); + SET_DIRTY(); + } + ); + grid.nextLine(); + } +#endif } if (display_ttl_warning) { diff --git a/radio/src/hal/serial_port.h b/radio/src/hal/serial_port.h index 2f0eaa7679f..8e89aeb3988 100644 --- a/radio/src/hal/serial_port.h +++ b/radio/src/hal/serial_port.h @@ -23,8 +23,6 @@ #include "serial_driver.h" -typedef void etx_pwr_driver; - typedef struct { const char* name; const etx_serial_driver_t* uart; diff --git a/radio/src/serial.cpp b/radio/src/serial.cpp index 6006ec14483..0d4448796cf 100644 --- a/radio/src/serial.cpp +++ b/radio/src/serial.cpp @@ -86,14 +86,27 @@ int8_t getSerialPortMode(uint8_t port_nr) #if !defined(BOOT) if (port_nr < MAX_SERIAL_PORTS) { auto cfg = g_eeGeneral.serialPort; - cfg >>= port_nr * 4; // 4 bits per port - return cfg & 0xF; + cfg >>= port_nr * SERIAL_CONF_BITS_PER_PORT; + return cfg & SERIAL_CONF_MODE_MASK; } #endif return UART_MODE_NONE; } +static bool getSerialPower(uint8_t port_nr) +{ +#if !defined(BOOT) + if (port_nr < MAX_SERIAL_PORTS) { + auto cfg = g_eeGeneral.serialPort; + cfg >>= (port_nr * SERIAL_CONF_BITS_PER_PORT); + return cfg & (1 << SERIAL_CONF_POWER_BIT); + } +#endif + + return false; +} + struct SerialPortState { uint8_t mode; @@ -189,7 +202,7 @@ static void serialSetCallBacks(int mode, void* ctx, const etx_serial_port_t* por } } -static void serialSetupPort(int mode, etx_serial_init& params, bool& power_required) +static void serialSetupPort(int mode, etx_serial_init& params) { switch (mode) { @@ -203,7 +216,6 @@ static void serialSetupPort(int mode, etx_serial_init& params, bool& power_requi #if !defined(BOOT) case UART_MODE_TELEMETRY_MIRROR: // TODO: query telemetry baudrate / add setting for module - power_required = true; #if defined(CROSSFIRE) if (modelTelemetryProtocol() == PROTOCOL_TELEMETRY_CROSSFIRE) { params.baudrate = CROSSFIRE_TELEM_MIRROR_BAUDRATE; @@ -217,7 +229,6 @@ static void serialSetupPort(int mode, etx_serial_init& params, bool& power_requi if (modelTelemetryProtocol() == PROTOCOL_TELEMETRY_FRSKY_D_SECONDARY) { params.baudrate = FRSKY_D_BAUDRATE; params.rx_enable = true; - power_required = true; } break; @@ -227,14 +238,12 @@ static void serialSetupPort(int mode, etx_serial_init& params, bool& power_requi params.parity = ETX_Parity_Even; params.stop_bits = ETX_StopBits_Two; params.rx_enable = true; - power_required = true; break; #if defined(LUA) case UART_MODE_LUA: params.baudrate = LUA_DEFAULT_BAUDRATE; params.rx_enable = true; - power_required = true; break; #endif @@ -242,7 +251,6 @@ static void serialSetupPort(int mode, etx_serial_init& params, bool& power_requi case UART_MODE_GPS: params.baudrate = GPS_USART_BAUDRATE; params.rx_enable = true; - power_required = true; break; #endif #endif @@ -263,6 +271,26 @@ const etx_serial_port_t* serialGetPort(uint8_t port_nr) return port; } +static void serialSetPowerState(uint8_t port_nr) +{ + const etx_serial_port_t* port = serialGetPort(port_nr); + if (!port) return; + + if (port->set_pwr) { + port->set_pwr(getSerialPower(port_nr)); + } +} + +void serialSetPower(uint8_t port_nr, bool enabled) +{ + if (port_nr >= MAX_SERIAL_PORTS) return; + uint32_t pwr = (enabled ? 1 : 0) << SERIAL_CONF_POWER_BIT; + uint32_t pwr_mask = (1 << SERIAL_CONF_POWER_BIT) << port_nr * SERIAL_CONF_BITS_PER_PORT; + g_eeGeneral.serialPort = (g_eeGeneral.serialPort & ~pwr_mask) | + (pwr << port_nr * SERIAL_CONF_BITS_PER_PORT); + + serialSetPowerState(port_nr); +} void serialInit(uint8_t port_nr, int mode) { @@ -292,9 +320,14 @@ void serialInit(uint8_t port_nr, int mode) .rx_enable = false, }; - bool power_required = false; - serialSetupPort(mode, params, power_required); - + serialSetupPort(mode, params); + +#if defined(SWSERIALPOWER) + // Set power on/off + if (port_nr < SP_VCP) + serialSetPowerState(port_nr); +#endif + if (params.baudrate != 0) { state->mode = mode; state->port = port; @@ -302,11 +335,6 @@ void serialInit(uint8_t port_nr, int mode) if (port) { if (port->uart && port->uart->init) state->usart_ctx = port->uart->init(¶ms); - - // Set power on/off - if (port->set_pwr) { - port->set_pwr(power_required); - } } // Update callbacks once the port is setup @@ -329,12 +357,19 @@ int serialGetMode(uint8_t port_nr) return getSerialPortMode(port_nr); } +bool serialGetPower(uint8_t port_nr) +{ + return getSerialPower(port_nr); +} + void serialSetMode(uint8_t port_nr, int mode) { if (port_nr >= MAX_SERIAL_PORTS) return; - uint16_t m = mode & 0xF; + uint16_t m = mode & SERIAL_CONF_MODE_MASK; g_eeGeneral.serialPort = - (g_eeGeneral.serialPort & ~(0xF << port_nr * 4)) | (m << port_nr * 4); + (g_eeGeneral.serialPort & + ~(SERIAL_CONF_MODE_MASK << port_nr * SERIAL_CONF_BITS_PER_PORT)) | + (m << port_nr * SERIAL_CONF_BITS_PER_PORT); } // uint8_t serialTracesEnabled(int port_nr) diff --git a/radio/src/serial.h b/radio/src/serial.h index 5e2bfc0f003..da1b9a42348 100644 --- a/radio/src/serial.h +++ b/radio/src/serial.h @@ -25,9 +25,15 @@ #include #include "hal/serial_port.h" +#define SERIAL_CONF_BITS_PER_PORT 8 /* configuration uses 1 byte per serial port */ +#define SERIAL_CONF_MODE_MASK 0x0F /* lower 4 bits for mode */ +#define SERIAL_CONF_POWER_BIT 7 /* MSBit of the configuration byte */ + const etx_serial_port_t* serialGetPort(uint8_t port_nr); int serialGetMode(uint8_t port_nr); void serialSetMode(uint8_t port_nr, int mode); +bool serialGetPower(uint8_t port_nr); +void serialSetPower(uint8_t port_nr, bool enabled); void initSerialPorts(); void serialInit(uint8_t port_nr, int mode); diff --git a/radio/src/storage/yaml/yaml_datastructs_funcs.cpp b/radio/src/storage/yaml/yaml_datastructs_funcs.cpp index fd93c4aaa15..88fe64468ac 100644 --- a/radio/src/storage/yaml/yaml_datastructs_funcs.cpp +++ b/radio/src/storage/yaml/yaml_datastructs_funcs.cpp @@ -1854,6 +1854,8 @@ static bool port_write(void* user, yaml_writer_func wf, void* opaque) static const struct YamlNode struct_serialConfig[] = { YAML_IDX_CUST( "port", port_read, port_write), YAML_ENUM( "mode", 4, enum_UartModes), + YAML_PADDING( 3 ), + YAML_UNSIGNED( "power", 1 ), YAML_END }; @@ -1876,6 +1878,7 @@ static void r_serialMode(void* user, uint8_t* data, uint32_t bitoffs, auto m = yaml_parse_enum(yaml_conv_220::enum_UartModes, val, val_len); if (!m) return; - auto serialPort = reinterpret_cast(data); - *serialPort = (*serialPort & ~(0xF << port_nr * 4)) | (m << port_nr * 4); + auto serialPort = reinterpret_cast(data); + *serialPort = (*serialPort & ~(0xF << port_nr * SERIAL_CONF_BITS_PER_PORT)) | + (m << port_nr * SERIAL_CONF_BITS_PER_PORT); } diff --git a/radio/src/storage/yaml/yaml_datastructs_nv14.cpp b/radio/src/storage/yaml/yaml_datastructs_nv14.cpp index 878fa337900..8f7886af359 100644 --- a/radio/src/storage/yaml/yaml_datastructs_nv14.cpp +++ b/radio/src/storage/yaml/yaml_datastructs_nv14.cpp @@ -423,7 +423,7 @@ static const struct YamlNode struct_RadioData[] = { YAML_ARRAY("customFn", 72, 64, struct_CustomFunctionData, cfn_is_active), YAML_CUSTOM("auxSerialMode",r_serialMode,nullptr), YAML_CUSTOM("aux2SerialMode",r_serialMode,nullptr), - YAML_ARRAY("serialPort", 4, 4, struct_serialConfig, nullptr), + YAML_ARRAY("serialPort", 8, 4, struct_serialConfig, nullptr), YAML_ARRAY("sticksConfig", 0, 4, struct_sticksConfig, stick_name_valid), YAML_ARRAY("switchConfig", 2, 16, struct_switchConfig, nullptr), YAML_ARRAY("potsConfig", 2, 8, struct_potConfig, nullptr), @@ -439,7 +439,7 @@ static const struct YamlNode struct_RadioData[] = { YAML_STRING("ownerRegistrationID", 8), YAML_SIGNED( "uartSampleMode", 2 ), YAML_UNSIGNED( "stickDeadZone", 3 ), - YAML_PADDING( 2 ), + YAML_PADDING( 3 ), YAML_END }; static const struct YamlNode struct_unsigned_8[] = { diff --git a/radio/src/storage/yaml/yaml_datastructs_t12.cpp b/radio/src/storage/yaml/yaml_datastructs_t12.cpp index 1330d527f82..2700c6c8cc3 100644 --- a/radio/src/storage/yaml/yaml_datastructs_t12.cpp +++ b/radio/src/storage/yaml/yaml_datastructs_t12.cpp @@ -394,7 +394,7 @@ static const struct YamlNode struct_RadioData[] = { YAML_ARRAY("customFn", 88, 64, struct_CustomFunctionData, cfn_is_active), YAML_CUSTOM("auxSerialMode",r_serialMode,nullptr), YAML_CUSTOM("aux2SerialMode",r_serialMode,nullptr), - YAML_ARRAY("serialPort", 4, 4, struct_serialConfig, nullptr), + YAML_ARRAY("serialPort", 8, 4, struct_serialConfig, nullptr), YAML_ARRAY("slidersConfig", 1, 4, struct_sliderConfig, nullptr), YAML_PADDING( 4 ), YAML_ARRAY("potsConfig", 2, 4, struct_potConfig, nullptr), @@ -407,7 +407,7 @@ static const struct YamlNode struct_RadioData[] = { YAML_STRING("bluetoothName", 10), YAML_STRING("ownerRegistrationID", 8), YAML_SIGNED( "uartSampleMode", 2 ), - YAML_PADDING( 5 ), + YAML_PADDING( 6 ), YAML_END }; static const struct YamlNode struct_unsigned_8[] = { diff --git a/radio/src/storage/yaml/yaml_datastructs_t8.cpp b/radio/src/storage/yaml/yaml_datastructs_t8.cpp index 2748ad0c729..6859a558da7 100644 --- a/radio/src/storage/yaml/yaml_datastructs_t8.cpp +++ b/radio/src/storage/yaml/yaml_datastructs_t8.cpp @@ -394,7 +394,7 @@ static const struct YamlNode struct_RadioData[] = { YAML_ARRAY("customFn", 88, 64, struct_CustomFunctionData, cfn_is_active), YAML_CUSTOM("auxSerialMode",r_serialMode,nullptr), YAML_CUSTOM("aux2SerialMode",r_serialMode,nullptr), - YAML_ARRAY("serialPort", 4, 4, struct_serialConfig, nullptr), + YAML_ARRAY("serialPort", 8, 4, struct_serialConfig, nullptr), YAML_ARRAY("slidersConfig", 1, 4, struct_sliderConfig, nullptr), YAML_PADDING( 4 ), YAML_ARRAY("potsConfig", 2, 4, struct_potConfig, nullptr), @@ -407,7 +407,7 @@ static const struct YamlNode struct_RadioData[] = { YAML_STRING("bluetoothName", 10), YAML_STRING("ownerRegistrationID", 8), YAML_SIGNED( "uartSampleMode", 2 ), - YAML_PADDING( 5 ), + YAML_PADDING( 6 ), YAML_END }; static const struct YamlNode struct_unsigned_8[] = { diff --git a/radio/src/storage/yaml/yaml_datastructs_tlite.cpp b/radio/src/storage/yaml/yaml_datastructs_tlite.cpp index 2748ad0c729..6859a558da7 100644 --- a/radio/src/storage/yaml/yaml_datastructs_tlite.cpp +++ b/radio/src/storage/yaml/yaml_datastructs_tlite.cpp @@ -394,7 +394,7 @@ static const struct YamlNode struct_RadioData[] = { YAML_ARRAY("customFn", 88, 64, struct_CustomFunctionData, cfn_is_active), YAML_CUSTOM("auxSerialMode",r_serialMode,nullptr), YAML_CUSTOM("aux2SerialMode",r_serialMode,nullptr), - YAML_ARRAY("serialPort", 4, 4, struct_serialConfig, nullptr), + YAML_ARRAY("serialPort", 8, 4, struct_serialConfig, nullptr), YAML_ARRAY("slidersConfig", 1, 4, struct_sliderConfig, nullptr), YAML_PADDING( 4 ), YAML_ARRAY("potsConfig", 2, 4, struct_potConfig, nullptr), @@ -407,7 +407,7 @@ static const struct YamlNode struct_RadioData[] = { YAML_STRING("bluetoothName", 10), YAML_STRING("ownerRegistrationID", 8), YAML_SIGNED( "uartSampleMode", 2 ), - YAML_PADDING( 5 ), + YAML_PADDING( 6 ), YAML_END }; static const struct YamlNode struct_unsigned_8[] = { diff --git a/radio/src/storage/yaml/yaml_datastructs_tpro.cpp b/radio/src/storage/yaml/yaml_datastructs_tpro.cpp index 02a48684cae..c09d9b7c159 100644 --- a/radio/src/storage/yaml/yaml_datastructs_tpro.cpp +++ b/radio/src/storage/yaml/yaml_datastructs_tpro.cpp @@ -402,7 +402,7 @@ static const struct YamlNode struct_RadioData[] = { YAML_ARRAY("customFn", 88, 64, struct_CustomFunctionData, cfn_is_active), YAML_CUSTOM("auxSerialMode",r_serialMode,nullptr), YAML_CUSTOM("aux2SerialMode",r_serialMode,nullptr), - YAML_ARRAY("serialPort", 4, 4, struct_serialConfig, nullptr), + YAML_ARRAY("serialPort", 8, 4, struct_serialConfig, nullptr), YAML_ARRAY("slidersConfig", 1, 4, struct_sliderConfig, nullptr), YAML_PADDING( 4 ), YAML_ARRAY("potsConfig", 2, 4, struct_potConfig, nullptr), @@ -413,7 +413,7 @@ static const struct YamlNode struct_RadioData[] = { YAML_PADDING( 144 ), YAML_STRING("ownerRegistrationID", 8), YAML_SIGNED( "uartSampleMode", 2 ), - YAML_PADDING( 5 ), + YAML_PADDING( 6 ), YAML_END }; static const struct YamlNode struct_unsigned_8[] = { diff --git a/radio/src/storage/yaml/yaml_datastructs_tx12.cpp b/radio/src/storage/yaml/yaml_datastructs_tx12.cpp index b1d225cd0af..638e60cefde 100644 --- a/radio/src/storage/yaml/yaml_datastructs_tx12.cpp +++ b/radio/src/storage/yaml/yaml_datastructs_tx12.cpp @@ -394,7 +394,7 @@ static const struct YamlNode struct_RadioData[] = { YAML_ARRAY("customFn", 88, 64, struct_CustomFunctionData, cfn_is_active), YAML_CUSTOM("auxSerialMode",r_serialMode,nullptr), YAML_CUSTOM("aux2SerialMode",r_serialMode,nullptr), - YAML_ARRAY("serialPort", 4, 4, struct_serialConfig, nullptr), + YAML_ARRAY("serialPort", 8, 4, struct_serialConfig, nullptr), YAML_ARRAY("slidersConfig", 1, 4, struct_sliderConfig, nullptr), YAML_PADDING( 4 ), YAML_ARRAY("potsConfig", 2, 4, struct_potConfig, nullptr), @@ -407,7 +407,7 @@ static const struct YamlNode struct_RadioData[] = { YAML_STRING("bluetoothName", 10), YAML_STRING("ownerRegistrationID", 8), YAML_SIGNED( "uartSampleMode", 2 ), - YAML_PADDING( 5 ), + YAML_PADDING( 6 ), YAML_END }; static const struct YamlNode struct_unsigned_8[] = { diff --git a/radio/src/storage/yaml/yaml_datastructs_x10.cpp b/radio/src/storage/yaml/yaml_datastructs_x10.cpp index 2d5dac3bf88..471464ad51e 100644 --- a/radio/src/storage/yaml/yaml_datastructs_x10.cpp +++ b/radio/src/storage/yaml/yaml_datastructs_x10.cpp @@ -444,7 +444,7 @@ static const struct YamlNode struct_RadioData[] = { YAML_ARRAY("customFn", 72, 64, struct_CustomFunctionData, cfn_is_active), YAML_CUSTOM("auxSerialMode",r_serialMode,nullptr), YAML_CUSTOM("aux2SerialMode",r_serialMode,nullptr), - YAML_ARRAY("serialPort", 4, 4, struct_serialConfig, nullptr), + YAML_ARRAY("serialPort", 8, 4, struct_serialConfig, nullptr), YAML_ARRAY("sticksConfig", 0, 4, struct_sticksConfig, stick_name_valid), YAML_ARRAY("switchConfig", 2, 16, struct_switchConfig, nullptr), YAML_ARRAY("potsConfig", 2, 8, struct_potConfig, nullptr), @@ -459,7 +459,7 @@ static const struct YamlNode struct_RadioData[] = { YAML_STRUCT("themeData", 480, struct_OpenTxTheme__PersistentData, NULL), YAML_STRING("ownerRegistrationID", 8), YAML_SIGNED( "uartSampleMode", 2 ), - YAML_PADDING( 5 ), + YAML_PADDING( 6 ), YAML_END }; static const struct YamlNode struct_unsigned_8[] = { diff --git a/radio/src/storage/yaml/yaml_datastructs_x12s.cpp b/radio/src/storage/yaml/yaml_datastructs_x12s.cpp index f9a617778dc..aa4343d9af2 100644 --- a/radio/src/storage/yaml/yaml_datastructs_x12s.cpp +++ b/radio/src/storage/yaml/yaml_datastructs_x12s.cpp @@ -442,7 +442,7 @@ static const struct YamlNode struct_RadioData[] = { YAML_ARRAY("customFn", 72, 64, struct_CustomFunctionData, cfn_is_active), YAML_CUSTOM("auxSerialMode",r_serialMode,nullptr), YAML_CUSTOM("aux2SerialMode",r_serialMode,nullptr), - YAML_ARRAY("serialPort", 4, 4, struct_serialConfig, nullptr), + YAML_ARRAY("serialPort", 8, 4, struct_serialConfig, nullptr), YAML_ARRAY("sticksConfig", 0, 4, struct_sticksConfig, stick_name_valid), YAML_ARRAY("switchConfig", 2, 16, struct_switchConfig, nullptr), YAML_ARRAY("potsConfig", 2, 8, struct_potConfig, nullptr), @@ -457,7 +457,7 @@ static const struct YamlNode struct_RadioData[] = { YAML_STRUCT("themeData", 480, struct_OpenTxTheme__PersistentData, NULL), YAML_STRING("ownerRegistrationID", 8), YAML_SIGNED( "uartSampleMode", 2 ), - YAML_PADDING( 5 ), + YAML_PADDING( 6 ), YAML_END }; static const struct YamlNode struct_unsigned_8[] = { diff --git a/radio/src/storage/yaml/yaml_datastructs_x7.cpp b/radio/src/storage/yaml/yaml_datastructs_x7.cpp index 2748ad0c729..6859a558da7 100644 --- a/radio/src/storage/yaml/yaml_datastructs_x7.cpp +++ b/radio/src/storage/yaml/yaml_datastructs_x7.cpp @@ -394,7 +394,7 @@ static const struct YamlNode struct_RadioData[] = { YAML_ARRAY("customFn", 88, 64, struct_CustomFunctionData, cfn_is_active), YAML_CUSTOM("auxSerialMode",r_serialMode,nullptr), YAML_CUSTOM("aux2SerialMode",r_serialMode,nullptr), - YAML_ARRAY("serialPort", 4, 4, struct_serialConfig, nullptr), + YAML_ARRAY("serialPort", 8, 4, struct_serialConfig, nullptr), YAML_ARRAY("slidersConfig", 1, 4, struct_sliderConfig, nullptr), YAML_PADDING( 4 ), YAML_ARRAY("potsConfig", 2, 4, struct_potConfig, nullptr), @@ -407,7 +407,7 @@ static const struct YamlNode struct_RadioData[] = { YAML_STRING("bluetoothName", 10), YAML_STRING("ownerRegistrationID", 8), YAML_SIGNED( "uartSampleMode", 2 ), - YAML_PADDING( 5 ), + YAML_PADDING( 6 ), YAML_END }; static const struct YamlNode struct_unsigned_8[] = { diff --git a/radio/src/storage/yaml/yaml_datastructs_x9d.cpp b/radio/src/storage/yaml/yaml_datastructs_x9d.cpp index d0a348e3846..653bf6a8383 100644 --- a/radio/src/storage/yaml/yaml_datastructs_x9d.cpp +++ b/radio/src/storage/yaml/yaml_datastructs_x9d.cpp @@ -401,7 +401,7 @@ static const struct YamlNode struct_RadioData[] = { YAML_ARRAY("customFn", 88, 64, struct_CustomFunctionData, cfn_is_active), YAML_CUSTOM("auxSerialMode",r_serialMode,nullptr), YAML_CUSTOM("aux2SerialMode",r_serialMode,nullptr), - YAML_ARRAY("serialPort", 4, 4, struct_serialConfig, nullptr), + YAML_ARRAY("serialPort", 8, 4, struct_serialConfig, nullptr), YAML_ARRAY("slidersConfig", 1, 4, struct_sliderConfig, nullptr), YAML_PADDING( 4 ), YAML_ARRAY("potsConfig", 2, 4, struct_potConfig, nullptr), @@ -414,7 +414,7 @@ static const struct YamlNode struct_RadioData[] = { YAML_STRING("bluetoothName", 10), YAML_STRING("ownerRegistrationID", 8), YAML_SIGNED( "uartSampleMode", 2 ), - YAML_PADDING( 5 ), + YAML_PADDING( 6 ), YAML_END }; static const struct YamlNode struct_unsigned_8[] = { diff --git a/radio/src/storage/yaml/yaml_datastructs_x9e.cpp b/radio/src/storage/yaml/yaml_datastructs_x9e.cpp index 376191a8898..67623a95a75 100644 --- a/radio/src/storage/yaml/yaml_datastructs_x9e.cpp +++ b/radio/src/storage/yaml/yaml_datastructs_x9e.cpp @@ -440,7 +440,7 @@ static const struct YamlNode struct_RadioData[] = { YAML_ARRAY("customFn", 88, 64, struct_CustomFunctionData, cfn_is_active), YAML_CUSTOM("auxSerialMode",r_serialMode,nullptr), YAML_CUSTOM("aux2SerialMode",r_serialMode,nullptr), - YAML_ARRAY("serialPort", 4, 4, struct_serialConfig, nullptr), + YAML_ARRAY("serialPort", 8, 4, struct_serialConfig, nullptr), YAML_ARRAY("slidersConfig", 1, 4, struct_sliderConfig, nullptr), YAML_PADDING( 4 ), YAML_ARRAY("potsConfig", 2, 4, struct_potConfig, nullptr), @@ -453,7 +453,7 @@ static const struct YamlNode struct_RadioData[] = { YAML_STRING("bluetoothName", 10), YAML_STRING("ownerRegistrationID", 8), YAML_SIGNED( "uartSampleMode", 2 ), - YAML_PADDING( 5 ), + YAML_PADDING( 6 ), YAML_END }; static const struct YamlNode struct_unsigned_8[] = { diff --git a/radio/src/storage/yaml/yaml_datastructs_x9lite.cpp b/radio/src/storage/yaml/yaml_datastructs_x9lite.cpp index 87739b50908..adf23742f41 100644 --- a/radio/src/storage/yaml/yaml_datastructs_x9lite.cpp +++ b/radio/src/storage/yaml/yaml_datastructs_x9lite.cpp @@ -381,7 +381,7 @@ static const struct YamlNode struct_RadioData[] = { YAML_ARRAY("customFn", 88, 64, struct_CustomFunctionData, cfn_is_active), YAML_CUSTOM("auxSerialMode",r_serialMode,nullptr), YAML_CUSTOM("aux2SerialMode",r_serialMode,nullptr), - YAML_ARRAY("serialPort", 4, 4, struct_serialConfig, nullptr), + YAML_ARRAY("serialPort", 8, 4, struct_serialConfig, nullptr), YAML_ARRAY("slidersConfig", 1, 4, struct_sliderConfig, nullptr), YAML_PADDING( 4 ), YAML_ARRAY("potsConfig", 2, 4, struct_potConfig, nullptr), @@ -392,7 +392,7 @@ static const struct YamlNode struct_RadioData[] = { YAML_PADDING( 120 ), YAML_STRING("ownerRegistrationID", 8), YAML_SIGNED( "uartSampleMode", 2 ), - YAML_PADDING( 5 ), + YAML_PADDING( 6 ), YAML_END }; static const struct YamlNode struct_unsigned_8[] = { diff --git a/radio/src/storage/yaml/yaml_datastructs_x9lites.cpp b/radio/src/storage/yaml/yaml_datastructs_x9lites.cpp index c9220415cff..e36f38effe7 100644 --- a/radio/src/storage/yaml/yaml_datastructs_x9lites.cpp +++ b/radio/src/storage/yaml/yaml_datastructs_x9lites.cpp @@ -389,7 +389,7 @@ static const struct YamlNode struct_RadioData[] = { YAML_ARRAY("customFn", 88, 64, struct_CustomFunctionData, cfn_is_active), YAML_CUSTOM("auxSerialMode",r_serialMode,nullptr), YAML_CUSTOM("aux2SerialMode",r_serialMode,nullptr), - YAML_ARRAY("serialPort", 4, 4, struct_serialConfig, nullptr), + YAML_ARRAY("serialPort", 8, 4, struct_serialConfig, nullptr), YAML_ARRAY("slidersConfig", 1, 4, struct_sliderConfig, nullptr), YAML_PADDING( 4 ), YAML_ARRAY("potsConfig", 2, 4, struct_potConfig, nullptr), @@ -402,7 +402,7 @@ static const struct YamlNode struct_RadioData[] = { YAML_STRING("bluetoothName", 10), YAML_STRING("ownerRegistrationID", 8), YAML_SIGNED( "uartSampleMode", 2 ), - YAML_PADDING( 5 ), + YAML_PADDING( 6 ), YAML_END }; static const struct YamlNode struct_unsigned_8[] = { diff --git a/radio/src/storage/yaml/yaml_datastructs_xlite.cpp b/radio/src/storage/yaml/yaml_datastructs_xlite.cpp index da1da3b806e..87cb71577a2 100644 --- a/radio/src/storage/yaml/yaml_datastructs_xlite.cpp +++ b/radio/src/storage/yaml/yaml_datastructs_xlite.cpp @@ -386,7 +386,7 @@ static const struct YamlNode struct_RadioData[] = { YAML_ARRAY("customFn", 88, 64, struct_CustomFunctionData, cfn_is_active), YAML_CUSTOM("auxSerialMode",r_serialMode,nullptr), YAML_CUSTOM("aux2SerialMode",r_serialMode,nullptr), - YAML_ARRAY("serialPort", 4, 4, struct_serialConfig, nullptr), + YAML_ARRAY("serialPort", 8, 4, struct_serialConfig, nullptr), YAML_ARRAY("slidersConfig", 1, 4, struct_sliderConfig, nullptr), YAML_PADDING( 4 ), YAML_ARRAY("potsConfig", 2, 4, struct_potConfig, nullptr), @@ -399,7 +399,7 @@ static const struct YamlNode struct_RadioData[] = { YAML_STRING("bluetoothName", 10), YAML_STRING("ownerRegistrationID", 8), YAML_SIGNED( "uartSampleMode", 2 ), - YAML_PADDING( 5 ), + YAML_PADDING( 6 ), YAML_END }; static const struct YamlNode struct_unsigned_8[] = { diff --git a/radio/src/storage/yaml/yaml_datastructs_xlites.cpp b/radio/src/storage/yaml/yaml_datastructs_xlites.cpp index 81d132563cd..aa8466ef770 100644 --- a/radio/src/storage/yaml/yaml_datastructs_xlites.cpp +++ b/radio/src/storage/yaml/yaml_datastructs_xlites.cpp @@ -388,7 +388,7 @@ static const struct YamlNode struct_RadioData[] = { YAML_ARRAY("customFn", 88, 64, struct_CustomFunctionData, cfn_is_active), YAML_CUSTOM("auxSerialMode",r_serialMode,nullptr), YAML_CUSTOM("aux2SerialMode",r_serialMode,nullptr), - YAML_ARRAY("serialPort", 4, 4, struct_serialConfig, nullptr), + YAML_ARRAY("serialPort", 8, 4, struct_serialConfig, nullptr), YAML_ARRAY("slidersConfig", 1, 4, struct_sliderConfig, nullptr), YAML_PADDING( 4 ), YAML_ARRAY("potsConfig", 2, 4, struct_potConfig, nullptr), @@ -403,7 +403,7 @@ static const struct YamlNode struct_RadioData[] = { YAML_SIGNED( "gyroMax", 8 ), YAML_SIGNED( "gyroOffset", 8 ), YAML_SIGNED( "uartSampleMode", 2 ), - YAML_PADDING( 5 ), + YAML_PADDING( 6 ), YAML_END }; static const struct YamlNode struct_unsigned_8[] = { diff --git a/radio/src/storage/yaml/yaml_datastructs_zorro.cpp b/radio/src/storage/yaml/yaml_datastructs_zorro.cpp index 9df1ea6f983..027a7463c9f 100644 --- a/radio/src/storage/yaml/yaml_datastructs_zorro.cpp +++ b/radio/src/storage/yaml/yaml_datastructs_zorro.cpp @@ -394,7 +394,7 @@ static const struct YamlNode struct_RadioData[] = { YAML_ARRAY("customFn", 88, 64, struct_CustomFunctionData, cfn_is_active), YAML_CUSTOM("auxSerialMode",r_serialMode,nullptr), YAML_CUSTOM("aux2SerialMode",r_serialMode,nullptr), - YAML_ARRAY("serialPort", 4, 4, struct_serialConfig, nullptr), + YAML_ARRAY("serialPort", 8, 4, struct_serialConfig, nullptr), YAML_ARRAY("slidersConfig", 1, 4, struct_sliderConfig, nullptr), YAML_PADDING( 4 ), YAML_ARRAY("potsConfig", 2, 4, struct_potConfig, nullptr), @@ -407,7 +407,7 @@ static const struct YamlNode struct_RadioData[] = { YAML_STRING("bluetoothName", 10), YAML_STRING("ownerRegistrationID", 8), YAML_SIGNED( "uartSampleMode", 2 ), - YAML_PADDING( 5 ), + YAML_PADDING( 6 ), YAML_END }; static const struct YamlNode struct_unsigned_8[] = { diff --git a/radio/src/targets/common/arm/stm32/bootloader/boot.cpp b/radio/src/targets/common/arm/stm32/bootloader/boot.cpp index 2dbe723bc2e..3fd63880cc2 100644 --- a/radio/src/targets/common/arm/stm32/bootloader/boot.cpp +++ b/radio/src/targets/common/arm/stm32/bootloader/boot.cpp @@ -219,6 +219,17 @@ int main() pwrInit(); keysInit(); +#if defined(SWSERIALPOWER) + #if defined(AUX_SERIAL) + void set_aux_pwr(uint8_t on); + set_aux_pwr(0); + #endif + #if defined(AUX2_SERIAL) + void set_aux2_pwr(uint8_t on); + set_aux2_pwr(0); + #endif +#endif + // wait a bit for the inputs to stabilize... if (!WAS_RESET_BY_WATCHDOG_OR_SOFTWARE()) { for (uint32_t i = 0; i < 150000; i++) { diff --git a/radio/src/targets/horus/CMakeLists.txt b/radio/src/targets/horus/CMakeLists.txt index 050fd4e7e90..a20ba5083f0 100644 --- a/radio/src/targets/horus/CMakeLists.txt +++ b/radio/src/targets/horus/CMakeLists.txt @@ -99,6 +99,7 @@ if (PCB STREQUAL X10) option(BLUETOOTH "Support for bluetooth module" OFF) option(INTERNAL_GPS "Support for internal ublox GPS" ON) set(HARDWARE_TOUCH YES) + set(SWSERIALPOWER YES) set(USB_CHARGER YES) set(DEFAULT_THEME "DARKBLUE") add_definitions(-DMANUFACTURER_RADIOMASTER) @@ -233,6 +234,10 @@ if(HARDWARE_TOUCH) set(SOFTWARE_KEYBOARD ON) endif() +if(SWSERIALPOWER) + add_definitions(-DSWSERIALPOWER) +endif() + if(USB_CHARGER) set(FIRMWARE_TARGET_SRC ${FIRMWARE_TARGET_SRC} usb_charger_driver.cpp) add_definitions(-DUSB_CHARGER) diff --git a/radio/src/translations.cpp b/radio/src/translations.cpp index 767a85203f5..bb35c9e64ab 100644 --- a/radio/src/translations.cpp +++ b/radio/src/translations.cpp @@ -744,6 +744,7 @@ const char STR_SCALE[] = TR_SCALE; const char STR_VIEW_CHANNELS[] = TR_VIEW_CHANNELS; const char STR_AUX_SERIAL_MODE[] = TR_AUX_SERIAL_MODE; const char STR_AUX2_SERIAL_MODE[] = TR_AUX2_SERIAL_MODE; +const char STR_AUX_SERIAL_PORT_POWER[] = TR_AUX_SERIAL_PORT_POWER; const char STR_THROTTLE_LABEL[] = TR_THROTTLE_LABEL; const char STR_SCRIPT[] = TR_SCRIPT; const char STR_INPUTS[] = TR_INPUTS; diff --git a/radio/src/translations.h b/radio/src/translations.h index 5a1ae773b0c..3abfe608f58 100644 --- a/radio/src/translations.h +++ b/radio/src/translations.h @@ -115,7 +115,6 @@ extern const char STR_VTRIMINC[]; extern const char STR_VDISPLAYTRIMS[]; extern const char STR_RETA123[]; - extern const char STR_VBLMODE[]; extern const char STR_VCURVEFUNC[]; extern const char STR_VMLTPX[]; @@ -240,7 +239,6 @@ extern const char STR_TTRIM_SW[]; extern const char STR_BEEPCTR[]; extern const char STR_USE_GLOBAL_FUNCS[]; - extern const char STR_PPMFRAME[]; extern const char STR_REFRESHRATE[]; extern const char STR_MS[]; @@ -1089,6 +1087,7 @@ extern const char STR_VIEW_CHANNELS[]; extern const char STR_POTWARNING[]; extern const char STR_AUX_SERIAL_MODE[]; extern const char STR_AUX2_SERIAL_MODE[]; +extern const char STR_AUX_SERIAL_PORT_POWER[]; extern const char STR_THROTTLE_LABEL[]; extern const char STR_SCRIPT[]; extern const char STR_INPUTS[]; diff --git a/radio/src/translations/cn.h.txt b/radio/src/translations/cn.h.txt index b9f67505480..c199fbcc4de 100644 --- a/radio/src/translations/cn.h.txt +++ b/radio/src/translations/cn.h.txt @@ -992,6 +992,7 @@ #define TR_FAS_OFFSET TR(INDENT "FAS Ofs", INDENT "FAS 偏移量") #define TR_AUX_SERIAL_MODE "串口" #define TR_AUX2_SERIAL_MODE "串口 2" +#define TR_AUX_SERIAL_PORT_POWER "Port power" #define TR_SCRIPT "脚本" #define TR_INPUTS "输入" #define TR_OUTPUTS "输出" diff --git a/radio/src/translations/cz.h.txt b/radio/src/translations/cz.h.txt index b1caa1bd367..440ff9fea69 100644 --- a/radio/src/translations/cz.h.txt +++ b/radio/src/translations/cz.h.txt @@ -1037,6 +1037,7 @@ #define TR_FAS_OFFSET TR(INDENT "FAS Ofs", INDENT "FAS Ofset") #define TR_AUX_SERIAL_MODE "Seriový port" #define TR_AUX2_SERIAL_MODE "Seriový port 2" +#define TR_AUX_SERIAL_PORT_POWER "Port power" #define TR_SCRIPT "Skript" #define TR_INPUTS "Vstupy" #define TR_OUTPUTS "Výstupy" diff --git a/radio/src/translations/de.h.txt b/radio/src/translations/de.h.txt index be37b7dedba..0d80f27a183 100644 --- a/radio/src/translations/de.h.txt +++ b/radio/src/translations/de.h.txt @@ -1043,6 +1043,7 @@ #define TR_FAS_OFFSET TR(INDENT "FAS-Ofs", INDENT "FAS-Offset") #define TR_AUX_SERIAL_MODE "Serieller Port" #define TR_AUX2_SERIAL_MODE "Serieller Port 2" +#define TR_AUX_SERIAL_PORT_POWER "Versorgung" #define TR_SCRIPT "Lua-Skript" #define TR_INPUTS "Eingaben" #define TR_OUTPUTS "Ausgaben" diff --git a/radio/src/translations/en.h.txt b/radio/src/translations/en.h.txt index 0f4b4f540f5..db7355305d3 100644 --- a/radio/src/translations/en.h.txt +++ b/radio/src/translations/en.h.txt @@ -1043,6 +1043,7 @@ #define TR_FAS_OFFSET TR(INDENT "FAS Ofs", INDENT "FAS offset") #define TR_AUX_SERIAL_MODE "Serial port" #define TR_AUX2_SERIAL_MODE "Serial port 2" +#define TR_AUX_SERIAL_PORT_POWER "Port power" #define TR_SCRIPT "Script" #define TR_INPUTS "Inputs" #define TR_OUTPUTS "Outputs" diff --git a/radio/src/translations/es.h.txt b/radio/src/translations/es.h.txt index 47736f98d8e..c582b2e5ed5 100644 --- a/radio/src/translations/es.h.txt +++ b/radio/src/translations/es.h.txt @@ -1044,6 +1044,7 @@ #define TR_FAS_OFFSET TR(INDENT "FAS Ofs", INDENT "FAS Offset") #define TR_AUX_SERIAL_MODE "Puerto serie" #define TR_AUX2_SERIAL_MODE "Puerto serie 2" +#define TR_AUX_SERIAL_PORT_POWER "Port power" #define TR_SCRIPT "Script" #define TR_INPUTS "Entradas" #define TR_OUTPUTS "Salidas" diff --git a/radio/src/translations/fi.h.txt b/radio/src/translations/fi.h.txt index 188da3e7a76..d7ca2e3fa47 100644 --- a/radio/src/translations/fi.h.txt +++ b/radio/src/translations/fi.h.txt @@ -1055,13 +1055,14 @@ #define TR_FAS_OFFSET TR(INDENT "FAS Ofs", INDENT "FAS Offset") #define TR_AUX_SERIAL_MODE "Serial port" #define TR_AUX2_SERIAL_MODE "Serial port 2" -#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_AUX_SERIAL_PORT_POWER "Virta" +#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_SPORT_UPDATE_POWER_MODE "SP Power" #define LEN_SPORT_UPDATE_POWER_MODES "\004" #define TR_SPORT_UPDATE_POWER_MODES "AUTO""ON\0 " diff --git a/radio/src/translations/fr.h.txt b/radio/src/translations/fr.h.txt index be0c484eec4..5278a52ddf8 100644 --- a/radio/src/translations/fr.h.txt +++ b/radio/src/translations/fr.h.txt @@ -1059,6 +1059,7 @@ #define TR_FAS_OFFSET TR(INDENT "Corr FAS", INDENT "Correction FAS") #define TR_AUX_SERIAL_MODE "Port série" #define TR_AUX2_SERIAL_MODE "Port série 2" +#define TR_AUX_SERIAL_PORT_POWER "Port power" #define TR_SCRIPT "Script" #define TR_INPUTS "Entrées" #define TR_OUTPUTS "Sorties" diff --git a/radio/src/translations/it.h.txt b/radio/src/translations/it.h.txt index e5e0d81aca8..eddb06528d9 100644 --- a/radio/src/translations/it.h.txt +++ b/radio/src/translations/it.h.txt @@ -1062,6 +1062,7 @@ #define TR_FAS_OFFSET TR(INDENT "FAS Ofs", INDENT "FAS Offset") #define TR_AUX_SERIAL_MODE "Porta Seriale" #define TR_AUX2_SERIAL_MODE "Porta Seriale 2" +#define TR_AUX_SERIAL_PORT_POWER "Port power" #define TR_SCRIPT "Script" #define TR_INPUTS "Ingresso" #define TR_OUTPUTS "Uscita" diff --git a/radio/src/translations/nl.h.txt b/radio/src/translations/nl.h.txt index 4404d3d1d7b..7dc5949eb2d 100644 --- a/radio/src/translations/nl.h.txt +++ b/radio/src/translations/nl.h.txt @@ -67,7 +67,6 @@ #define LEN_SWTYPES "\006" #define TR_SWTYPES "Geen\0 ""Wissel""2POS\0 ""3POS\0" - #define LEN_POTTYPES TR("\013","\021") #define TR_POTTYPES TR("None\0 ""Pot w. det\0""Multipos\0 ""Pot\0 ", "Geen\0 ""Pot met Klik\0 ""Standenschakelaar""Pot zonder Klik\0 ") @@ -1046,6 +1045,7 @@ #define TR_FAS_OFFSET TR(INDENT "FAS Ofs", INDENT "FAS Offset") #define TR_AUX_SERIAL_MODE "Seriele poort" #define TR_AUX2_SERIAL_MODE "Seriele poort 2" +#define TR_AUX_SERIAL_PORT_POWER "Port power" #define TR_SCRIPT "Script" #define TR_INPUTS "Inputs" #define TR_OUTPUTS "Outputs" diff --git a/radio/src/translations/pl.h.txt b/radio/src/translations/pl.h.txt index 7736b9b2c52..ccdc2f6d459 100644 --- a/radio/src/translations/pl.h.txt +++ b/radio/src/translations/pl.h.txt @@ -1058,6 +1058,7 @@ #define TR_FAS_OFFSET TR(INDENT "FAS Ofs", INDENT "FAS Offset") #define TR_AUX_SERIAL_MODE "Port szreg." #define TR_AUX2_SERIAL_MODE "Port szreg. 2" +#define TR_AUX_SERIAL_PORT_POWER "Port power" #define TR_SCRIPT "Skrypt" #define TR_INPUTS "Wejścia" #define TR_OUTPUTS "Wyjścia" diff --git a/radio/src/translations/pt.h.txt b/radio/src/translations/pt.h.txt index 8e3a8664f69..f46c80427ef 100644 --- a/radio/src/translations/pt.h.txt +++ b/radio/src/translations/pt.h.txt @@ -1066,6 +1066,7 @@ #define TR_FAS_OFFSET TR(INDENT "FAS Ofs", INDENT "FAS Offset") #define TR_AUX_SERIAL_MODE "Serial port" #define TR_AUX2_SERIAL_MODE "Serial port 2" +#define TR_AUX_SERIAL_PORT_POWER "Port power" #define TR_SCRIPT "Script" #define TR_INPUTS "Inputs" #define TR_OUTPUTS "Outputs" diff --git a/radio/src/translations/se.h.txt b/radio/src/translations/se.h.txt index a306a4383e9..21bda0abace 100644 --- a/radio/src/translations/se.h.txt +++ b/radio/src/translations/se.h.txt @@ -1066,6 +1066,7 @@ #define TR_FAS_OFFSET TR(INDENT "FAS Ofs", INDENT "FAS Offset") #define TR_AUX_SERIAL_MODE "Serieporten" #define TR_AUX2_SERIAL_MODE "Serieporten 2" +#define TR_AUX_SERIAL_PORT_POWER "Port power" #define TR_SCRIPT "Programkod" #define TR_INPUTS "Input" #define TR_OUTPUTS "Outputs" diff --git a/radio/src/translations/tw.h.txt b/radio/src/translations/tw.h.txt index a8eda11067b..2ec9c3db325 100644 --- a/radio/src/translations/tw.h.txt +++ b/radio/src/translations/tw.h.txt @@ -992,6 +992,7 @@ #define TR_FAS_OFFSET TR(INDENT "FAS Ofs", INDENT "FAS 偏移量") #define TR_AUX_SERIAL_MODE "端口" #define TR_AUX2_SERIAL_MODE "端口 2" +#define TR_AUX_SERIAL_PORT_POWER "Port power" #define TR_SCRIPT "腳本" #define TR_INPUTS "輸入" #define TR_OUTPUTS "輸出"