diff --git a/companion/src/CMakeLists.txt b/companion/src/CMakeLists.txt index 34b8ca442..d92f7765d 100644 --- a/companion/src/CMakeLists.txt +++ b/companion/src/CMakeLists.txt @@ -170,6 +170,7 @@ set(companion_SRCS radionotfound.cpp wizarddata.cpp wizarddialog.cpp + multiprotocols.cpp ) set(companion_MOC_HDRS diff --git a/companion/src/eeprominterface.cpp b/companion/src/eeprominterface.cpp index 5efec398c..ff8c65a52 100644 --- a/companion/src/eeprominterface.cpp +++ b/companion/src/eeprominterface.cpp @@ -28,6 +28,7 @@ #include "wizarddata.h" #include "firmwareinterface.h" #include "macros.h" +#include "multiprotocols.h" #include #include #include @@ -1844,46 +1845,6 @@ SimulatorInterface * getCurrentSimulator() return NULL; } -unsigned int getNumSubtypes(MultiModuleRFProtocols type) -{ - switch (type) { - case MM_RF_PROTO_HISKY: - case MM_RF_PROTO_SYMAX: - case MM_RF_PROTO_KN: - case MM_RF_PROTO_SLT: - case MM_RF_PROTO_FY326: - case MM_RF_PROTO_BAYANG: - case MM_RF_PROTO_V2X2: - return 2; - - case MM_RF_PROTO_Q2X2: - case MM_RF_PROTO_CG023: - return 3; - - case MM_RF_PROTO_DSM2: - case MM_RF_PROTO_MT99XX: - case MM_RF_PROTO_HONTAI: - case MM_RF_PROTO_AFHDS2A: - case MM_RF_PROTO_Q303: - return 4; - - case MM_RF_PROTO_FLYSKY: - case MM_RF_PROTO_MJXQ: - case MM_RF_PROTO_YD717: - return 5; - - case MM_RF_PROTO_FRSKY: - case MM_RF_PROTO_WK_2X01: - return 6; - - case MM_RF_PROTO_CX10: - return 8; - default: - return 1; - } - -} - void FlightModeData::clear(const int phase) { memset(this, 0, sizeof(FlightModeData)); diff --git a/companion/src/modeledit/setup.cpp b/companion/src/modeledit/setup.cpp index b2498e83e..81a60f5c9 100644 --- a/companion/src/modeledit/setup.cpp +++ b/companion/src/modeledit/setup.cpp @@ -25,6 +25,7 @@ #include "helpers.h" #include "appdata.h" #include "modelprinter.h" +#include "multiprotocols.h" TimerPanel::TimerPanel(QWidget *parent, ModelData & model, TimerData & timer, GeneralSettings & generalSettings, Firmware * firmware, QWidget * prevFocus): ModelPanel(parent, model, generalSettings, firmware), @@ -157,6 +158,7 @@ void TimerPanel::on_name_editingFinished() #define MASK_OPEN_DRAIN 64 #define MASK_MULTIMODULE 128 #define MASK_ANTENNA 256 +#define MASK_MULTIOPTION 512 quint8 ModulePanel::failsafesValueDisplayType = ModulePanel::FAILSAFE_DISPLAY_PERCENT; @@ -381,6 +383,13 @@ void ModulePanel::update() break; case PULSES_MULTIMODULE: mask |= MASK_CHANNELS_RANGE | MASK_RX_NUMBER | MASK_MULTIMODULE; + max_rx_num = 15; + if (module.multi.rfProtocol == MM_RF_PROTO_DSM2) + mask |= MASK_CHANNELS_COUNT; + else + module.channelsCount = 16; + if (multiProtocols.getProtocol(module.multi.rfProtocol).optionsstr != nullptr) + mask |= MASK_MULTIOPTION; break; case PULSES_OFF: break; @@ -442,9 +451,11 @@ void ModulePanel::update() ui->multiProtocol->setCurrentIndex(module.multi.rfProtocol); ui->label_multiSubType->setVisible(mask & MASK_MULTIMODULE); ui->multiSubType->setVisible(mask & MASK_MULTIMODULE); + ui->label_option->setVisible(mask & MASK_MULTIOPTION); + ui->optionValue->setVisible(mask & MASK_MULTIOPTION); if (mask & MASK_MULTIMODULE) { - int numEntries = getNumSubtypes(static_cast(module.multi.rfProtocol)); + int numEntries = multiProtocols.getProtocol(module.multi.rfProtocol).numSubytes(); if (module.multi.customProto) numEntries=8; // Removes extra items @@ -456,6 +467,14 @@ void ModulePanel::update() ui->multiSubType->addItem(ModelPrinter::printMultiSubType(module.multi.rfProtocol, module.multi.customProto, i), (QVariant) i); } } + + if (mask & MASK_MULTIOPTION) { + auto pdef = multiProtocols.getProtocol(module.multi.rfProtocol); + ui->optionValue->setMinimum(pdef.getOptionMin()); + ui->optionValue->setMaximum(pdef.getOptionMax()); + ui->optionValue->setValue(module.multi.optionValue); + ui->label_option->setText(pdef.optionsstr); + } ui->multiSubType->setCurrentIndex(module.subType); ui->autoBind->setVisible(mask & MASK_MULTIMODULE); @@ -592,8 +611,8 @@ void ModulePanel::on_multiProtocol_currentIndexChanged(int index) { if (!lock) { lock=true; - module.multi.rfProtocol = index; - unsigned int maxSubTypes = getNumSubtypes(static_cast(index)); + module.multi.rfProtocol = (unsigned int) index; + unsigned int maxSubTypes = multiProtocols.getProtocol(index).numSubytes(); if (module.multi.customProto) maxSubTypes=8; module.subType = std::min(module.subType, maxSubTypes -1); @@ -603,6 +622,12 @@ void ModulePanel::on_multiProtocol_currentIndexChanged(int index) } } +void ModulePanel::on_optionValue_editingFinished() +{ + module.multi.optionValue = ui->optionValue->value(); + emit modified(); +} + void ModulePanel::on_multiSubType_currentIndexChanged(int index) { if (!lock) { diff --git a/companion/src/modeledit/setup.h b/companion/src/modeledit/setup.h index 18a8acf41..d31155f14 100644 --- a/companion/src/modeledit/setup.h +++ b/companion/src/modeledit/setup.h @@ -91,6 +91,7 @@ class ModulePanel : public ModelPanel void onFailsafePercentChanged(double value); void onFailsafesDisplayValueTypeChanged(int type); void updateFailsafe(int channel); + void on_optionValue_editingFinished(); private: enum FailsafeValueDisplayTypes { FAILSAFE_DISPLAY_PERCENT = 1, FAILSAFE_DISPLAY_USEC = 2 }; diff --git a/companion/src/modeledit/setup_module.ui b/companion/src/modeledit/setup_module.ui index 6677b468b..a4fc5d3b3 100644 --- a/companion/src/modeledit/setup_module.ui +++ b/companion/src/modeledit/setup_module.ui @@ -274,6 +274,20 @@ + + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + Option value + + + diff --git a/companion/src/modelprinter.cpp b/companion/src/modelprinter.cpp index 45472be04..35edaa0f9 100644 --- a/companion/src/modelprinter.cpp +++ b/companion/src/modelprinter.cpp @@ -22,6 +22,7 @@ #include "modelprinter.h" #include #include +#include "multiprotocols.h" QString changeColor(const QString & input, const QString & to, const QString & from) { @@ -62,7 +63,7 @@ QString addFont(const QString & input, const QString & color, const QString & si if (!face.isEmpty()) { faceStr = "face='" + face + "'"; } - return "" + input + ""; + return "" + input + ""; } QString ModelPrinter::printEEpromSize() @@ -131,7 +132,7 @@ QString ModelPrinter::printMultiRfProtocol(int rfProtocol, bool custom) static const char *strings[] = { "FlySky", "Hubsan", "FrSky", "Hisky", "V2x2", "DSM", "Devo", "YD717", "KN", "SymaX", "SLT", "CX10", "CG023", "Bayang", "ESky", "MT99XX", "MJXQ", "Shenqi", "FY326", "SFHSS", "J6 PRO","FQ777","Assan","Hontai","OLRS", - "FlySky AFHDS2A", "Q2x2", "Q303" + "FlySky AFHDS2A", "Q2x2", "Walkera", "Q303", "GW008" }; if (custom) return "Custom - proto " + QString::number(rfProtocol); @@ -139,77 +140,18 @@ QString ModelPrinter::printMultiRfProtocol(int rfProtocol, bool custom) return CHECK_IN_ARRAY(strings, rfProtocol); } -QString ModelPrinter::printMultiSubType(int rfProtocol, bool custom, int subType) { +QString ModelPrinter::printMultiSubType(int rfProtocol, bool custom, unsigned int subType) { /* custom protocols */ - static const char *custom_subtype_strings[] = {"Subtype 0", "Subtype 1", "Subtype 2", "Subtype 3", "Subtype 4", "Subtype 5", "Subtype 6", "Subtype 7"}; - static const char *flysky_strings[] = {"Standard", "V9x9", "V6x6", "V912", "CX20"}; - static const char *frsky_strings[] = {"D16", "D8", "D16 8ch", "V8", "D16 EU-LBT", "D16 EU-LBT 8ch"}; - static const char *hisky_strings[] = {"HiSky", "HK310"}; - static const char *v2x2_strings[] = {"V2x2", "JXD506"}; - static const char *dsm2_strings[] = {"DSM2 22ms", "DSM2 11ms", "DSMX 22ms", "DSMX 11ms"}; - static const char *yd717_strings[] = {"YD717", "Skywalker", "Syma X2", "XINXUN", "NIHUI"}; - static const char *symax_strings[] = {"Standard", "Syma X5C"}; - static const char *slt_strings[] = {"SLT", "Vista"}; - static const char *cx10_strings[] = {"Green", "Blue", "DM007", "-", "JC3015a", "JC3015b", "MK33041", "Q242"}; - static const char *cg023_strings[] = {"CG023", "YD829", "H3 3D"}; - static const char *bayang_strings[] = {"Bayang", "H8S3D"}; - static const char *kn_strings[] = {"WLtoys", "FeiLun"}; - static const char *mt99_strings[] = {"MT99", "H7", "YZ"}; - static const char *mjxq_strings[] = {"WLH08", "X600", "X800", "H26D", "E010"}; - static const char *fy326_strings[] = {"FY326", "FY319"}; - static const char *hontai_strings[] = {"Standard", "JJRC X1", "X5C1 Clone"}; - static const char *afhds2a_strings[] = {"PWM and IBUS", "PPM and IBUS", "PWM and SBUS", "PPM and SBUS"}; - static const char *q2x2_strings[] = {"Q222", "Q242", "Q282"}; - static const char *walkera_wk2x01_strings[] = {"WK2801", "WK2401", "W6_5_1", "W6_6_1", "W6_HEL", "W6_HEL_I"}; - static const char *q303_strings[] = { "Q303", "CX35", "CX10D", "CX10WD"}; - - if (custom) - return CHECK_IN_ARRAY(custom_subtype_strings, subType); - switch (rfProtocol) { - case MM_RF_PROTO_FLYSKY: - return CHECK_IN_ARRAY(flysky_strings, subType); - case MM_RF_PROTO_FRSKY: - return CHECK_IN_ARRAY(frsky_strings, subType); - case MM_RF_PROTO_HISKY: - return CHECK_IN_ARRAY(hisky_strings, subType); - case MM_RF_PROTO_DSM2: - return CHECK_IN_ARRAY(dsm2_strings, subType); - case MM_RF_PROTO_V2X2: - return CHECK_IN_ARRAY(v2x2_strings, subType); - case MM_RF_PROTO_YD717: - return CHECK_IN_ARRAY(yd717_strings, subType); - case MM_RF_PROTO_SYMAX: - return CHECK_IN_ARRAY(symax_strings, subType); - case MM_RF_PROTO_SLT: - return CHECK_IN_ARRAY(slt_strings, subType); - case MM_RF_PROTO_CX10: - return CHECK_IN_ARRAY(cx10_strings, subType); - case MM_RF_PROTO_CG023: - return CHECK_IN_ARRAY(cg023_strings, subType); - case MM_RF_PROTO_BAYANG: - return CHECK_IN_ARRAY(bayang_strings, subType); - case MM_RF_PROTO_KN: - return CHECK_IN_ARRAY(kn_strings, subType); - case MM_RF_PROTO_MT99XX: - return CHECK_IN_ARRAY(mt99_strings, subType); - case MM_RF_PROTO_MJXQ: - return CHECK_IN_ARRAY(mjxq_strings, subType); - case MM_RF_PROTO_FY326: - return CHECK_IN_ARRAY(fy326_strings, subType); - case MM_RF_PROTO_HONTAI: - return CHECK_IN_ARRAY(hontai_strings, subType); - case MM_RF_PROTO_AFHDS2A: - return CHECK_IN_ARRAY(afhds2a_strings, subType); - case MM_RF_PROTO_Q2X2: - return CHECK_IN_ARRAY(q2x2_strings, subType); - case MM_RF_PROTO_WK_2X01: - return CHECK_IN_ARRAY(walkera_wk2x01_strings, subType); - case MM_RF_PROTO_Q303: - return CHECK_IN_ARRAY(q303_strings, subType); - default: - return "DEFAULT"; - } + if (custom) + rfProtocol = MM_RF_CUSTOM_SELECTED; + + Multiprotocols::MultiProtocolDefinition pdef = multiProtocols.getProtocol(rfProtocol); + + if (subType < (unsigned int) pdef.subTypeStrings.size()) + return pdef.subTypeStrings[subType]; + else + return "???"; } QString ModelPrinter::printModule(int idx) { @@ -316,7 +258,7 @@ QString ModelPrinter::printTimer(int idx) QString ModelPrinter::printTimer(const TimerData & timer) { QStringList result; - if (firmware->getCapability(TimersName) && timer.name[0]) + if (firmware->getCapability(TimersName) && timer.name[0]) result += tr("Name(%1)").arg(timer.name); result += QString("%1:%2").arg(timer.val/60, 2, 10, QChar('0')).arg(timer.val%60, 2, 10, QChar('0')); result += timer.mode.toString(); @@ -337,9 +279,9 @@ QString ModelPrinter::printTrim(int flightModeIndex, int stickIndex) { const FlightModeData & fm = model.flightModeData[flightModeIndex]; - if (fm.trimMode[stickIndex] == -1) { + if (fm.trimMode[stickIndex] == -1) { return tr("Off"); - } + } else { if (fm.trimRef[stickIndex] == flightModeIndex) { return QString("%1").arg(fm.trim[stickIndex]); @@ -349,7 +291,7 @@ QString ModelPrinter::printTrim(int flightModeIndex, int stickIndex) return tr("FM%1").arg(fm.trimRef[stickIndex]); } else { - if (fm.trim[stickIndex] < 0) + if (fm.trim[stickIndex] < 0) return tr("FM%1%2").arg(fm.trimRef[stickIndex]).arg(fm.trim[stickIndex]); else return tr("FM%1+%2").arg(fm.trimRef[stickIndex]).arg(fm.trim[stickIndex]); @@ -441,7 +383,7 @@ QString ModelPrinter::printInputLine(const ExpoData & input) if (input.offset) str += " " + tr("Offset(%1)").arg(getGVarString(input.offset)).toHtmlEscaped(); - if (firmware->getCapability(HasExpoNames) && input.name[0]) + if (firmware->getCapability(HasExpoNames) && input.name[0]) str += QString(" [%1]").arg(input.name).toHtmlEscaped(); return str; @@ -516,7 +458,7 @@ QString ModelPrinter::printMixerLine(const MixData & mix, bool showMultiplex, in str += " " + tr("Slow(u%1:d%2)").arg((double)mix.speedUp/scale).arg((double)mix.speedDown/scale).toHtmlEscaped(); if (mix.mixWarn) str += " " + tr("Warn(%1)").arg(mix.mixWarn).toHtmlEscaped(); - if (firmware->getCapability(HasMixerNames) && mix.name[0]) + if (firmware->getCapability(HasMixerNames) && mix.name[0]) str += QString(" [%1]").arg(mix.name).toHtmlEscaped(); return str; } diff --git a/companion/src/modelprinter.h b/companion/src/modelprinter.h index 0cef1371c..aa02e9585 100644 --- a/companion/src/modelprinter.h +++ b/companion/src/modelprinter.h @@ -59,7 +59,7 @@ class ModelPrinter: public QObject QString printThrottleTrimMode(); static QString printModuleProtocol(unsigned int protocol); static QString printMultiRfProtocol(int rfProtocol, bool custom); - static QString printMultiSubType(int rfProtocol, bool custom, int subType); + static QString printMultiSubType(int rfProtocol, bool custom, unsigned int subType); QString printFlightModeSwitch(int index); QString printFlightModeName(int index); QString printFlightModes(unsigned int flightModes); diff --git a/companion/src/multiprotocols.cpp b/companion/src/multiprotocols.cpp new file mode 100644 index 000000000..ce2249f1c --- /dev/null +++ b/companion/src/multiprotocols.cpp @@ -0,0 +1,119 @@ +/* + * Copyright (C) OpenTX + * + * Based on code named + * th9x - http://code.google.com/p/th9x + * er9x - http://code.google.com/p/er9x + * gruvin9x - http://code.google.com/p/gruvin9x + * + * License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include + +#include "multiprotocols.h" +#include "radiodata.h" + +#define tr QObject::tr + +static const QStringList STR_SUBTYPE_CUSTOM ({tr("Subtype 0"), tr("Subtype 1"), tr("Subtype 2"), tr("Subtype 3"), + tr("Subtype 4"), tr("Subtype 5"), tr("Subtype 6"), tr("Subtype 7")}); +static const QStringList STR_SUBTYPE_FLYSKY {"Standard", "V9x9", "V6x6", "V912", "CX20"}; +static const QStringList STR_SUBTYPE_FRSKY {"D16", "D8", "D16 8ch", "V8", "D16 EU-LBT", "D16 EU-LBT 8ch"}; +static const QStringList STR_SUBTYPE_HISKY {"HiSky", "HK310"}; +static const QStringList STR_SUBTYPE_V2X2 {"V2x2", "JXD506"}; +static const QStringList STR_SUBTYPE_DSM {"DSM2 22ms", "DSM2 11ms", "DSMX 22ms", "DSMX 11ms"}; +static const QStringList STR_SUBTYPE_YD717 {"YD717", "Skywalker", "Syma X2", "XINXUN", "NIHUI"}; +static const QStringList STR_SUBTYPE_SYMAX {"Standard", "Syma X5C"}; +static const QStringList STR_SUBTYPE_SLT {"SLT", "Vista"}; +static const QStringList STR_SUBTYPE_CX10 {"Green", "Blue", "DM007", "-", "JC3015a", "JC3015b", "MK33041", "Q242"}; +static const QStringList STR_SUBTYPE_CG023 {"CG023", "YD829", "H3 3D"}; +static const QStringList STR_SUBTYPE_BAYANG {"Bayang", "H8S3D"}; +static const QStringList STR_SUBTYPE_KN {"WLtoys", "FeiLun"}; +static const QStringList STR_SUBTYPE_MT99 {"MT99", "H7", "YZ", "LS", "FY805"}; +static const QStringList STR_SUBTYPE_MJXQ {"WLH08", "X600", "X800", "H26D", "E010", "H26WH"}; +static const QStringList STR_SUBTYPE_FY326 {"FY326", "FY319"}; +static const QStringList STR_SUBTYPE_HONTAI {"Standard", "JJRC X1", "X5C1 Clone"}; +static const QStringList STR_SUBTYPE_AFHDS2A {"PWM and IBUS", "PPM and IBUS", "PWM and SBUS", "PPM and SBUS"}; +static const QStringList STR_SUBTYPE_Q2X2 {"Q222", "Q242", "Q282"}; +static const QStringList STR_SUBTYPE_WK2x01 {"WK2801", "WK2401", "W6_5_1", "W6_6_1", "W6_HEL", "W6_HEL_I"}; +static const QStringList STR_SUBTYPE_Q303 {"Q303", "CX35", "CX10D", "CX10WD"}; +static const QStringList NO_SUBTYPE {tr("DEFAULT")}; + +static const QString STR_MULTI_VIDFREQ = tr("Video TX frequency"); +static const QString STR_MULTI_RFTUNE = tr("C2500 frequency fine tune"); +static const QString STR_MULTI_TELEMETRY = tr("Telemetry"); +static const QString STR_MULTI_RFPOWER = tr("Radio output power"); +static const QString STR_MULTI_SERVOFREQ = tr("Servo output frequency"); +static const QString STR_MULTI_OPTION= tr("Option value"); + + +// Table is designed to be shared with gui_common_arm.cpp + +const Multiprotocols multiProtocols { + { MM_RF_PROTO_FLYSKY, STR_SUBTYPE_FLYSKY, 4, nullptr }, + { MM_RF_PROTO_HUBSAN, NO_SUBTYPE, 0, STR_MULTI_VIDFREQ }, + { MM_RF_PROTO_FRSKY, STR_SUBTYPE_FRSKY, 5, STR_MULTI_RFTUNE }, + { MM_RF_PROTO_HISKY, STR_SUBTYPE_HISKY, 1, nullptr }, + { MM_RF_PROTO_V2X2, STR_SUBTYPE_V2X2, 1, nullptr }, + { MM_RF_PROTO_DSM2, STR_SUBTYPE_DSM, 3, nullptr }, + { MM_RF_PROTO_YD717, STR_SUBTYPE_YD717, 4, nullptr }, + { MM_RF_PROTO_KN, STR_SUBTYPE_KN, 1, nullptr }, + { MM_RF_PROTO_SYMAX, STR_SUBTYPE_SYMAX, 1, nullptr }, + { MM_RF_PROTO_SLT, STR_SUBTYPE_SLT, 1, nullptr }, + { MM_RF_PROTO_CX10, STR_SUBTYPE_CX10, 7, nullptr }, + { MM_RF_PROTO_CG023, STR_SUBTYPE_CG023, 2, nullptr }, + { MM_RF_PROTO_BAYANG, STR_SUBTYPE_BAYANG, 1, STR_MULTI_TELEMETRY }, + { MM_RF_PROTO_MT99XX, STR_SUBTYPE_MT99, 4, nullptr }, + { MM_RF_PROTO_MJXQ, STR_SUBTYPE_MJXQ, 5, nullptr }, + { MM_RF_PROTO_FY326, STR_SUBTYPE_FY326, 1, nullptr }, + { MM_RF_PROTO_SFHSS, NO_SUBTYPE, 0, STR_MULTI_RFTUNE }, + { MM_RF_PROTO_HONTAI, STR_SUBTYPE_HONTAI, 2, nullptr }, + { MM_RF_PROTO_OLRS, NO_SUBTYPE, 0, STR_MULTI_RFPOWER }, + { MM_RF_PROTO_FS_AFHDS2A, STR_SUBTYPE_AFHDS2A, 3, STR_MULTI_SERVOFREQ }, + { MM_RF_PROTO_Q2X2, STR_SUBTYPE_Q2X2, 2, nullptr }, + { MM_RF_PROTO_WK_2X01, STR_SUBTYPE_WK2x01, 5, nullptr }, + { MM_RF_PROTO_Q303, STR_SUBTYPE_Q303, 3, nullptr }, + { MM_RF_PROTO_GW08, NO_SUBTYPE, 0, nullptr }, + { MM_RF_CUSTOM_SELECTED, STR_SUBTYPE_CUSTOM, 7, STR_MULTI_OPTION }, + + //Sential and default for protocols not listed above (MM_RF_CUSTOM is 0xff() + { 0xfe, NO_SUBTYPE, 0, nullptr } +}; + +int Multiprotocols::MultiProtocolDefinition::getOptionMin() const { + if (optionsstr == STR_MULTI_RFPOWER) + return -1; + else if (optionsstr == STR_MULTI_SERVOFREQ) + return 0; + else + return -128; +} + +int Multiprotocols::MultiProtocolDefinition::getOptionMax() const { + if (optionsstr == STR_MULTI_RFPOWER) + return 7; + else if (optionsstr == STR_MULTI_SERVOFREQ) + return 70; + else + return 127; +} + +const Multiprotocols::MultiProtocolDefinition & Multiprotocols::getProtocol(int protocol) const { + for (const Multiprotocols::MultiProtocolDefinition & proto: protocols) + if (proto.protocol == protocol) + return proto; + + // Protocol not found, return the default (last) proto + Q_ASSERT(protocols.rbegin()->protocol == 0xfe); + return *protocols.rbegin(); +} diff --git a/companion/src/multiprotocols.h b/companion/src/multiprotocols.h new file mode 100644 index 000000000..ed50cf48e --- /dev/null +++ b/companion/src/multiprotocols.h @@ -0,0 +1,75 @@ +/* + * Copyright (C) OpenTX + * + * Based on code named + * th9x - http://code.google.com/p/th9x + * er9x - http://code.google.com/p/er9x + * gruvin9x - http://code.google.com/p/gruvin9x + * + * License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#ifndef OPENTX_MULTI_H +#define OPENTX_MULTI_H + +#include +#include +#include +#include + +#define MM_RF_CUSTOM_SELECTED 0xff + +class Multiprotocols { + + struct radio_mm_definition { + int protocol; + QStringList protocols; + unsigned int maxSubtype; + QString optionsstr; + }; + + public: + struct MultiProtocolDefinition { + int protocol; + QStringList subTypeStrings; + const QString &optionsstr; + + unsigned int numSubytes() const + { return (unsigned int) subTypeStrings.length(); } + + int getOptionMin() const; + + int getOptionMax() const; + + MultiProtocolDefinition(const radio_mm_definition &rd) : protocol(rd.protocol), subTypeStrings(rd.protocols), + optionsstr(rd.optionsstr) + { + Q_ASSERT(rd.maxSubtype + 1 == (unsigned int) rd.protocols.length()); + } + }; + + private: + std::vector protocols; + + public: + Multiprotocols(std::initializer_list l) + { + for (radio_mm_definition rd: l) + protocols.push_back(MultiProtocolDefinition(rd)); + } + + const MultiProtocolDefinition &getProtocol(int protocol) const; +}; + +extern const Multiprotocols multiProtocols; + +#endif //OPENTX_MULTI_H \ No newline at end of file diff --git a/companion/src/radiodata.h b/companion/src/radiodata.h index f6791b978..e5b8b8bc2 100644 --- a/companion/src/radiodata.h +++ b/companion/src/radiodata.h @@ -795,15 +795,14 @@ enum MultiModuleRFProtocols { MM_RF_PROTO_ASSAN, MM_RF_PROTO_HONTAI, MM_RF_PROTO_OLRS, - MM_RF_PROTO_AFHDS2A, + MM_RF_PROTO_FS_AFHDS2A, MM_RF_PROTO_Q2X2, MM_RF_PROTO_WK_2X01, MM_RF_PROTO_Q303, - MM_RF_PROTO_LAST=MM_RF_PROTO_Q303 + MM_RF_PROTO_GW08, + MM_RF_PROTO_LAST=MM_RF_PROTO_GW08 }; -unsigned int getNumSubtypes(MultiModuleRFProtocols type); - enum TrainerProtocol { TRAINER_MASTER_JACK, TRAINER_SLAVE_JACK, diff --git a/companion/src/storage/mountlist.cpp b/companion/src/storage/mountlist.cpp index 341e00100..aa52c1afc 100644 --- a/companion/src/storage/mountlist.cpp +++ b/companion/src/storage/mountlist.cpp @@ -227,7 +227,7 @@ #ifdef MOUNTED_GETMNTINFO -# if ! HAVE_STRUCT_STATFS_F_FSTYPENAME && !defined(__clang__) +# if ! HAVE_STRUCT_STATFS_F_FSTYPENAME && defined(MOUNTED_VMOUNT) static const char * fstype_to_string (short int t) { @@ -323,7 +323,8 @@ fstype_to_string (short int t) } # endif -#if !defined(__clang__) +// Not used +#if 0 static const char * fsp_to_string (const struct statfs *fsp) { diff --git a/radio/src/gui/gui_common.h b/radio/src/gui/gui_common.h index 05a2bd733..3ad528f4d 100644 --- a/radio/src/gui/gui_common.h +++ b/radio/src/gui/gui_common.h @@ -133,7 +133,7 @@ PACK( uint8_t protocol; const pm_char *subTypeString; uint8_t maxSubtype; - const pm_char *optionsstr; + const char *optionsstr; } ); const mm_protocol_definition *getMultiProtocolDefinition (uint8_t protocol); diff --git a/radio/src/gui/gui_common_arm.cpp b/radio/src/gui/gui_common_arm.cpp index 9eae3f67a..e34404559 100644 --- a/radio/src/gui/gui_common_arm.cpp +++ b/radio/src/gui/gui_common_arm.cpp @@ -596,9 +596,59 @@ int getFirstAvailable(int min, int max, IsValueAvailable isValueAvailable) } #if defined(MULTIMODULE) // Third row is number of subtypes -1 (max valid subtype) +#define NO_SUBTYPE nullptr + +// Table is designed to be shared with companion multi.cpp + +// The subtype and options strings are only referenced here, so +// define them here to avoid duplication in all language files +// Also since these strings are ARM only and likely stay ARM only +// we don't need the special eeprom/flash string handling, just define them as +// local strings + +static const char* STR_SUBTYPE_FLYSKY = "\004""Std\0""V9x9""V6x6""V912""CX20"; + +static const char* STR_SUBTYPE_AFHDS2A = "\010""PWM,IBUS""PPM,IBUS""PWM,SBUS""PPM,SBUS"; + +static const char* STR_SUBTYPE_FRSKY = "\007""D16\0 ""D8\0 ""D16 8ch""V8\0 ""LBT(EU)""LBT 8ch"; + +static const char* STR_SUBTYPE_HISKY = "\005""HiSky""HK310"; + +static const char* STR_SUBTYPE_DSM = "\006""2 22ms""2 11ms""X 22ms""X 11ms"; + +static const char* STR_SUBTYPE_YD717 = "\007""YD717\0 ""SKYWLKR""Syma X2""XINXUN\0""NIHUI\0 "; + +static const char* STR_SUBTYPE_SYMAX = "\003""Std""5c\0"; + +static const char* STR_SUBTYPE_SLT = "\005""SLT\0 ""Vista"; + +static const char* STR_SUBTYPE_CX10 = "\007""Green\0 ""Blue\0 ""DM007\0 ""-\0 ""JC3015a""JC3015b""MK33041""Q242\0 "; + +static const char* STR_SUBTYPE_CG023 = "\005""CG023""YD829""H3 3d"; + +static const char* STR_SUBTYPE_KN = "\006""WLtoys""FeiLun"; + +static const char* STR_SUBTYPE_MT99 = "\005""MT99\0""H7\0 ""YZ\0 ""LS\0 ""FY805"; + +static const char* STR_SUBTYPE_MJXQ = "\005""WLH08""X600\0""X800\0""H26D\0""E010\0""H26WH"; + +static const char* STR_SUBTYPE_HONTAI= "\007""Std\0 ""JJRC X1""X5C1cln"; + +static const char* STR_SUBTYPE_Q2X2 = "\004""Q222""Q242""Q282"; + +static const char* STR_SUBTYPE_Q303 = "\006""Q303\0 ""CX35\0 ""CX10D\0""CX10WD"; + +static const char* STR_SUBTYPE_WK2x01 = "\006""WK2801""WK2401""W6_5_1""W6_6_1""W6_Hel""W6_HeI"; + +static const char* STR_SUBTYPE_V2X2 = "\006""V2x2\0 ""JXD506"; + +static const char* STR_SUBTYPE_BAYANG = "\006""Bayang""H8S3D"; + +static const char* STR_SUBTYPE_FY326 = "\005""FY326""FY319"; + const mm_protocol_definition multi_protocols[] = { { MM_RF_PROTO_FLYSKY, STR_SUBTYPE_FLYSKY, 4, nullptr }, - { MM_RF_PROTO_HUBSAN, nullptr, 0, STR_MULTI_VIDFREQ }, + { MM_RF_PROTO_HUBSAN, NO_SUBTYPE, 0, STR_MULTI_VIDFREQ }, { MM_RF_PROTO_FRSKY, STR_SUBTYPE_FRSKY, 5, STR_MULTI_RFTUNE }, { MM_RF_PROTO_HISKY, STR_SUBTYPE_HISKY, 1, nullptr }, { MM_RF_PROTO_V2X2, STR_SUBTYPE_V2X2, 1, nullptr }, @@ -613,19 +663,22 @@ const mm_protocol_definition multi_protocols[] = { { MM_RF_PROTO_MT99XX, STR_SUBTYPE_MT99, 4, nullptr }, { MM_RF_PROTO_MJXQ, STR_SUBTYPE_MJXQ, 5, nullptr }, { MM_RF_PROTO_FY326, STR_SUBTYPE_FY326, 1, nullptr }, - { MM_RF_PROTO_SFHSS, nullptr, 0, STR_MULTI_RFTUNE }, - { MM_RF_PROTO_HONTAI, STR_SUBTYPE_HONTAI, 3, nullptr }, - { MM_RF_PROTO_OLRS, nullptr, 0, STR_MULTI_RFPOWER }, + { MM_RF_PROTO_SFHSS, NO_SUBTYPE, 0, STR_MULTI_RFTUNE }, + { MM_RF_PROTO_HONTAI, STR_SUBTYPE_HONTAI, 2, nullptr }, + { MM_RF_PROTO_OLRS, NO_SUBTYPE, 0, STR_MULTI_RFPOWER }, { MM_RF_PROTO_FS_AFHDS2A, STR_SUBTYPE_AFHDS2A, 3, STR_MULTI_SERVOFREQ }, - { MM_RF_PROTO_Q2X2, STR_SUBTYPE_Q2X2, 1, nullptr }, + { MM_RF_PROTO_Q2X2, STR_SUBTYPE_Q2X2, 2, nullptr }, { MM_RF_PROTO_WK_2X01, STR_SUBTYPE_WK2x01, 5, nullptr }, { MM_RF_PROTO_Q303, STR_SUBTYPE_Q303, 3, nullptr }, - { MM_RF_CUSTOM_SELECTED, nullptr, 7, STR_MULTI_OPTION }, + { MM_RF_PROTO_GW08, NO_SUBTYPE, 0, nullptr }, + { MM_RF_CUSTOM_SELECTED, NO_SUBTYPE, 7, STR_MULTI_OPTION }, //Sential and default for protocols not listed above (MM_RF_CUSTOM is 0xff() - { 0xfe, nullptr, 0, nullptr } + { 0xfe, NO_SUBTYPE, 0, nullptr } }; +#undef NO_SUBTYPE + const mm_protocol_definition *getMultiProtocolDefinition (uint8_t protocol) { const mm_protocol_definition *pdef; diff --git a/radio/src/myeeprom.h b/radio/src/myeeprom.h index b4649f063..904941b44 100644 --- a/radio/src/myeeprom.h +++ b/radio/src/myeeprom.h @@ -531,7 +531,8 @@ enum MultiModuleRFProtocols { MM_RF_PROTO_Q2X2, MM_RF_PROTO_WK_2X01, MM_RF_PROTO_Q303, - MM_RF_PROTO_LAST= MM_RF_PROTO_Q303 + MM_RF_PROTO_GW08, + MM_RF_PROTO_LAST= MM_RF_PROTO_GW08 }; enum MMDSM2Subtypes { diff --git a/radio/src/translations.cpp b/radio/src/translations.cpp index 19e52d427..734ff6d69 100644 --- a/radio/src/translations.cpp +++ b/radio/src/translations.cpp @@ -112,26 +112,6 @@ const pm_char STR_OPEN9X[] PROGMEM = ISTR(DSM_PROTOCOLS) #if defined(MULTIMODULE) ISTR(MULTI_PROTOCOLS) - ISTR(SUBTYPE_FLYSKY) - ISTR(SUBTYPE_FRSKY) - ISTR(SUBTYPE_HISKY) - ISTR(SUBTYPE_DSM) - ISTR(SUBTYPE_YD717) - ISTR(SUBTYPE_SYMAX) - ISTR(SUBTYPE_SLT) - ISTR(SUBTYPE_CX10) - ISTR(SUBTYPE_CG023) - ISTR(SUBTYPE_KN) - ISTR(SUBTYPE_MT99) - ISTR(SUBTYPE_MJXQ) - ISTR(SUBTYPE_HONTAI) - ISTR(SUBTYPE_AFHDS2A) - ISTR(SUBTYPE_Q2X2) - ISTR(SUBTYPE_Q303) - ISTR(SUBTYPE_WK2x01) - ISTR(SUBTYPE_V2X2) - ISTR(SUBTYPE_BAYANG) - ISTR(SUBTYPE_FY326) #endif ISTR(VOLTSRC) ISTR(CURVE_TYPES) diff --git a/radio/src/translations.h b/radio/src/translations.h index 1e636fea0..ef2a144e8 100644 --- a/radio/src/translations.h +++ b/radio/src/translations.h @@ -213,27 +213,7 @@ extern const pm_char STR_OPEN9X[]; #define OFS_DSM_PROTOCOLS (OFS_XJT_PROTOCOLS + sizeof(TR_XJT_PROTOCOLS)) #if defined(MULTIMODULE) #define OFS_MULTI_PROTOCOLS (OFS_DSM_PROTOCOLS + sizeof(TR_DSM_PROTOCOLS)) - #define OFS_SUBTYPE_FLYSKY (OFS_MULTI_PROTOCOLS + sizeof(TR_MULTI_PROTOCOLS)) - #define OFS_SUBTYPE_FRSKY (OFS_SUBTYPE_FLYSKY + sizeof(TR_SUBTYPE_FLYSKY)) - #define OFS_SUBTYPE_HISKY (OFS_SUBTYPE_FRSKY + sizeof(TR_SUBTYPE_FRSKY)) - #define OFS_SUBTYPE_DSM (OFS_SUBTYPE_HISKY + sizeof(TR_SUBTYPE_HISKY)) - #define OFS_SUBTYPE_YD717 (OFS_SUBTYPE_DSM + sizeof(TR_SUBTYPE_DSM)) - #define OFS_SUBTYPE_SYMAX (OFS_SUBTYPE_YD717 + sizeof(TR_SUBTYPE_YD717)) - #define OFS_SUBTYPE_SLT (OFS_SUBTYPE_SYMAX + sizeof(TR_SUBTYPE_SYMAX)) - #define OFS_SUBTYPE_CX10 (OFS_SUBTYPE_SLT + sizeof(TR_SUBTYPE_SLT)) - #define OFS_SUBTYPE_CG023 (OFS_SUBTYPE_CX10 + sizeof(TR_SUBTYPE_CX10)) - #define OFS_SUBTYPE_KN (OFS_SUBTYPE_CG023 + sizeof(TR_SUBTYPE_CG023)) - #define OFS_SUBTYPE_MT99 (OFS_SUBTYPE_KN + sizeof(TR_SUBTYPE_KN)) - #define OFS_SUBTYPE_MJXQ (OFS_SUBTYPE_MT99 + sizeof(TR_SUBTYPE_MT99)) - #define OFS_SUBTYPE_HONTAI (OFS_SUBTYPE_MJXQ + sizeof(TR_SUBTYPE_MJXQ)) - #define OFS_SUBTYPE_AFHDS2A (OFS_SUBTYPE_HONTAI + sizeof(TR_SUBTYPE_HONTAI)) - #define OFS_SUBTYPE_Q2X2 (OFS_SUBTYPE_AFHDS2A + sizeof(TR_SUBTYPE_AFHDS2A)) - #define OFS_SUBTYPE_Q303 (OFS_SUBTYPE_Q2X2 + sizeof(TR_SUBTYPE_Q2X2)) - #define OFS_SUBTYPE_WK2x01 (OFS_SUBTYPE_Q303 + sizeof(TR_SUBTYPE_Q303)) - #define OFS_SUBTYPE_V2X2 (OFS_SUBTYPE_WK2x01 + sizeof(TR_SUBTYPE_WK2x01)) - #define OFS_SUBTYPE_BAYANG (OFS_SUBTYPE_V2X2 + sizeof(TR_SUBTYPE_V2X2)) - #define OFS_SUBTYPE_FY326 (OFS_SUBTYPE_BAYANG + sizeof(TR_SUBTYPE_BAYANG)) - #define OFS_VOLTSRC (OFS_SUBTYPE_FY326 + sizeof(TR_SUBTYPE_FY326)) + #define OFS_VOLTSRC (OFS_MULTI_PROTOCOLS + sizeof(TR_MULTI_PROTOCOLS)) #else #define OFS_VOLTSRC (OFS_DSM_PROTOCOLS + sizeof(TR_DSM_PROTOCOLS)) #endif @@ -355,26 +335,6 @@ extern const pm_char STR_OPEN9X[]; #define STR_DSM_PROTOCOLS (STR_OPEN9X + OFS_DSM_PROTOCOLS) #if defined(MULTIMODULE) #define STR_MULTI_PROTOCOLS (STR_OPEN9X + OFS_MULTI_PROTOCOLS) - #define STR_SUBTYPE_FLYSKY (STR_OPEN9X + OFS_SUBTYPE_FLYSKY) - #define STR_SUBTYPE_FRSKY (STR_OPEN9X + OFS_SUBTYPE_FRSKY) - #define STR_SUBTYPE_HISKY (STR_OPEN9X + OFS_SUBTYPE_HISKY) - #define STR_SUBTYPE_DSM (STR_OPEN9X + OFS_SUBTYPE_DSM) - #define STR_SUBTYPE_YD717 (STR_OPEN9X + OFS_SUBTYPE_YD717) - #define STR_SUBTYPE_SYMAX (STR_OPEN9X + OFS_SUBTYPE_SYMAX) - #define STR_SUBTYPE_SLT (STR_OPEN9X + OFS_SUBTYPE_SLT) - #define STR_SUBTYPE_CX10 (STR_OPEN9X + OFS_SUBTYPE_CX10) - #define STR_SUBTYPE_CG023 (STR_OPEN9X + OFS_SUBTYPE_CG023) - #define STR_SUBTYPE_KN (STR_OPEN9X + OFS_SUBTYPE_KN) - #define STR_SUBTYPE_MT99 (STR_OPEN9X + OFS_SUBTYPE_MT99) - #define STR_SUBTYPE_MJXQ (STR_OPEN9X + OFS_SUBTYPE_MJXQ) - #define STR_SUBTYPE_HONTAI (STR_OPEN9X + OFS_SUBTYPE_HONTAI) - #define STR_SUBTYPE_AFHDS2A (STR_OPEN9X + OFS_SUBTYPE_AFHDS2A) - #define STR_SUBTYPE_Q2X2 (STR_OPEN9X + OFS_SUBTYPE_Q2X2) - #define STR_SUBTYPE_Q303 (STR_OPEN9X + OFS_SUBTYPE_Q303) - #define STR_SUBTYPE_WK2x01 (STR_OPEN9X + OFS_SUBTYPE_WK2x01) - #define STR_SUBTYPE_V2X2 (STR_OPEN9X + OFS_SUBTYPE_V2X2) - #define STR_SUBTYPE_BAYANG (STR_OPEN9X + OFS_SUBTYPE_BAYANG) - #define STR_SUBTYPE_FY326 (STR_OPEN9X + OFS_SUBTYPE_FY326) #endif #define STR_CURVE_TYPES (STR_OPEN9X + OFS_CURVE_TYPES) #define STR_VSENSORTYPES (STR_OPEN9X + OFS_VSENSORTYPES) diff --git a/radio/src/translations/cz.h.txt b/radio/src/translations/cz.h.txt index 4738ccda5..7025dc2d4 100644 --- a/radio/src/translations/cz.h.txt +++ b/radio/src/translations/cz.h.txt @@ -107,70 +107,10 @@ #define TR_DSM_PROTOCOLS "LP45""DSM2""DSMX" #define LEN_MULTI_PROTOCOLS "\006" -#define TR_MULTI_PROTOCOLS "FlySky""Hubsan""FrSky\0""Hisky\0""V2x2\0 ""DSM\0 ""Devo\0 ""YD717\0""KN\0 ""SymaX\0""SLT\0 ""CX10\0 ""CG023\0""Bayang""ESky\0 ""MT99XX""MJXQ\0 ""Shenqi""FY326\0""SFHSS\0""J6 PRO""FQ777\0""Assan\0""Hontai""OLRS\0 ""FS 2A\0""Q2x2\0 ""Walk.\0""Q303\0 " +#define TR_MULTI_PROTOCOLS "FlySky""Hubsan""FrSky\0""Hisky\0""V2x2\0 ""DSM\0 ""Devo\0 ""YD717\0""KN\0 ""SymaX\0""SLT\0 ""CX10\0 ""CG023\0""Bayang""ESky\0 ""MT99XX""MJXQ\0 ""Shenqi""FY326\0""SFHSS\0""J6 PRO""FQ777\0""Assan\0""Hontai""OLRS\0 ""FS 2A\0""Q2x2\0 ""Walk.\0""Q303\0 ""GW008\0" #define TR_MULTI_CUSTOM "Custom" -#define LEN_SUBTYPE_FLYSKY "\004" -#define TR_SUBTYPE_FLYSKY "Std\0""V9x9""V6x6""V912""CX20" - -#define LEN_SUBTYPE_AFHDS2A "\010" -#define TR_SUBTYPE_AFHDS2A "PWM,IBUS""PPM,IBUS""PWM,SBUS""PPM,SBUS" - -#define LEN_SUBTYPE_FRSKY "\007" -#define TR_SUBTYPE_FRSKY "D16\0 ""D8\0 ""D16 8ch""V8\0 ""LBT(EU)""LBT 8ch" - -#define LEN_SUBTYPE_HISKY "\005" -#define TR_SUBTYPE_HISKY "HiSky""HK310" - -#define LEN_SUBTYPE_DSM "\006" -#define TR_SUBTYPE_DSM "2 22ms""2 11ms""X 22ms""X 11ms" - -#define LEN_SUBTYPE_YD717 "\007" -#define TR_SUBTYPE_YD717 "YD717\0 ""SKYWLKR""Syma X2""XINXUN\0""NIHUI\0 " - -#define LEN_SUBTYPE_SYMAX "\003" -#define TR_SUBTYPE_SYMAX "Std""5c\0" - -#define LEN_SUBTYPE_SLT "\005" -#define TR_SUBTYPE_SLT "SLT\0 ""Vista" - -#define LEN_SUBTYPE_CX10 "\007" -#define TR_SUBTYPE_CX10 "Green\0 ""Blue\0 ""DM007\0 ""-\0 ""JC3015a""JC3015b""MK33041""Q242\0 " - -#define LEN_SUBTYPE_CG023 "\005" -#define TR_SUBTYPE_CG023 "CG023""YD829""H3 3d" - -#define LEN_SUBTYPE_KN "\006" -#define TR_SUBTYPE_KN "WLtoys""FeiLun" - -#define LEN_SUBTYPE_MT99 "\005" -#define TR_SUBTYPE_MT99 "MT99\0""H7\0 ""YZ\0 ""LS\0 ""FY805" - -#define LEN_SUBTYPE_MJXQ "\005" -#define TR_SUBTYPE_MJXQ "WLH08""X600\0""X800\0""H26D\0""E010\0""H26WH" - -#define LEN_SUBTYPE_HONTAI "\007" -#define TR_SUBTYPE_HONTAI "Std\0 ""JJRC X1""X5C1cln" - -#define LEN_SUBTYPE_Q2X2 "\004" -#define TR_SUBTYPE_Q2X2 "Q222""Q242""Q282" - -#define LEN_SUBTYPE_WK2x01 "\006" -#define TR_SUBTYPE_WK2x01 "WK2801""WK2401""W6_5_1""W6_6_1""W6_Hel""W6_HeI" - -#define LEN_SUBTYPE_Q303 "\006" -#define TR_SUBTYPE_Q303 "Q303\0 ""CX35\0 ""CX10D\0""CX10WD" - -#define LEN_SUBTYPE_V2X2 "\006" -#define TR_SUBTYPE_V2X2 "V2x2\0 ""JXD506" - -#define LEN_SUBTYPE_BAYANG "\006" -#define TR_SUBTYPE_BAYANG "Bayang""H8S3D" - -#define LEN_SUBTYPE_FY326 "\005" -#define TR_SUBTYPE_FY326 "FY326""FY319" - #define LEN_VTRIMINC "\007" #define TR_VTRIMINC "Expo\0 ""ExJemný""Jemný\0 ""Střední""Hrubý\0 " diff --git a/radio/src/translations/de.h.txt b/radio/src/translations/de.h.txt index f2dce89c5..4ff09ae5b 100644 --- a/radio/src/translations/de.h.txt +++ b/radio/src/translations/de.h.txt @@ -112,70 +112,10 @@ #define TR_DSM_PROTOCOLS "LP45""DSM2""DSMX" //LP45 =Low Power 4 und 5 Kanal #define LEN_MULTI_PROTOCOLS "\006" -#define TR_MULTI_PROTOCOLS "FlySky""Hubsan""FrSky\0""Hisky\0""V2x2\0 ""DSM\0 ""Devo\0 ""YD717\0""KN\0 ""SymaX\0""SLT\0 ""CX10\0 ""CG023\0""Bayang""ESky\0 ""MT99XX""MJXQ\0 ""Shenqi""FY326\0""SFHSS\0""J6 PRO""FQ777\0""Assan\0""Hontai""OLRS\0 ""FS 2A\0""Q2x2" +#define TR_MULTI_PROTOCOLS "FlySky""Hubsan""FrSky\0""Hisky\0""V2x2\0 ""DSM\0 ""Devo\0 ""YD717\0""KN\0 ""SymaX\0""SLT\0 ""CX10\0 ""CG023\0""Bayang""ESky\0 ""MT99XX""MJXQ\0 ""Shenqi""FY326\0""SFHSS\0""J6 PRO""FQ777\0""Assan\0""Hontai""OLRS\0 ""FS 2A\0""Q2x2""Walk.\0""Q303\0 ""GW008\0" #define TR_MULTI_CUSTOM "Custom" -#define LEN_SUBTYPE_FLYSKY "\004" -#define TR_SUBTYPE_FLYSKY "Std\0""V9x9""V6x6""V912""CX20" - -#define LEN_SUBTYPE_AFHDS2A "\010" -#define TR_SUBTYPE_AFHDS2A "PWM,IBUS""PPM,IBUS""PWM,SBUS""PPM,SBUS" - -#define LEN_SUBTYPE_FRSKY "\007" -#define TR_SUBTYPE_FRSKY "D16\0 ""D8\0 ""D16 8ch""V8\0 ""LBT(EU)""LBT 8ch" - -#define LEN_SUBTYPE_HISKY "\005" -#define TR_SUBTYPE_HISKY "HiSky""HK310" - -#define LEN_SUBTYPE_DSM "\006" -#define TR_SUBTYPE_DSM "2 22ms""2 11ms""X 22ms""X 11ms" - -#define LEN_SUBTYPE_YD717 "\007" -#define TR_SUBTYPE_YD717 "YD717\0 ""SKYWLKR""SYMAX2\0""XINXUN\0""NIHUI\0 " - -#define LEN_SUBTYPE_SYMAX "\003" -#define TR_SUBTYPE_SYMAX "Std""5c\0" - -#define LEN_SUBTYPE_SLT "\005" -#define TR_SUBTYPE_SLT "SLT\0 ""Vista" - -#define LEN_SUBTYPE_CX10 "\007" -#define TR_SUBTYPE_CX10 "Grün \0 ""Blau\0 ""DM007\0 ""-\0 ""JC3015a""JC3015b""MK33041""Q242\0 " - -#define LEN_SUBTYPE_CG023 "\005" -#define TR_SUBTYPE_CG023 "CG023""YD829""H3 3d" - -#define LEN_SUBTYPE_KN "\006" -#define TR_SUBTYPE_KN "WLtoys""FeiLun" - -#define LEN_SUBTYPE_MT99 "\005" -#define TR_SUBTYPE_MT99 "MT99\0""H7\0 ""YZ\0 ""LS\0 ""FY805" - -#define LEN_SUBTYPE_MJXQ "\005" -#define TR_SUBTYPE_MJXQ "WLH08""X600\0""X800\0""H26D\0""E010\0""H26WH" - -#define LEN_SUBTYPE_HONTAI "\007" -#define TR_SUBTYPE_HONTAI "Std\0 ""JJRC X1""X5C1cln" - -#define LEN_SUBTYPE_Q2X2 "\004" -#define TR_SUBTYPE_Q2X2 "Q222""Q242""Q282" - -#define LEN_SUBTYPE_WK2x01 "\006" -#define TR_SUBTYPE_WK2x01 "WK2801""WK2401""W6_5_1""W6_6_1""W6_Hel""W6_HeI" - -#define LEN_SUBTYPE_Q303 "\006" -#define TR_SUBTYPE_Q303 "Q303\0 ""CX35\0 ""CX10D\0""CX10WD" - -#define LEN_SUBTYPE_V2X2 "\006" -#define TR_SUBTYPE_V2X2 "V2x2\0 ""JXD506" - -#define LEN_SUBTYPE_BAYANG "\006" -#define TR_SUBTYPE_BAYANG "Bayang""H8S3D" - -#define LEN_SUBTYPE_FY326 "\005" -#define TR_SUBTYPE_FY326 "FY326""FY319" - #define LEN_VTRIMINC TR("\007", "\014") // ursprüglich "\006", "\013" #define TR_VTRIMINC TR("Expo ""ExFein ""Fein ""Mittel ""Grob ", "Exponentiell""Extrafein ""Fein ""Mittel ""Grob ") diff --git a/radio/src/translations/en.h.txt b/radio/src/translations/en.h.txt index 0dd5e53f9..0640bef7b 100644 --- a/radio/src/translations/en.h.txt +++ b/radio/src/translations/en.h.txt @@ -111,70 +111,10 @@ #define TR_DSM_PROTOCOLS "LP45""DSM2""DSMX" #define LEN_MULTI_PROTOCOLS "\006" -#define TR_MULTI_PROTOCOLS "FlySky""Hubsan""FrSky\0""Hisky\0""V2x2\0 ""DSM\0 ""Devo\0 ""YD717\0""KN\0 ""SymaX\0""SLT\0 ""CX10\0 ""CG023\0""Bayang""ESky\0 ""MT99XX""MJXQ\0 ""Shenqi""FY326\0""SFHSS\0""J6 PRO""FQ777\0""Assan\0""Hontai""OLRS\0 ""FS 2A\0""Q2x2\0 ""Walk.\0""Q303\0 " +#define TR_MULTI_PROTOCOLS "FlySky""Hubsan""FrSky\0""Hisky\0""V2x2\0 ""DSM\0 ""Devo\0 ""YD717\0""KN\0 ""SymaX\0""SLT\0 ""CX10\0 ""CG023\0""Bayang""ESky\0 ""MT99XX""MJXQ\0 ""Shenqi""FY326\0""SFHSS\0""J6 PRO""FQ777\0""Assan\0""Hontai""OLRS\0 ""FS 2A\0""Q2x2\0 ""Walk.\0""Q303\0 ""GW008\0" #define TR_MULTI_CUSTOM "Custom" -#define LEN_SUBTYPE_FLYSKY "\004" -#define TR_SUBTYPE_FLYSKY "Std\0""V9x9""V6x6""V912""CX20" - -#define LEN_SUBTYPE_AFHDS2A "\010" -#define TR_SUBTYPE_AFHDS2A "PWM,IBUS""PPM,IBUS""PWM,SBUS""PPM,SBUS" - -#define LEN_SUBTYPE_FRSKY "\007" -#define TR_SUBTYPE_FRSKY "D16\0 ""D8\0 ""D16 8ch""V8\0 ""LBT(EU)""LBT 8ch" - -#define LEN_SUBTYPE_HISKY "\005" -#define TR_SUBTYPE_HISKY "HiSky""HK310" - -#define LEN_SUBTYPE_DSM "\006" -#define TR_SUBTYPE_DSM "2 22ms""2 11ms""X 22ms""X 11ms" - -#define LEN_SUBTYPE_YD717 "\007" -#define TR_SUBTYPE_YD717 "YD717\0 ""SKYWLKR""Syma X2""XINXUN\0""NIHUI\0 " - -#define LEN_SUBTYPE_SYMAX "\003" -#define TR_SUBTYPE_SYMAX "Std""5c\0" - -#define LEN_SUBTYPE_SLT "\005" -#define TR_SUBTYPE_SLT "SLT\0 ""Vista" - -#define LEN_SUBTYPE_CX10 "\007" -#define TR_SUBTYPE_CX10 "Green\0 ""Blue\0 ""DM007\0 ""-\0 ""JC3015a""JC3015b""MK33041""Q242\0 " - -#define LEN_SUBTYPE_CG023 "\005" -#define TR_SUBTYPE_CG023 "CG023""YD829""H3 3d" - -#define LEN_SUBTYPE_KN "\006" -#define TR_SUBTYPE_KN "WLtoys""FeiLun" - -#define LEN_SUBTYPE_MT99 "\005" -#define TR_SUBTYPE_MT99 "MT99\0""H7\0 ""YZ\0 ""LS\0 ""FY805" - -#define LEN_SUBTYPE_MJXQ "\005" -#define TR_SUBTYPE_MJXQ "WLH08""X600\0""X800\0""H26D\0""E010\0""H26WH" - -#define LEN_SUBTYPE_HONTAI "\007" -#define TR_SUBTYPE_HONTAI "Std\0 ""JJRC X1""X5C1cln" - -#define LEN_SUBTYPE_Q2X2 "\004" -#define TR_SUBTYPE_Q2X2 "Q222""Q242""Q282" - -#define LEN_SUBTYPE_Q303 "\006" -#define TR_SUBTYPE_Q303 "Q303\0 ""CX35\0 ""CX10D\0""CX10WD" - -#define LEN_SUBTYPE_WK2x01 "\006" -#define TR_SUBTYPE_WK2x01 "WK2801""WK2401""W6_5_1""W6_6_1""W6_Hel""W6_HeI" - -#define LEN_SUBTYPE_V2X2 "\006" -#define TR_SUBTYPE_V2X2 "V2x2\0 ""JXD506" - -#define LEN_SUBTYPE_BAYANG "\006" -#define TR_SUBTYPE_BAYANG "Bayang""H8S3D" - -#define LEN_SUBTYPE_FY326 "\005" -#define TR_SUBTYPE_FY326 "FY326""FY319" - #define LEN_VTRIMINC TR("\006", "\013") #define TR_VTRIMINC TR("Expo\0 ""ExFine""Fine\0 ""Medium""Coarse", "Exponential""Extra Fine\0""Fine\0 ""Medium\0 ""Coarse\0 ") diff --git a/radio/src/translations/es.h.txt b/radio/src/translations/es.h.txt index e64892bce..ffe32abd1 100644 --- a/radio/src/translations/es.h.txt +++ b/radio/src/translations/es.h.txt @@ -107,70 +107,10 @@ #define TR_DSM_PROTOCOLS "LP45""DSM2""DSMX" #define LEN_MULTI_PROTOCOLS "\006" -#define TR_MULTI_PROTOCOLS "FlySky""Hubsan""FrSky\0""Hisky\0""V2x2\0 ""DSM\0 ""Devo\0 ""YD717\0""KN\0 ""SymaX\0""SLT\0 ""CX10\0 ""CG023\0""Bayang""ESky\0 ""MT99XX""MJXQ\0 ""Shenqi""FY326\0""SFHSS\0""J6 PRO""FQ777\0""Assan\0""Hontai""OLRS\0 ""FS 2A\0""Q2x2\0 ""Walk.\0""Q303\0 " +#define TR_MULTI_PROTOCOLS "FlySky""Hubsan""FrSky\0""Hisky\0""V2x2\0 ""DSM\0 ""Devo\0 ""YD717\0""KN\0 ""SymaX\0""SLT\0 ""CX10\0 ""CG023\0""Bayang""ESky\0 ""MT99XX""MJXQ\0 ""Shenqi""FY326\0""SFHSS\0""J6 PRO""FQ777\0""Assan\0""Hontai""OLRS\0 ""FS 2A\0""Q2x2\0 ""Walk.\0""Q303\0 ""GW008\0" #define TR_MULTI_CUSTOM "Custom" -#define LEN_SUBTYPE_FLYSKY "\004" -#define TR_SUBTYPE_FLYSKY "Std\0""V9x9""V6x6""V912" - -#define LEN_SUBTYPE_AFHDS2A "\010" -#define TR_SUBTYPE_AFHDS2A "PWM,IBUS""PPM,IBUS""PWM,SBUS""PPM,SBUS" - -#define LEN_SUBTYPE_FRSKY "\007" -#define TR_SUBTYPE_FRSKY "D16\0 ""D8\0 ""D16 8ch""V8\0 ""LBT(EU)""LBT 8ch" - -#define LEN_SUBTYPE_HISKY "\005" -#define TR_SUBTYPE_HISKY "HiSky""HK310" - -#define LEN_SUBTYPE_DSM "\006" -#define TR_SUBTYPE_DSM "2 22ms""2 11ms""X 22ms""X 11ms" - -#define LEN_SUBTYPE_YD717 "\007" -#define TR_SUBTYPE_YD717 "YD717\0 ""SKYWLKR""Syma X2""XINXUN\0""NIHUI\0 " - -#define LEN_SUBTYPE_SYMAX "\003" -#define TR_SUBTYPE_SYMAX "Std""5c\0" - -#define LEN_SUBTYPE_SLT "\005" -#define TR_SUBTYPE_SLT "SLT\0 ""Vista" - -#define LEN_SUBTYPE_CX10 "\007" -#define TR_SUBTYPE_CX10 "Green\0 ""Blue\0 ""DM007\0 ""-\0 ""JC3015a""JC3015b""MK33041""Q242\0 " - -#define LEN_SUBTYPE_CG023 "\005" -#define TR_SUBTYPE_CG023 "CG023""YD829""H3 3d" - -#define LEN_SUBTYPE_KN "\006" -#define TR_SUBTYPE_KN "WLtoys""FeiLun" - -#define LEN_SUBTYPE_MT99 "\005" -#define TR_SUBTYPE_MT99 "MT99\0""H7\0 ""YZ\0 ""LS\0 ""FY805" - -#define LEN_SUBTYPE_MJXQ "\005" -#define TR_SUBTYPE_MJXQ "WLH08""X600\0""X800\0""H26D\0""E010\0""H26WH" - -#define LEN_SUBTYPE_HONTAI "\007" -#define TR_SUBTYPE_HONTAI "Std\0 ""JJRC X1""X5C1cln" - -#define LEN_SUBTYPE_Q2X2 "\004" -#define TR_SUBTYPE_Q2X2 "Q222""Q242""Q282" - -#define LEN_SUBTYPE_WK2x01 "\006" -#define TR_SUBTYPE_WK2x01 "WK2801""WK2401""W6_5_1""W6_6_1""W6_Hel""W6_HeI" - -#define LEN_SUBTYPE_Q303 "\006" -#define TR_SUBTYPE_Q303 "Q303\0 ""CX35\0 ""CX10D\0""CX10WD" - -#define LEN_SUBTYPE_V2X2 "\006" -#define TR_SUBTYPE_V2X2 "V2x2\0 ""JXD506" - -#define LEN_SUBTYPE_BAYANG "\006" -#define TR_SUBTYPE_BAYANG "Bayang""H8S3D" - -#define LEN_SUBTYPE_FY326 "\005" -#define TR_SUBTYPE_FY326 "FY326""FY319" - #define LEN_VTRIMINC TR("\006", "\013") #define TR_VTRIMINC TR("Expo ""ExFino""Fino ""Medio ""Grueso", "Exponencial""Extra Fino ""Fino ""Medio ""Grueso ") diff --git a/radio/src/translations/fi.h.txt b/radio/src/translations/fi.h.txt index 00c45184e..9bccb0ba2 100644 --- a/radio/src/translations/fi.h.txt +++ b/radio/src/translations/fi.h.txt @@ -107,70 +107,10 @@ #define TR_DSM_PROTOCOLS "LP45""DSM2""DSMX" #define LEN_MULTI_PROTOCOLS "\006" -#define TR_MULTI_PROTOCOLS "FlySky""Hubsan""FrSky\0""Hisky\0""V2x2\0 ""DSM\0 ""Devo\0 ""YD717\0""KN\0 ""SymaX\0""SLT\0 ""CX10\0 ""CG023\0""Bayang""ESky\0 ""MT99XX""MJXQ\0 ""Shenqi""FY326\0""SFHSS\0""J6 PRO""FQ777\0""Assan\0""Hontai""OLRS\0 ""FS 2A\0""Q2x2\0 ""Walk.\0""Q303\0 " +#define TR_MULTI_PROTOCOLS "FlySky""Hubsan""FrSky\0""Hisky\0""V2x2\0 ""DSM\0 ""Devo\0 ""YD717\0""KN\0 ""SymaX\0""SLT\0 ""CX10\0 ""CG023\0""Bayang""ESky\0 ""MT99XX""MJXQ\0 ""Shenqi""FY326\0""SFHSS\0""J6 PRO""FQ777\0""Assan\0""Hontai""OLRS\0 ""FS 2A\0""Q2x2\0 ""Walk.\0""Q303\0 ""GW008\0" #define TR_MULTI_CUSTOM "Custom" -#define LEN_SUBTYPE_FLYSKY "\004" -#define TR_SUBTYPE_FLYSKY "Std\0""V9x9""V6x6""V912""CX20" - -#define LEN_SUBTYPE_AFHDS2A "\010" -#define TR_SUBTYPE_AFHDS2A "PWM,IBUS""PPM,IBUS""PWM,SBUS""PPM,SBUS" - -#define LEN_SUBTYPE_FRSKY "\007" -#define TR_SUBTYPE_FRSKY "D16\0 ""D8\0 ""D16 8ch""V8\0 ""LBT(EU)""LBT 8ch" - -#define LEN_SUBTYPE_HISKY "\005" -#define TR_SUBTYPE_HISKY "HiSky""HK310" - -#define LEN_SUBTYPE_DSM "\006" -#define TR_SUBTYPE_DSM "2 22ms""2 11ms""X 22ms""X 11ms" - -#define LEN_SUBTYPE_YD717 "\007" -#define TR_SUBTYPE_YD717 "YD717\0 ""SKYWLKR""Syma X2""XINXUN\0""NIHUI\0 " - -#define LEN_SUBTYPE_SYMAX "\003" -#define TR_SUBTYPE_SYMAX "Std""5c\0" - -#define LEN_SUBTYPE_SLT "\005" -#define TR_SUBTYPE_SLT "SLT\0 ""Vista" - -#define LEN_SUBTYPE_CX10 "\007" -#define TR_SUBTYPE_CX10 "Green\0 ""Blue\0 ""DM007\0 ""-\0 ""JC3015a""JC3015b""MK33041""Q242\0 " - -#define LEN_SUBTYPE_CG023 "\005" -#define TR_SUBTYPE_CG023 "CG023""YD829""H3 3d" - -#define LEN_SUBTYPE_KN "\006" -#define TR_SUBTYPE_KN "WLtoys""FeiLun" - -#define LEN_SUBTYPE_MT99 "\005" -#define TR_SUBTYPE_MT99 "MT99\0""H7\0 ""YZ\0 ""LS\0 ""FY805" - -#define LEN_SUBTYPE_MJXQ "\005" -#define TR_SUBTYPE_MJXQ "WLH08""X600\0""X800\0""H26D\0""E010\0""H26WH" - -#define LEN_SUBTYPE_HONTAI "\007" -#define TR_SUBTYPE_HONTAI "Std\0 ""JJRC X1""X5C1cln" - -#define LEN_SUBTYPE_Q2X2 "\004" -#define TR_SUBTYPE_Q2X2 "Q222""Q242""Q282" - -#define LEN_SUBTYPE_WK2x01 "\006" -#define TR_SUBTYPE_WK2x01 "WK2801""WK2401""W6_5_1""W6_6_1""W6_Hel""W6_HeI" - -#define LEN_SUBTYPE_Q303 "\006" -#define TR_SUBTYPE_Q303 "Q303\0 ""CX35\0 ""CX10D\0""CX10WD" - -#define LEN_SUBTYPE_V2X2 "\006" -#define TR_SUBTYPE_V2X2 "V2x2\0 ""JXD506" - -#define LEN_SUBTYPE_BAYANG "\006" -#define TR_SUBTYPE_BAYANG "Bayang""H8S3D" - -#define LEN_SUBTYPE_FY326 "\005" -#define TR_SUBTYPE_FY326 "FY326""FY319" - #define LEN_VTRIMINC TR("\006", "\013") #define TR_VTRIMINC TR("Expo\0 ""EriHie""Hieno\0""Keski\0""Karkea", "Exponential""Eri Hieno\0 ""Hieno\0 ""Keski\0 ""Karkea\0 ") diff --git a/radio/src/translations/fr.h.txt b/radio/src/translations/fr.h.txt index a9fbe968a..a208b4dd3 100644 --- a/radio/src/translations/fr.h.txt +++ b/radio/src/translations/fr.h.txt @@ -107,70 +107,10 @@ #define TR_DSM_PROTOCOLS "LP45""DSM2""DSMX" #define LEN_MULTI_PROTOCOLS "\006" -#define TR_MULTI_PROTOCOLS "FlySky""Hubsan""FrSky\0""Hisky\0""V2x2\0 ""DSM\0 ""Devo\0 ""YD717\0""KN\0 ""SymaX\0""SLT\0 ""CX10\0 ""CG023\0""Bayang""ESky\0 ""MT99XX""MJXQ\0 ""Shenqi""FY326\0""SFHSS\0""J6 PRO""FQ777\0""Assan\0""Hontai""OLRS\0 ""FS 2A\0""Q2x2\0 ""Walk.\0""Q303\0 " +#define TR_MULTI_PROTOCOLS "FlySky""Hubsan""FrSky\0""Hisky\0""V2x2\0 ""DSM\0 ""Devo\0 ""YD717\0""KN\0 ""SymaX\0""SLT\0 ""CX10\0 ""CG023\0""Bayang""ESky\0 ""MT99XX""MJXQ\0 ""Shenqi""FY326\0""SFHSS\0""J6 PRO""FQ777\0""Assan\0""Hontai""OLRS\0 ""FS 2A\0""Q2x2\0 ""Walk.\0""Q303\0 ""GW008\0" #define TR_MULTI_CUSTOM "Perso" -#define LEN_SUBTYPE_FLYSKY "\004" -#define TR_SUBTYPE_FLYSKY "Std\0""V9x9""V6x6""V912""CX20" - -#define LEN_SUBTYPE_AFHDS2A "\010" -#define TR_SUBTYPE_AFHDS2A "PWM,IBUS""PPM,IBUS""PWM,SBUS""PPM,SBUS" - -#define LEN_SUBTYPE_FRSKY "\007" -#define TR_SUBTYPE_FRSKY "D16\0 ""D8\0 ""D16 8ch""V8\0 ""LBT(EU)""LBT 8ch" - -#define LEN_SUBTYPE_HISKY "\005" -#define TR_SUBTYPE_HISKY "HiSky""HK310" - -#define LEN_SUBTYPE_DSM "\006" -#define TR_SUBTYPE_DSM "2 22ms""2 11ms""X 22ms""X 11ms" - -#define LEN_SUBTYPE_YD717 "\007" -#define TR_SUBTYPE_YD717 "YD717\0 ""SKYWLKR""Syma X2""XINXUN\0""NIHUI\0 " - -#define LEN_SUBTYPE_SYMAX "\003" -#define TR_SUBTYPE_SYMAX "Std""5c\0" - -#define LEN_SUBTYPE_SLT "\005" -#define TR_SUBTYPE_SLT "SLT\0 ""Vista" - -#define LEN_SUBTYPE_CX10 "\007" -#define TR_SUBTYPE_CX10 "Green\0 ""Blue\0 ""DM007\0 ""-\0 ""JC3015a""JC3015b""MK33041""Q242\0 " - -#define LEN_SUBTYPE_CG023 "\005" -#define TR_SUBTYPE_CG023 "CG023""YD829""H3 3d" - -#define LEN_SUBTYPE_KN "\006" -#define TR_SUBTYPE_KN "WLtoys""FeiLun" - -#define LEN_SUBTYPE_MT99 "\005" -#define TR_SUBTYPE_MT99 "MT99\0""H7\0 ""YZ\0 ""LS\0 ""FY805" - -#define LEN_SUBTYPE_MJXQ "\005" -#define TR_SUBTYPE_MJXQ "WLH08""X600\0""X800\0""H26D\0""E010\0""H26WH" - -#define LEN_SUBTYPE_HONTAI "\007" -#define TR_SUBTYPE_HONTAI "Std\0 ""JJRC X1""X5C1cln" - -#define LEN_SUBTYPE_Q2X2 "\004" -#define TR_SUBTYPE_Q2X2 "Q222""Q242""Q282" - -#define LEN_SUBTYPE_WK2x01 "\006" -#define TR_SUBTYPE_WK2x01 "WK2801""WK2401""W6_5_1""W6_6_1""W6_Hel""W6_HeI" - -#define LEN_SUBTYPE_Q303 "\006" -#define TR_SUBTYPE_Q303 "Q303\0 ""CX35\0 ""CX10D\0""CX10WD" - -#define LEN_SUBTYPE_V2X2 "\006" -#define TR_SUBTYPE_V2X2 "V2x2\0 ""JXD506" - -#define LEN_SUBTYPE_BAYANG "\006" -#define TR_SUBTYPE_BAYANG "Bayang""H8S3D" - -#define LEN_SUBTYPE_FY326 "\005" -#define TR_SUBTYPE_FY326 "FY326""FY319" - #define LEN_VTRIMINC TR("\006", "\013") #define TR_VTRIMINC TR("Expo\0 ""ExFin\0""Fin\0 ""Moyen\0""Gros\0 ","Exponentiel""Extra Fin\0 ""Fin\0 ""Moyen\0 ""Grossier\0 ") diff --git a/radio/src/translations/it.h.txt b/radio/src/translations/it.h.txt index a53241b81..413eac8b4 100644 --- a/radio/src/translations/it.h.txt +++ b/radio/src/translations/it.h.txt @@ -107,70 +107,10 @@ #define TR_DSM_PROTOCOLS "LP45""DSM2""DSMX" #define LEN_MULTI_PROTOCOLS "\006" -#define TR_MULTI_PROTOCOLS "FlySky""Hubsan""FrSky\0""Hisky\0""V2x2\0 ""DSM\0 ""Devo\0 ""YD717\0""KN\0 ""SymaX\0""SLT\0 ""CX10\0 ""CG023\0""Bayang""ESky\0 ""MT99XX""MJXQ\0 ""Shenqi""FY326\0""SFHSS\0""J6 PRO""FQ777\0""Assan\0""Hontai""OLRS\0 ""FS 2A\0""Q2x2\0 ""Walk.\0""Q303\0 " +#define TR_MULTI_PROTOCOLS "FlySky""Hubsan""FrSky\0""Hisky\0""V2x2\0 ""DSM\0 ""Devo\0 ""YD717\0""KN\0 ""SymaX\0""SLT\0 ""CX10\0 ""CG023\0""Bayang""ESky\0 ""MT99XX""MJXQ\0 ""Shenqi""FY326\0""SFHSS\0""J6 PRO""FQ777\0""Assan\0""Hontai""OLRS\0 ""FS 2A\0""Q2x2\0 ""Walk.\0""Q303\0 ""GW008\0" #define TR_MULTI_CUSTOM "Custom" -#define LEN_SUBTYPE_FLYSKY "\004" -#define TR_SUBTYPE_FLYSKY "Std\0""V9x9""V6x6""V912""CX20" - -#define LEN_SUBTYPE_AFHDS2A "\010" -#define TR_SUBTYPE_AFHDS2A "PWM,IBUS""PPM,IBUS""PWM,SBUS""PPM,SBUS" - -#define LEN_SUBTYPE_FRSKY "\007" -#define TR_SUBTYPE_FRSKY "D16\0 ""D8\0 ""D16 8ch""V8\0 ""LBT(EU)""LBT 8ch" - -#define LEN_SUBTYPE_HISKY "\005" -#define TR_SUBTYPE_HISKY "HiSky""HK310" - -#define LEN_SUBTYPE_DSM "\006" -#define TR_SUBTYPE_DSM "2 22ms""2 11ms""X 22ms""X 11ms" - -#define LEN_SUBTYPE_YD717 "\007" -#define TR_SUBTYPE_YD717 "YD717\0 ""SKYWLKR""Syma X2""XINXUN\0""NIHUI\0 " - -#define LEN_SUBTYPE_SYMAX "\003" -#define TR_SUBTYPE_SYMAX "Std""5c\0" - -#define LEN_SUBTYPE_SLT "\005" -#define TR_SUBTYPE_SLT "SLT\0 ""Vista" - -#define LEN_SUBTYPE_CX10 "\007" -#define TR_SUBTYPE_CX10 "Green\0 ""Blue\0 ""DM007\0 ""-\0 ""JC3015a""JC3015b""MK33041""Q242\0 " - -#define LEN_SUBTYPE_CG023 "\005" -#define TR_SUBTYPE_CG023 "CG023""YD829""H3 3d" - -#define LEN_SUBTYPE_KN "\006" -#define TR_SUBTYPE_KN "WLtoys""FeiLun" - -#define LEN_SUBTYPE_MT99 "\005" -#define TR_SUBTYPE_MT99 "MT99\0""H7\0 ""YZ\0 ""LS\0 ""FY805" - -#define LEN_SUBTYPE_MJXQ "\005" -#define TR_SUBTYPE_MJXQ "WLH08""X600\0""X800\0""H26D\0""E010\0""H26WH" - -#define LEN_SUBTYPE_HONTAI "\007" -#define TR_SUBTYPE_HONTAI "Std\0 ""JJRC X1""X5C1cln" - -#define LEN_SUBTYPE_Q2X2 "\004" -#define TR_SUBTYPE_Q2X2 "Q222""Q242""Q282" - -#define LEN_SUBTYPE_WK2x01 "\006" -#define TR_SUBTYPE_WK2x01 "WK2801""WK2401""W6_5_1""W6_6_1""W6_Hel""W6_HeI" - -#define LEN_SUBTYPE_Q303 "\006" -#define TR_SUBTYPE_Q303 "Q303\0 ""CX35\0 ""CX10D\0""CX10WD" - -#define LEN_SUBTYPE_V2X2 "\006" -#define TR_SUBTYPE_V2X2 "V2x2\0 ""JXD506" - -#define LEN_SUBTYPE_BAYANG "\006" -#define TR_SUBTYPE_BAYANG "Bayang""H8S3D" - -#define LEN_SUBTYPE_FY326 "\005" -#define TR_SUBTYPE_FY326 "FY326""FY319" - #define LEN_VTRIMINC "\006" #define TR_VTRIMINC "Exp ""ExFine""Fine ""Medio ""Ampio " diff --git a/radio/src/translations/nl.h.txt b/radio/src/translations/nl.h.txt index e1fd16d2d..2a8cb55a5 100644 --- a/radio/src/translations/nl.h.txt +++ b/radio/src/translations/nl.h.txt @@ -112,70 +112,10 @@ #define TR_DSM_PROTOCOLS "LP45""DSM2""DSMX" #define LEN_MULTI_PROTOCOLS "\006" -#define TR_MULTI_PROTOCOLS "FlySky""Hubsan""FrSky\0""Hisky\0""V2x2\0 ""DSM\0 ""Devo\0 ""YD717\0""KN\0 ""SymaX\0""SLT\0 ""CX10\0 ""CG023\0""Bayang""ESky\0 ""MT99XX""MJXQ\0 ""Shenqi""FY326\0""SFHSS\0""J6 PRO""FQ777\0""Assan\0""Hontai""OLRS\0 ""FS 2A\0""Q2x2\0 ""Walk.\0""Q303\0 " +#define TR_MULTI_PROTOCOLS "FlySky""Hubsan""FrSky\0""Hisky\0""V2x2\0 ""DSM\0 ""Devo\0 ""YD717\0""KN\0 ""SymaX\0""SLT\0 ""CX10\0 ""CG023\0""Bayang""ESky\0 ""MT99XX""MJXQ\0 ""Shenqi""FY326\0""SFHSS\0""J6 PRO""FQ777\0""Assan\0""Hontai""OLRS\0 ""FS 2A\0""Q2x2\0 ""Walk.\0""Q303\0 ""GW008\0" #define TR_MULTI_CUSTOM "Custom" -#define LEN_SUBTYPE_FLYSKY "\004" -#define TR_SUBTYPE_FLYSKY "Std\0""V9x9""V6x6""V912""CX20" - -#define LEN_SUBTYPE_AFHDS2A "\010" -#define TR_SUBTYPE_AFHDS2A "PWM,IBUS""PPM,IBUS""PWM,SBUS""PPM,SBUS" - -#define LEN_SUBTYPE_FRSKY "\007" -#define TR_SUBTYPE_FRSKY "D16\0 ""D8\0 ""D16 8ch""V8\0 ""LBT(EU)""LBT 8ch" - -#define LEN_SUBTYPE_HISKY "\005" -#define TR_SUBTYPE_HISKY "HiSky""HK310" - -#define LEN_SUBTYPE_DSM "\006" -#define TR_SUBTYPE_DSM "2 22ms""2 11ms""X 22ms""X 11ms" - -#define LEN_SUBTYPE_YD717 "\007" -#define TR_SUBTYPE_YD717 "YD717\0 ""SKYWLKR""Syma X2""XINXUN\0""NIHUI\0 " - -#define LEN_SUBTYPE_SYMAX "\003" -#define TR_SUBTYPE_SYMAX "Std""5c\0" - -#define LEN_SUBTYPE_SLT "\005" -#define TR_SUBTYPE_SLT "SLT\0 ""Vista" - -#define LEN_SUBTYPE_CX10 "\007" -#define TR_SUBTYPE_CX10 "Green\0 ""Blue\0 ""DM007\0 ""-\0 ""JC3015a""JC3015b""MK33041""Q242\0 " - -#define LEN_SUBTYPE_CG023 "\005" -#define TR_SUBTYPE_CG023 "CG023""YD829""H3 3d" - -#define LEN_SUBTYPE_KN "\006" -#define TR_SUBTYPE_KN "WLtoys""FeiLun" - -#define LEN_SUBTYPE_MT99 "\005" -#define TR_SUBTYPE_MT99 "MT99\0""H7\0 ""YZ\0 ""LS\0 ""FY805" - -#define LEN_SUBTYPE_MJXQ "\005" -#define TR_SUBTYPE_MJXQ "WLH08""X600\0""X800\0""H26D\0""E010\0""H26WH" - -#define LEN_SUBTYPE_HONTAI "\007" -#define TR_SUBTYPE_HONTAI "Std\0 ""JJRC X1""X5C1cln" - -#define LEN_SUBTYPE_Q2X2 "\004" -#define TR_SUBTYPE_Q2X2 "Q222""Q242""Q282" - -#define LEN_SUBTYPE_WK2x01 "\006" -#define TR_SUBTYPE_WK2x01 "WK2801""WK2401""W6_5_1""W6_6_1""W6_Hel""W6_HeI" - -#define LEN_SUBTYPE_Q303 "\006" -#define TR_SUBTYPE_Q303 "Q303\0 ""CX35\0 ""CX10D\0""CX10WD" - -#define LEN_SUBTYPE_V2X2 "\006" -#define TR_SUBTYPE_V2X2 "V2x2\0 ""JXD506" - -#define LEN_SUBTYPE_BAYANG "\006" -#define TR_SUBTYPE_BAYANG "Bayang""H8S3D" - -#define LEN_SUBTYPE_FY326 "\005" -#define TR_SUBTYPE_FY326 "FY326""FY319" - #define LEN_VTRIMINC TR("\006", "\014") #define TR_VTRIMINC TR("Expo\0 ""ExFijn""Fijn\0 ""Medium""Grof\0 ", "Exponentieel""Extra Fijn\0 ""Fijn\0 ""Medium\0 ""Grof\0 ") diff --git a/radio/src/translations/pl.h.txt b/radio/src/translations/pl.h.txt index 023845f64..b77a1b874 100644 --- a/radio/src/translations/pl.h.txt +++ b/radio/src/translations/pl.h.txt @@ -108,70 +108,10 @@ #define TR_DSM_PROTOCOLS "LP45""DSM2""DSMX" #define LEN_MULTI_PROTOCOLS "\006" -#define TR_MULTI_PROTOCOLS "FlySky""Hubsan""FrSky\0""Hisky\0""V2x2\0 ""DSM\0 ""Devo\0 ""YD717\0""KN\0 ""SymaX\0""SLT\0 ""CX10\0 ""CG023\0""Bayang""ESky\0 ""MT99XX""MJXQ\0 ""Shenqi""FY326\0""SFHSS\0""J6 PRO""FQ777\0""Assan\0""Hontai""OLRS\0 ""FS 2A\0""Q2x2\0 ""Walk.\0""Q303\0 " +#define TR_MULTI_PROTOCOLS "FlySky""Hubsan""FrSky\0""Hisky\0""V2x2\0 ""DSM\0 ""Devo\0 ""YD717\0""KN\0 ""SymaX\0""SLT\0 ""CX10\0 ""CG023\0""Bayang""ESky\0 ""MT99XX""MJXQ\0 ""Shenqi""FY326\0""SFHSS\0""J6 PRO""FQ777\0""Assan\0""Hontai""OLRS\0 ""FS 2A\0""Q2x2\0 ""Walk.\0""Q303\0 ""GW008\0" #define TR_MULTI_CUSTOM "Custom" -#define LEN_SUBTYPE_FLYSKY "\004" -#define TR_SUBTYPE_FLYSKY "Std\0""V9x9""V6x6""V912""CX20" - -#define LEN_SUBTYPE_AFHDS2A "\010" -#define TR_SUBTYPE_AFHDS2A "PWM,IBUS""PPM,IBUS""PWM,SBUS""PPM,SBUS" - -#define LEN_SUBTYPE_FRSKY "\007" -#define TR_SUBTYPE_FRSKY "D16\0 ""D8\0 ""D16 8ch""V8\0 ""LBT(EU)""LBT 8ch" - -#define LEN_SUBTYPE_HISKY "\005" -#define TR_SUBTYPE_HISKY "HiSky""HK310" - -#define LEN_SUBTYPE_DSM "\006" -#define TR_SUBTYPE_DSM "2 22ms""2 11ms""X 22ms""X 11ms" - -#define LEN_SUBTYPE_YD717 "\007" -#define TR_SUBTYPE_YD717 "YD717\0 ""SKYWLKR""Syma X2""XINXUN\0""NIHUI\0 " - -#define LEN_SUBTYPE_SYMAX "\003" -#define TR_SUBTYPE_SYMAX "Std""5c\0" - -#define LEN_SUBTYPE_SLT "\005" -#define TR_SUBTYPE_SLT "SLT\0 ""Vista" - -#define LEN_SUBTYPE_CX10 "\007" -#define TR_SUBTYPE_CX10 "Green\0 ""Blue\0 ""DM007\0 ""-\0 ""JC3015a""JC3015b""MK33041""Q242\0 " - -#define LEN_SUBTYPE_CG023 "\005" -#define TR_SUBTYPE_CG023 "CG023""YD829""H3 3d" - -#define LEN_SUBTYPE_KN "\006" -#define TR_SUBTYPE_KN "WLtoys""FeiLun" - -#define LEN_SUBTYPE_MT99 "\005" -#define TR_SUBTYPE_MT99 "MT99\0""H7\0 ""YZ\0 ""LS\0 ""FY805" - -#define LEN_SUBTYPE_MJXQ "\005" -#define TR_SUBTYPE_MJXQ "WLH08""X600\0""X800\0""H26D\0""E010\0""H26WH" - -#define LEN_SUBTYPE_HONTAI "\007" -#define TR_SUBTYPE_HONTAI "Std\0 ""JJRC X1""X5C1cln" - -#define LEN_SUBTYPE_Q2X2 "\004" -#define TR_SUBTYPE_Q2X2 "Q222""Q242""Q282" - -#define LEN_SUBTYPE_WK2x01 "\006" -#define TR_SUBTYPE_WK2x01 "WK2801""WK2401""W6_5_1""W6_6_1""W6_Hel""W6_HeI" - -#define LEN_SUBTYPE_Q303 "\006" -#define TR_SUBTYPE_Q303 "Q303\0 ""CX35\0 ""CX10D\0""CX10WD" - -#define LEN_SUBTYPE_V2X2 "\006" -#define TR_SUBTYPE_V2X2 "V2x2\0 ""JXD506" - -#define LEN_SUBTYPE_BAYANG "\006" -#define TR_SUBTYPE_BAYANG "Bayang""H8S3D" - -#define LEN_SUBTYPE_FY326 "\005" -#define TR_SUBTYPE_FY326 "FY326""FY319" - #define LEN_VTRIMINC TR("\006", "\013") /*11 decimal*/ #define TR_VTRIMINC TR("Expo\0 ""B.Dokł""Dokł.\0""Średni""Zgrubn", "Expotencja ""B.Dokładny\0""Dokładny\0 ""Średni\0 ""Zgrubny\0 ") diff --git a/radio/src/translations/pt.h.txt b/radio/src/translations/pt.h.txt index 5f5e6cdae..5ebf9cb70 100644 --- a/radio/src/translations/pt.h.txt +++ b/radio/src/translations/pt.h.txt @@ -107,68 +107,10 @@ #define TR_DSM_PROTOCOLS "LP45""DSM2""DSMX" #define LEN_MULTI_PROTOCOLS "\006" -#define TR_MULTI_PROTOCOLS "FlySky""Hubsan""FrSky\0""Hisky\0""V2x2\0 ""DSM\0 ""Devo\0 ""YD717\0""KN\0 ""SymaX\0""SLT\0 ""CX10\0 ""CG023\0""Bayang""ESky\0 ""MT99XX""MJXQ\0 ""Shenqi""FY326\0""SFHSS\0""J6 PRO""FQ777\0""Assan\0""Hontai""OLRS\0 ""FS 2A\0""Q2x2\0 ""Walk.\0""Q303\0 " +#define TR_MULTI_PROTOCOLS "FlySky""Hubsan""FrSky\0""Hisky\0""V2x2\0 ""DSM\0 ""Devo\0 ""YD717\0""KN\0 ""SymaX\0""SLT\0 ""CX10\0 ""CG023\0""Bayang""ESky\0 ""MT99XX""MJXQ\0 ""Shenqi""FY326\0""SFHSS\0""J6 PRO""FQ777\0""Assan\0""Hontai""OLRS\0 ""FS 2A\0""Q2x2\0 ""Walk.\0""Q303\0 ""GW008\0" #define TR_MULTI_CUSTOM "Custom" - -#define LEN_SUBTYPE_FLYSKY "\004" -#define TR_SUBTYPE_FLYSKY "Std\0""V9x9""V6x6""V912""CX20" - -#define LEN_SUBTYPE_AFHDS2A "\010" -#define TR_SUBTYPE_AFHDS2A "PWM,IBUS""PPM,IBUS""PWM,SBUS""PPM,SBUS" - -#define LEN_SUBTYPE_FRSKY "\007" -#define TR_SUBTYPE_FRSKY "D16\0 ""D8\0 ""D16 8ch""V8\0 ""LBT(EU)""LBT 8ch" - -#define LEN_SUBTYPE_HISKY "\005" -#define TR_SUBTYPE_HISKY "HiSky""HK310" - -#define LEN_SUBTYPE_DSM "\006" -#define TR_SUBTYPE_DSM "2 22ms""2 11ms""X 22ms""X 11ms" - -#define LEN_SUBTYPE_YD717 "\007" -#define TR_SUBTYPE_YD717 "YD717\0 ""SKYWLKR""Syma X2""XINXUN\0""NIHUI\0 " - -#define LEN_SUBTYPE_SYMAX "\003" -#define TR_SUBTYPE_SYMAX "Std""5c\0" - -#define LEN_SUBTYPE_SLT "\005" -#define TR_SUBTYPE_SLT "SLT\0 ""Vista" - -#define LEN_SUBTYPE_CX10 "\007" -#define TR_SUBTYPE_CX10 "Green\0 ""Blue\0 ""DM007\0 ""-\0 ""JC3015a""JC3015b""MK33041""Q242\0 " - -#define LEN_SUBTYPE_CG023 "\005" -#define TR_SUBTYPE_CG023 "CG023""YD829""H3 3d" - -#define LEN_SUBTYPE_KN "\006" -#define TR_SUBTYPE_KN "WLtoys""FeiLun" - -#define LEN_SUBTYPE_MT99 "\005" -#define TR_SUBTYPE_MT99 "MT99\0""H7\0 ""YZ\0 ""LS\0 ""FY805" - -#define LEN_SUBTYPE_MJXQ "\005" -#define TR_SUBTYPE_MJXQ "WLH08""X600\0""X800\0""H26D\0""E010\0""H26WH" - -#define LEN_SUBTYPE_HONTAI "\007" -#define TR_SUBTYPE_HONTAI "Std\0 ""JJRC X1""X5C1cln" - -#define LEN_SUBTYPE_Q2X2 "\004" -#define TR_SUBTYPE_Q2X2 "Q222""Q242""Q282" - -#define LEN_SUBTYPE_WK2x01 "\006" -#define TR_SUBTYPE_WK2x01 "WK2801""WK2401""W6_5_1""W6_6_1""W6_Hel""W6_HeI" - -#define LEN_SUBTYPE_Q303 "\006" -#define TR_SUBTYPE_Q303 "Q303\0 ""CX35\0 ""CX10D\0""CX10WD" - -#define LEN_SUBTYPE_V2X2 "\006" -#define TR_SUBTYPE_V2X2 "V2x2\0 ""JXD506" - -#define LEN_SUBTYPE_BAYANG "\006" -#define TR_SUBTYPE_BAYANG "Bayang""H8S3D" - #define LEN_SUBTYPE_FY326 "\005" #define TR_SUBTYPE_FY326 "FY326""FY319" diff --git a/radio/src/translations/se.h.txt b/radio/src/translations/se.h.txt index 0fb694e47..28ea212da 100644 --- a/radio/src/translations/se.h.txt +++ b/radio/src/translations/se.h.txt @@ -107,70 +107,10 @@ #define TR_DSM_PROTOCOLS "LP45""DSM2""DSMX" #define LEN_MULTI_PROTOCOLS "\006" -#define TR_MULTI_PROTOCOLS "FlySky""Hubsan""FrSky\0""Hisky\0""V2x2\0 ""DSM\0 ""Devo\0 ""YD717\0""KN\0 ""SymaX\0""SLT\0 ""CX10\0 ""CG023\0""Bayang""ESky\0 ""MT99XX""MJXQ\0 ""Shenqi""FY326\0""SFHSS\0""J6 PRO""FQ777\0""Assan\0""Hontai""OLRS\0 ""FS 2A\0""Q2x2\0 ""Walk.\0""Q303\0 " +#define TR_MULTI_PROTOCOLS "FlySky""Hubsan""FrSky\0""Hisky\0""V2x2\0 ""DSM\0 ""Devo\0 ""YD717\0""KN\0 ""SymaX\0""SLT\0 ""CX10\0 ""CG023\0""Bayang""ESky\0 ""MT99XX""MJXQ\0 ""Shenqi""FY326\0""SFHSS\0""J6 PRO""FQ777\0""Assan\0""Hontai""OLRS\0 ""FS 2A\0""Q2x2\0 ""Walk.\0""Q303\0 ""GW008\0" #define TR_MULTI_CUSTOM "Custom" -#define LEN_SUBTYPE_FLYSKY "\004" -#define TR_SUBTYPE_FLYSKY "Std\0""V9x9""V6x6""V912""CX20" - -#define LEN_SUBTYPE_AFHDS2A "\010" -#define TR_SUBTYPE_AFHDS2A "PWM,IBUS""PPM,IBUS""PWM,SBUS""PPM,SBUS" - -#define LEN_SUBTYPE_FRSKY "\007" -#define TR_SUBTYPE_FRSKY "D16\0 ""D8\0 ""D16 8ch""V8\0 ""LBT(EU)""LBT 8ch" - -#define LEN_SUBTYPE_HISKY "\005" -#define TR_SUBTYPE_HISKY "HiSky""HK310" - -#define LEN_SUBTYPE_DSM "\006" -#define TR_SUBTYPE_DSM "2 22ms""2 11ms""X 22ms""X 11ms" - -#define LEN_SUBTYPE_YD717 "\007" -#define TR_SUBTYPE_YD717 "YD717\0 ""SKYWLKR""Syma X2""XINXUN\0""NIHUI\0 " - -#define LEN_SUBTYPE_SYMAX "\003" -#define TR_SUBTYPE_SYMAX "Std""5c\0" - -#define LEN_SUBTYPE_SLT "\005" -#define TR_SUBTYPE_SLT "SLT\0 ""Vista" - -#define LEN_SUBTYPE_CX10 "\007" -#define TR_SUBTYPE_CX10 "Green\0 ""Blue\0 ""DM007\0 ""-\0 ""JC3015a""JC3015b""MK33041""Q242\0 " - -#define LEN_SUBTYPE_CG023 "\005" -#define TR_SUBTYPE_CG023 "CG023""YD829""H3 3d" - -#define LEN_SUBTYPE_KN "\006" -#define TR_SUBTYPE_KN "WLtoys""FeiLun" - -#define LEN_SUBTYPE_MT99 "\005" -#define TR_SUBTYPE_MT99 "MT99\0""H7\0 ""YZ\0 ""LS\0 ""FY805" - -#define LEN_SUBTYPE_MJXQ "\005" -#define TR_SUBTYPE_MJXQ "WLH08""X600\0""X800\0""H26D\0""E010\0""H26WH" - -#define LEN_SUBTYPE_HONTAI "\007" -#define TR_SUBTYPE_HONTAI "Std\0 ""JJRC X1""X5C1cln" - -#define LEN_SUBTYPE_Q2X2 "\004" -#define TR_SUBTYPE_Q2X2 "Q222""Q242""Q282" - -#define LEN_SUBTYPE_WK2x01 "\006" -#define TR_SUBTYPE_WK2x01 "WK2801""WK2401""W6_5_1""W6_6_1""W6_Hel""W6_HeI" - -#define LEN_SUBTYPE_Q303 "\006" -#define TR_SUBTYPE_Q303 "Q303\0 ""CX35\0 ""CX10D\0""CX10WD" - -#define LEN_SUBTYPE_V2X2 "\006" -#define TR_SUBTYPE_V2X2 "V2x2\0 ""JXD506" - -#define LEN_SUBTYPE_BAYANG "\006" -#define TR_SUBTYPE_BAYANG "Bayang""H8S3D" - -#define LEN_SUBTYPE_FY326 "\005" -#define TR_SUBTYPE_FY326 "FY326""FY319" - #define LEN_VTRIMINC TR("\006","\014") #define TR_VTRIMINC TR("Expo\0 ""xFin\0 ""Fin\0 ""Medium""Grov\0 ","Exponentiell""Extra Fin\0 ""Fin\0 ""Medium\0 ""Grov\0 ")