From 6716482ae451f3db8086b6e2b7bcb47632b9b0bf Mon Sep 17 00:00:00 2001 From: bsongis Date: Wed, 2 Jul 2014 16:34:26 +0200 Subject: [PATCH] Fixes #1428 --- companion/src/eeprominterface.cpp | 89 ++----------------- companion/src/eeprominterface.h | 3 +- .../src/firmwares/opentx/opentxinterface.cpp | 49 +++++----- companion/src/modeledit/customfunctions.cpp | 3 +- radio/src/Makefile | 8 ++ radio/src/gui/menu_model.cpp | 17 ++-- radio/src/gui/menus.cpp | 8 +- radio/src/mixer.cpp | 2 + radio/src/myeeprom.h | 6 +- radio/src/opentx.cpp | 6 ++ radio/src/opentx.h | 2 + radio/src/translations/cz.h.txt | 24 +++-- radio/src/translations/de.h.txt | 14 ++- radio/src/translations/en.h.txt | 12 ++- radio/src/translations/es.h.txt | 12 ++- radio/src/translations/fi.h.txt | 12 ++- radio/src/translations/fr.h.txt | 12 ++- radio/src/translations/it.h.txt | 14 ++- radio/src/translations/pl.h.txt | 12 ++- radio/src/translations/pt.h.txt | 12 ++- radio/src/translations/se.h.txt | 12 ++- 21 files changed, 166 insertions(+), 163 deletions(-) diff --git a/companion/src/eeprominterface.cpp b/companion/src/eeprominterface.cpp index ffc3d1726..4cf29b34f 100644 --- a/companion/src/eeprominterface.cpp +++ b/companion/src/eeprominterface.cpp @@ -712,92 +712,13 @@ QString LogicalSwitchData::toString(const ModelData & model, const GeneralSettin return result; } -#if 0 -QStringList FuncSwData::toStringList() +void FuncSwData::clear() { - QStringList result; - QStringList qs; - - result << swtch.toString(); - result << funcToString(); - - if (func < FuncInstantTrim) { - result << QString("%1").arg(param); + memset(this, 0, sizeof(FuncSwData)); + if (!GetCurrentFirmware()->getCapability(SafetyChannelCustomFunction)) { + func = FuncTrainer; } - else if (func==FuncPlaySound) { - qs <<"Beep 1" << "Beep 2" << "Beep 3" << "Warn1" << "Warn2" << "Cheep" << "Ratata" << "Tick" << "Siren" << "Ring" ; - qs << "SciFi" << "Robot" << "Chirp" << "Tada" << "Crickt" << "AlmClk" ; - if (param>=0 && param<(int)qs.count()) - result << qs.at(param); - else - result << QObject::tr("Inconsistent parameter"); - } - else if (func==FuncPlayHaptic) { - qs << "0" << "1" << "2" << "3"; - if (param>=0 && param<(int)qs.count()) - result << qs.at(param); - else - result << QObject::tr("Inconsistent parameter"); - } - else if (func==FuncReset) { - qs.append( QObject::tr("Timer1")); - qs.append( QObject::tr("Timer2")); - qs.append( QObject::tr("All")); - qs.append( QObject::tr("Telemetry")); - if (param>=0 && param<(int)qs.count()) - result << qs.at(param); - else - result << QObject::tr("Inconsistent parameter"); - } - else if ((func==FuncVolume)|| (func==FuncPlayValue)) { - RawSource item(param); - result << item.toString(); - } - else if ((func==FuncPlayPrompt) || (func==FuncPlayBoth)) { - if ( GetCurrentFirmware()->getCapability(VoicesAsNumbers)) { - result << QString("%1").arg(param); - } else { - result << paramarm; - } - } - else if ((func>FuncBackgroundMusicPause) && (funcfuncSw[i].repeatParam),"green")); - } else { - str.append(doTC( " ","green")); - } - if ((index<=FuncInstantTrim) || (index>FuncBackgroundMusicPause)) { - str.append(doTC((g_model->funcSw[i].enabled ? "ON" : "OFF"),"green")); - } else { - str.append(doTC( "---","green")); - } - - return result; } -#endif QString FuncSwData::funcToString() { @@ -1215,6 +1136,8 @@ void ModelData::clear() expoData[i].clear(); for (int i=0; iaddOption("ppmus", QObject::tr("Channel values displayed in us")); + firmware->addOption("sqt5font", QObject::tr("Use alternative SQT5 font")); + firmware->addOption("nosafetych", QObject::tr("No SafetyCH functions available")); + Option fai_options[] = { { "faichoice", QObject::tr("Possibility to enable FAI MODE at field") }, { "faimode", QObject::tr("FAI MODE always enabled") }, { NULL } }; + firmware->addOptions(fai_options); +} + void registerOpenTxFirmwares() { OpenTxFirmware * openTx; @@ -1007,7 +1018,6 @@ void registerOpenTxFirmwares() Option ext_options[] = { { "frsky", QObject::tr("Support for frsky telemetry mod"), FRSKY_VARIANT }, { "telemetrez", QObject::tr("Support for telemetry easy board"), FRSKY_VARIANT }, { "jeti", QObject::tr("Support for jeti telemetry mod"), 0 }, { "ardupilot", QObject::tr("Support for receiving ardupilot data"), 0 }, { "nmea", QObject::tr("Support for receiving NMEA data"), 0 }, { "mavlink", QObject::tr("Support for MAVLINK devices"), MAVLINK_VARIANT }, { NULL } }; Option nav_options[] = { { "rotenc", QObject::tr("Rotary Encoder use in menus navigation") }, { "potscroll", QObject::tr("Pots use in menus navigation") }, { NULL } }; Option extr_options[] = { { "frsky", QObject::tr("Support for frsky telemetry mod"), FRSKY_VARIANT }, { "jeti", QObject::tr("Support for jeti telemetry mod"), 0 }, { "ardupilot", QObject::tr("Support for receiving ardupilot data"), 0 }, { "nmea", QObject::tr("Support for receiving NMEA data"), 0 }, { "mavlink", QObject::tr("Support for MAVLINK devices"), MAVLINK_VARIANT }, { NULL } }; - Option fai_options[] = { { "faichoice", QObject::tr("Possibility to enable FAI MODE at field") }, { "faimode", QObject::tr("FAI MODE always enabled") }, { NULL } }; /* 9x board */ openTx = new OpenTxFirmware("opentx-9x", QObject::tr("OpenTX for 9X board"), BOARD_STOCK); @@ -1023,7 +1033,6 @@ void registerOpenTxFirmwares() // NOT TESTED openTx->addOption("PXX", QObject::tr("Support of FrSky PXX protocol")); openTx->addOption("DSM2", QObject::tr("Support for DSM2 modules")); openTx->addOption("ppmca", QObject::tr("PPM center adjustment in limits")); - openTx->addOption("ppmus", QObject::tr("Channel values displayed in us")); openTx->addOption("gvars", QObject::tr("Global variables"), GVARS_VARIANT); openTx->addOption("symlimits", QObject::tr("Symetrical Limits")); openTx->addOptions(nav_options); @@ -1034,7 +1043,6 @@ void registerOpenTxFirmwares() openTx->addOption("nographics", QObject::tr("No graphical check boxes and sliders")); openTx->addOption("battgraph", QObject::tr("Battery graph")); openTx->addOption("nobold", QObject::tr("Don't use bold font for highlighting active items")); - openTx->addOption("sqt5font", QObject::tr("Use alternative SQT5 font")); openTx->addOption("thrtrace", QObject::tr("Enable the throttle trace in Statistics")); openTx->addOption("pgbar", QObject::tr("EEprom write progress bar")); openTx->addOption("imperial", QObject::tr("Imperial units")); @@ -1042,9 +1050,10 @@ void registerOpenTxFirmwares() openTx->addOption("novario", QObject::tr("No vario support")); openTx->addOption("nogps", QObject::tr("No GPS support")); openTx->addOption("nogauges", QObject::tr("No gauges in the custom telemetry screen")); + openTx->addOption("nosafetych", QObject::tr("No SafetyCH functions available")); openTx->addOption("fasoffset", QObject::tr("Allow compensating for offset errors in FrSky FAS current sensors")); openTx->addOption("stickrev", QObject::tr("Add support for reversing stick inputs (e.g. needed for FrSky gimbals)")); - openTx->addOptions(fai_options); + addOpenTxCommonOptions(openTx); firmwares.push_back(openTx); /* 9x board with M128 chip */ @@ -1061,7 +1070,6 @@ void registerOpenTxFirmwares() // NOT TESTED openTx->addOption("PXX", QObject::tr("Support of FrSky PXX protocol")); openTx->addOption("DSM2", QObject::tr("Support for DSM2 modules")); openTx->addOption("ppmca", QObject::tr("PPM center adjustment in limits")); - openTx->addOption("ppmus", QObject::tr("Channel values displayed in us")); openTx->addOption("gvars", QObject::tr("Global variables"), GVARS_VARIANT); openTx->addOption("symlimits", QObject::tr("Symetrical Limits")); openTx->addOptions(nav_options); @@ -1072,11 +1080,10 @@ void registerOpenTxFirmwares() openTx->addOption("nographics", QObject::tr("No graphical check boxes and sliders")); openTx->addOption("battgraph", QObject::tr("Battery graph")); openTx->addOption("nobold", QObject::tr("Don't use bold font for highlighting active items")); - openTx->addOption("sqt5font", QObject::tr("Use alternative SQT5 font")); openTx->addOption("thrtrace", QObject::tr("Enable the throttle trace in Statistics")); openTx->addOption("pgbar", QObject::tr("EEprom write Progress bar")); openTx->addOption("imperial", QObject::tr("Imperial units")); - openTx->addOptions(fai_options); + addOpenTxCommonOptions(openTx); firmwares.push_back(openTx); /* 9XR board */ @@ -1093,7 +1100,6 @@ void registerOpenTxFirmwares() // NOT TESTED openTx->addOption("PXX", QObject::tr("Support of FrSky PXX protocol")); openTx->addOption("DSM2", QObject::tr("Support for DSM2 modules")); openTx->addOption("ppmca", QObject::tr("PPM center adjustment in limits")); - openTx->addOption("ppmus", QObject::tr("Channel values displayed in us")); openTx->addOption("gvars", QObject::tr("Global variables"), GVARS_VARIANT); openTx->addOption("symlimits", QObject::tr("Symetrical Limits")); openTx->addOption("potscroll", QObject::tr("Pots use in menus navigation")); @@ -1102,7 +1108,6 @@ void registerOpenTxFirmwares() openTx->addOption("nographics", QObject::tr("No graphical check boxes and sliders")); openTx->addOption("battgraph", QObject::tr("Battery graph")); openTx->addOption("nobold", QObject::tr("Don't use bold font for highlighting active items")); - openTx->addOption("sqt5font", QObject::tr("Use alternative SQT5 font")); openTx->addOption("thrtrace", QObject::tr("Enable the throttle trace in Statistics")); openTx->addOption("pgbar", QObject::tr("EEprom write Progress bar")); openTx->addOption("imperial", QObject::tr("Imperial units")); @@ -1111,7 +1116,7 @@ void registerOpenTxFirmwares() openTx->addOption("nogps", QObject::tr("No GPS support")); openTx->addOption("nogauges", QObject::tr("No gauges in the custom telemetry screen")); openTx->addOption("stickrev", QObject::tr("Add support for reversing stick inputs (e.g. needed for FrSky gimbals)")); - openTx->addOptions(fai_options); + addOpenTxCommonOptions(openTx); firmwares.push_back(openTx); /* 9XR board with M128 chip */ @@ -1128,7 +1133,6 @@ void registerOpenTxFirmwares() // NOT TESTED openTx->addOption("PXX", QObject::tr("Support of FrSky PXX protocol")); openTx->addOption("DSM2", QObject::tr("Support for DSM2 modules")); openTx->addOption("ppmca", QObject::tr("PPM center adjustment in limits")); - openTx->addOption("ppmus", QObject::tr("Channel values displayed in us")); openTx->addOption("gvars", QObject::tr("Global variables"), GVARS_VARIANT); openTx->addOption("symlimits", QObject::tr("Symetrical Limits")); openTx->addOption("potscroll", QObject::tr("Pots use in menus navigation")); @@ -1137,11 +1141,10 @@ void registerOpenTxFirmwares() openTx->addOption("nographics", QObject::tr("No graphical check boxes and sliders")); openTx->addOption("battgraph", QObject::tr("Battery graph")); openTx->addOption("nobold", QObject::tr("Don't use bold font for highlighting active items")); - openTx->addOption("sqt5font", QObject::tr("Use alternative SQT5 font")); openTx->addOption("thrtrace", QObject::tr("Enable the throttle trace in Statistics")); openTx->addOption("pgbar", QObject::tr("EEprom write Progress bar")); openTx->addOption("imperial", QObject::tr("Imperial units")); - openTx->addOptions(fai_options); + addOpenTxCommonOptions(openTx); firmwares.push_back(openTx); /* Gruvin9x board */ @@ -1156,7 +1159,6 @@ void registerOpenTxFirmwares() Option dsm2_options[] = { { "DSM2", QObject::tr("Support for DSM2 modules"), 0 }, { "DSM2PPM", QObject::tr("Support for DSM2 modules using ppm instead of true serial"), 0 }, { NULL } }; openTx->addOptions(dsm2_options); openTx->addOption("ppmca", QObject::tr("PPM center adjustment in limits")); - openTx->addOption("ppmus", QObject::tr("Channel values displayed in us")); openTx->addOption("gvars", QObject::tr("Global variables"), GVARS_VARIANT); openTx->addOption("symlimits", QObject::tr("Symetrical Limits")); openTx->addOption("potscroll", QObject::tr("Pots use in menus navigation")); @@ -1166,10 +1168,9 @@ void registerOpenTxFirmwares() openTx->addOption("nographics", QObject::tr("No graphical check boxes and sliders")); openTx->addOption("battgraph", QObject::tr("Battery graph")); openTx->addOption("nobold", QObject::tr("Don't use bold font for highlighting active items")); - openTx->addOption("sqt5font", QObject::tr("Use alternative SQT5 font")); openTx->addOption("pgbar", QObject::tr("EEprom write Progress bar")); openTx->addOption("imperial", QObject::tr("Imperial units")); - openTx->addOptions(fai_options); + addOpenTxCommonOptions(openTx); firmwares.push_back(openTx); /* Sky9x board */ @@ -1179,7 +1180,6 @@ void registerOpenTxFirmwares() openTx->addOption("nofp", QObject::tr("No flight modes")); openTx->addOption("nocurves", QObject::tr("Disable curves menus")); openTx->addOption("ppmca", QObject::tr("PPM center adjustment in limits")); - openTx->addOption("ppmus", QObject::tr("Channel values displayed in us")); openTx->addOption("gvars", QObject::tr("Global variables"), GVARS_VARIANT); openTx->addOption("symlimits", QObject::tr("Symetrical Limits")); openTx->addOption("potscroll", QObject::tr("Pots use in menus navigation")); @@ -1189,9 +1189,8 @@ void registerOpenTxFirmwares() openTx->addOption("nographics", QObject::tr("No graphical check boxes and sliders")); openTx->addOption("battgraph", QObject::tr("Battery graph")); openTx->addOption("nobold", QObject::tr("Don't use bold font for highlighting active items")); - openTx->addOption("sqt5font", QObject::tr("Use alternative SQT5 font")); openTx->addOption("bluetooth", QObject::tr("Bluetooth interface")); - openTx->addOptions(fai_options); + addOpenTxCommonOptions(openTx); firmwares.push_back(openTx); /* 9XR-Pro */ @@ -1201,7 +1200,6 @@ void registerOpenTxFirmwares() openTx->addOption("nofp", QObject::tr("No flight modes")); openTx->addOption("nocurves", QObject::tr("Disable curves menus")); openTx->addOption("ppmca", QObject::tr("PPM center adjustment in limits")); - openTx->addOption("ppmus", QObject::tr("Channel values displayed in us")); openTx->addOption("gvars", QObject::tr("Global variables"), GVARS_VARIANT); openTx->addOption("symlimits", QObject::tr("Symetrical Limits")); openTx->addOption("potscroll", QObject::tr("Pots use in menus navigation")); @@ -1210,9 +1208,8 @@ void registerOpenTxFirmwares() openTx->addOption("nographics", QObject::tr("No graphical check boxes and sliders")); openTx->addOption("battgraph", QObject::tr("Battery graph")); openTx->addOption("nobold", QObject::tr("Don't use bold font for highlighting active items")); - openTx->addOption("sqt5font", QObject::tr("Use alternative SQT5 font")); openTx->addOption("bluetooth", QObject::tr("Bluetooth interface")); - openTx->addOptions(fai_options); + addOpenTxCommonOptions(openTx); firmwares.push_back(openTx); /* Taranis board */ @@ -1221,9 +1218,7 @@ void registerOpenTxFirmwares() openTx->addOption("nogvars", QObject::tr("Disable Global variables")); openTx->addOption("haptic", QObject::tr("Haptic module installed")); openTx->addOption("lua", QObject::tr("Support for Lua model scripts")); - openTx->addOption("ppmus", QObject::tr("Channel values displayed in us")); - openTx->addOption("sqt5font", QObject::tr("Use alternative SQT5 font")); - openTx->addOptions(fai_options); + addOpenTxCommonOptions(openTx); firmwares.push_back(openTx); /* Taranis Plus board */ @@ -1231,9 +1226,7 @@ void registerOpenTxFirmwares() openTx->addOption("noheli", QObject::tr("Disable HELI menu and cyclic mix support")); openTx->addOption("nogvars", QObject::tr("Disable Global variables")); openTx->addOption("lua", QObject::tr("Support for Lua model scripts")); - openTx->addOption("ppmus", QObject::tr("Channel values displayed in us")); - openTx->addOption("sqt5font", QObject::tr("Use alternative SQT5 font")); - openTx->addOptions(fai_options); + addOpenTxCommonOptions(openTx); firmwares.push_back(openTx); default_firmware_variant = GetFirmware("opentx-9x-heli-templates-en"); diff --git a/companion/src/modeledit/customfunctions.cpp b/companion/src/modeledit/customfunctions.cpp index dec530b7c..94f1bf0fb 100644 --- a/companion/src/modeledit/customfunctions.cpp +++ b/companion/src/modeledit/customfunctions.cpp @@ -590,7 +590,8 @@ void CustomFunctionsPanel::populateFuncCB(QComboBox *b, unsigned int value) b->clear(); for (unsigned int i=0; iaddItem(FuncSwData(AssignFunc(i)).funcToString()); - if (((i==FuncVolume || i==FuncBackgroundMusic || i==FuncBackgroundMusicPause) && !firmware->getCapability(HasVolume)) || + if (((i>=FuncSafetyCh1 && i<=FuncSafetyCh32) && !firmware->getCapability(SafetyChannelCustomFunction)) || + ((i==FuncVolume || i==FuncBackgroundMusic || i==FuncBackgroundMusicPause) && !firmware->getCapability(HasVolume)) || ((i==FuncPlayHaptic) && !firmware->getCapability(Haptic)) || ((i==FuncPlayBoth) && !firmware->getCapability(HasBeeper)) || ((i==FuncLogs) && !firmware->getCapability(HasSDLogs)) || diff --git a/radio/src/Makefile b/radio/src/Makefile index 4c0fd8418..92cf0fc00 100644 --- a/radio/src/Makefile +++ b/radio/src/Makefile @@ -169,6 +169,10 @@ PPM_LIMITS_SYMETRICAL = NO # Values = PERCENT_PREC1, PERCENT_PREC0, US PPM_UNIT = PERCENT_PREC1 +# SafetyCHxx functions enable +# Values = YES, NO +SAFETY_CHANNEL_FUNCTION = YES + # FrSky Hub # Values = YES, NO FRSKY_HUB = YES @@ -1011,6 +1015,10 @@ ifeq ($(PPM_LIMITS_SYMETRICAL), YES) CPPDEFS += -DPPM_LIMITS_SYMETRICAL endif +ifeq ($(SAFETY_CHANNEL_FUNCTION), YES) + CPPDEFS += -DSAFETY_CHANNEL_FUNCTION +endif + ifeq ($(PPM_UNIT), US) CPPDEFS += -DPPM_UNIT_US endif diff --git a/radio/src/gui/menu_model.cpp b/radio/src/gui/menu_model.cpp index 5551a493b..37c9e93b1 100644 --- a/radio/src/gui/menu_model.cpp +++ b/radio/src/gui/menu_model.cpp @@ -5055,10 +5055,13 @@ void menuModelCustomFunctions(uint8_t event) case 2: { int8_t maxParam = NUM_CHNOUT-1; +#if defined(SAFETY_CHANNEL_FUNCTION) if (func == FUNC_SAFETY_CHANNEL) { putsChn(lcdNextPos, y, CFN_CH_INDEX(sd)+1, attr); } - else if (func == FUNC_TRAINER) { + else +#endif + if (func == FUNC_TRAINER) { maxParam = 4; #if defined(CPUARM) putsMixerSource(lcdNextPos, y, CFN_CH_INDEX(sd)==0 ? 0 : MIXSRC_Rud+CFN_CH_INDEX(sd)-1, attr); @@ -5100,11 +5103,17 @@ void menuModelCustomFunctions(uint8_t event) int8_t val_min = 0; uint8_t val_max = 255; #endif - if (func == FUNC_SAFETY_CHANNEL) { + if (func == FUNC_RESET) { + val_max = FUNC_RESET_PARAM_LAST; + lcd_putsiAtt(MODEL_CUSTOM_FUNC_3RD_COLUMN, y, STR_VFSWRESET, CFN_PARAM(sd), attr); + } +#if defined(SAFETY_CHANNEL_FUNCTION) + else if (func == FUNC_SAFETY_CHANNEL) { val_displayed = (int8_t)CFN_PARAM(sd); val_min = -125; val_max = 125; lcd_outdezAtt(MODEL_CUSTOM_FUNC_3RD_COLUMN, y, val_displayed, attr|LEFT); } +#endif #if defined(CPUARM) else if (func == FUNC_SET_TIMER) { val_max = 59*60+59; @@ -5216,10 +5225,6 @@ void menuModelCustomFunctions(uint8_t event) val_max = 100; } #endif - else if (func == FUNC_RESET) { - val_max = FUNC_RESET_PARAM_LAST; - lcd_putsiAtt(MODEL_CUSTOM_FUNC_3RD_COLUMN, y, STR_VFSWRESET, CFN_PARAM(sd), attr); - } #if defined(GVARS) else if (func == FUNC_ADJUST_GVAR) { switch (CFN_GVAR_MODE(sd)) { diff --git a/radio/src/gui/menus.cpp b/radio/src/gui/menus.cpp index 8e7399107..d994fa3a9 100644 --- a/radio/src/gui/menus.cpp +++ b/radio/src/gui/menus.cpp @@ -1554,17 +1554,15 @@ bool isLogicalSwitchFunctionAvailable(int function) bool isAssignableFunctionAvailable(int function) { switch (function) { - +#if !defined(SAFETY_CHANNEL_FUNCTION) + case FUNC_SAFETY_CHANNEL: +#endif #if !defined(HAPTIC) case FUNC_HAPTIC: - return false; #endif - #if !defined(GVARS) case FUNC_ADJUST_GVAR: - return false; #endif - case FUNC_PLAY_DIFF: case FUNC_RESERVE1: case FUNC_RESERVE2: diff --git a/radio/src/mixer.cpp b/radio/src/mixer.cpp index 4db7d0723..f25358e18 100755 --- a/radio/src/mixer.cpp +++ b/radio/src/mixer.cpp @@ -245,8 +245,10 @@ int16_t applyLimits(uint8_t channel, int32_t value) if (lim->revert) ofs = -ofs; // finally do the reverse. +#if defined(SAFETY_CHANNEL_FUNCTION) if (safetyCh[channel] != -128) // if safety channel available for channel check ofs = calc100toRESX(safetyCh[channel]); +#endif return ofs; } diff --git a/radio/src/myeeprom.h b/radio/src/myeeprom.h index 0cbdf76fe..ac2e4affe 100644 --- a/radio/src/myeeprom.h +++ b/radio/src/myeeprom.h @@ -837,7 +837,11 @@ enum Functions { FUNC_MAX }; -#define HAS_ENABLE_PARAM(func) ((func) < FUNC_FIRST_WITHOUT_ENABLE) +#if defined(SAFETY_CHANNEL_FUNCTION) + #define HAS_ENABLE_PARAM(func) ((func) < FUNC_FIRST_WITHOUT_ENABLE) +#else + #define HAS_ENABLE_PARAM(func) ((func) < FUNC_FIRST_WITHOUT_ENABLE && (func) != FUNC_SAFETY_CHANNEL) +#endif #if defined(VOICE) #define IS_PLAY_FUNC(func) ((func) >= FUNC_PLAY_SOUND && func <= FUNC_PLAY_VALUE) diff --git a/radio/src/opentx.cpp b/radio/src/opentx.cpp index 079125989..74b978373 100644 --- a/radio/src/opentx.cpp +++ b/radio/src/opentx.cpp @@ -147,7 +147,9 @@ uint8_t heartbeat; uint8_t stickMode; +#if defined(SAFETY_CHANNEL_FUNCTION) int8_t safetyCh[NUM_CHNOUT]; +#endif union ReusableBuffer reusableBuffer; @@ -1855,9 +1857,11 @@ void evalFunctions() static rotenc_t rePreviousValues[ROTARY_ENCODERS]; #endif +#if defined(SAFETY_CHANNEL_FUNCTION) for (uint8_t i=0; i