mirror of
https://github.com/opentx/opentx.git
synced 2025-07-13 11:29:51 +03:00
Merge pull request #8267 from opentx/wismy/racing_mode_rollback
Wismy/racing mode
This commit is contained in:
commit
81c7338ab3
31 changed files with 180 additions and 59 deletions
|
@ -45,19 +45,6 @@ bool ModuleData::isPxx2Module() const
|
|||
}
|
||||
}
|
||||
|
||||
bool ModuleData::isPxx1Module() const
|
||||
{
|
||||
switch(protocol){
|
||||
case PULSES_PXX_XJT_X16:
|
||||
case PULSES_PXX_R9M:
|
||||
case PULSES_PXX_R9M_LITE:
|
||||
case PULSES_PXX_R9M_LITE_PRO:
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
bool ModuleData::supportRxNum() const
|
||||
{
|
||||
switch (protocol) {
|
||||
|
|
|
@ -215,12 +215,12 @@ class ModuleData {
|
|||
struct Access {
|
||||
unsigned int receivers;
|
||||
char receiverName[PXX2_MAX_RECEIVERS_PER_MODULE][PXX2_LEN_RX_NAME+1];
|
||||
unsigned int racingMode;
|
||||
} access;
|
||||
|
||||
void clear() { memset(this, 0, sizeof(ModuleData)); }
|
||||
void convert(RadioDataConversionState & cstate);
|
||||
bool isPxx2Module() const;
|
||||
bool isPxx1Module() const;
|
||||
bool supportRxNum() const;
|
||||
QString polarityToString() const { return ppm.pulsePol ? tr("Positive") : tr("Negative"); }
|
||||
QString rfProtocolToString() const;
|
||||
|
|
|
@ -2158,15 +2158,16 @@ class ModuleUnionField: public UnionField<unsigned int> {
|
|||
module(module)
|
||||
{
|
||||
internalField.Append(new UnsignedField<3>(this, module.access.receivers));
|
||||
internalField.Append(new SpareBitsField<5>(this));
|
||||
internalField.Append(new SpareBitsField<4>(this));
|
||||
internalField.Append(new UnsignedField<1>(this, module.access.racingMode));
|
||||
|
||||
for (int i=0; i<PXX2_MAX_RECEIVERS_PER_MODULE; i++)
|
||||
for (int i = 0; i < PXX2_MAX_RECEIVERS_PER_MODULE; i++)
|
||||
internalField.Append(new CharField<8>(this, receiverName[i]));
|
||||
|
||||
memset(receiverName, 0, sizeof(receiverName));
|
||||
}
|
||||
|
||||
bool select(const unsigned int& attr) const override
|
||||
bool select(const unsigned int & attr) const override
|
||||
{
|
||||
return attr >= PULSES_ACCESS_ISRM && attr <= PULSES_ACCESS_R9M_LITE_PRO;
|
||||
}
|
||||
|
|
|
@ -182,6 +182,7 @@ void TimerPanel::onCountdownBeepChanged(int index)
|
|||
#define MASK_ACCESS (1<<13)
|
||||
#define MASK_RX_FREQ (1<<14)
|
||||
#define MASK_RF_POWER (1<<15)
|
||||
#define MASK_RF_RACING_MODE (1<<16)
|
||||
|
||||
quint8 ModulePanel::failsafesValueDisplayType = ModulePanel::FAILSAFE_DISPLAY_PERCENT;
|
||||
|
||||
|
@ -371,9 +372,9 @@ void ModulePanel::setupFailsafes()
|
|||
|
||||
void ModulePanel::update()
|
||||
{
|
||||
const PulsesProtocol protocol = (PulsesProtocol)module.protocol;
|
||||
const Board::Type board = firmware->getBoard();
|
||||
const Multiprotocols::MultiProtocolDefinition & pdef = multiProtocols.getProtocol(module.multi.rfProtocol);
|
||||
const auto protocol = (PulsesProtocol)module.protocol;
|
||||
const auto board = firmware->getBoard();
|
||||
const auto & pdef = multiProtocols.getProtocol(module.multi.rfProtocol);
|
||||
unsigned int mask = 0;
|
||||
unsigned int max_rx_num = 63;
|
||||
|
||||
|
@ -406,6 +407,8 @@ void ModulePanel::update()
|
|||
mask |= MASK_RX_NUMBER | MASK_ACCESS;
|
||||
if (moduleIdx == 0 && HAS_EXTERNAL_ANTENNA(board) && generalSettings.antennaMode == 0 /* per model */)
|
||||
mask |= MASK_ANTENNA;
|
||||
if (protocol == PULSES_ACCESS_ISRM && module.channelsCount == 8)
|
||||
mask |= MASK_RF_RACING_MODE;
|
||||
break;
|
||||
case PULSES_LP45:
|
||||
case PULSES_DSM2:
|
||||
|
@ -447,8 +450,6 @@ void ModulePanel::update()
|
|||
mask |= MASK_CHANNELS_RANGE| MASK_CHANNELS_COUNT | MASK_FAILSAFES;
|
||||
mask |= MASK_SUBTYPES | MASK_RX_FREQ | MASK_RF_POWER;
|
||||
break;
|
||||
case PULSES_OFF:
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
@ -512,6 +513,14 @@ void ModulePanel::update()
|
|||
ui->antennaMode->hide();
|
||||
}
|
||||
|
||||
if (mask & MASK_RF_RACING_MODE) {
|
||||
ui->racingMode->show();
|
||||
ui->racingMode->setChecked(module.access.racingMode);
|
||||
}
|
||||
else {
|
||||
ui->racingMode->hide();
|
||||
}
|
||||
|
||||
// R9M options
|
||||
ui->r9mPower->setVisible(mask & MASK_RF_POWER);
|
||||
ui->label_r9mPower->setVisible(mask & MASK_RF_POWER);
|
||||
|
@ -803,6 +812,11 @@ void ModulePanel::on_disableChMap_stateChanged(int state)
|
|||
module.multi.disableMapping = (state == Qt::Checked);
|
||||
}
|
||||
|
||||
void ModulePanel::on_racingMode_stateChanged(int state)
|
||||
{
|
||||
module.access.racingMode = (state == Qt::Checked);
|
||||
}
|
||||
|
||||
void ModulePanel::on_autoBind_stateChanged(int state)
|
||||
{
|
||||
module.multi.autoBindMode = (state == Qt::Checked);
|
||||
|
|
|
@ -95,6 +95,7 @@ class ModulePanel : public ModelPanel
|
|||
void onSubTypeChanged();
|
||||
void on_autoBind_stateChanged(int state);
|
||||
void on_disableChMap_stateChanged(int state);
|
||||
void on_racingMode_stateChanged(int state);
|
||||
void on_disableTelem_stateChanged(int state);
|
||||
void on_lowPower_stateChanged(int state);
|
||||
void on_r9mPower_currentIndexChanged(int index);
|
||||
|
|
|
@ -1077,7 +1077,21 @@
|
|||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="11" column="0" colspan="2">
|
||||
<item row="7" column="1">
|
||||
<widget class="QCheckBox" name="disableTelem">
|
||||
<property name="text">
|
||||
<string>Disable Telemetry</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="11" column="1">
|
||||
<widget class="QCheckBox" name="racingMode">
|
||||
<property name="text">
|
||||
<string>Racing Mode</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="12" column="0" colspan="2">
|
||||
<spacer name="horizontalSpacer_3">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
|
@ -1090,13 +1104,6 @@
|
|||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="7" column="1">
|
||||
<widget class="QCheckBox" name="disableTelem">
|
||||
<property name="text">
|
||||
<string>Disable Telemetry</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="10" column="1">
|
||||
<widget class="QCheckBox" name="disableChMap">
|
||||
<property name="text">
|
||||
|
|
|
@ -853,6 +853,7 @@ enum Functions {
|
|||
FUNC_LOGS,
|
||||
FUNC_BACKLIGHT,
|
||||
FUNC_SCREENSHOT,
|
||||
FUNC_RACING_MODE,
|
||||
#if defined(DEBUG)
|
||||
FUNC_TEST, // should remain the last before MAX as not added in Companion
|
||||
#endif
|
||||
|
|
|
@ -451,7 +451,8 @@ PACK(struct ModuleData {
|
|||
int8_t refreshRate; // definition as framelength for ppm (* 5 + 225 = time in 1/10 ms)
|
||||
} sbus);
|
||||
NOBACKUP(PACK(struct {
|
||||
uint8_t receivers; // 5 bits spare
|
||||
uint8_t receivers:7; // 4 bits spare
|
||||
uint8_t racingMode:1;
|
||||
char receiverName[PXX2_MAX_RECEIVERS_PER_MODULE][PXX2_LEN_RX_NAME];
|
||||
}) pxx2);
|
||||
NOBACKUP(PACK(struct {
|
||||
|
@ -475,14 +476,21 @@ PACK(struct ModuleData {
|
|||
};
|
||||
|
||||
// Helper functions to set both of the rfProto protocol at the same time
|
||||
NOBACKUP(inline uint8_t getMultiProtocol() {
|
||||
NOBACKUP(inline uint8_t getMultiProtocol() const
|
||||
{
|
||||
return ((uint8_t) (rfProtocol & 0x0F)) + (multi.rfProtocolExtra << 4);
|
||||
})
|
||||
|
||||
NOBACKUP(inline void setMultiProtocol(uint8_t proto) {
|
||||
NOBACKUP(inline void setMultiProtocol(uint8_t proto)
|
||||
{
|
||||
rfProtocol = (uint8_t) (proto & 0x0F);
|
||||
multi.rfProtocolExtra = (proto & 0x70) >> 4;
|
||||
})
|
||||
|
||||
NOBACKUP(inline uint8_t getChannelsCount() const
|
||||
{
|
||||
return channelsCount + 8;
|
||||
})
|
||||
});
|
||||
|
||||
/*
|
||||
|
|
|
@ -376,10 +376,18 @@ void evalFunctions(const CustomFunctionData * functions, CustomFunctionsContext
|
|||
|
||||
case FUNC_SCREENSHOT:
|
||||
if (!(functionsContext.activeSwitches & switch_mask)) {
|
||||
mainRequestFlags |= (1 << REQUEST_SCREENSHOT);
|
||||
mainRequestFlags |= (1u << REQUEST_SCREENSHOT);
|
||||
}
|
||||
break;
|
||||
|
||||
#if defined(PXX2)
|
||||
case FUNC_RACING_MODE:
|
||||
if (isRacingModeEnabled()) {
|
||||
newActiveFunctions |= (1u << FUNCTION_RACING_MODE);
|
||||
}
|
||||
break;
|
||||
#endif
|
||||
|
||||
#if defined(DEBUG)
|
||||
case FUNC_TEST:
|
||||
testFunc();
|
||||
|
|
|
@ -92,6 +92,7 @@ enum MenuModelSetupItems {
|
|||
ITEM_MODEL_SETUP_INTERNAL_MODULE_SYNCSTATUS,
|
||||
#endif
|
||||
ITEM_MODEL_SETUP_INTERNAL_MODULE_CHANNELS,
|
||||
ITEM_MODEL_SETUP_INTERNAL_MODULE_RACING_MODE,
|
||||
ITEM_MODEL_SETUP_INTERNAL_MODULE_NOT_ACCESS_RXNUM_BIND_RANGE,
|
||||
ITEM_MODEL_SETUP_INTERNAL_MODULE_PXX2_MODEL_NUM,
|
||||
ITEM_MODEL_SETUP_INTERNAL_MODULE_OPTIONS,
|
||||
|
@ -345,6 +346,7 @@ void editTimerCountdown(int timerIdx, coord_t y, LcdFlags attr, event_t event)
|
|||
MULTIMODULE_SUBTYPE_ROWS(INTERNAL_MODULE) /* ITEM_MODEL_SETUP_INTERNAL_MODULE_SUBTYPE */ \
|
||||
MULTIMODULE_STATUS_ROWS(INTERNAL_MODULE) /* ITEM_MODEL_SETUP_INTERNAL_MODULE_STATUS, ITEM_MODEL_SETUP_INTERNAL_MODULE_SYNCSTATUS */ \
|
||||
MODULE_CHANNELS_ROWS(INTERNAL_MODULE), /* ITEM_MODEL_SETUP_INTERNAL_MODULE_CHANNELS */ \
|
||||
IF_ALLOW_RACING_MODE(INTERNAL_MODULE), /* ITEM_MODEL_SETUP_INTERNAL_MODULE_RACING_MODE */ \
|
||||
IF_NOT_ACCESS_MODULE_RF(INTERNAL_MODULE, MODULE_BIND_ROWS(INTERNAL_MODULE)), /* *ITEM_MODEL_SETUP_INTERNAL_MODULE_NOT_ACCESS_RXNUM_BIND_RANGE */\
|
||||
IF_ACCESS_MODULE_RF(INTERNAL_MODULE, 0), /* ITEM_MODEL_SETUP_INTERNAL_MODULE_PXX2_MODEL_NUM */ \
|
||||
MODULE_OPTION_ROW(INTERNAL_MODULE), /* ITEM_MODEL_SETUP_INTERNAL_MODULE_OPTIONS */ \
|
||||
|
@ -1214,6 +1216,16 @@ void menuModelSetup(event_t event)
|
|||
break;
|
||||
}
|
||||
|
||||
#if defined(HARDWARE_INTERNAL_MODULE)
|
||||
case ITEM_MODEL_SETUP_INTERNAL_MODULE_RACING_MODE:
|
||||
{
|
||||
ModuleData & moduleData = g_model.moduleData[moduleIdx];
|
||||
lcdDrawText(INDENT_WIDTH, y, STR_RACING_MODE);
|
||||
moduleData.pxx2.racingMode = editCheckBox(moduleData.pxx2.racingMode, MODEL_SETUP_2ND_COLUMN, y, "", attr, event);
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(PCBX7) || defined(PCBX9LITE) || defined(PCBXLITE)
|
||||
case ITEM_MODEL_SETUP_TRAINER_PPM_PARAMS:
|
||||
lcdDrawTextAlignedLeft(y, STR_PPMFRAME);
|
||||
|
@ -1494,7 +1506,6 @@ void menuModelSetup(event_t event)
|
|||
if (event == EVT_KEY_LONG(KEY_ENTER)) {
|
||||
killEvents(event);
|
||||
setCustomFailsafe(moduleIdx);
|
||||
storageDirty(EE_MODEL);
|
||||
AUDIO_WARNING1();
|
||||
SEND_FAILSAFE_NOW(moduleIdx);
|
||||
}
|
||||
|
|
|
@ -87,6 +87,7 @@ enum MenuModelSetupItems {
|
|||
ITEM_MODEL_SETUP_INTERNAL_MODULE_LABEL,
|
||||
ITEM_MODEL_SETUP_INTERNAL_MODULE_TYPE,
|
||||
ITEM_MODEL_SETUP_INTERNAL_MODULE_CHANNELS,
|
||||
ITEM_MODEL_SETUP_INTERNAL_MODULE_RACING_MODE,
|
||||
ITEM_MODEL_SETUP_INTERNAL_MODULE_NOT_ACCESS_RXNUM_BIND_RANGE,
|
||||
ITEM_MODEL_SETUP_INTERNAL_MODULE_PXX2_MODEL_NUM,
|
||||
ITEM_MODEL_SETUP_INTERNAL_MODULE_FAILSAFE,
|
||||
|
@ -362,6 +363,7 @@ void menuModelSetup(event_t event)
|
|||
LABEL(InternalModule),
|
||||
INTERNAL_MODULE_TYPE_ROWS,
|
||||
MODULE_CHANNELS_ROWS(INTERNAL_MODULE),
|
||||
IF_ALLOW_RACING_MODE(INTERNAL_MODULE),
|
||||
IF_NOT_ACCESS_MODULE_RF(INTERNAL_MODULE, MODULE_BIND_ROWS(INTERNAL_MODULE)), // RxNum, [Bind] and [Range] buttons
|
||||
IF_ACCESS_MODULE_RF(INTERNAL_MODULE, 0), // RxNum for ACCESS
|
||||
IF_INTERNAL_MODULE_ON(FAILSAFE_ROWS(INTERNAL_MODULE)), // Failsafe
|
||||
|
@ -1098,6 +1100,15 @@ void menuModelSetup(event_t event)
|
|||
break;
|
||||
}
|
||||
|
||||
case ITEM_MODEL_SETUP_INTERNAL_MODULE_RACING_MODE:
|
||||
{
|
||||
uint8_t moduleIdx = CURRENT_MODULE_EDITED(k);
|
||||
ModuleData & moduleData = g_model.moduleData[moduleIdx];
|
||||
lcdDrawText(INDENT_WIDTH, y, STR_RACING_MODE);
|
||||
moduleData.pxx2.racingMode = editCheckBox(moduleData.pxx2.racingMode, MODEL_SETUP_2ND_COLUMN, y, "", attr, event);
|
||||
break;
|
||||
}
|
||||
|
||||
case ITEM_MODEL_SETUP_TRAINER_PPM_PARAMS:
|
||||
lcdDrawTextAlignedLeft(y, STR_PPMFRAME);
|
||||
lcdDrawNumber(MODEL_SETUP_2ND_COLUMN, y, (int16_t)g_model.trainerData.frameLength*5 + 225, (menuHorizontalPosition<=0 ? attr : 0) | PREC1|LEFT);
|
||||
|
@ -1270,7 +1281,6 @@ void menuModelSetup(event_t event)
|
|||
if (event == EVT_KEY_LONG(KEY_ENTER)) {
|
||||
killEvents(event);
|
||||
setCustomFailsafe(moduleIdx);
|
||||
storageDirty(EE_MODEL);
|
||||
AUDIO_WARNING1();
|
||||
SEND_FAILSAFE_NOW(moduleIdx);
|
||||
}
|
||||
|
|
|
@ -75,6 +75,7 @@ enum MenuModelSetupItems {
|
|||
ITEM_MODEL_SETUP_INTERNAL_MODULE_SYNCSTATUS,
|
||||
#endif
|
||||
ITEM_MODEL_SETUP_INTERNAL_MODULE_CHANNELS,
|
||||
ITEM_MODEL_SETUP_INTERNAL_MODULE_RACING_MODE,
|
||||
ITEM_MODEL_SETUP_INTERNAL_MODULE_NOT_ACCESS_RXNUM_BIND_RANGE,
|
||||
ITEM_MODEL_SETUP_INTERNAL_MODULE_PXX2_MODEL_NUM,
|
||||
ITEM_MODEL_SETUP_INTERNAL_MODULE_OPTIONS,
|
||||
|
@ -577,6 +578,7 @@ void onModelAntennaSwitchConfirm(const char * result)
|
|||
MODULE_TYPE_ROWS(INTERNAL_MODULE), /* ITEM_MODEL_SETUP_INTERNAL_MODULE_TYPE*/ \
|
||||
MULTIMODULE_STATUS_ROWS(INTERNAL_MODULE) /* ITEM_MODEL_SETUP_INTERNAL_MODULE_STATUS, ITEM_MODEL_SETUP_INTERNAL_MODULE_SYNCSTATUS */ \
|
||||
MODULE_CHANNELS_ROWS(INTERNAL_MODULE), /* ITEM_MODEL_SETUP_INTERNAL_MODULE_CHANNELS*/ \
|
||||
IF_ALLOW_RACING_MODE(INTERNAL_MODULE), /* ITEM_MODEL_SETUP_INTERNAL_MODULE_RACING_MODE */ \
|
||||
IF_NOT_ACCESS_MODULE_RF(INTERNAL_MODULE, MODULE_BIND_ROWS(INTERNAL_MODULE)), /* *ITEM_MODEL_SETUP_INTERNAL_MODULE_NOT_ACCESS_RXNUM_BIND_RANGE */\
|
||||
IF_ACCESS_MODULE_RF(INTERNAL_MODULE, 0), /* ITEM_MODEL_SETUP_INTERNAL_MODULE_PXX2_MODEL_NUM*/ \
|
||||
MODULE_OPTION_ROW(INTERNAL_MODULE), /* ITEM_MODEL_SETUP_INTERNAL_MODULE_OPTIONS */ \
|
||||
|
@ -1247,6 +1249,17 @@ bool menuModelSetup(event_t event)
|
|||
}
|
||||
break;
|
||||
}
|
||||
|
||||
#if defined(HARDWARE_INTERNAL_MODULE)
|
||||
case ITEM_MODEL_SETUP_INTERNAL_MODULE_RACING_MODE:
|
||||
{
|
||||
ModuleData & moduleData = g_model.moduleData[moduleIdx];
|
||||
lcdDrawText(MENUS_MARGIN_LEFT + INDENT_WIDTH, y, STR_RACING_MODE);
|
||||
moduleData.pxx2.racingMode = editCheckBox(moduleData.pxx2.racingMode, MODEL_SETUP_2ND_COLUMN, y, attr, event);
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
|
||||
case ITEM_MODEL_SETUP_TRAINER_LABEL:
|
||||
lcdDrawText(MENUS_MARGIN_LEFT, y, STR_TRAINER);
|
||||
break;
|
||||
|
@ -1653,7 +1666,6 @@ bool menuModelSetup(event_t event)
|
|||
if (event == EVT_KEY_LONG(KEY_ENTER)) {
|
||||
killEvents(event);
|
||||
setCustomFailsafe(moduleIdx);
|
||||
storageDirty(EE_MODEL);
|
||||
AUDIO_WARNING1();
|
||||
SEND_FAILSAFE_NOW(moduleIdx);
|
||||
}
|
||||
|
|
|
@ -184,6 +184,34 @@ inline uint8_t MODULE_CHANNELS_ROWS(int moduleIdx)
|
|||
}
|
||||
}
|
||||
|
||||
#if defined(PXX2)
|
||||
inline bool isRacingModeAllowed()
|
||||
{
|
||||
return isModulePXX2(INTERNAL_MODULE) && g_model.moduleData[INTERNAL_MODULE].getChannelsCount() == 8;
|
||||
}
|
||||
|
||||
inline bool isRacingModeEnabled()
|
||||
{
|
||||
return isRacingModeAllowed() && g_model.moduleData[INTERNAL_MODULE].pxx2.racingMode;
|
||||
}
|
||||
|
||||
inline uint8_t IF_ALLOW_RACING_MODE(int moduleIdx)
|
||||
{
|
||||
if (!IS_MODULE_ENABLED(moduleIdx)) {
|
||||
return HIDDEN_ROW;
|
||||
}
|
||||
else if (isRacingModeAllowed()) {
|
||||
return 0;
|
||||
}
|
||||
return HIDDEN_ROW;
|
||||
}
|
||||
#else
|
||||
inline uint8_t IF_ALLOW_RACING_MODE(int)
|
||||
{
|
||||
return HIDDEN_ROW;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(MULTIMODULE)
|
||||
inline uint8_t MULTI_DISABLE_CHAN_MAP_ROW(uint8_t moduleIdx)
|
||||
{
|
||||
|
|
|
@ -135,7 +135,7 @@ static int luaModelGetModule(lua_State *L)
|
|||
lua_pushtableinteger(L, "subType", module.subType);
|
||||
lua_pushtableinteger(L, "modelId", g_model.header.modelId[idx]);
|
||||
lua_pushtableinteger(L, "firstChannel", module.channelsStart);
|
||||
lua_pushtableinteger(L, "channelsCount", module.channelsCount + 8);
|
||||
lua_pushtableinteger(L, "channelsCount", module.getChannelsCount());
|
||||
lua_pushtableinteger(L, "Type", module.type);
|
||||
#if defined(MULTIMODULE)
|
||||
if (module.type == MODULE_TYPE_MULTIMODULE) {
|
||||
|
|
|
@ -873,6 +873,7 @@ enum FunctionsActive {
|
|||
FUNCTION_BACKGND_MUSIC,
|
||||
FUNCTION_BACKGND_MUSIC_PAUSE,
|
||||
FUNCTION_BACKLIGHT,
|
||||
FUNCTION_RACING_MODE,
|
||||
};
|
||||
|
||||
#define VARIO_FREQUENCY_ZERO 700/*Hz*/
|
||||
|
|
|
@ -547,7 +547,7 @@ bool setupPulsesInternalModule(uint8_t protocol)
|
|||
else {
|
||||
#if defined(INTMODULE_HEARTBEAT)
|
||||
mixerSchedulerResetTimer();
|
||||
mixerSchedulerSetPeriod(INTERNAL_MODULE, PXX2_PERIOD + 1000 /* backup */);
|
||||
mixerSchedulerSetPeriod(INTERNAL_MODULE, PXX2_PERIOD + 2000 /* backup */);
|
||||
#else
|
||||
mixerSchedulerSetPeriod(INTERNAL_MODULE, PXX2_PERIOD);
|
||||
#endif
|
||||
|
@ -641,10 +641,11 @@ void setCustomFailsafe(uint8_t moduleIndex)
|
|||
g_model.failsafeChannels[ch] = channelOutputs[ch];
|
||||
}
|
||||
}
|
||||
storageDirty(EE_MODEL);
|
||||
}
|
||||
}
|
||||
|
||||
int32_t getChannelValue(uint8_t channel) {
|
||||
int32_t getChannelValue(uint8_t channel)
|
||||
{
|
||||
return channelOutputs[channel] + 2*PPM_CH_CENTER(channel) - 2*PPM_CENTER;
|
||||
}
|
||||
|
||||
|
|
|
@ -47,14 +47,20 @@ void Pxx2Pulses::addFlag1(uint8_t module)
|
|||
else {
|
||||
subType = g_model.moduleData[module].subType;
|
||||
}
|
||||
Pxx2Transport::addByte(subType << 4);
|
||||
|
||||
uint8_t flag1 = subType << 4u;
|
||||
if (isRacingModeEnabled() && isFunctionActive(FUNCTION_RACING_MODE)) {
|
||||
flag1 |= PXX2_CHANNELS_FLAG1_RACING_MODE;
|
||||
}
|
||||
|
||||
Pxx2Transport::addByte(flag1);
|
||||
}
|
||||
|
||||
void Pxx2Pulses::addPulsesValues(uint16_t low, uint16_t high)
|
||||
{
|
||||
Pxx2Transport::addByte(low); // Low byte of channel
|
||||
Pxx2Transport::addByte(((low >> 8) & 0x0F) | (high << 4)); // 4 bits each from 2 channels
|
||||
Pxx2Transport::addByte(high >> 4); // High byte of channel
|
||||
Pxx2Transport::addByte(((low >> 8u) & 0x0Fu) | (high << 4u)); // 4 bits each from 2 channels
|
||||
Pxx2Transport::addByte(high >> 4u); // High byte of channel
|
||||
}
|
||||
|
||||
void Pxx2Pulses::addChannels(uint8_t module)
|
||||
|
|
|
@ -46,6 +46,7 @@
|
|||
|
||||
#define PXX2_CHANNELS_FLAG0_FAILSAFE (1 << 6)
|
||||
#define PXX2_CHANNELS_FLAG0_RANGECHECK (1 << 7)
|
||||
#define PXX2_CHANNELS_FLAG1_RACING_MODE (1 << 3)
|
||||
|
||||
#define PXX2_RX_SETTINGS_FLAG0_WRITE (1 << 6)
|
||||
|
||||
|
@ -268,6 +269,7 @@ enum ReceiverCapabilities {
|
|||
RECEIVER_CAPABILITY_TELEMETRY_25MW,
|
||||
RECEIVER_CAPABILITY_ENABLE_PWM_CH5_CH6,
|
||||
RECEIVER_CAPABILITY_FPORT2,
|
||||
RECEIVER_CAPABILITY_RACING_MODE,
|
||||
RECEIVER_CAPABILITY_COUNT
|
||||
};
|
||||
|
||||
|
|
|
@ -834,3 +834,4 @@ const char STR_ABOUT_PARENTS_4[] = TR_ABOUT_PARENTS_4;
|
|||
|
||||
const char STR_AUTH_FAILURE[] = TR_AUTH_FAILURE;
|
||||
const char STR_PROTOCOL[] = TR_PROTOCOL;
|
||||
const char STR_RACING_MODE[] = TR_RACING_MODE;
|
||||
|
|
|
@ -969,6 +969,7 @@ extern const char STR_ABOUT_PARENTS_4[];
|
|||
|
||||
extern const char STR_AUTH_FAILURE[];
|
||||
extern const char STR_PROTOCOL[];
|
||||
extern const char STR_RACING_MODE[];
|
||||
|
||||
#define CHR_HOUR TR_CHR_HOUR
|
||||
#define CHR_INPUT TR_CHR_INPUT
|
||||
|
|
|
@ -231,9 +231,10 @@
|
|||
#endif
|
||||
|
||||
#define TR_SF_SCREENSHOT "Snímek LCD\0"
|
||||
#define TR_SF_RACING_MODE "RacingMode\0"
|
||||
#define TR_SF_RESERVE "[rezerva]\0 "
|
||||
|
||||
#define TR_VFSWFUNC TR_SF_SAFETY "Trenér \0 ""Insta-Trim\0""Reset\0 ""Změna \0 " TR_ADJUST_GVAR "Hlasitost\0 " "SetFailsafe" "RangeCheck\0" "ModuleBind\0" TR_SOUND TR_PLAY_TRACK TR_PLAY_VALUE TR_SF_RESERVE TR_SF_PLAY_SCRIPT TR_SF_RESERVE TR_SF_BG_MUSIC TR_VVARIO TR_HAPTIC TR_SDCLOGS "Podsvětlení" TR_SF_SCREENSHOT TR_SF_TEST
|
||||
#define TR_VFSWFUNC TR_SF_SAFETY "Trenér \0 ""Insta-Trim\0""Reset\0 ""Změna \0 " TR_ADJUST_GVAR "Hlasitost\0 " "SetFailsafe" "RangeCheck\0" "ModuleBind\0" TR_SOUND TR_PLAY_TRACK TR_PLAY_VALUE TR_SF_RESERVE TR_SF_PLAY_SCRIPT TR_SF_RESERVE TR_SF_BG_MUSIC TR_VVARIO TR_HAPTIC TR_SDCLOGS "Podsvětlení" TR_SF_SCREENSHOT TR_SF_RACING_MODE TR_SF_TEST
|
||||
|
||||
#define LEN_VFSWRESET TR("\004", "\012")
|
||||
|
||||
|
@ -1225,6 +1226,7 @@
|
|||
#define TR_JITTER_FILTER "ADC Filtr"
|
||||
#define TR_RTC_CHECK TR("Check RTC", "Check RTC voltage")
|
||||
#define TR_AUTH_FAILURE "Auth-failure"
|
||||
#define TR_RACING_MODE "Racing mode"
|
||||
|
||||
#define ZSTR_VFR "VFR"
|
||||
#define ZSTR_RSSI "RSSI"
|
||||
|
|
|
@ -234,9 +234,10 @@
|
|||
#endif
|
||||
|
||||
#define TR_SF_SCREENSHOT "Screenshot"
|
||||
#define TR_SF_RACING_MODE "RacingMode"
|
||||
#define TR_SF_RESERVE "[Reserve]\0"
|
||||
|
||||
#define TR_VFSWFUNC TR_SF_SAFETY "Lehrer \0 ""Inst. Trim""Rücksetz.\0""Setze \0 " TR_ADJUST_GVAR "Lautstr.\0 " "SetFailsfe" "RangeCheck" "ModuleBind" TR_SOUND TR_PLAY_TRACK TR_PLAY_VALUE TR_SF_RESERVE TR_SF_PLAY_SCRIPT TR_SF_RESERVE TR_SF_BG_MUSIC TR_VVARIO TR_HAPTIC TR_SDCLOGS "LCD Licht\0" TR_SF_SCREENSHOT TR_SF_TEST
|
||||
#define TR_VFSWFUNC TR_SF_SAFETY "Lehrer \0 ""Inst. Trim""Rücksetz.\0""Setze \0 " TR_ADJUST_GVAR "Lautstr.\0 " "SetFailsfe" "RangeCheck" "ModuleBind" TR_SOUND TR_PLAY_TRACK TR_PLAY_VALUE TR_SF_RESERVE TR_SF_PLAY_SCRIPT TR_SF_RESERVE TR_SF_BG_MUSIC TR_VVARIO TR_HAPTIC TR_SDCLOGS "LCD Licht\0" TR_SF_SCREENSHOT TR_SF_RACING_MODE TR_SF_TEST
|
||||
|
||||
#define LEN_VFSWRESET TR("\004", "\011")
|
||||
|
||||
|
@ -1231,6 +1232,7 @@
|
|||
#define TR_JITTER_FILTER "ADC Filter"
|
||||
#define TR_RTC_CHECK TR("Check RTC", "Check RTC voltage")
|
||||
#define TR_AUTH_FAILURE "Auth-failure"
|
||||
#define TR_RACING_MODE "Racing mode"
|
||||
|
||||
// ----------------------------------------------------------------
|
||||
#define ZSTR_VFR "VFR"
|
||||
|
|
|
@ -234,9 +234,10 @@
|
|||
#endif
|
||||
|
||||
#define TR_SF_SCREENSHOT "Screenshot"
|
||||
#define TR_SF_RACING_MODE "RacingMode"
|
||||
#define TR_SF_RESERVE "[reserve]\0"
|
||||
|
||||
#define TR_VFSWFUNC TR_SF_SAFETY "Trainer\0 ""Inst. Trim""Reset\0 ""Set \0 " TR_ADJUST_GVAR "Volume\0 " "SetFailsfe" "RangeCheck" "ModuleBind" TR_SOUND TR_PLAY_TRACK TR_PLAY_VALUE TR_SF_RESERVE TR_SF_PLAY_SCRIPT TR_SF_RESERVE TR_SF_BG_MUSIC TR_VVARIO TR_HAPTIC TR_SDCLOGS "Backlight\0" TR_SF_SCREENSHOT TR_SF_TEST
|
||||
#define TR_VFSWFUNC TR_SF_SAFETY "Trainer\0 ""Inst. Trim""Reset\0 ""Set \0 " TR_ADJUST_GVAR "Volume\0 " "SetFailsfe" "RangeCheck" "ModuleBind" TR_SOUND TR_PLAY_TRACK TR_PLAY_VALUE TR_SF_RESERVE TR_SF_PLAY_SCRIPT TR_SF_RESERVE TR_SF_BG_MUSIC TR_VVARIO TR_HAPTIC TR_SDCLOGS "Backlight\0" TR_SF_SCREENSHOT TR_SF_RACING_MODE TR_SF_TEST
|
||||
|
||||
#define LEN_VFSWRESET TR("\004", "\011")
|
||||
|
||||
|
@ -1229,6 +1230,7 @@
|
|||
#define TR_JITTER_FILTER "ADC filter"
|
||||
#define TR_RTC_CHECK TR("Check RTC", "Check RTC voltage")
|
||||
#define TR_AUTH_FAILURE "Auth-failure"
|
||||
#define TR_RACING_MODE "Racing mode"
|
||||
|
||||
#define ZSTR_VFR "VFR"
|
||||
#define ZSTR_RSSI "RSSI"
|
||||
|
|
|
@ -231,10 +231,11 @@
|
|||
#define TR_SF_SAFETY "---\0 "
|
||||
#endif
|
||||
|
||||
#define TR_SF_SCREENSHOT "Captura"
|
||||
#define TR_SF_SCREENSHOT "Captura\0 "
|
||||
#define TR_SF_RACING_MODE "RacingMode"
|
||||
#define TR_SF_RESERVE "[reserv.]\0"
|
||||
|
||||
#define TR_VFSWFUNC TR_SF_SAFETY "Entrenador""Inst. Trim""Reset\0 ""Ajuste \0 " TR_ADJUST_GVAR "Volumen\0 " "Failsafe\0 " "CheckRango" "Enl.módulo" TR_SOUND TR_PLAY_TRACK TR_PLAY_VALUE TR_SF_RESERVE TR_SF_PLAY_SCRIPT TR_SF_RESERVE TR_SF_BG_MUSIC TR_VVARIO TR_HAPTIC TR_SDCLOGS "Luz Fondo\0" TR_SF_SCREENSHOT TR_SF_TEST
|
||||
#define TR_VFSWFUNC TR_SF_SAFETY "Entrenador""Inst. Trim""Reset\0 ""Ajuste \0 " TR_ADJUST_GVAR "Volumen\0 " "Failsafe\0 " "CheckRango" "Enl.módulo" TR_SOUND TR_PLAY_TRACK TR_PLAY_VALUE TR_SF_RESERVE TR_SF_PLAY_SCRIPT TR_SF_RESERVE TR_SF_BG_MUSIC TR_VVARIO TR_HAPTIC TR_SDCLOGS "Luz Fondo\0" TR_SF_SCREENSHOT TR_SF_RACING_MODE TR_SF_TEST
|
||||
|
||||
#define LEN_VFSWRESET TR("\004", "\012")
|
||||
#define TR_FSW_RESET_TELEM TR("Telm", "Telemetría")
|
||||
|
@ -1228,6 +1229,7 @@
|
|||
#define TR_JITTER_FILTER "Filtro ADC"
|
||||
#define TR_RTC_CHECK TR("Check RTC", "Check RTC voltaje")
|
||||
#define TR_AUTH_FAILURE "Fallo " LCDW_128_480_LINEBREAK "autentificación"
|
||||
#define TR_RACING_MODE "Racing mode"
|
||||
|
||||
#define ZSTR_VFR "VFR"
|
||||
#define ZSTR_RSSI "RSSI"
|
||||
|
|
|
@ -235,9 +235,10 @@
|
|||
#endif
|
||||
|
||||
#define TR_SF_SCREENSHOT "Screenshot"
|
||||
#define TR_SF_RACING_MODE "RacingMode"
|
||||
#define TR_SF_RESERVE "[reserve]\0"
|
||||
|
||||
#define TR_VFSWFUNC TR_SF_SAFETY "Trainer\0 ""Inst. Trim""Reset\0 ""Set \0 " TR_ADJUST_GVAR "Volume\0 " "SetFailsfe" "RangeCheck" "ModuleBind" TR_SOUND TR_PLAY_TRACK TR_PLAY_VALUE TR_SF_RESERVE TR_SF_PLAY_SCRIPT TR_SF_RESERVE TR_SF_BG_MUSIC TR_VVARIO TR_HAPTIC TR_SDCLOGS "Backlight\0" TR_SF_SCREENSHOT TR_SF_TEST
|
||||
#define TR_VFSWFUNC TR_SF_SAFETY "Trainer\0 ""Inst. Trim""Reset\0 ""Set \0 " TR_ADJUST_GVAR "Volume\0 " "SetFailsfe" "RangeCheck" "ModuleBind" TR_SOUND TR_PLAY_TRACK TR_PLAY_VALUE TR_SF_RESERVE TR_SF_PLAY_SCRIPT TR_SF_RESERVE TR_SF_BG_MUSIC TR_VVARIO TR_HAPTIC TR_SDCLOGS "Backlight\0" TR_SF_SCREENSHOT TR_SF_RACING_MODE TR_SF_TEST
|
||||
|
||||
#define LEN_VFSWRESET TR("\004", "\011")
|
||||
|
||||
|
@ -1237,6 +1238,7 @@
|
|||
#define TR_JITTER_FILTER "ADC Filter"
|
||||
#define TR_RTC_CHECK TR("Check RTC", "Check RTC voltage")
|
||||
#define TR_AUTH_FAILURE "Auth-failure"
|
||||
#define TR_RACING_MODE "Racing mode"
|
||||
|
||||
#define ZSTR_VFR "VFR"
|
||||
#define ZSTR_RSSI "RSSI"
|
||||
|
|
|
@ -237,9 +237,10 @@
|
|||
#endif
|
||||
|
||||
#define TR_SF_SCREENSHOT "Photo Ecran\0 "
|
||||
#define TR_SF_RACING_MODE "Racing Mode\0 "
|
||||
#define TR_SF_RESERVE "[reserve]\0 "
|
||||
|
||||
#define TR_VFSWFUNC TR_SF_SAFETY "Ecolage\0 ""Trim instant.""Remise à 0\0 ""Déf.\0 " TR_ADJUST_GVAR "Volume\0 " "DéfFailsafe\0 " "Test Port.\0 " "Bind\0 " TR_SOUND TR_PLAY_TRACK TR_PLAY_VALUE TR_SF_RESERVE TR_SF_PLAY_SCRIPT TR_SF_RESERVE TR_SF_BG_MUSIC TR_VVARIO TR_HAPTIC TR_SDCLOGS "Rétroécl.\0 " TR_SF_SCREENSHOT TR_SF_TEST
|
||||
#define TR_VFSWFUNC TR_SF_SAFETY "Ecolage\0 ""Trim instant.""Remise à 0\0 ""Déf.\0 " TR_ADJUST_GVAR "Volume\0 " "DéfFailsafe\0 " "Test Port.\0 " "Bind\0 " TR_SOUND TR_PLAY_TRACK TR_PLAY_VALUE TR_SF_RESERVE TR_SF_PLAY_SCRIPT TR_SF_RESERVE TR_SF_BG_MUSIC TR_VVARIO TR_HAPTIC TR_SDCLOGS "Rétroécl.\0 " TR_SF_SCREENSHOT TR_SF_RACING_MODE TR_SF_TEST
|
||||
|
||||
#define LEN_VFSWRESET TR("\004", "\012")
|
||||
|
||||
|
@ -1253,6 +1254,7 @@
|
|||
#define TR_JITTER_FILTER "Filtre ADC"
|
||||
#define TR_RTC_CHECK TR("Vérif. RTC", "Vérif. pile RTC")
|
||||
#define TR_AUTH_FAILURE "Auth-failure"
|
||||
#define TR_RACING_MODE "Racing mode"
|
||||
|
||||
#define ZSTR_VFR "VFR"
|
||||
#define ZSTR_RSSI "RSSI"
|
||||
|
|
|
@ -238,9 +238,10 @@
|
|||
#endif
|
||||
|
||||
#define TR_SF_SCREENSHOT "Screenshot\0 "
|
||||
#define TR_SF_RACING_MODE "Racing Mode\0 "
|
||||
#define TR_SF_RESERVE "[riserva] \0"
|
||||
|
||||
#define TR_VFSWFUNC TR_SF_SAFETY "Maestro \0 ""Trim Instant.""Azzera\0 ""Set \0 " TR_ADJUST_GVAR "Volume\0 " "SetFailsafe\0 " "RangeCheck\0 " "ModuleBind\0 " TR_SOUND TR_PLAY_TRACK TR_PLAY_VALUE TR_SF_RESERVE TR_SF_PLAY_SCRIPT TR_SF_RESERVE TR_SF_BG_MUSIC TR_VVARIO TR_HAPTIC TR_SDCLOGS "Retroillum.\0 " TR_SF_SCREENSHOT TR_SF_TEST
|
||||
#define TR_VFSWFUNC TR_SF_SAFETY "Maestro \0 ""Trim Instant.""Azzera\0 ""Set \0 " TR_ADJUST_GVAR "Volume\0 " "SetFailsafe\0 " "RangeCheck\0 " "ModuleBind\0 " TR_SOUND TR_PLAY_TRACK TR_PLAY_VALUE TR_SF_RESERVE TR_SF_PLAY_SCRIPT TR_SF_RESERVE TR_SF_BG_MUSIC TR_VVARIO TR_HAPTIC TR_SDCLOGS "Retroillum.\0 " TR_SF_SCREENSHOT TR_SF_RACING_MODE TR_SF_TEST
|
||||
|
||||
#define LEN_VFSWRESET TR("\004", "\011")
|
||||
|
||||
|
@ -1246,6 +1247,7 @@
|
|||
#define TR_JITTER_FILTER "Filtro ADC"
|
||||
#define TR_RTC_CHECK TR("Controllo RTC", "Controllo volt. RTC")
|
||||
#define TR_AUTH_FAILURE "Auth-failure"
|
||||
#define TR_RACING_MODE "Racing mode"
|
||||
|
||||
#define ZSTR_VFR "VFR"
|
||||
#define ZSTR_RSSI "RSSI"
|
||||
|
|
|
@ -234,10 +234,11 @@
|
|||
#define TR_SF_SAFETY "---\0 "
|
||||
#endif
|
||||
|
||||
#define TR_SF_SCREENSHOT "Schermafdruk"
|
||||
#define TR_SF_SCREENSHOT "Schermafdr"
|
||||
#define TR_SF_RACING_MODE "RacingMode"
|
||||
#define TR_SF_RESERVE "[reserve]\0"
|
||||
|
||||
#define TR_VFSWFUNC TR_SF_SAFETY "Trainer\0 ""Inst. Trim""Reset\0 ""Set \0 " TR_ADJUST_GVAR "Volume\0 " "SetFailsfe" "RangeCheck" "ModuleBind" TR_SOUND TR_PLAY_TRACK TR_PLAY_VALUE TR_SF_RESERVE TR_SF_PLAY_SCRIPT TR_SF_RESERVE TR_SF_BG_MUSIC TR_VVARIO TR_HAPTIC TR_SDCLOGS "Backlight\0" TR_SF_SCREENSHOT TR_SF_TEST
|
||||
#define TR_VFSWFUNC TR_SF_SAFETY "Trainer\0 ""Inst. Trim""Reset\0 ""Set \0 " TR_ADJUST_GVAR "Volume\0 " "SetFailsfe" "RangeCheck" "ModuleBind" TR_SOUND TR_PLAY_TRACK TR_PLAY_VALUE TR_SF_RESERVE TR_SF_PLAY_SCRIPT TR_SF_RESERVE TR_SF_BG_MUSIC TR_VVARIO TR_HAPTIC TR_SDCLOGS "Backlight\0" TR_SF_SCREENSHOT TR_SF_RACING_MODE TR_SF_TEST
|
||||
|
||||
#define LEN_VFSWRESET TR("\004", "\012")
|
||||
|
||||
|
@ -1238,6 +1239,7 @@
|
|||
#define TR_JITTER_FILTER "ADC Filter"
|
||||
#define TR_RTC_CHECK TR("Check RTC", "Check RTC voltage")
|
||||
#define TR_AUTH_FAILURE "Auth-failure"
|
||||
#define TR_RACING_MODE "Racing mode"
|
||||
|
||||
#define ZSTR_VFR "VFR"
|
||||
#define ZSTR_RSSI "RSSI"
|
||||
|
|
|
@ -235,9 +235,10 @@
|
|||
#endif
|
||||
|
||||
#define TR_SF_SCREENSHOT "Zrzut Ekra"
|
||||
#define TR_SF_RACING_MODE "RacingMode"
|
||||
#define TR_SF_RESERVE "[rezerwa]\0"
|
||||
|
||||
#define TR_VFSWFUNC TR_SF_SAFETY "Trener \0 ""Inst-Trim ""Resetuj\0 ""Ustaw\0 " TR_ADJUST_GVAR "Głośność\0 " "SetFailsfe" "RangeCheck" "ModuleBind" TR_SOUND TR_PLAY_TRACK TR_PLAY_VALUE TR_SF_RESERVE TR_SF_PLAY_SCRIPT TR_SF_RESERVE TR_SF_BG_MUSIC TR_VVARIO TR_HAPTIC TR_SDCLOGS "Podświetl\0" TR_SF_SCREENSHOT TR_SF_TEST
|
||||
#define TR_VFSWFUNC TR_SF_SAFETY "Trener \0 ""Inst-Trim ""Resetuj\0 ""Ustaw\0 " TR_ADJUST_GVAR "Głośność\0 " "SetFailsfe" "RangeCheck" "ModuleBind" TR_SOUND TR_PLAY_TRACK TR_PLAY_VALUE TR_SF_RESERVE TR_SF_PLAY_SCRIPT TR_SF_RESERVE TR_SF_BG_MUSIC TR_VVARIO TR_HAPTIC TR_SDCLOGS "Podświetl\0" TR_SF_SCREENSHOT TR_SF_RACING_MODE TR_SF_TEST
|
||||
|
||||
#define LEN_VFSWRESET TR("\004", "\011") /*9 decimal*/
|
||||
|
||||
|
@ -1245,6 +1246,7 @@
|
|||
#define TR_JITTER_FILTER "ADC Filter"
|
||||
#define TR_RTC_CHECK TR("Check RTC", "Check RTC voltage")
|
||||
#define TR_AUTH_FAILURE "Auth-failure"
|
||||
#define TR_RACING_MODE "Racing mode"
|
||||
|
||||
#define ZSTR_VFR "VFR"
|
||||
#define ZSTR_RSSI "RSSI"
|
||||
|
|
|
@ -231,9 +231,10 @@
|
|||
#endif
|
||||
|
||||
#define TR_SF_SCREENSHOT "Screenshot"
|
||||
#define TR_SF_RACING_MODE "RacingMode"
|
||||
#define TR_SF_RESERVE "[reserve]\0 "
|
||||
|
||||
#define TR_VFSWFUNC TR_SF_SAFETY "Aprendiz\0 ""Ajuste Rapido""Reset\0 ""Set \0 " TR_ADJUST_GVAR "Volume\0 " "SetFailsafe\0 " "RangeCheck\0 " "ModuleBind\0 " TR_SOUND TR_PLAY_TRACK TR_PLAY_VALUE TR_SF_RESERVE TR_SF_PLAY_SCRIPT TR_SF_RESERVE TR_SF_BG_MUSIC TR_VVARIO TR_HAPTIC TR_SDCLOGS "Backlight\0 " TR_SF_SCREENSHOT TR_SF_TEST
|
||||
#define TR_VFSWFUNC TR_SF_SAFETY "Aprendiz\0 ""Ajuste Rapido""Reset\0 ""Set \0 " TR_ADJUST_GVAR "Volume\0 " "SetFailsafe\0 " "RangeCheck\0 " "ModuleBind\0 " TR_SOUND TR_PLAY_TRACK TR_PLAY_VALUE TR_SF_RESERVE TR_SF_PLAY_SCRIPT TR_SF_RESERVE TR_SF_BG_MUSIC TR_VVARIO TR_HAPTIC TR_SDCLOGS "Backlight\0 " TR_SF_SCREENSHOT TR_SF_RACING_MODE TR_SF_TEST
|
||||
|
||||
#define LEN_VFSWRESET TR("\004", "\011")
|
||||
|
||||
|
@ -1245,7 +1246,7 @@
|
|||
#define TR_JITTER_FILTER "ADC Filter"
|
||||
#define TR_RTC_CHECK TR("Check RTC", "Check RTC voltage")
|
||||
#define TR_AUTH_FAILURE "Auth-failure"
|
||||
|
||||
#define TR_RACING_MODE "Racing mode"
|
||||
#define ZSTR_VFR "VFR"
|
||||
#define ZSTR_RSSI "RSSI"
|
||||
#define ZSTR_R9PW "R9PW"
|
||||
|
|
|
@ -231,10 +231,11 @@
|
|||
#define TR_SF_SAFETY "---\0 "
|
||||
#endif
|
||||
|
||||
#define TR_SF_SCREENSHOT "Skärmbild"
|
||||
#define TR_SF_SCREENSHOT "Skärmbild\0"
|
||||
#define TR_SF_RACING_MODE "RacingMode"
|
||||
#define TR_SF_RESERVE "[reserve]\0"
|
||||
|
||||
#define TR_VFSWFUNC TR_SF_SAFETY "Trainer\0 ""Sätt Trim\0""Nollställ\0""Sätt\0 " TR_ADJUST_GVAR "Volym\0 " "SetFailsfe" "RangeCheck" "ModuleBind" TR_SOUND TR_PLAY_TRACK TR_PLAY_VALUE TR_SF_RESERVE TR_SF_PLAY_SCRIPT TR_SF_RESERVE TR_SF_BG_MUSIC TR_VVARIO TR_HAPTIC TR_SDCLOGS "Belysning\0" TR_SF_SCREENSHOT TR_SF_TEST
|
||||
#define TR_VFSWFUNC TR_SF_SAFETY "Trainer\0 ""Sätt Trim\0""Nollställ\0""Sätt\0 " TR_ADJUST_GVAR "Volym\0 " "SetFailsfe" "RangeCheck" "ModuleBind" TR_SOUND TR_PLAY_TRACK TR_PLAY_VALUE TR_SF_RESERVE TR_SF_PLAY_SCRIPT TR_SF_RESERVE TR_SF_BG_MUSIC TR_VVARIO TR_HAPTIC TR_SDCLOGS "Belysning\0" TR_SF_SCREENSHOT TR_SF_RACING_MODE TR_SF_TEST
|
||||
|
||||
#define LEN_VFSWRESET TR("\004", "\011")
|
||||
|
||||
|
@ -1245,6 +1246,7 @@
|
|||
#define TR_JITTER_FILTER "ADC Filter"
|
||||
#define TR_RTC_CHECK TR("Check RTC", "Check RTC voltage")
|
||||
#define TR_AUTH_FAILURE "Auth-failure"
|
||||
#define TR_RACING_MODE "Racing mode"
|
||||
|
||||
#define ZSTR_VFR "VFR"
|
||||
#define ZSTR_RSSI "RSSI"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue