diff --git a/companion/src/firmwares/eeprominterface.h b/companion/src/firmwares/eeprominterface.h
index 4377e500992..0dc3fd061d6 100644
--- a/companion/src/firmwares/eeprominterface.h
+++ b/companion/src/firmwares/eeprominterface.h
@@ -47,133 +47,114 @@ const uint8_t modn12x3[8][4]= {
};
enum Capability {
- Models,
- ModelName,
- FlightModes,
- FlightModesName,
- FlightModesHaveFades,
- Imperial,
- Mixes,
- Timers,
- TimersName,
- VoicesAsNumbers,
- VoicesMaxLength,
- MultiLangVoice,
- HasModelImage,
- ModelImageNameLen,
- ModelImageFilters,
- ModelImageKeepExtn,
- CustomFunctions,
- SafetyChannelCustomFunction,
- LogicalSwitches,
- CustomAndSwitches,
- HasNegAndSwitches,
- LogicalSwitchesExt,
- Outputs,
+ BacklightLevelMin,
ChannelsName,
- ExtraInputs,
- TrimsRange,
+ CustomAndSwitches,
+ CustomFunctions,
+ DangerousFunctions,
ExtendedTrimsRange,
- NumCurves,
- NumCurvePoints,
- OffsetWeight,
- Simulation,
- SoundMod,
- SoundPitch,
- MaxVolume,
- MaxContrast,
- MinContrast,
- Haptic,
- HasBeeper,
- ModelTrainerEnable,
- HasExpoNames,
- HasNoExpo,
- HasMixerNames,
- HasCvNames,
- HasPxxCountry,
- HasPPMStart,
- HasGeneralUnits,
- HasFAIMode,
- OptrexDisplay,
- PPMExtCtrl,
- PPMFrameLength,
- Telemetry,
- TelemetryUnits,
- TelemetryBars,
- Heli,
+ FlightModes,
+ FlightModesHaveFades,
+ FlightModesName,
+ GetThrSwitch,
+ GlobalFunctions,
Gvars,
- GvarsInCS,
- GvarsAreNamed,
GvarsFlightModes,
+ GvarsInCS,
GvarsName,
- NoTelemetryProtocol,
- TelemetryCustomScreens,
- TelemetryCustomScreensBars,
- TelemetryCustomScreensLines,
- TelemetryCustomScreensFieldsPerLine,
- TelemetryMaxMultiplier,
- HasVario,
- HasVarioSink,
+ Haptic,
+ HasADCJitterFilter,
+ HasAux2SerialMode,
+ HasAuxSerialMode,
+ HasBatMeterRange,
+ HasBeeper,
+ HasBluetooth,
+ HasBrightness,
+ HasDisplayText,
+ HasExpoNames,
HasFailsafe,
- HasSoundMixer,
- NumModules,
- NumFirstUsableModule,
+ HasFAIMode,
+ HasFlySkyGimbals,
+ HasGeneralUnits,
+ HasInputDiff,
+ HasIntModuleCRSF,
+ HasIntModuleELRS,
+ HasIntModuleFlySky,
+ HasIntModuleMulti,
+ HasMixerExpo,
+ HasMixerNames,
+ HasModelImage,
+ HasModelLabels,
+ HasModelsList,
HasModuleR9MFlex,
HasModuleR9MMini,
- PPMCenter,
- SYMLimits,
- HastxCurrentCalibration,
- HasVolume,
- HasBrightness,
- PerModelTimers,
- SlowScale,
- SlowRange,
- PermTimers,
+ HasNoExpo,
+ HasPPMStart,
+ HasPxxCountry,
HasSDLogs,
- CSFunc,
- GetThrSwitch,
- HasDisplayText,
+ HasSoftwareSerialPower,
+ HasSoundMixer,
+ HasSportConnector,
+ HasSwitchableJack,
+ HasTelemetryBaudrate,
HasTopLcd,
- GlobalFunctions,
- VirtualInputs,
+ HasVario,
+ HasVarioSink,
+ HasVCPSerialMode,
+ HasVolume,
+ Heli,
+ Imperial,
InputsLength,
- TrainerInputs,
- SportTelemetry,
- LuaScripts,
+ KeyShortcuts,
+ LogicalSwitches,
+ LogicalSwitchesExt,
LuaInputsPerScript,
LuaOutputsPerScript,
- LimitsPer1000,
- EnhancedCurves,
- HasFasOffset,
- HasMahPersistent,
+ LuaScripts,
MavlinkTelemetry,
- HasInputDiff,
- HasMixerExpo,
- HasBatMeterRange,
- DangerousFunctions,
- HasModelLabels,
- HasSwitchableJack,
- HasSportConnector,
+ MaxContrast,
+ MaxVolume,
+ MinContrast,
+ Mixes,
+ ModelImageFilters,
+ ModelImageKeepExtn,
+ ModelImageNameLen,
+ ModelName,
+ Models,
+ ModelTrainerEnable,
+ MultiLangVoice,
+ NoTelemetryProtocol,
+ NumCurvePoints,
+ NumCurves,
+ NumFirstUsableModule,
+ NumModules,
+ OffsetWeight,
+ Outputs,
+ PermTimers,
+ PPMCenter,
+ PPMFrameLength,
PwrButtonPress,
+ QMFavourites,
+ RotaryEncoderNavigation,
+ SafetyChannelCustomFunction,
Sensors,
- HasAuxSerialMode,
- HasAux2SerialMode,
- HasVCPSerialMode,
- HasBluetooth,
- HasADCJitterFilter,
- HasTelemetryBaudrate,
+ SlowRange,
+ SlowScale,
+ SoundPitch,
+ SYMLimits,
+ Telemetry,
+ TelemetryCustomScreens,
+ TelemetryCustomScreensBars,
+ TelemetryCustomScreensFieldsPerLine,
+ TelemetryCustomScreensLines,
+ Timers,
+ TimersName,
TopBarZones,
- HasModelsList,
- HasFlySkyGimbals,
- RotaryEncoderNavigation,
- HasSoftwareSerialPower,
- HasIntModuleMulti,
- HasIntModuleCRSF,
- HasIntModuleELRS,
- HasIntModuleFlySky,
- BacklightLevelMin,
- QMFavourites,
- KeyShortcuts,
+ TrainerInputs,
+ TrimsRange,
+ VirtualInputs,
+ VoicesAsNumbers,
+ VoicesMaxLength,
};
float ValToTim(int value);
diff --git a/companion/src/firmwares/generalsettings.h b/companion/src/firmwares/generalsettings.h
index f29b6833320..bc65cb15678 100644
--- a/companion/src/firmwares/generalsettings.h
+++ b/companion/src/firmwares/generalsettings.h
@@ -302,7 +302,6 @@ class GeneralSettings {
unsigned int contrast;
unsigned int vBatWarn;
int txVoltageCalibration;
- int txCurrentCalibration;
int vBatMin;
int vBatMax;
int backlightMode;
@@ -326,7 +325,6 @@ class GeneralSettings {
int timezone;
int timezoneMinutes;
bool adjustRTC;
- bool optrexDisplay;
unsigned int inactivityTimer;
unsigned int internalModuleBaudrate;
bool minuteBeep;
@@ -342,7 +340,6 @@ class GeneralSettings {
unsigned int stickReverse;
unsigned int speakerPitch;
int hapticStrength;
- unsigned int speakerMode;
char ownerName[OWNER_NAME_LEN + 1];
int beeperLength;
unsigned int gpsFormat;
diff --git a/companion/src/firmwares/opentx/opentxinterface.cpp b/companion/src/firmwares/opentx/opentxinterface.cpp
index 776abbf70d5..5e54a47cdd5 100644
--- a/companion/src/firmwares/opentx/opentxinterface.cpp
+++ b/companion/src/firmwares/opentx/opentxinterface.cpp
@@ -58,42 +58,34 @@ Firmware * OpenTxFirmware::getFirmwareVariant(const QString &id)
int OpenTxFirmware::getCapability(::Capability capability)
{
switch (capability) {
- case Models:
- if (IS_FAMILY_HORUS_OR_T16(board))
- return 0;
- else
- return 60;
- case Imperial:
- return 0;
- case HasModelImage:
- return (board == BOARD_TARANIS_X9D || IS_TARANIS_PLUS(board) || board == BOARD_TARANIS_X9DP_2019 || IS_FAMILY_HORUS_OR_T16(board));
- case ModelImageNameLen:
- return (IS_FAMILY_HORUS_OR_T16(board) ? 14 : 10); // including extension if saved and <= CPN_MAX_BITMAP_LEN
- case ModelImageKeepExtn:
- return (IS_FAMILY_HORUS_OR_T16(board) ? true : false);
- case HasBeeper:
- return false;
- case HasPxxCountry:
- return 1;
- case HasGeneralUnits:
- return true;
- case HasNegAndSwitches:
- return true;
- case PPMExtCtrl:
- return 1;
- case PPMFrameLength:
- return 40;
+ case BacklightLevelMin:
+ if (IS_HORUS_X12S(board)) {
+ return 5;
+ } else if (IS_FAMILY_T16(board) || IS_FLYSKY_NV14(board) || IS_FLYSKY_EL18(board) || IS_FAMILY_PL18(board) || IS_FLYSKY_ST16(board)) {
+ return 1;
+ } else {
+ return 46;
+ }
+ case ChannelsName:
+ return (HAS_LARGE_LCD(board) ? 6 : 4);
+ case CustomAndSwitches:
+ return getCapability(LogicalSwitches);
+ case CustomFunctions:
+ return 64;
+ case DangerousFunctions:
+ return id.contains("danger") ? 1 : 0;
+ case ExtendedTrimsRange:
+ return 512;
case FlightModes:
return 9;
case FlightModesHaveFades:
return 1;
- case Heli:
- if (Boards::getCapability(board, Board::Surface))
- return false;
- else if (IS_HORUS_OR_TARANIS(board))
- return id.contains("noheli") ? 0 : 1;
- else
- return id.contains("heli") ? 1 : 0;
+ case FlightModesName:
+ return (IS_HORUS_OR_TARANIS(board) ? 10 : 6);
+ case GetThrSwitch:
+ return (IS_HORUS_OR_TARANIS(board) ? SWITCH_SF1 : SWITCH_THR);
+ case GlobalFunctions:
+ return 64;
case Gvars:
if (IS_STM32H7(board) || IS_STM32H5(board))
return id.contains("nogvars") ? 0 : 15;
@@ -103,195 +95,198 @@ int OpenTxFirmware::getCapability(::Capability capability)
return 9;
else
return 0;
- case ModelName:
- return (IS_FAMILY_HORUS_OR_T16(board) ? 15 : (HAS_LARGE_LCD(board) ? 12 : 10));
- case FlightModesName:
- return (IS_HORUS_OR_TARANIS(board) ? 10 : 6);
- case GvarsName:
- return 3;
- case GvarsInCS:
- case HasFAIMode:
- return 1;
- case GvarsAreNamed:
case GvarsFlightModes:
return 1;
- case Mixes:
- return 64;
- case OffsetWeight:
- return 500;
- case Timers:
- return 3;
- case TimersName:
- if (HAS_LARGE_LCD(board))
- return 8;
- else
- return 3;
- case PermTimers:
- return true;
- case CustomFunctions:
- return 64;
- case SafetyChannelCustomFunction:
- return id.contains("nooverridech") ? 0 : 1;
- case LogicalSwitches:
- return 64;
- case CustomAndSwitches:
- return getCapability(LogicalSwitches);
- case LogicalSwitchesExt:
- return true;
- case Outputs:
- return 32;
- case NumCurvePoints:
- return 512;
- case VoicesAsNumbers:
- return 0;
- case VoicesMaxLength:
- return 8;
- case MultiLangVoice:
- return 1;
- case SoundPitch:
+ case GvarsInCS:
return 1;
+ case GvarsName:
+ return 3;
case Haptic:
return board != Board::BOARD_TARANIS_X9D || id.contains("haptic");
- case ModelTrainerEnable:
- if (IS_HORUS_OR_TARANIS(board) && board!=Board::BOARD_TARANIS_XLITE)
- return 1;
- else
- return 0;
- case MaxVolume:
- return 23;
- case MaxContrast:
- if (IS_TARANIS_SMALL(board))
- return 30;
- else
- return 45;
- case MinContrast:
- if (IS_TARANIS_X9(board))
- return 0;
- else
- return 10;
- case HasSoundMixer:
- return 1;
- case ExtraInputs:
- return 1;
- case TrimsRange:
- return 128;
- case ExtendedTrimsRange:
- return 512;
- case Simulation:
+ case HasADCJitterFilter:
+ return IS_HORUS_OR_TARANIS(board);
+ case HasAux2SerialMode:
+ return IS_FAMILY_T16(board);
+ case HasAuxSerialMode:
+ return (IS_FAMILY_HORUS_OR_T16(board) && !(IS_FLYSKY_NV14(board) || IS_FLYSKY_EL18(board) || IS_FAMILY_PL18(board) || IS_FLYSKY_ST16(board))) ||
+ (IS_TARANIS_X9(board) && !IS_TARANIS_X9DP_2019(board)) ||
+ IS_RADIOMASTER_ZORRO(board) || IS_RADIOMASTER_TX12_MK2(board) || IS_RADIOMASTER_MT12(board);
+ case HasBatMeterRange:
+ return (IS_HORUS_OR_TARANIS(board) ? true : id.contains("battgraph"));
+ case HasBeeper:
+ return false;
+ case HasBluetooth:
+ return (IS_FAMILY_HORUS_OR_T16(board) || IS_TARANIS_X7(board) || IS_TARANIS_XLITE(board)|| IS_TARANIS_X9E(board) ||
+ IS_TARANIS_X9DP_2019(board) || IS_FLYSKY_NV14(board) || IS_FLYSKY_EL18(board) || IS_FAMILY_PL18(board)) ? true : false;
+ case HasBrightness:
+ return true;
+ case HasDisplayText:
return 1;
- case NumCurves:
- return 32;
- case HasMixerNames:
- return (IS_TARANIS_X9(board) ? 8 : 6);
case HasExpoNames:
return (IS_TARANIS_X9(board) ? 8 : 6);
- case HasNoExpo:
- return (IS_HORUS_OR_TARANIS(board) ? false : true);
- case ChannelsName:
- return (HAS_LARGE_LCD(board) ? 6 : 4);
- case HasCvNames:
- return 1;
- case Telemetry:
- return 1;
- case TelemetryBars:
- return 1;
- case TelemetryCustomScreens:
- if (IS_FAMILY_HORUS_OR_T16(board))
- return 0;
- else
- return 4;
- case TelemetryCustomScreensBars:
- return (getCapability(TelemetryCustomScreens) ? 4 : 0);
- case TelemetryCustomScreensLines:
- return (getCapability(TelemetryCustomScreens) ? 4 : 0);
- case TelemetryCustomScreensFieldsPerLine:
- return HAS_LARGE_LCD(board) ? 3 : 2;
- case NoTelemetryProtocol:
- return IS_HORUS_OR_TARANIS(board) ? 1 : 0;
- case TelemetryUnits:
- return 0;
- case TelemetryMaxMultiplier:
- return 32;
- case PPMCenter:
- return (IS_HORUS_OR_TARANIS(board) ? 500 : (id.contains("ppmca") ? 125 : 0));
- case SYMLimits:
- return 1;
- case HasVario:
- return Boards::isAir(board);
- case HasVarioSink:
- return Boards::isAir(board);
case HasFailsafe:
return 32;
- case NumModules:
- return 2;
- case NumFirstUsableModule:
- return (IS_JUMPER_T12(board) && !id.contains("internalmulti") ? 1 : 0);
+ case HasFAIMode:
+ return 1;
+ case HasFlySkyGimbals:
+ return (IS_RADIOMASTER_TX16S(board) && id.contains("flyskygimbals"));
+ case HasGeneralUnits:
+ return true;
+ case HasInputDiff:
+ return (IS_HORUS_OR_TARANIS(board) ? true : false);
+ case HasIntModuleCRSF:
+ return id.contains("internalcrsf");
+ case HasIntModuleELRS:
+ return id.contains("internalelrs") || IS_RADIOMASTER_TX12_MK2(board) ||
+ IS_IFLIGHT_COMMANDO8(board) || IS_RADIOMASTER_BOXER(board) ||
+ IS_RADIOMASTER_POCKET(board) || IS_JUMPER_T20(board) ||
+ IS_RADIOMASTER_MT12(board) || IS_RADIOMASTER_TX15(board) || IS_JUMPER_T15PRO(board);
+ case HasIntModuleFlySky:
+ return id.contains("afhds2a") || id.contains("afhds3") ||
+ IS_FLYSKY_NV14(board) || IS_FLYSKY_EL18(board) || IS_FAMILY_PL18(board);
+ case HasIntModuleMulti:
+ return id.contains("internalmulti") || IS_RADIOMASTER_TX16S(board) || IS_JUMPER_T18(board) ||
+ IS_RADIOMASTER_TX12(board) || IS_JUMPER_TLITE(board) || IS_BETAFPV_LR3PRO(board) ||
+ (IS_RADIOMASTER_ZORRO(board) && !id.contains("internalelrs")) ||
+ (IS_RADIOMASTER_BOXER(board) && !id.contains("internalelrs")) ||
+ (IS_RADIOMASTER_POCKET(board) && !id.contains("internalelrs")) ||
+ (IS_RADIOMASTER_MT12(board) && !id.contains("internalelrs"));
+ case HasMixerExpo:
+ return (IS_HORUS_OR_TARANIS(board) ? true : false);
+ case HasMixerNames:
+ return (IS_TARANIS_X9(board) ? 8 : 6);
+ case HasModelImage:
+ return (board == BOARD_TARANIS_X9D || IS_TARANIS_PLUS(board) || board == BOARD_TARANIS_X9DP_2019 || IS_FAMILY_HORUS_OR_T16(board));
+ case HasModelLabels:
+ return IS_FAMILY_HORUS_OR_T16(board);
+ case HasModelsList:
+ return IS_FAMILY_HORUS_OR_T16(board);
case HasModuleR9MFlex:
return id.contains("flexr9m");
case HasModuleR9MMini:
return IS_TARANIS_XLITE(board) && !id.contains("stdr9m");
+ case HasNoExpo:
+ return (IS_HORUS_OR_TARANIS(board) ? false : true);
case HasPPMStart:
return true;
- case HasVolume:
- return true;
- case HasBrightness:
- return true;
- case PerModelTimers:
+ case HasPxxCountry:
return 1;
- case SlowScale:
- return 10;
- case SlowRange:
- return 250;
- case CSFunc:
- return 18;
case HasSDLogs:
return true;
- case GetThrSwitch:
- return (IS_HORUS_OR_TARANIS(board) ? SWITCH_SF1 : SWITCH_THR);
- case HasDisplayText:
+ case HasSoftwareSerialPower:
+ return IS_RADIOMASTER_TX16S(board);
+ case HasSoundMixer:
return 1;
+ case HasSportConnector:
+ return IS_ACCESS_RADIO(board, id) || IS_TARANIS_X7(board) || IS_HORUS_X10(board) || IS_TARANIS_XLITE(board);
+ case HasSwitchableJack:
+ return IS_TARANIS_XLITES(board);
+ case HasTelemetryBaudrate:
+ return IS_HORUS_OR_TARANIS(board);
case HasTopLcd:
return IS_TARANIS_X9E(board) ? 1 : 0;
- case GlobalFunctions:
- return 64;
- case VirtualInputs:
- return 32;
+ case HasVario:
+ return Boards::isAir(board);
+ case HasVarioSink:
+ return Boards::isAir(board);
+ case HasVCPSerialMode:
+ return IS_FAMILY_HORUS_OR_T16(board) || IS_RADIOMASTER_ZORRO(board) ||
+ IS_JUMPER_TPRO(board) || IS_RADIOMASTER_TX12_MK2(board) ||
+ IS_RADIOMASTER_BOXER(board) || IS_RADIOMASTER_POCKET(board) ||
+ IS_RADIOMASTER_MT12(board);
+ case HasVolume:
+ return true;
+ case Heli:
+ if (Boards::getCapability(board, Board::Surface))
+ return false;
+ else if (IS_HORUS_OR_TARANIS(board))
+ return id.contains("noheli") ? 0 : 1;
+ else
+ return id.contains("heli") ? 1 : 0;
+ case Imperial:
+ return 0;
case InputsLength:
return HAS_LARGE_LCD(board) ? 4 : 3;
- case TrainerInputs:
- return 16;
- case LuaScripts:
- return IS_HORUS_OR_TARANIS(board) && id.contains("lua") ? 7 : 0;
+ case KeyShortcuts:
+ return VERSION_MAJOR > 2 && Boards::getCapability(board, Board::HasColorLcd) ? MAX_KEYSHORTCUTS : 0;
+ case LogicalSwitches:
+ return 64;
+ case LogicalSwitchesExt:
+ return true;
case LuaInputsPerScript:
return IS_HORUS_OR_TARANIS(board) ? 10 : 0;
case LuaOutputsPerScript:
return IS_HORUS_OR_TARANIS(board) ? 6 : 0;
- case LimitsPer1000:
- case EnhancedCurves:
- return 1;
- case HasFasOffset:
- return true;
- case HasMahPersistent:
- return true;
+ case LuaScripts:
+ return IS_HORUS_OR_TARANIS(board) && id.contains("lua") ? 7 : 0;
case MavlinkTelemetry:
return id.contains("mavlink") ? 1 : 0;
- case SportTelemetry:
+ case MaxContrast:
+ if (IS_TARANIS_SMALL(board))
+ return 30;
+ else
+ return 45;
+ case MaxVolume:
+ return 23;
+ case MinContrast:
+ if (IS_TARANIS_X9(board))
+ return 0;
+ else
+ return 10;
+ case Mixes:
+ return 64;
+ case ModelImageKeepExtn:
+ return (IS_FAMILY_HORUS_OR_T16(board) ? true : false);
+ case ModelImageNameLen:
+ return (IS_FAMILY_HORUS_OR_T16(board) ? 14 : 10); // including extension if saved and <= CPN_MAX_BITMAP_LEN
+ case ModelName:
+ return (IS_FAMILY_HORUS_OR_T16(board) ? 15 : (HAS_LARGE_LCD(board) ? 12 : 10));
+ case Models:
+ if (IS_FAMILY_HORUS_OR_T16(board))
+ return 0;
+ else
+ return 60;
+ case ModelTrainerEnable:
+ if (IS_HORUS_OR_TARANIS(board) && board!=Board::BOARD_TARANIS_XLITE)
+ return 1;
+ else
+ return 0;
+ case MultiLangVoice:
return 1;
- case HasInputDiff:
- case HasMixerExpo:
- return (IS_HORUS_OR_TARANIS(board) ? true : false);
- case HasBatMeterRange:
- return (IS_HORUS_OR_TARANIS(board) ? true : id.contains("battgraph"));
- case DangerousFunctions:
- return id.contains("danger") ? 1 : 0;
- case HasModelLabels:
- return IS_FAMILY_HORUS_OR_T16(board);
- case HasSwitchableJack:
- return IS_TARANIS_XLITES(board);
- case HasSportConnector:
- return IS_ACCESS_RADIO(board, id) || IS_TARANIS_X7(board) || IS_HORUS_X10(board) || IS_TARANIS_XLITE(board);
+ case NoTelemetryProtocol:
+ return IS_HORUS_OR_TARANIS(board) ? 1 : 0;
+ case NumCurvePoints:
+ return 512;
+ case NumCurves:
+ return 32;
+ case NumFirstUsableModule:
+ return (IS_JUMPER_T12(board) && !id.contains("internalmulti") ? 1 : 0);
+ case NumModules:
+ return 2;
+ case OffsetWeight:
+ return 500;
+ case Outputs:
+ return 32;
+ case PermTimers:
+ return true;
+ case PPMCenter:
+ return (IS_HORUS_OR_TARANIS(board) ? 500 : (id.contains("ppmca") ? 125 : 0));
+ case PPMFrameLength:
+ return 40;
case PwrButtonPress:
return IS_HORUS_OR_TARANIS(board) && (board!=Board::BOARD_TARANIS_X9D) && (board!=Board::BOARD_TARANIS_X9DP);
+ case QMFavourites:
+ return VERSION_MAJOR > 2 && Boards::getCapability(board, Board::HasColorLcd) ? MAX_QMFAVOURITES : 0;
+ case RotaryEncoderNavigation:
+ return (IS_TARANIS_X7(board) || IS_TARANIS_X9DP_2019(board) || IS_TARANIS_X9E(board) || IS_TARANIS_X9LITE(board) ||
+ IS_JUMPER_T15(board) || IS_JUMPER_T18(board) || IS_JUMPER_T20(board) || IS_JUMPER_TPRO(board) ||
+ IS_RADIOMASTER_BOXER(board) || IS_RADIOMASTER_GX12(board) || IS_RADIOMASTER_MT12(board) ||
+ IS_RADIOMASTER_POCKET(board) || IS_RADIOMASTER_TX12(board) || IS_RADIOMASTER_TX12_MK2(board) ||
+ IS_RADIOMASTER_TX16S(board) || IS_RADIOMASTER_ZORRO(board) || IS_RADIOMASTER_TX15(board) || IS_JUMPER_T15PRO(board) ||
+ IS_FLYSKY_PA01(board) || IS_FLYSKY_ST16(board) ||
+ IS_RADIOMASTER_TX16SMK3(board));
+ case SafetyChannelCustomFunction:
+ return id.contains("nooverridech") ? 0 : 1;
case Sensors:
if (IS_STM32H7(board))
return 99;
@@ -299,69 +294,47 @@ int OpenTxFirmware::getCapability(::Capability capability)
return 60;
else
return 40;
- case HasAuxSerialMode:
- return (IS_FAMILY_HORUS_OR_T16(board) && !(IS_FLYSKY_NV14(board) || IS_FLYSKY_EL18(board) || IS_FAMILY_PL18(board) || IS_FLYSKY_ST16(board))) ||
- (IS_TARANIS_X9(board) && !IS_TARANIS_X9DP_2019(board)) ||
- IS_RADIOMASTER_ZORRO(board) || IS_RADIOMASTER_TX12_MK2(board) || IS_RADIOMASTER_MT12(board);
- case HasAux2SerialMode:
- return IS_FAMILY_T16(board);
- case HasVCPSerialMode:
- return IS_FAMILY_HORUS_OR_T16(board) || IS_RADIOMASTER_ZORRO(board) ||
- IS_JUMPER_TPRO(board) || IS_RADIOMASTER_TX12_MK2(board) ||
- IS_RADIOMASTER_BOXER(board) || IS_RADIOMASTER_POCKET(board) ||
- IS_RADIOMASTER_MT12(board);
- case HasBluetooth:
- return (IS_FAMILY_HORUS_OR_T16(board) || IS_TARANIS_X7(board) || IS_TARANIS_XLITE(board)|| IS_TARANIS_X9E(board) ||
- IS_TARANIS_X9DP_2019(board) || IS_FLYSKY_NV14(board) || IS_FLYSKY_EL18(board) || IS_FAMILY_PL18(board)) ? true : false;
- case HasADCJitterFilter:
- return IS_HORUS_OR_TARANIS(board);
- case HasTelemetryBaudrate:
- return IS_HORUS_OR_TARANIS(board);
+ case SlowRange:
+ return 250;
+ case SlowScale:
+ return 10;
+ case SoundPitch:
+ return 1;
+ case SYMLimits:
+ return 1;
+ case Telemetry:
+ return 1;
+ case TelemetryCustomScreens:
+ if (IS_FAMILY_HORUS_OR_T16(board))
+ return 0;
+ else
+ return 4;
+ case TelemetryCustomScreensBars:
+ return (getCapability(TelemetryCustomScreens) ? 4 : 0);
+ case TelemetryCustomScreensFieldsPerLine:
+ return HAS_LARGE_LCD(board) ? 3 : 2;
+ case TelemetryCustomScreensLines:
+ return (getCapability(TelemetryCustomScreens) ? 4 : 0);
+ case Timers:
+ return 3;
+ case TimersName:
+ if (HAS_LARGE_LCD(board))
+ return 8;
+ else
+ return 3;
case TopBarZones:
return Boards::getCapability(board, Board::LcdWidth) > Boards::getCapability(board, Board::LcdHeight) ? 4 : 2;
- case HasModelsList:
- return IS_FAMILY_HORUS_OR_T16(board);
- case HasFlySkyGimbals:
- return (IS_RADIOMASTER_TX16S(board) && id.contains("flyskygimbals"));
- case RotaryEncoderNavigation:
- return (IS_TARANIS_X7(board) || IS_TARANIS_X9DP_2019(board) || IS_TARANIS_X9E(board) || IS_TARANIS_X9LITE(board) ||
- IS_JUMPER_T15(board) || IS_JUMPER_T18(board) || IS_JUMPER_T20(board) || IS_JUMPER_TPRO(board) ||
- IS_RADIOMASTER_BOXER(board) || IS_RADIOMASTER_GX12(board) || IS_RADIOMASTER_MT12(board) ||
- IS_RADIOMASTER_POCKET(board) || IS_RADIOMASTER_TX12(board) || IS_RADIOMASTER_TX12_MK2(board) ||
- IS_RADIOMASTER_TX16S(board) || IS_RADIOMASTER_ZORRO(board) || IS_RADIOMASTER_TX15(board) || IS_JUMPER_T15PRO(board) ||
- IS_FLYSKY_PA01(board) || IS_FLYSKY_ST16(board) ||
- IS_RADIOMASTER_TX16SMK3(board));
- case HasSoftwareSerialPower:
- return IS_RADIOMASTER_TX16S(board);
- case HasIntModuleMulti:
- return id.contains("internalmulti") || IS_RADIOMASTER_TX16S(board) || IS_JUMPER_T18(board) ||
- IS_RADIOMASTER_TX12(board) || IS_JUMPER_TLITE(board) || IS_BETAFPV_LR3PRO(board) ||
- (IS_RADIOMASTER_ZORRO(board) && !id.contains("internalelrs")) ||
- (IS_RADIOMASTER_BOXER(board) && !id.contains("internalelrs")) ||
- (IS_RADIOMASTER_POCKET(board) && !id.contains("internalelrs")) ||
- (IS_RADIOMASTER_MT12(board) && !id.contains("internalelrs"));
- case HasIntModuleCRSF:
- return id.contains("internalcrsf");
- case HasIntModuleELRS:
- return id.contains("internalelrs") || IS_RADIOMASTER_TX12_MK2(board) ||
- IS_IFLIGHT_COMMANDO8(board) || IS_RADIOMASTER_BOXER(board) ||
- IS_RADIOMASTER_POCKET(board) || IS_JUMPER_T20(board) ||
- IS_RADIOMASTER_MT12(board) || IS_RADIOMASTER_TX15(board) || IS_JUMPER_T15PRO(board);
- case HasIntModuleFlySky:
- return id.contains("afhds2a") || id.contains("afhds3") ||
- IS_FLYSKY_NV14(board) || IS_FLYSKY_EL18(board) || IS_FAMILY_PL18(board);
- case BacklightLevelMin:
- if (IS_HORUS_X12S(board)) {
- return 5;
- } else if (IS_FAMILY_T16(board) || IS_FLYSKY_NV14(board) || IS_FLYSKY_EL18(board) || IS_FAMILY_PL18(board) || IS_FLYSKY_ST16(board)) {
- return 1;
- } else {
- return 46;
- }
- case QMFavourites:
- return VERSION_MAJOR > 2 && Boards::getCapability(board, Board::HasColorLcd) ? MAX_QMFAVOURITES : 0;
- case KeyShortcuts:
- return VERSION_MAJOR > 2 && Boards::getCapability(board, Board::HasColorLcd) ? MAX_KEYSHORTCUTS : 0;
+ case TrainerInputs:
+ return 16;
+ case TrimsRange:
+ return 128;
+ case VirtualInputs:
+ return 32;
+ case VoicesAsNumbers:
+ return 0;
+ case VoicesMaxLength:
+ return 8;
+
default:
return 0;
}
diff --git a/companion/src/generaledit/generalsetup.cpp b/companion/src/generaledit/generalsetup.cpp
index 5869b977934..cfd51253e9a 100644
--- a/companion/src/generaledit/generalsetup.cpp
+++ b/companion/src/generaledit/generalsetup.cpp
@@ -216,15 +216,6 @@ ui(new Ui::GeneralSetup)
ui->jackModeCB->hide();
}
- if (!firmware->getCapability(OptrexDisplay)) {
- ui->label_displayType->hide();
- ui->displayTypeCB->setDisabled(true);
- ui->displayTypeCB->hide();
- }
- else {
- ui->displayTypeCB->setCurrentIndex(generalSettings.optrexDisplay);
- }
-
if (!firmware->getCapability(HasVolume)) {
ui->volume_SL->hide();
ui->volume_SL->setDisabled(true);
@@ -252,12 +243,6 @@ ui(new Ui::GeneralSetup)
ui->label_KeysBl->hide();
}
- if (!firmware->getCapability(SoundMod)) {
- ui->soundModeCB->setDisabled(true);
- ui->label_soundMode->hide();
- ui->soundModeCB->hide();
- }
-
if (!firmware->getCapability(SoundPitch)) {
ui->speakerPitchSB->setDisabled(true);
ui->label_speakerPitch->hide();
@@ -627,7 +612,6 @@ void GeneralSetupPanel::setValues()
ui->OFFBright_SB->setValue(generalSettings.backlightOffBright);
ui->BLBright_SB->setMinimum(ui->OFFBright_SB->value());
ui->OFFBright_SB->setMaximum(ui->BLBright_SB->value());
- ui->soundModeCB->setCurrentIndex(generalSettings.speakerMode);
ui->volume_SL->setValue(generalSettings.speakerVolume + 12);
ui->beeperlenCB->setCurrentIndex(generalSettings.beeperLength + 2);
ui->speakerPitchSB->setValue(generalSettings.speakerPitch);
@@ -724,14 +708,6 @@ void GeneralSetupPanel::on_hapticStrength_valueChanged()
}
}
-void GeneralSetupPanel::on_soundModeCB_currentIndexChanged(int index)
-{
- if (!lock) {
- generalSettings.speakerMode = index;
- emit modified();
- }
-}
-
void GeneralSetupPanel::on_splashScreenDuration_currentIndexChanged(int index)
{
if (!lock) {
@@ -1036,14 +1012,6 @@ void GeneralSetupPanel::on_beeperCB_currentIndexChanged(int index)
}
}
-void GeneralSetupPanel::on_displayTypeCB_currentIndexChanged(int index)
-{
- if (!lock) {
- generalSettings.optrexDisplay = index;
- emit modified();
- }
-}
-
void GeneralSetupPanel::on_hapticmodeCB_currentIndexChanged(int index)
{
if (!lock) {
@@ -1052,7 +1020,6 @@ void GeneralSetupPanel::on_hapticmodeCB_currentIndexChanged(int index)
}
}
-
void GeneralSetupPanel::on_channelorderCB_currentIndexChanged(int index)
{
if (!lock) {
diff --git a/companion/src/generaledit/generalsetup.h b/companion/src/generaledit/generalsetup.h
index 2e996e45daf..8ccac7c2448 100644
--- a/companion/src/generaledit/generalsetup.h
+++ b/companion/src/generaledit/generalsetup.h
@@ -44,7 +44,6 @@ class GeneralSetupPanel : public GeneralPanel
void on_rssiPowerOffWarnChkB_stateChanged(int);
void on_trainerPowerOffWarnChkB_stateChanged(int);
void on_gpsFormatCB_currentIndexChanged(int index);
- void on_displayTypeCB_currentIndexChanged(int index);
void on_BLBright_SB_editingFinished();
void on_OFFBright_SB_editingFinished();
void on_brightCtrl_CB_currentIndexChanged(int index);
@@ -57,7 +56,6 @@ class GeneralSetupPanel : public GeneralPanel
void on_timezoneLE_textEdited(const QString &text);
void on_adjustRTC_stateChanged(int);
void on_hapticStrength_valueChanged();
- void on_soundModeCB_currentIndexChanged(int index);
void on_beeperlenCB_currentIndexChanged(int index);
void on_volume_SL_valueChanged();
void on_hapticmodeCB_currentIndexChanged(int index);
diff --git a/companion/src/generaledit/generalsetup.ui b/companion/src/generaledit/generalsetup.ui
index 8bb5eb4347e..34e31839e55 100644
--- a/companion/src/generaledit/generalsetup.ui
+++ b/companion/src/generaledit/generalsetup.ui
@@ -503,41 +503,38 @@
-
-
-
-
-
- Backlight Brightness
-
-
-
- -
-
+
-
+
-
-
+
+ Large image (2 columns)
+
-
-
-
- Automatically adjust the radio's clock if a GPS is connected to telemetry.
-
-
- Qt::LayoutDirection::LeftToRight
-
-
- Adjust RTC
-
-
+
+ Small image (3 columns)
+
-
+ -
+
+ Name only (2 columns)
+
+
+ -
+
+ Name only (1 column)
+
+
+
- -
-
+
-
+
- Backlight Auto OFF after
+
- -
+
-
-
@@ -569,28 +566,33 @@
- -
-
+
-
+
- Wav volume
+ Speaker Volume
- -
-
-
-
-
- Match all
-
-
- -
-
- Match any
-
-
+ -
+
+
+ Hz
+
+
+ 300
+
+
+ 1100
+
+
+ 10
+
+
+ 700
+
- -
+
-
Enable this to quickly change model on the model select page (a long press can then be used to open the model edit menu).
@@ -600,147 +602,121 @@
- -
-
-
- Keys Backlight
+
-
+
+
+ -2
+
+
+ 2
+
+
+ 1
+
+
+ Qt::Orientation::Horizontal
-
-
+
- Background volume
+ Vario volume
- -
-
-
- Vario repeat at zero
+
-
+
+
+ 8
- -
-
-
- Owner Registration ID
-
-
+
-
+
- -
-
+
-
+
- Label selection mode
+ Vario repeat at zero
- -
-
-
- 23
+
-
+
+
+ ms
-
- 5
+
+ 200
-
- 0
+
+ 1000
-
- Qt::Orientation::Horizontal
+
+ 10
-
-
- -
-
-
-
- -
-
-
- 100
+
+ 500
- -
-
+
-
+
- Label matching
+ Voice Language
- -
-
-
- -2
-
-
- 2
-
-
- 1
-
-
- Qt::Orientation::Horizontal
+
-
+
+
+ Text Language
- -
-
+
-
+
- FAI Mode
+ Favorites matching
- -
-
+
-
+
-
-
- Multi select
-
+
-
-
- Single select
-
+
+
+ Automatically adjust the radio's clock if a GPS is connected to telemetry.
+
+
+ Qt::LayoutDirection::LeftToRight
+
+
+ Adjust RTC
+
+
-
-
- -
-
-
- Qt::Orientation::Vertical
-
-
-
- 20
- 40
-
-
-
-
- -
-
-
-
-
-
+
- -
-
+
-
+
- Backlight OFF Brightness
+ Backlight Brightness
- -
-
-
- Backlight Control
+
-
+
+
+ 100
- -
+
-
@@ -758,95 +734,69 @@
- -
-
-
- ms
-
-
- 200
-
-
- 1000
-
-
- 10
-
-
- 500
+
-
+
+
+ Backlight Switch
- -
-
-
- -2
-
-
- 2
-
-
- 1
+
-
+
+
+ Beep volume
-
- Qt::Orientation::Horizontal
+
+
+ -
+
+
+ Model quick select
- -
-
-
- If you enable FAI, only RSSI and RxBt sensors will keep working. This function cannot be disabled by the radio.
+
-
+
+
+ Label matching
+
+
+ -
+
- -
-
-
- Hz
-
-
- 1300
-
-
- 2900
-
-
- 10
-
-
- 1700
+
-
+
+
+ Backlight flash on alarm
- -
-
-
-
-
- Large image (2 columns)
-
-
- -
-
- Small image (3 columns)
-
-
- -
-
- Name only (2 columns)
-
-
- -
-
- Name only (1 column)
-
-
+ -
+
+
+ Label selection mode
+
- -
+
-
+
+
+ Qt::Orientation::Vertical
+
+
+
+ 20
+ 40
+
+
+
+
+ -
-
@@ -874,97 +824,57 @@
- -
-
-
- -
-
-
-
-
- Beeper
-
-
- -
-
- Speaker
-
-
- -
-
- BeeperVoice
-
-
- -
-
- SpeakerVoice
-
-
-
-
- -
-
-
- Vario volume
+
-
+
+
+ -2
-
-
- -
-
-
- 8
+
+ 2
-
-
- -
-
-
- Country Code
+
+ 1
-
-
- -
-
-
- Voice Language
+
+ Qt::Orientation::Horizontal
- -
-
-
- Text Language
-
-
+
-
+
- -
+
-
Speaker Pitch (spkr only)
- -
-
+
-
+
- Vario pitch at zero
+ Manage Models layout
- -
-
-
- 5
-
-
- 100
+
-
+
+
+ Country Code
- -
-
+
-
+
+
+ Rotary Encoder Mode
+
- -
+
-
+
+
+ -
@@ -977,39 +887,23 @@
- -
-
-
- Hz
-
+
-
+
- 300
+ -2
- 1100
-
-
- 10
+ 2
-
- 700
+
+ 1
-
-
- -
-
-
-
+
+ Qt::Orientation::Horizontal
- -
-
-
- -
-
-
- -
+
-
-
@@ -1023,77 +917,78 @@
- -
-
+
-
+
- Sound Mode
+ Vario pitch at max
- -
-
+
-
+
- Timeshift from UTC
+ Wav volume
- -
-
+
-
+
- Backlight color
+ Vario pitch at zero
- -
-
-
- Beep volume
-
-
+
-
+
- -
-
+
-
+
- Backlight flash on alarm
+ Backlight Auto OFF after
- -
-
+
-
+
- Backlight Switch
+ Backlight OFF Brightness
- -
-
-
-
- 0
- 0
-
-
+
-
+
-
+ If you enable FAI, only RSSI and RxBt sensors will keep working. This function cannot be disabled by the radio.
-
+
-
- If this value is not 0, any keypress will turn on the backlight and turn it off after the specified number of seconds.
-
-
- sec
-
+
+
+ -
+
- 600
+ 23
-
+
5
+
+ 0
+
+
+ Qt::Orientation::Horizontal
+
- -
+
-
+
+
+ Volume Control
+
+
+
+ -
-
@@ -1112,74 +1007,78 @@
- -
-
+
-
+
- Manage Models layout
+ FAI Mode
- -
-
-
- -2
-
-
- 2
-
-
- 1
-
-
- Qt::Orientation::Horizontal
+
-
+
+
+ Backlight color
- -
-
+
-
+
+
-
+
+ Match all
+
+
+ -
+
+ Match any
+
+
+
+
+ -
+
- Rotary Encoder Mode
+ Keys Backlight
- -
-
+
-
+
+
+ Hz
+
- -2
+ 1300
- 2
+ 2900
-
- 1
+
+ 10
-
- Qt::Orientation::Horizontal
+
+ 1700
- -
-
+
-
+
- Model quick select
+ Backlight Control
- -
-
-
- Speaker Volume
+
-
+
+
+ 5
-
-
- -
-
-
- Volume Control
+
+ 100
- -
+
-
@@ -1206,58 +1105,51 @@ p, li { white-space: pre-wrap; }
- -
-
-
- Vario pitch at max
-
-
-
- -
-
+
-
+
- Favorites matching
+ Owner Registration ID
-
-
- -
-
-
- QLayout::SizeConstraint::SetDefaultConstraint
-
-
-
-
-
-
-
- 0s
-
-
- -
-
- 0.5s
-
-
- -
-
- 1s
-
-
+ -
+
-
- 2s
+ Multi select
-
- 3s
+ Single select
- -
-
+
-
+
+
+ -2
+
+
+ 2
+
+
+ 1
+
+
+ Qt::Orientation::Horizontal
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
@@ -1265,38 +1157,61 @@ p, li { white-space: pre-wrap; }
- <html><head/><body><p>Channel order</p><p><br/></p><p>Defines the order of the default mixes created on a new model.</p></body></html>
+ If this value is not 0, any keypress will turn on the backlight and turn it off after the specified number of seconds.
-
- -1
+
+ sec
+
+
+ 600
+
+
+ 5
- -
-
-
-
- 0
- 0
-
+
-
+
+
+ -
+
+
+ Background volume
+
+
+ -
+
- Play Delay (switch mid position)
+ Timeshift from UTC
- -
-
+
+
+ -
+
+
+ QLayout::SizeConstraint::SetDefaultConstraint
+
+
-
+
-
+
0
0
-
+
- 16777215
- 16777215
+ 0
+ 22
+
+
+
+
+ 16777215
+ 16777215
@@ -1320,8 +1235,8 @@ p, li { white-space: pre-wrap; }
- -
-
+
-
+
0
@@ -1331,16 +1246,60 @@ p, li { white-space: pre-wrap; }
0
- 0
+ 22
+
+
+
+
+
+
+
+ Battery warning voltage.
+This is the threshold where the battery warning sounds.
+
+Acceptable values are 3v..12v
+
+
+
+
+
+ V
+
+
+ 1
+
+
+ 3.000000000000000
+
+
+ 12.000000000000000
+
+
+ 0.100000000000000
+
+
+ 9.600000000000000
+
+
+
+ -
+
- Haptic Strength
+ GPS Coordinates
- -
-
+
-
+
+
+
+
+
+
+ -
+
0
@@ -1349,20 +1308,56 @@ p, li { white-space: pre-wrap; }
- 20
- 0
+ 0
+ 22
-
+
+
+
+
+
+
+ Beeper volume
+
+0 - Quiet. No beeps at all.
+1 - No Keys. Normal beeps but menu keys do not beep.
+2 - Normal.
+3 - Loud.
+4 - Extra loud.
+
-
+
+ Quiet
+
+
+ -
+
+ Alarms Only
+
+
+ -
+
+ No Keys
+
+
+ -
+
+ All
+
+
+
+
+ -
+
- Battery Warning
+ Play Startup Sound
- -
-
+
-
+
0
@@ -1375,84 +1370,23 @@ p, li { white-space: pre-wrap; }
0
-
- Haptic Mode
+
+
-
-
- -
-
-
-
-
-
-
- 0
- 0
-
-
-
-
-
- ---
-
-
- -
-
- 2s
-
-
- -
-
- 3s
-
-
- -
-
- 4s
-
-
- -
-
- 6s
-
-
- -
-
- 8s
-
-
- -
-
- 10s
-
-
- -
-
- 15s
-
-
-
-
-
-
- -
-
- Trainer Poweroff Warning
+ Contrast
- -
-
+
-
+
- Measurement Units
+ Power Off Delay
- -
-
-
- -
-
+
-
+
0
@@ -1466,12 +1400,12 @@ p, li { white-space: pre-wrap; }
- Beeper Length
+ Haptic Mode
- -
-
+
-
+
0
@@ -1481,40 +1415,18 @@ p, li { white-space: pre-wrap; }
0
- 22
+ 0
-
-
-
-
-
-
-
-
-
-
- 10
-
-
- 45
-
-
- 25
-
-
-
- -
-
- GPS Coordinates
+ RSSI Poweroff Warning
- -
-
+
-
+
-
+
0
0
@@ -1522,76 +1434,57 @@ p, li { white-space: pre-wrap; }
0
- 22
-
-
-
-
- 16777215
- 16777215
+ 0
-
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
-<html><head><meta name="qrichtext" content="1" /><style type="text/css">
-p, li { white-space: pre-wrap; }
-</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;">
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" text-decoration: underline;">Warnings</span></p>
-<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">These will define startup warnings.</p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Throttle warning - will alert if the throttle is not at idle during startup</p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Switch warning - will alert if switches are not in their defaul position</p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Memory warning - will alert if there's not a lot of memory left</p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Silent mode warning - will alert you if the beeper is set to quiet (0)</p></body></html>
-
-
-
-
- true
+ Show Splash Screen on Startup
- -
-
-
- Hats Mode
-
-
-
- -
-
+
-
+
-
- Ask on Connect
+ DMS
-
- Joystick (HID)
+ NMEA
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+ MAVLink Baud Rate
+
+
+
+ -
+
-
- USB Mass Storage
+ Metric
-
- USB Serial (CDC)
+ Imperial
- -
-
-
- PPM Units
-
-
-
- -
-
+
-
+
0
@@ -1601,80 +1494,216 @@ p, li { white-space: pre-wrap; }
0
- 22
+ 0
+
+ Haptic Strength
+
+
+
+ -
+
+
+ Measurement Units
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+ Default Channel Order
+
+
+
+ -
+
-
- X-Short
+ 0s
-
- Short
+ 0.5s
-
- Normal
+ 1s
-
- Long
+ 2s
-
- X-Long
+ 3s
-
-
-
+
+
+ Stick Mode
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
- 0
- 0
+ 16777215
+ 16777215
+
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+<html><head><meta name="qrichtext" content="1" /><style type="text/css">
+p, li { white-space: pre-wrap; }
+</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;">
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" text-decoration: underline;">Warnings</span></p>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">These will define startup warnings.</p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Throttle warning - will alert if the throttle is not at idle during startup</p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Switch warning - will alert if switches are not in their defaul position</p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Memory warning - will alert if there's not a lot of memory left</p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Silent mode warning - will alert you if the beeper is set to quiet (0)</p></body></html>
+
- MAVLink Baud Rate
+
+
+
+ true
- -
-
+
-
+
+
-
+
+
+
+ 0
+ 0
+
+
+
-
+
+ ---
+
+
+ -
+
+ 2s
+
+
+ -
+
+ 3s
+
+
+ -
+
+ 4s
+
+
+ -
+
+ 6s
+
+
+ -
+
+ 8s
+
+
+ -
+
+ 10s
+
+
+ -
+
+ 15s
+
+
+
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 0
+ 22
+
+
-
- 0s
+ X-Short
-
- 0.5s
+ Short
-
- 1s
+ Normal
-
- 2s
+ Long
-
- 3s
+ X-Long
- -
-
+
-
+
+
+ Power ON/OFF Haptic
+
+
+
+ -
+
+
+ Trainer Poweroff Warning
+
+
+
+ -
+
0
@@ -1689,20 +1718,30 @@ p, li { white-space: pre-wrap; }
-
- Standard
+ Quiet
+
+
+ -
+
+ Only Alarms
+
+
+ -
+
+ No Keys
-
- Optrex
+ All
- -
-
+
-
+
-
+
0
0
@@ -1713,72 +1752,102 @@ p, li { white-space: pre-wrap; }
22
-
-
+
+
+ 16777215
+ 16777215
+
-
+
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+<html><head><meta name="qrichtext" content="1" /><style type="text/css">
+p, li { white-space: pre-wrap; }
+</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;">
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" text-decoration: underline;">Warnings</span></p>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">These will define startup warnings.</p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Throttle warning - will alert if the throttle is not at idle during startup</p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Switch warning - will alert if switches are not in their defaul position</p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Memory warning - will alert if there's not a lot of memory left</p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Silent mode warning - will alert you if the beeper is set to quiet (0)</p></body></html>
+
+
-
- Battery warning voltage.
-This is the threshold where the battery warning sounds.
-
-Acceptable values are 3v..12v
-
-
-
-
-
- V
-
-
- 1
-
-
- 3.000000000000000
-
-
- 12.000000000000000
-
-
- 0.100000000000000
-
-
- 9.600000000000000
+
+ true
+ -
+
+
-
+
+ 0s
+
+
+ -
+
+ 0.5s
+
+
+ -
+
+ 1s
+
+
+ -
+
+ 2s
+
+
+ -
+
+ 3s
+
+
+
+
+ -
+
+
-
+
+ Ask on Connect
+
+
+ -
+
+ Joystick (HID)
+
+
+ -
+
+ USB Mass Storage
+
+
+ -
+
+ USB Serial (CDC)
+
+
+
+
-
-
+
- USB Mode
+ Jack Mode
- -
-
-
-
- 0
- 0
-
-
-
-
- 0
- 0
-
-
-
-
-
+
-
+
- Contrast
+ Power Auto Off
- -
-
+
-
+
0
@@ -1792,75 +1861,174 @@ Acceptable values are 3v..12v
- Show Splash Screen on Startup
+ Beeper Mode
- -
-
-
-
- 0
- 0
-
+
-
+
+
+
-
- Default Channel Order
+
+
-
-
- -
-
-
-
- 0
- 0
-
+
+ Mode selection:
+
+Mode 1:
+ Left stick: Elevator, Rudder
+ Right stick: Throttle, Aileron
+
+Mode 2:
+ Left stick: Throttle, Rudder
+ Right stick: Elevator, Aileron
+
+Mode 3:
+ Left stick: Elevator, Aileron
+ Right stick: Throttle, Rudder
+
+Mode 4:
+ Left stick: Throttle, Aileron
+ Right stick: Elevator, Rudder
+
+
-
-
- 0
- 22
-
+
+ -1
+
+
+ -
+
-
- Quiet
+ 4800 Baud
-
- Only Alarms
+ 9600 Baud
-
- No Keys
+ 14400 Baud
-
- All
+ 19200 Baud
+
+
+ -
+
+ 38400 Baud
+
+
+ -
+
+ 57600 Baud
+
+
+ -
+
+ 76800 Baud
+
+
+ -
+
+ 115200 Baud
- -
-
+
-
+
+
+ 0.--
+
-
- DMS
+ 0.--
-
- NMEA
+ 0.0
+
+
+ -
+
+ us
- -
-
+
-
+
+
-
+
+
+ Min
+
+
+
+ -
+
+
+ v
+
+
+ 1
+
+
+ 3.000000000000000
+
+
+ 16.000000000000000
+
+
+ 0.100000000000000
+
+
+ 9.000000000000000
+
+
+
+ -
+
+
+ Max
+
+
+
+ -
+
+
+ v
+
+
+ 1
+
+
+ 3.000000000000000
+
+
+ 16.000000000000000
+
+
+ 0.100000000000000
+
+
+ 12.000000000000000
+
+
+
+
+
+ -
+
0
@@ -1870,9 +2038,16 @@ Acceptable values are 3v..12v
0
- 22
+ 0
+
+ "No Sound" Warning
+
+
+
+ -
+
@@ -1880,25 +2055,44 @@ Acceptable values are 3v..12v
- If not zero will sound beeps if the transmitter has been left without inputs for the specified number of minutes.
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+<html><head><meta name="qrichtext" content="1" /><style type="text/css">
+p, li { white-space: pre-wrap; }
+</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;">
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">LCD Screen Contrast</span></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Values can be 20-45</span></p></body></html>
- min
+ ms
+
+
+ 0
- 120
+ 1000
-
-
- -
-
-
-
+
+ 10
+
+
+ 0
- -
-
+
-
+
+
+
+ 0
+ 0
+
+
+
+
+ 0
+ 22
+
+
@@ -1906,40 +2100,21 @@ Acceptable values are 3v..12v
- Mode selection:
-
-Mode 1:
- Left stick: Elevator, Rudder
- Right stick: Throttle, Aileron
-
-Mode 2:
- Left stick: Throttle, Rudder
- Right stick: Elevator, Aileron
-
-Mode 3:
- Left stick: Elevator, Aileron
- Right stick: Throttle, Rudder
-
-Mode 4:
- Left stick: Throttle, Aileron
- Right stick: Elevator, Rudder
-
-
-
-
- -1
+
-
-
- -
-
-
- Power ON/OFF Haptic
+
+ 10
+
+
+ 45
+
+
+ 25
- -
-
+
-
+
0
@@ -1949,33 +2124,36 @@ Mode 4:
0
- 0
+ 22
-
- LCD Display Type
+
+
-
-
- -
-
-
-
- 0
- 0
-
+
+
-
-
- 0
- 0
-
+
+ If not zero will sound beeps if the transmitter has been left without inputs for the specified number of minutes.
+
+ min
+
+
+ 120
+
+
+
+ -
+
- Inactivity Timer
+ PPM Units
+ -
+
+
-
@@ -2017,15 +2195,8 @@ Mode 4:
- -
-
-
- Power Off Delay
-
-
-
- -
-
+
-
+
0
@@ -2039,74 +2210,32 @@ Mode 4:
- Low EEPROM Warning
+ Haptic Length
- -
-
-
-
-
- Metric
-
-
- -
-
- Imperial
-
-
-
-
- -
-
-
- 0.--
+
-
+
+
+ Qt::Orientation::Vertical
-
-
-
- 0.--
-
-
- -
-
- 0.0
-
-
- -
-
- us
-
-
-
-
- -
-
-
-
-
- Ask on Connect
-
-
- -
-
- Audio
-
-
- -
-
- Trainer
-
-
-
+
+
+ 20
+ 40
+
+
+
- -
-
+
-
+
- Stick Mode
+
- -
-
+
-
+
0
@@ -2116,109 +2245,53 @@ Mode 4:
0
- 22
+ 0
-
-
-
-
-
-
-
- Beeper volume
-
-0 - Quiet. No beeps at all.
-1 - No Keys. Normal beeps but menu keys do not beep.
-2 - Normal.
-3 - Loud.
-4 - Extra loud.
-
-
-
-
- Quiet
-
-
- -
-
- Alarms Only
-
-
- -
-
- No Keys
-
-
- -
-
- All
-
-
-
-
- -
-
- Play Startup Sound
+ Beeper Length
- -
-
+
-
+
-
+
0
0
-
+
- 0
- 0
+ 16777215
+ 16777215
-
- RSSI Poweroff Warning
-
-
-
- -
-
-
-
-
-
-
-
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
p, li { white-space: pre-wrap; }
</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;">
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">LCD Screen Contrast</span></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Values can be 20-45</span></p></body></html>
-
-
- ms
-
-
- 0
-
-
- 1000
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" text-decoration: underline;">Warnings</span></p>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">These will define startup warnings.</p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Throttle warning - will alert if the throttle is not at idle during startup</p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Switch warning - will alert if switches are not in their defaul position</p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Memory warning - will alert if there's not a lot of memory left</p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Silent mode warning - will alert you if the beeper is set to quiet (0)</p></body></html>
-
- 10
+
+
-
- 0
+
+ true
- -
-
+
-
+
-
+
0
0
@@ -2229,35 +2302,38 @@ p, li { white-space: pre-wrap; }
22
-
-
- 16777215
- 16777215
-
+
+ -2
-
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
-<html><head><meta name="qrichtext" content="1" /><style type="text/css">
-p, li { white-space: pre-wrap; }
-</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;">
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" text-decoration: underline;">Warnings</span></p>
-<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">These will define startup warnings.</p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Throttle warning - will alert if the throttle is not at idle during startup</p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Switch warning - will alert if switches are not in their defaul position</p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Memory warning - will alert if there's not a lot of memory left</p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Silent mode warning - will alert you if the beeper is set to quiet (0)</p></body></html>
+
+ 2
+
+
+ 1
-
+
+ Qt::Orientation::Horizontal
+
+
+
+ -
+
+
-
- true
+
+
+
+
+ <html><head/><body><p>Channel order</p><p><br/></p><p>Defines the order of the default mixes created on a new model.</p></body></html>
+
+
+ -1
- -
-
+
-
+
0
@@ -2266,109 +2342,58 @@ p, li { white-space: pre-wrap; }
- 0
+ 20
0
+
+
+
- Haptic Length
+ Battery Warning
- -
+
-
Power On Delay
- -
-
-
-
- 0
- 0
-
-
-
-
- 0
- 0
-
+
-
+
+
+ min
-
- Beeper Mode
+
+ 255
- -
-
-
-
-
- 4800 Baud
-
-
- -
-
- 9600 Baud
-
-
- -
-
- 14400 Baud
-
-
- -
-
- 19200 Baud
-
-
- -
-
- 38400 Baud
-
-
+ -
+
-
- 57600 Baud
+ Ask on Connect
-
- 76800 Baud
+ Audio
-
- 115200 Baud
+ Trainer
- -
-
-
- Qt::Orientation::Vertical
-
-
-
- 20
- 40
-
-
-
-
- -
-
-
- Jack Mode
-
-
-
- -
-
+
-
+
-
+
0
0
@@ -2376,85 +2401,14 @@ p, li { white-space: pre-wrap; }
0
- 22
+ 0
-
- -2
-
-
- 2
-
-
- 1
-
-
- Qt::Orientation::Horizontal
+
+ Inactivity Timer
- -
-
-
-
-
-
- Min
-
-
-
- -
-
-
- v
-
-
- 1
-
-
- 3.000000000000000
-
-
- 16.000000000000000
-
-
- 0.100000000000000
-
-
- 9.000000000000000
-
-
-
- -
-
-
- Max
-
-
-
- -
-
-
- v
-
-
- 1
-
-
- 3.000000000000000
-
-
- 16.000000000000000
-
-
- 0.100000000000000
-
-
- 12.000000000000000
-
-
-
-
-
-
@@ -2475,7 +2429,7 @@ p, li { white-space: pre-wrap; }
-
-
+
0
@@ -2489,66 +2443,34 @@ p, li { white-space: pre-wrap; }
- "No Sound" Warning
+ Low EEPROM Warning
- -
-
+
-
+
-
+ Hats Mode
- -
-
+
-
+
+
+ USB Mode
+
+
+
+ -
+
-
+
0
0
-
-
- 16777215
- 16777215
-
-
-
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
-<html><head><meta name="qrichtext" content="1" /><style type="text/css">
-p, li { white-space: pre-wrap; }
-</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;">
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" text-decoration: underline;">Warnings</span></p>
-<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">These will define startup warnings.</p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Throttle warning - will alert if the throttle is not at idle during startup</p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Switch warning - will alert if switches are not in their defaul position</p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Memory warning - will alert if there's not a lot of memory left</p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Silent mode warning - will alert you if the beeper is set to quiet (0)</p></body></html>
-
-
-
-
-
- true
-
-
-
- -
-
- Power Auto Off
-
-
-
- -
-
-
- min
-
-
- 255
+ Play Delay (switch mid position)
diff --git a/companion/src/generaledit/hardware.cpp b/companion/src/generaledit/hardware.cpp
index 8c9ba3989b2..8517354faa0 100644
--- a/companion/src/generaledit/hardware.cpp
+++ b/companion/src/generaledit/hardware.cpp
@@ -345,16 +345,6 @@ HardwarePanel::HardwarePanel(QWidget * parent, GeneralSettings & generalSettings
addParams();
}
- if (firmware->getCapability(HastxCurrentCalibration)) {
- addLabel(tr("Current Offset"));
- AutoSpinBox *txCurrentCalibration = new AutoSpinBox(this);
- FieldRange txCCRng = GeneralSettings::getTxCurrentCalibration();
- txCurrentCalibration->setSuffix(txCCRng.unit);
- txCurrentCalibration->setField(generalSettings.txCurrentCalibration);
- params->append(txCurrentCalibration);
- addParams();
- }
-
if (Boards::getCapability(board, Board::LcdWidth) == 128) {
addSection(tr("Screen"));
diff --git a/companion/src/storage/labeled.cpp b/companion/src/storage/labeled.cpp
index 0d699d92e03..a9dffc28f09 100644
--- a/companion/src/storage/labeled.cpp
+++ b/companion/src/storage/labeled.cpp
@@ -188,7 +188,6 @@ bool LabelsStorageFormat::write(RadioData & radioData)
if (loadRadioSettings(gsCur)) {
GeneralSettings & gsNew = radioData.generalSettings;
- gsNew.txCurrentCalibration = gsCur.txCurrentCalibration;
gsNew.txVoltageCalibration = gsCur.txVoltageCalibration;
for (int i = 0; i < CPN_MAX_INPUTS; i++) {