feat: Add facilty for custom throttle warning position (#1395)

* replace magic number for throttle idle with correct define

* settings for custom throttle warning position

* settings fixed not to break byte-aligment of bit-fields

* evaluate custom throttle warning position

* add requested throttle value to warning text

* comment about field alignment in ModelData struct

* Menu for editing custom throttle warning for 128x64 radios
Tested on RM TX12

* Improoved menu display

* move displayed strings to translation

* translation template added for each language

* support for 212x64 B&W radios

* menu for colorlcd
not tested

* corrected translation entry for TW

* corrected handling of padding bits in ModelData structure

* Companion support for custom throttle warning position

* Rebase catchup

Co-authored-by: Peter Feerick <peter.feerick@gmail.com>
This commit is contained in:
piotrva
2022-01-30 15:04:40 +10:00
committed by GitHub
co-authored by Peter Feerick
parent a052ba63c2
commit bf931a5097
42 changed files with 249 additions and 40 deletions
@@ -736,6 +736,8 @@ Node convert<ModelData>::encode(const ModelData& rhs)
node["trimInc"] = rhs.trimInc;
node["displayTrims"] = rhs.trimsDisplay;
node["disableThrottleWarning"] = (int)rhs.disableThrottleWarning;
node["enableCustomThrottleWarning"] = (int)rhs.enableCustomThrottleWarning;
node["customThrottleWarningPosition"] = (int)rhs.customThrottleWarningPosition;
node["beepANACenter"] = rhs.beepANACenter;
node["extendedLimits"] = (int)rhs.extendedLimits;
node["extendedTrims"] = (int)rhs.extendedTrims;
@@ -961,6 +963,8 @@ bool convert<ModelData>::decode(const Node& node, ModelData& rhs)
node["trimInc"] >> rhs.trimInc;
node["displayTrims"] >> rhs.trimsDisplay;
node["disableThrottleWarning"] >> rhs.disableThrottleWarning;
node["enableCustomThrottleWarning"] >> rhs.enableCustomThrottleWarning;
node["customThrottleWarningPosition"] >> rhs.customThrottleWarningPosition;
node["beepANACenter"] >> rhs.beepANACenter;
node["extendedLimits"] >> rhs.extendedLimits;
node["extendedTrims"] >> rhs.extendedTrims;
+2
View File
@@ -121,6 +121,8 @@ class ModelData {
int trimInc; // Trim Increments
unsigned int trimsDisplay;
bool disableThrottleWarning;
bool enableCustomThrottleWarning;
int customThrottleWarningPosition;
unsigned int jitterFilter; // Added in EdgeTx 2.7 (#870)
unsigned int beepANACenter; // 1<<0->A1.. 1<<6->A7
+14
View File
@@ -1496,6 +1496,18 @@ void SetupPanel::on_throttleWarning_toggled(bool checked)
emit modified();
}
void SetupPanel::on_enableCustomThrottleWarning_toggled(bool checked)
{
model->enableCustomThrottleWarning = checked;
emit modified();
}
void SetupPanel::on_customThrottleWarningPosition_valueChanged(int value)
{
model->customThrottleWarningPosition = value;
emit modified();
}
void SetupPanel::on_throttleReverse_toggled(bool checked)
{
model->throttleReversed = checked;
@@ -1589,6 +1601,8 @@ void SetupPanel::update()
ui->throttleSource->updateValue();
populateThrottleTrimSwitchCB();
ui->throttleWarning->setChecked(!model->disableThrottleWarning);
ui->enableCustomThrottleWarning->setChecked(model->enableCustomThrottleWarning);
ui->customThrottleWarningPosition->setValue(model->customThrottleWarningPosition);
ui->trimIncrement->setCurrentIndex(model->trimInc+2);
ui->throttleTrim->setChecked(model->thrTrim);
ui->extendedLimits->setChecked(model->extendedLimits);
+2
View File
@@ -179,6 +179,8 @@ class SetupPanel : public ModelPanel
void on_extendedLimits_toggled(bool checked);
void on_extendedTrims_toggled(bool checked);
void on_throttleWarning_toggled(bool checked);
void on_enableCustomThrottleWarning_toggled(bool checked);
void on_customThrottleWarningPosition_valueChanged(int value);
void on_throttleReverse_toggled(bool checked);
void on_displayText_toggled(bool checked);
void on_gfEnabled_toggled(bool checked);
+51 -9
View File
@@ -183,6 +183,22 @@
</property>
</widget>
</item>
<item alignment="Qt::AlignRight">
<widget class="QLabel" name="label_spacer">
<property name="font">
<font>
<weight>50</weight>
<bold>false</bold>
</font>
</property>
<property name="text">
<string></string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item alignment="Qt::AlignRight">
<widget class="QLabel" name="label_10">
<property name="font">
@@ -450,7 +466,7 @@
<item row="0" column="5">
<widget class="QComboBox" name="throttleTrimSwitch"/>
</item>
<item row="1" column="0">
<item row="2" column="0">
<widget class="QComboBox" name="trimIncrement">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
@@ -485,7 +501,7 @@
</item>
</widget>
</item>
<item row="2" column="0">
<item row="3" column="0">
<widget class="AutoComboBox" name="trimsDisplay">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
@@ -520,7 +536,33 @@
</property>
</widget>
</item>
<item row="1" column="2">
<widget class="QCheckBox" name="enableCustomThrottleWarning">
<property name="layoutDirection">
<enum>Qt::LeftToRight</enum>
</property>
<property name="text">
<string>Custom Throttle Warning</string>
</property>
</widget>
</item>
<item row="1" column="3">
<widget class="QSpinBox" name="customThrottleWarningPosition">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimum">
<number>-100</number>
</property>
<property name="maximum">
<number>100</number>
</property>
</widget>
</item>
<item row="2" column="3">
<widget class="QCheckBox" name="displayText">
<property name="layoutDirection">
<enum>Qt::LeftToRight</enum>
@@ -530,14 +572,14 @@
</property>
</widget>
</item>
<item row="2" column="1">
<item row="3" column="1">
<widget class="QCheckBox" name="gfEnabled">
<property name="text">
<string>Global Functions</string>
</property>
</widget>
</item>
<item row="2" column="4">
<item row="3" column="4">
<widget class="QLabel" name="label_jitterFilter">
<property name="font">
<font>
@@ -550,7 +592,7 @@
</property>
</widget>
</item>
<item row="2" column="5">
<item row="3" column="5">
<widget class="QComboBox" name="jitterFilter">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
@@ -576,7 +618,7 @@
</widget>
</item>
<item row="1" column="4">
<item row="2" column="4">
<widget class="QPushButton" name="editText">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
@@ -622,7 +664,7 @@ If this is checked the throttle will be reversed. Idle will be forward, trim wi
</property>
</widget>
</item>
<item row="1" column="2">
<item row="2" column="2">
<widget class="QCheckBox" name="extendedTrims">
<property name="layoutDirection">
<enum>Qt::LeftToRight</enum>
@@ -632,7 +674,7 @@ If this is checked the throttle will be reversed. Idle will be forward, trim wi
</property>
</widget>
</item>
<item row="1" column="1">
<item row="2" column="1">
<widget class="QCheckBox" name="extendedLimits">
<property name="layoutDirection">
<enum>Qt::LeftToRight</enum>
@@ -652,7 +694,7 @@ If this is checked the throttle will be reversed. Idle will be forward, trim wi
</property>
</widget>
</item>
<item row="1" column="6">
<item row="2" column="6">
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
+8 -8
View File
@@ -117,29 +117,29 @@ static inline void check_struct()
#if defined(PCBXLITES)
CHKSIZE(RadioData, 860);
CHKSIZE(ModelData, 6160);
CHKSIZE(ModelData, 6162);
#elif defined(PCBXLITE)
CHKSIZE(RadioData, 858);
CHKSIZE(ModelData, 6160);
CHKSIZE(ModelData, 6162);
#elif defined(RADIO_TPRO)
CHKSIZE(RadioData, 841);
CHKSIZE(ModelData, 6185);
CHKSIZE(ModelData, 6187);
#elif defined(PCBX7)
CHKSIZE(RadioData, 864);
CHKSIZE(ModelData, 6160);
CHKSIZE(ModelData, 6162);
#elif defined(PCBX9E)
CHKSIZE(RadioData, 954);
CHKSIZE(ModelData, 6612);
CHKSIZE(ModelData, 6614);
#elif defined(PCBX9D) || defined(PCBX9DP)
CHKSIZE(RadioData, 896);
CHKSIZE(ModelData, 6604);
CHKSIZE(ModelData, 6606);
#elif defined(PCBHORUS)
#if defined(PCBX10)
CHKSIZE(RadioData, 921);
CHKSIZE(ModelData, 11024);
CHKSIZE(ModelData, 11026);
#else
CHKSIZE(RadioData, 903);
CHKSIZE(ModelData, 11022);
CHKSIZE(ModelData, 11024);
#endif
#endif
+4 -2
View File
@@ -646,11 +646,13 @@ PACK(struct ModelData {
uint8_t ignoreSensorIds:1;
int8_t trimInc:3; // Trim Increments
uint8_t disableThrottleWarning:1;
uint8_t displayChecklist:1;
uint8_t displayChecklist:1;
uint8_t extendedLimits:1;
uint8_t extendedTrims:1;
uint8_t throttleReversed:1;
uint8_t enableCustomThrottleWarning:1;
uint8_t spare3:7 SKIP;
int8_t customThrottleWarningPosition;
BeepANACenter beepANACenter;
MixData mixData[MAX_MIXERS] NO_IDX;
LimitData limitData[MAX_OUTPUT_CHANNELS];
+18
View File
@@ -89,6 +89,8 @@ enum MenuModelSetupItems {
ITEM_MODEL_SETUP_PREFLIGHT_LABEL,
ITEM_MODEL_SETUP_CHECKLIST_DISPLAY,
ITEM_MODEL_SETUP_THROTTLE_WARNING,
ITEM_MODEL_SETUP_CUSTOM_THROTTLE_WARNING,
ITEM_MODEL_SETUP_CUSTOM_THROTTLE_WARNING_VALUE,
ITEM_MODEL_SETUP_SWITCHES_WARNING1,
#if defined(PCBTARANIS)
ITEM_MODEL_SETUP_SWITCHES_WARNING2,
@@ -426,6 +428,8 @@ void menuModelSetup(event_t event)
LABEL(PreflightCheck),
0, // Checklist
0, // Throttle warning
0, // Custom position for throttle warning enable
0, // Custom position for throttle warning value
WARN_ROWS
NUM_STICKS + NUM_POTS + NUM_SLIDERS - 1, // Center beeps
@@ -728,6 +732,20 @@ void menuModelSetup(event_t event)
case ITEM_MODEL_SETUP_THROTTLE_WARNING:
g_model.disableThrottleWarning = !editCheckBox(!g_model.disableThrottleWarning, MODEL_SETUP_2ND_COLUMN, y, STR_THROTTLE_WARNING, attr, event);
break;
case ITEM_MODEL_SETUP_CUSTOM_THROTTLE_WARNING:
g_model.enableCustomThrottleWarning = editCheckBox(g_model.enableCustomThrottleWarning, MODEL_SETUP_2ND_COLUMN, y, STR_CUSTOM_THROTTLE_WARNING, attr, event);
break;
case ITEM_MODEL_SETUP_CUSTOM_THROTTLE_WARNING_VALUE:
{
lcdDrawText(INDENT_WIDTH * 4, y, STR_CUSTOM_THROTTLE_WARNING_VAL);
lcdDrawNumber(MODEL_SETUP_2ND_COLUMN, y, g_model.customThrottleWarningPosition, attr | LEFT, 2);
if (attr) {
CHECK_INCDEC_MODELVAR(event, g_model.customThrottleWarningPosition, -100, 100);
}
}
break;
case ITEM_MODEL_SETUP_SWITCHES_WARNING2:
if (i==0) {
+18
View File
@@ -74,6 +74,8 @@ enum MenuModelSetupItems {
ITEM_MODEL_SETUP_PREFLIGHT_LABEL,
ITEM_MODEL_SETUP_CHECKLIST_DISPLAY,
ITEM_MODEL_SETUP_THROTTLE_WARNING,
ITEM_MODEL_SETUP_CUSTOM_THROTTLE_WARNING,
ITEM_MODEL_SETUP_CUSTOM_THROTTLE_WARNING_VALUE,
ITEM_MODEL_SETUP_SWITCHES_WARNING1,
#if defined(PCBX9E)
ITEM_MODEL_SETUP_SWITCHES_WARNING2,
@@ -377,6 +379,8 @@ void menuModelSetup(event_t event)
LABEL(PreflightCheck),
0, // Checklist
0, // Throttle warning
0, // Custom position for throttle warning enable
0, // Custom position for throttle warning value
SW_WARN_ROWS, // Switch warning
POT_WARN_ROWS, // Pot warning
@@ -644,6 +648,20 @@ void menuModelSetup(event_t event)
g_model.disableThrottleWarning = !editCheckBox(!g_model.disableThrottleWarning, MODEL_SETUP_2ND_COLUMN, y, STR_THROTTLE_WARNING, attr, event);
break;
case ITEM_MODEL_SETUP_CUSTOM_THROTTLE_WARNING:
g_model.enableCustomThrottleWarning = editCheckBox(g_model.enableCustomThrottleWarning, MODEL_SETUP_2ND_COLUMN, y, STR_CUSTOM_THROTTLE_WARNING, attr, event);
break;
case ITEM_MODEL_SETUP_CUSTOM_THROTTLE_WARNING_VALUE:
{
lcdDrawText(INDENT_WIDTH * 4, y, STR_CUSTOM_THROTTLE_WARNING_VAL);
lcdDrawNumber(MODEL_SETUP_2ND_COLUMN, y, g_model.customThrottleWarningPosition, attr | LEFT, 2);
if (attr) {
CHECK_INCDEC_MODELVAR(event, g_model.customThrottleWarningPosition, -100, 100);
}
}
break;
#if defined(PCBX9E)
case ITEM_MODEL_SETUP_SWITCHES_WARNING2:
case ITEM_MODEL_SETUP_SWITCHES_WARNING3:
+9
View File
@@ -1489,6 +1489,15 @@ void ModelSetupPage::build(FormWindow * window)
new CheckBox(window, grid.getFieldSlot(), GET_SET_INVERTED(g_model.disableThrottleWarning));
grid.nextLine();
// Custom Throttle warning
new StaticText(window, grid.getLabelSlot(true), STR_CUSTOM_THROTTLE_WARNING, 0, COLOR_THEME_PRIMARY1);
new CheckBox(window, grid.getFieldSlot(), GET_SET_DEFAULT(g_model.enableCustomThrottleWarning));
grid.nextLine();
// Custom Throttle warning value
new StaticText(window, grid.getLabelSlot(true), STR_CUSTOM_THROTTLE_WARNING_VAL, 0, COLOR_THEME_PRIMARY1);
new NumberEdit(window, grid.getFieldSlot(), -100, 100, GET_SET_DEFAULT(g_model.customThrottleWarningPosition));
grid.nextLine();
// Switches warning
new StaticText(window, grid.getLabelSlot(true), STR_SWITCHWARNING, 0, COLOR_THEME_PRIMARY1);
auto group = new FormGroup(window, grid.getFieldSlot(), FORM_BORDER_FOCUS_ONLY | PAINT_CHILDREN_FIRST);
+25 -5
View File
@@ -781,18 +781,32 @@ bool isThrottleWarningAlertNeeded()
if (g_model.thrTraceSrc && g_model.throttleReversed) { // TODO : proper review of THR source definition and handling
v = -v;
}
return v > THRCHK_DEADBAND - 1024;
if (g_model.enableCustomThrottleWarning) {
int16_t idleValue = (int32_t)RESX * (int32_t)g_model.customThrottleWarningPosition / (int32_t)100;
return abs(v - idleValue) > THRCHK_DEADBAND;
}
else {
return v > THRCHK_DEADBAND - RESX;
}
}
#if defined(COLORLCD)
void checkThrottleStick()
{
char throttleNotIdle[strlen(STR_THROTTLE_NOT_IDLE) + 9];
if (isThrottleWarningAlertNeeded()) {
if (g_model.enableCustomThrottleWarning) {
sprintf(throttleNotIdle, "%s (%d%%)", STR_THROTTLE_NOT_IDLE, g_model.customThrottleWarningPosition);
}
else {
strcpy(throttleNotIdle, STR_THROTTLE_NOT_IDLE);
}
LED_ERROR_BEGIN();
AUDIO_ERROR_MESSAGE(AU_THROTTLE_ALERT);
auto dialog =
new FullScreenDialog(WARNING_TYPE_ALERT, TR_THROTTLE_UPPERCASE,
STR_THROTTLE_NOT_IDLE, STR_PRESS_ANY_KEY_TO_SKIP);
throttleNotIdle, STR_PRESS_ANY_KEY_TO_SKIP);
dialog->setCloseCondition([]() { return !isThrottleWarningAlertNeeded(); });
dialog->runForever();
LED_ERROR_END();
@@ -801,13 +815,19 @@ void checkThrottleStick()
#else
void checkThrottleStick()
{
char throttleNotIdle[strlen(STR_THROTTLE_NOT_IDLE) + 9];
if (!isThrottleWarningAlertNeeded()) {
return;
}
if (g_model.enableCustomThrottleWarning) {
sprintf(throttleNotIdle, "%s (%d%%)", STR_THROTTLE_NOT_IDLE, g_model.customThrottleWarningPosition);
}
else {
strcpy(throttleNotIdle, STR_THROTTLE_NOT_IDLE);
}
// first - display warning; also deletes inputs if any have been before
LED_ERROR_BEGIN();
RAISE_ALERT(TR_THROTTLE_UPPERCASE, STR_THROTTLE_NOT_IDLE, STR_PRESS_ANY_KEY_TO_SKIP, AU_THROTTLE_ALERT);
RAISE_ALERT(TR_THROTTLE_UPPERCASE, throttleNotIdle, STR_PRESS_ANY_KEY_TO_SKIP, AU_THROTTLE_ALERT);
#if defined(PWR_BUTTON_PRESS)
bool refresh = false;
@@ -829,7 +849,7 @@ void checkThrottleStick()
refresh = true;
}
else if (power == e_power_on && refresh) {
RAISE_ALERT(TR_THROTTLE_UPPERCASE, STR_THROTTLE_NOT_IDLE, STR_PRESS_ANY_KEY_TO_SKIP, AU_NONE);
RAISE_ALERT(TR_THROTTLE_UPPERCASE, throttleNotIdle, STR_PRESS_ANY_KEY_TO_SKIP, AU_NONE);
refresh = false;
}
#else
@@ -842,6 +842,9 @@ static const struct YamlNode struct_ModelData[] = {
YAML_UNSIGNED( "extendedLimits", 1 ),
YAML_UNSIGNED( "extendedTrims", 1 ),
YAML_UNSIGNED( "throttleReversed", 1 ),
YAML_UNSIGNED( "enableCustomThrottleWarning", 1 ),
YAML_PADDING( 7 ),
YAML_SIGNED( "customThrottleWarningPosition", 8 ),
YAML_UNSIGNED( "beepANACenter", 16 ),
YAML_ARRAY("mixData", 160, 64, struct_MixData, NULL),
YAML_ARRAY("limitData", 104, 32, struct_LimitData, NULL),
@@ -884,7 +887,7 @@ static const struct YamlNode struct_PartialModel[] = {
YAML_END
};
#define MAX_RADIODATA_MODELDATA_PARTIALMODEL_STR_LEN 24
#define MAX_RADIODATA_MODELDATA_PARTIALMODEL_STR_LEN 29
static const struct YamlNode __RadioData_root_node = YAML_ROOT( struct_RadioData );
@@ -811,6 +811,9 @@ static const struct YamlNode struct_ModelData[] = {
YAML_UNSIGNED( "extendedLimits", 1 ),
YAML_UNSIGNED( "extendedTrims", 1 ),
YAML_UNSIGNED( "throttleReversed", 1 ),
YAML_UNSIGNED( "enableCustomThrottleWarning", 1 ),
YAML_PADDING( 7 ),
YAML_SIGNED( "customThrottleWarningPosition", 8 ),
YAML_UNSIGNED( "beepANACenter", 16 ),
YAML_ARRAY("mixData", 160, 64, struct_MixData, NULL),
YAML_ARRAY("limitData", 88, 32, struct_LimitData, NULL),
@@ -853,7 +856,7 @@ static const struct YamlNode struct_PartialModel[] = {
YAML_END
};
#define MAX_RADIODATA_MODELDATA_PARTIALMODEL_STR_LEN 24
#define MAX_RADIODATA_MODELDATA_PARTIALMODEL_STR_LEN 29
static const struct YamlNode __RadioData_root_node = YAML_ROOT( struct_RadioData );
@@ -811,6 +811,9 @@ static const struct YamlNode struct_ModelData[] = {
YAML_UNSIGNED( "extendedLimits", 1 ),
YAML_UNSIGNED( "extendedTrims", 1 ),
YAML_UNSIGNED( "throttleReversed", 1 ),
YAML_UNSIGNED( "enableCustomThrottleWarning", 1 ),
YAML_PADDING( 7 ),
YAML_SIGNED( "customThrottleWarningPosition", 8 ),
YAML_UNSIGNED( "beepANACenter", 16 ),
YAML_ARRAY("mixData", 160, 64, struct_MixData, NULL),
YAML_ARRAY("limitData", 88, 32, struct_LimitData, NULL),
@@ -853,7 +856,7 @@ static const struct YamlNode struct_PartialModel[] = {
YAML_END
};
#define MAX_RADIODATA_MODELDATA_PARTIALMODEL_STR_LEN 24
#define MAX_RADIODATA_MODELDATA_PARTIALMODEL_STR_LEN 29
static const struct YamlNode __RadioData_root_node = YAML_ROOT( struct_RadioData );
@@ -811,6 +811,9 @@ static const struct YamlNode struct_ModelData[] = {
YAML_UNSIGNED( "extendedLimits", 1 ),
YAML_UNSIGNED( "extendedTrims", 1 ),
YAML_UNSIGNED( "throttleReversed", 1 ),
YAML_UNSIGNED( "enableCustomThrottleWarning", 1 ),
YAML_PADDING( 7 ),
YAML_SIGNED( "customThrottleWarningPosition", 8 ),
YAML_UNSIGNED( "beepANACenter", 16 ),
YAML_ARRAY("mixData", 160, 64, struct_MixData, NULL),
YAML_ARRAY("limitData", 88, 32, struct_LimitData, NULL),
@@ -853,7 +856,7 @@ static const struct YamlNode struct_PartialModel[] = {
YAML_END
};
#define MAX_RADIODATA_MODELDATA_PARTIALMODEL_STR_LEN 24
#define MAX_RADIODATA_MODELDATA_PARTIALMODEL_STR_LEN 29
static const struct YamlNode __RadioData_root_node = YAML_ROOT( struct_RadioData );
@@ -817,6 +817,9 @@ static const struct YamlNode struct_ModelData[] = {
YAML_UNSIGNED( "extendedLimits", 1 ),
YAML_UNSIGNED( "extendedTrims", 1 ),
YAML_UNSIGNED( "throttleReversed", 1 ),
YAML_UNSIGNED( "enableCustomThrottleWarning", 1 ),
YAML_PADDING( 7 ),
YAML_SIGNED( "customThrottleWarningPosition", 8 ),
YAML_UNSIGNED( "beepANACenter", 16 ),
YAML_ARRAY("mixData", 160, 64, struct_MixData, NULL),
YAML_ARRAY("limitData", 88, 32, struct_LimitData, NULL),
@@ -864,7 +867,7 @@ static const struct YamlNode struct_PartialModel[] = {
YAML_END
};
#define MAX_RADIODATA_MODELDATA_PARTIALMODEL_STR_LEN 26
#define MAX_RADIODATA_MODELDATA_PARTIALMODEL_STR_LEN 29
static const struct YamlNode __RadioData_root_node = YAML_ROOT( struct_RadioData );
@@ -811,6 +811,9 @@ static const struct YamlNode struct_ModelData[] = {
YAML_UNSIGNED( "extendedLimits", 1 ),
YAML_UNSIGNED( "extendedTrims", 1 ),
YAML_UNSIGNED( "throttleReversed", 1 ),
YAML_UNSIGNED( "enableCustomThrottleWarning", 1 ),
YAML_PADDING( 7 ),
YAML_SIGNED( "customThrottleWarningPosition", 8 ),
YAML_UNSIGNED( "beepANACenter", 16 ),
YAML_ARRAY("mixData", 160, 64, struct_MixData, NULL),
YAML_ARRAY("limitData", 88, 32, struct_LimitData, NULL),
@@ -853,7 +856,7 @@ static const struct YamlNode struct_PartialModel[] = {
YAML_END
};
#define MAX_RADIODATA_MODELDATA_PARTIALMODEL_STR_LEN 24
#define MAX_RADIODATA_MODELDATA_PARTIALMODEL_STR_LEN 29
static const struct YamlNode __RadioData_root_node = YAML_ROOT( struct_RadioData );
@@ -863,6 +863,9 @@ static const struct YamlNode struct_ModelData[] = {
YAML_UNSIGNED( "extendedLimits", 1 ),
YAML_UNSIGNED( "extendedTrims", 1 ),
YAML_UNSIGNED( "throttleReversed", 1 ),
YAML_UNSIGNED( "enableCustomThrottleWarning", 1 ),
YAML_PADDING( 7 ),
YAML_SIGNED( "customThrottleWarningPosition", 8 ),
YAML_UNSIGNED( "beepANACenter", 16 ),
YAML_ARRAY("mixData", 160, 64, struct_MixData, NULL),
YAML_ARRAY("limitData", 104, 32, struct_LimitData, NULL),
@@ -905,7 +908,7 @@ static const struct YamlNode struct_PartialModel[] = {
YAML_END
};
#define MAX_RADIODATA_MODELDATA_PARTIALMODEL_STR_LEN 24
#define MAX_RADIODATA_MODELDATA_PARTIALMODEL_STR_LEN 29
static const struct YamlNode __RadioData_root_node = YAML_ROOT( struct_RadioData );
@@ -861,6 +861,9 @@ static const struct YamlNode struct_ModelData[] = {
YAML_UNSIGNED( "extendedLimits", 1 ),
YAML_UNSIGNED( "extendedTrims", 1 ),
YAML_UNSIGNED( "throttleReversed", 1 ),
YAML_UNSIGNED( "enableCustomThrottleWarning", 1 ),
YAML_PADDING( 7 ),
YAML_SIGNED( "customThrottleWarningPosition", 8 ),
YAML_UNSIGNED( "beepANACenter", 16 ),
YAML_ARRAY("mixData", 160, 64, struct_MixData, NULL),
YAML_ARRAY("limitData", 104, 32, struct_LimitData, NULL),
@@ -903,7 +906,7 @@ static const struct YamlNode struct_PartialModel[] = {
YAML_END
};
#define MAX_RADIODATA_MODELDATA_PARTIALMODEL_STR_LEN 24
#define MAX_RADIODATA_MODELDATA_PARTIALMODEL_STR_LEN 29
static const struct YamlNode __RadioData_root_node = YAML_ROOT( struct_RadioData );
@@ -811,6 +811,9 @@ static const struct YamlNode struct_ModelData[] = {
YAML_UNSIGNED( "extendedLimits", 1 ),
YAML_UNSIGNED( "extendedTrims", 1 ),
YAML_UNSIGNED( "throttleReversed", 1 ),
YAML_UNSIGNED( "enableCustomThrottleWarning", 1 ),
YAML_PADDING( 7 ),
YAML_SIGNED( "customThrottleWarningPosition", 8 ),
YAML_UNSIGNED( "beepANACenter", 16 ),
YAML_ARRAY("mixData", 160, 64, struct_MixData, NULL),
YAML_ARRAY("limitData", 88, 32, struct_LimitData, NULL),
@@ -853,7 +856,7 @@ static const struct YamlNode struct_PartialModel[] = {
YAML_END
};
#define MAX_RADIODATA_MODELDATA_PARTIALMODEL_STR_LEN 24
#define MAX_RADIODATA_MODELDATA_PARTIALMODEL_STR_LEN 29
static const struct YamlNode __RadioData_root_node = YAML_ROOT( struct_RadioData );
@@ -824,6 +824,9 @@ static const struct YamlNode struct_ModelData[] = {
YAML_UNSIGNED( "extendedLimits", 1 ),
YAML_UNSIGNED( "extendedTrims", 1 ),
YAML_UNSIGNED( "throttleReversed", 1 ),
YAML_UNSIGNED( "enableCustomThrottleWarning", 1 ),
YAML_PADDING( 7 ),
YAML_SIGNED( "customThrottleWarningPosition", 8 ),
YAML_UNSIGNED( "beepANACenter", 16 ),
YAML_ARRAY("mixData", 160, 64, struct_MixData, NULL),
YAML_ARRAY("limitData", 104, 32, struct_LimitData, NULL),
@@ -868,7 +871,7 @@ static const struct YamlNode struct_PartialModel[] = {
YAML_END
};
#define MAX_RADIODATA_MODELDATA_PARTIALMODEL_STR_LEN 24
#define MAX_RADIODATA_MODELDATA_PARTIALMODEL_STR_LEN 29
static const struct YamlNode __RadioData_root_node = YAML_ROOT( struct_RadioData );
@@ -863,6 +863,9 @@ static const struct YamlNode struct_ModelData[] = {
YAML_UNSIGNED( "extendedLimits", 1 ),
YAML_UNSIGNED( "extendedTrims", 1 ),
YAML_UNSIGNED( "throttleReversed", 1 ),
YAML_UNSIGNED( "enableCustomThrottleWarning", 1 ),
YAML_PADDING( 7 ),
YAML_SIGNED( "customThrottleWarningPosition", 8 ),
YAML_UNSIGNED( "beepANACenter", 16 ),
YAML_ARRAY("mixData", 160, 64, struct_MixData, NULL),
YAML_ARRAY("limitData", 104, 32, struct_LimitData, NULL),
@@ -908,7 +911,7 @@ static const struct YamlNode struct_PartialModel[] = {
YAML_END
};
#define MAX_RADIODATA_MODELDATA_PARTIALMODEL_STR_LEN 24
#define MAX_RADIODATA_MODELDATA_PARTIALMODEL_STR_LEN 29
static const struct YamlNode __RadioData_root_node = YAML_ROOT( struct_RadioData );
@@ -796,6 +796,9 @@ static const struct YamlNode struct_ModelData[] = {
YAML_UNSIGNED( "extendedLimits", 1 ),
YAML_UNSIGNED( "extendedTrims", 1 ),
YAML_UNSIGNED( "throttleReversed", 1 ),
YAML_UNSIGNED( "enableCustomThrottleWarning", 1 ),
YAML_PADDING( 7 ),
YAML_SIGNED( "customThrottleWarningPosition", 8 ),
YAML_UNSIGNED( "beepANACenter", 16 ),
YAML_ARRAY("mixData", 160, 64, struct_MixData, NULL),
YAML_ARRAY("limitData", 88, 32, struct_LimitData, NULL),
@@ -838,7 +841,7 @@ static const struct YamlNode struct_PartialModel[] = {
YAML_END
};
#define MAX_RADIODATA_MODELDATA_PARTIALMODEL_STR_LEN 24
#define MAX_RADIODATA_MODELDATA_PARTIALMODEL_STR_LEN 29
static const struct YamlNode __RadioData_root_node = YAML_ROOT( struct_RadioData );
@@ -806,6 +806,9 @@ static const struct YamlNode struct_ModelData[] = {
YAML_UNSIGNED( "extendedLimits", 1 ),
YAML_UNSIGNED( "extendedTrims", 1 ),
YAML_UNSIGNED( "throttleReversed", 1 ),
YAML_UNSIGNED( "enableCustomThrottleWarning", 1 ),
YAML_PADDING( 7 ),
YAML_SIGNED( "customThrottleWarningPosition", 8 ),
YAML_UNSIGNED( "beepANACenter", 16 ),
YAML_ARRAY("mixData", 160, 64, struct_MixData, NULL),
YAML_ARRAY("limitData", 88, 32, struct_LimitData, NULL),
@@ -848,7 +851,7 @@ static const struct YamlNode struct_PartialModel[] = {
YAML_END
};
#define MAX_RADIODATA_MODELDATA_PARTIALMODEL_STR_LEN 24
#define MAX_RADIODATA_MODELDATA_PARTIALMODEL_STR_LEN 29
static const struct YamlNode __RadioData_root_node = YAML_ROOT( struct_RadioData );
@@ -803,6 +803,9 @@ static const struct YamlNode struct_ModelData[] = {
YAML_UNSIGNED( "extendedLimits", 1 ),
YAML_UNSIGNED( "extendedTrims", 1 ),
YAML_UNSIGNED( "throttleReversed", 1 ),
YAML_UNSIGNED( "enableCustomThrottleWarning", 1 ),
YAML_PADDING( 7 ),
YAML_SIGNED( "customThrottleWarningPosition", 8 ),
YAML_UNSIGNED( "beepANACenter", 16 ),
YAML_ARRAY("mixData", 160, 64, struct_MixData, NULL),
YAML_ARRAY("limitData", 88, 32, struct_LimitData, NULL),
@@ -845,7 +848,7 @@ static const struct YamlNode struct_PartialModel[] = {
YAML_END
};
#define MAX_RADIODATA_MODELDATA_PARTIALMODEL_STR_LEN 24
#define MAX_RADIODATA_MODELDATA_PARTIALMODEL_STR_LEN 29
static const struct YamlNode __RadioData_root_node = YAML_ROOT( struct_RadioData );
@@ -807,6 +807,9 @@ static const struct YamlNode struct_ModelData[] = {
YAML_UNSIGNED( "extendedLimits", 1 ),
YAML_UNSIGNED( "extendedTrims", 1 ),
YAML_UNSIGNED( "throttleReversed", 1 ),
YAML_UNSIGNED( "enableCustomThrottleWarning", 1 ),
YAML_PADDING( 7 ),
YAML_SIGNED( "customThrottleWarningPosition", 8 ),
YAML_UNSIGNED( "beepANACenter", 16 ),
YAML_ARRAY("mixData", 160, 64, struct_MixData, NULL),
YAML_ARRAY("limitData", 88, 32, struct_LimitData, NULL),
@@ -849,7 +852,7 @@ static const struct YamlNode struct_PartialModel[] = {
YAML_END
};
#define MAX_RADIODATA_MODELDATA_PARTIALMODEL_STR_LEN 24
#define MAX_RADIODATA_MODELDATA_PARTIALMODEL_STR_LEN 29
static const struct YamlNode __RadioData_root_node = YAML_ROOT( struct_RadioData );
@@ -811,6 +811,9 @@ static const struct YamlNode struct_ModelData[] = {
YAML_UNSIGNED( "extendedLimits", 1 ),
YAML_UNSIGNED( "extendedTrims", 1 ),
YAML_UNSIGNED( "throttleReversed", 1 ),
YAML_UNSIGNED( "enableCustomThrottleWarning", 1 ),
YAML_PADDING( 7 ),
YAML_SIGNED( "customThrottleWarningPosition", 8 ),
YAML_UNSIGNED( "beepANACenter", 16 ),
YAML_ARRAY("mixData", 160, 64, struct_MixData, NULL),
YAML_ARRAY("limitData", 88, 32, struct_LimitData, NULL),
@@ -853,7 +856,7 @@ static const struct YamlNode struct_PartialModel[] = {
YAML_END
};
#define MAX_RADIODATA_MODELDATA_PARTIALMODEL_STR_LEN 24
#define MAX_RADIODATA_MODELDATA_PARTIALMODEL_STR_LEN 29
static const struct YamlNode __RadioData_root_node = YAML_ROOT( struct_RadioData );
+2
View File
@@ -403,6 +403,8 @@ const char STR_WARN_5VOLTS[] = TR_WARN_5VOLTS;
const char STR_CAT_NOT_EMPTY[] = TR_CAT_NOT_EMPTY;
const char STR_WARNING[] = TR_WARNING;
const char STR_THROTTLE_WARNING[] = TR_THROTTLE_WARNING;
const char STR_CUSTOM_THROTTLE_WARNING[] = TR_CUSTOM_THROTTLE_WARNING;
const char STR_CUSTOM_THROTTLE_WARNING_VAL[] = TR_CUSTOM_THROTTLE_WARNING_VAL;
const char STR_ALARMSWARN[] = TR_ALARMSWARN;
const char STR_SWITCHWARN[] = TR_SWITCHWARN;
const char STR_FAILSAFEWARN[] = TR_FAILSAFEWARN;
+2
View File
@@ -336,6 +336,8 @@ extern const char STR_PWR_OFF_DELAY[];
extern const char STR_PWR_OFF_DELAYS[];
#endif
extern const char STR_THROTTLE_WARNING[];
extern const char STR_CUSTOM_THROTTLE_WARNING[];
extern const char STR_CUSTOM_THROTTLE_WARNING_VAL[];
extern const char STR_SWITCHWARNING[];
extern const char STR_POTWARNINGSTATE[];
extern const char STR_POTWARNING[];
+2
View File
@@ -482,6 +482,8 @@
#define TR_PWR_ON_DELAY "开机延迟"
#define TR_PWR_OFF_DELAY "关机延迟"
#define TR_THROTTLE_WARNING TR(INDENT "T-Warning", INDENT "油门状态")
#define TR_CUSTOM_THROTTLE_WARNING TR(INDENT INDENT INDENT INDENT "Cust-Pos", INDENT INDENT INDENT INDENT "Custom position?")
#define TR_CUSTOM_THROTTLE_WARNING_VAL TR("Pos. %", "Position %")
#define TR_SWITCHWARNING TR(INDENT "S-Warning", INDENT "开关位置")
#define TR_POTWARNINGSTATE TR(INDENT "Pot&Slid.", INDENT "旋钮和滑块")
#define TR_SLIDERWARNING TR(INDENT "Slid. pos.", INDENT "滑块位置")
+2
View File
@@ -523,6 +523,8 @@
#define TR_PWR_ON_DELAY "Pwr On delay"
#define TR_PWR_OFF_DELAY "Pwr Off delay"
#define TR_THROTTLE_WARNING TR("* Plyn", INDENT "Kontrola plynu")
#define TR_CUSTOM_THROTTLE_WARNING TR(INDENT INDENT INDENT INDENT "Cust-Pos", INDENT INDENT INDENT INDENT "Custom position?")
#define TR_CUSTOM_THROTTLE_WARNING_VAL TR("Pos. %", "Position %")
#define TR_SWITCHWARNING TR("* Spínače", INDENT "Polohy spínačů")
#define TR_POTWARNINGSTATE TR("* Pot&Slid.", INDENT "Kontrola Pot&Slid.")
#define TR_SLIDERWARNING TR("* Slidery", INDENT "Pozice sliderů")
+2
View File
@@ -526,6 +526,8 @@
#define TR_PWR_ON_DELAY "Pwr On delay"
#define TR_PWR_OFF_DELAY "Pwr Off delay"
#define TR_THROTTLE_WARNING TR("Gasalarm", INDENT "Gas Alarm")
#define TR_CUSTOM_THROTTLE_WARNING TR(INDENT INDENT INDENT INDENT "Cust-Pos", INDENT INDENT INDENT INDENT "Custom position?")
#define TR_CUSTOM_THROTTLE_WARNING_VAL TR("Pos. %", "Position %")
#define TR_SWITCHWARNING TR("Sch. Alarm", INDENT "Schalter-Alarm")
#define TR_POTWARNINGSTATE TR(INDENT "Pot&Slid.", INDENT "Pots & sliders")
#define TR_SLIDERWARNING TR(INDENT "Slid. pos.", INDENT "Slider positions")
+2
View File
@@ -524,6 +524,8 @@
#define TR_PWR_ON_DELAY "Pwr On delay"
#define TR_PWR_OFF_DELAY "Pwr Off delay"
#define TR_THROTTLE_WARNING TR(INDENT "T-Warning", INDENT "Throttle state")
#define TR_CUSTOM_THROTTLE_WARNING TR(INDENT INDENT INDENT INDENT "Cust-Pos", INDENT INDENT INDENT INDENT "Custom position?")
#define TR_CUSTOM_THROTTLE_WARNING_VAL TR("Pos. %", "Position %")
#define TR_SWITCHWARNING TR(INDENT "S-Warning", INDENT "Switch positions")
#define TR_POTWARNINGSTATE TR(INDENT "Pot&Slid.", INDENT "Pots & sliders")
#define TR_SLIDERWARNING TR(INDENT "Slid. pos.", INDENT "Slider positions")
+2
View File
@@ -523,6 +523,8 @@
#define TR_PWR_ON_DELAY TR("Atraso On", "Atraso encendido")
#define TR_PWR_OFF_DELAY TR("Atraso Off", "Atraso apagado")
#define TR_THROTTLE_WARNING TR("Aviso-A", INDENT "Aviso acelerador")
#define TR_CUSTOM_THROTTLE_WARNING TR(INDENT INDENT INDENT INDENT "Cust-Pos", INDENT INDENT INDENT INDENT "Custom position?")
#define TR_CUSTOM_THROTTLE_WARNING_VAL TR("Pos. %", "Position %")
#define TR_SWITCHWARNING TR("Aviso-I", INDENT "Aviso interruptor")
#define TR_POTWARNINGSTATE TR(INDENT "Pot&Slid.", INDENT "Pots & sliders")
#define TR_SLIDERWARNING TR(INDENT "Pos. slid.", INDENT "Posiciones slider")
+2
View File
@@ -537,6 +537,8 @@
#define TR_PWR_ON_DELAY "Pwr On delay"
#define TR_PWR_OFF_DELAY "Pwr Off delay"
#define TR_THROTTLE_WARNING TR("T-Warning", INDENT "Throttle Warning")
#define TR_CUSTOM_THROTTLE_WARNING TR(INDENT INDENT INDENT INDENT "Cust-Pos", INDENT INDENT INDENT INDENT "Custom position?")
#define TR_CUSTOM_THROTTLE_WARNING_VAL TR("Pos. %", "Position %")
#define TR_SWITCHWARNING TR("S-Warning", INDENT "Switch Warning")
#define TR_POTWARNINGSTATE TR(INDENT "Pot&Slid.", INDENT "Pots & sliders")
#define TR_SLIDERWARNING TR(INDENT "Slid. pos.", INDENT "Slider positions")
+2
View File
@@ -544,6 +544,8 @@
#define TR_PWR_ON_DELAY "Délai btn ON"
#define TR_PWR_OFF_DELAY "Délai btn OFF"
#define TR_THROTTLE_WARNING TR(INDENT "Alerte gaz", INDENT "Alerte gaz")
#define TR_CUSTOM_THROTTLE_WARNING TR(INDENT INDENT INDENT INDENT "Cust-Pos", INDENT INDENT INDENT INDENT "Custom position?")
#define TR_CUSTOM_THROTTLE_WARNING_VAL TR("Pos. %", "Position %")
#define TR_SWITCHWARNING TR(INDENT "Alerte int", INDENT "Pos. interrupteurs")
#define TR_POTWARNINGSTATE TR(INDENT "Pot&Slid.", INDENT "Pots & sliders")
#define TR_SLIDERWARNING TR(INDENT "Slid. pos.", INDENT "Slider positions")
+2
View File
@@ -548,6 +548,8 @@
#define TR_PWR_ON_DELAY "Rit. accens."
#define TR_PWR_OFF_DELAY "Rit. spegni."
#define TR_THROTTLE_WARNING TR(INDENT "All. Mot.", INDENT "Allarme Motore")
#define TR_CUSTOM_THROTTLE_WARNING TR(INDENT INDENT INDENT INDENT "Cust-Pos", INDENT INDENT INDENT INDENT "Custom position?")
#define TR_CUSTOM_THROTTLE_WARNING_VAL TR("Pos. %", "Position %")
#define TR_SWITCHWARNING TR(INDENT "Avv. Int.", INDENT "Avviso Interr.")
#define TR_POTWARNINGSTATE TR(INDENT "Pot&Slid.", INDENT "Pots & sliders")
#define TR_SLIDERWARNING TR(INDENT "Pos. slid.", INDENT "Posizione slider")
+2
View File
@@ -528,6 +528,8 @@
#define TR_PWR_ON_DELAY "Pwr On delay"
#define TR_PWR_OFF_DELAY "Pwr Off delay"
#define TR_THROTTLE_WARNING TR(INDENT "T-Warning", INDENT "Throttle Status")
#define TR_CUSTOM_THROTTLE_WARNING TR(INDENT INDENT INDENT INDENT "Cust-Pos", INDENT INDENT INDENT INDENT "Custom position?")
#define TR_CUSTOM_THROTTLE_WARNING_VAL TR("Pos. %", "Position %")
#define TR_SWITCHWARNING TR(INDENT "S-Warning", INDENT "Switch Posities")
#define TR_POTWARNINGSTATE TR(INDENT "Pot&Slid.", INDENT "Pots & sliders")
#define TR_SLIDERWARNING TR(INDENT "Slid. pos.", INDENT "Slider positions")
+2
View File
@@ -544,6 +544,8 @@
#define TR_PWR_ON_DELAY "Pwr On delay"
#define TR_PWR_OFF_DELAY "Pwr Off delay"
#define TR_THROTTLE_WARNING TR(INDENT"OstrzGaz", INDENT "OstrzeżenieGaz")
#define TR_CUSTOM_THROTTLE_WARNING TR(INDENT INDENT INDENT INDENT "InnePoł", INDENT INDENT INDENT INDENT "Inne położenie?")
#define TR_CUSTOM_THROTTLE_WARNING_VAL TR("Poł. %", "Położenie %")
#define TR_SWITCHWARNING TR(INDENT "OstrzPrzeł", INDENT "PozycjaPrzeł")
#define TR_POTWARNINGSTATE TR(INDENT "Pot&Slid.", INDENT "Pots & sliders")
#define TR_SLIDERWARNING TR(INDENT "Slid. pos.", INDENT "Slider positions")
+2
View File
@@ -548,6 +548,8 @@
#define TR_PWR_ON_DELAY "Pwr On delay"
#define TR_PWR_OFF_DELAY "Pwr Off delay"
#define TR_THROTTLE_WARNING TR("Avisa Acel", INDENT "Avisa Acel")
#define TR_CUSTOM_THROTTLE_WARNING TR(INDENT INDENT INDENT INDENT "Cust-Pos", INDENT INDENT INDENT INDENT "Custom position?")
#define TR_CUSTOM_THROTTLE_WARNING_VAL TR("Pos. %", "Position %")
#define TR_SWITCHWARNING TR("Avisa Chav", INDENT "Avisa Chav")
#define TR_POTWARNINGSTATE TR(INDENT "Pot&Slid.", INDENT "Pots & sliders")
#define TR_SLIDERWARNING TR(INDENT "Slid. pos.", INDENT "Slider positions")
+2
View File
@@ -551,6 +551,8 @@
#define TR_PWR_OFF_DELAY "Pwr Off delay"
#define TR_BLCOLOR "Color"
#define TR_THROTTLE_WARNING TR("Gasvarning", INDENT "Gasvarning")
#define TR_CUSTOM_THROTTLE_WARNING TR(INDENT INDENT INDENT INDENT "Cust-Pos", INDENT INDENT INDENT INDENT "Custom position?")
#define TR_CUSTOM_THROTTLE_WARNING_VAL TR("Pos. %", "Position %")
#define TR_SWITCHWARNING TR("Bryt.varn.", INDENT "Brytarvarning")
#define TR_POTWARNINGSTATE TR(INDENT "Pot&Slid.", INDENT "Pots & sliders")
#define TR_SLIDERWARNING TR(INDENT "Slid. pos.", INDENT "Slider positions")
+2
View File
@@ -482,6 +482,8 @@
#define TR_PWR_ON_DELAY "開機延遲"
#define TR_PWR_OFF_DELAY "關機延遲"
#define TR_THROTTLE_WARNING TR(INDENT "T-Warning", INDENT "油門狀態")
#define TR_CUSTOM_THROTTLE_WARNING TR(INDENT INDENT INDENT INDENT "Cust-Pos", INDENT INDENT INDENT INDENT "Custom position?")
#define TR_CUSTOM_THROTTLE_WARNING_VAL TR("Pos. %", "Position %")
#define TR_SWITCHWARNING TR(INDENT "S-Warning", INDENT "開關位置")
#define TR_POTWARNINGSTATE TR(INDENT "Pot&Slid.", INDENT "旋鈕和滑塊")
#define TR_SLIDERWARNING TR(INDENT "Slid. pos.", INDENT "滑塊位置")