feat: Convert PPM_UNIT build option to runtime radio setting (#3993)

This commit is contained in:
philmoz
2023-10-10 19:47:50 +10:00
committed by GitHub
parent b05044091a
commit 837677b3ef
58 changed files with 248 additions and 188 deletions
@@ -224,6 +224,7 @@ Node convert<GeneralSettings>::encode(const GeneralSettings& rhs)
node["keysBacklight"] = (int)rhs.keysBacklight;
node["rotEncMode"] = (int)rhs.rotEncMode;
node["imperial"] = rhs.imperial;
node["ppmunit"] = rhs.ppmunit;
node["ttsLanguage"] = rhs.ttsLanguage;
node["beepVolume"] = rhs.beepVolume + 2;
node["wavVolume"] = rhs.wavVolume + 2;
@@ -487,6 +488,7 @@ bool convert<GeneralSettings>::decode(const Node& node, GeneralSettings& rhs)
node["rotEncDirection"] >> rhs.rotEncMode; // PR2045: read old name and
node["rotEncMode"] >> rhs.rotEncMode; // new, but don't write old
node["imperial"] >> rhs.imperial;
node["ppmunit"] >> rhs.ppmunit;
node["ttsLanguage"] >> rhs.ttsLanguage;
node["beepVolume"] >> ioffset_int(rhs.beepVolume, 2);
node["wavVolume"] >> ioffset_int(rhs.wavVolume, 2);
@@ -118,7 +118,6 @@ enum Capability {
HasModuleR9MFlex,
HasModuleR9MMini,
PPMCenter,
PPMUnitMicroseconds,
SYMLimits,
HastxCurrentCalibration,
HasVolume,
@@ -180,6 +180,12 @@ class GeneralSettings {
HATSMODE_COUNT
};
enum PPMUnit {
PPM_PERCENT_PREC0,
PPM_PERCENT_PREC1,
PPM_US
};
GeneralSettings() { clear(); }
void clear();
void init();
@@ -263,6 +269,7 @@ class GeneralSettings {
bool keysBacklight;
unsigned int rotEncMode;
unsigned int imperial;
unsigned int ppmunit;
char ttsLanguage[TTS_LANGUAGE_LEN + 1];
int beepVolume;
int wavVolume;
@@ -619,8 +619,6 @@ int OpenTxFirmware::getCapability(::Capability capability)
return 32;
case PPMCenter:
return (IS_HORUS_OR_TARANIS(board) ? 500 : (id.contains("ppmca") ? 125 : 0));
case PPMUnitMicroseconds:
return id.contains("ppmus") ? 1 : 0;
case SYMLimits:
return 1;
case OptrexDisplay:
@@ -1131,7 +1129,6 @@ void addOpenTxCommonOptions(OpenTxFirmware * firmware)
Firmware::Option("faichoice", Firmware::tr("Possibility to enable FAI MODE (no telemetry) at field")),
Firmware::Option("faimode", Firmware::tr("FAI MODE (no telemetry) always enabled"))
};
firmware->addOption("ppmus", Firmware::tr("Channel values displayed in us"));
firmware->addOptionsGroup(fai_options);
firmware->addOption("nooverridech", Firmware::tr("No OverrideCH functions available"));
}
@@ -154,6 +154,8 @@ ui(new Ui::GeneralSetup)
ui->units_CB->setCurrentIndex(generalSettings.imperial);
}
ui->ppm_units_CB->setCurrentIndex(generalSettings.ppmunit);
ui->gpsFormatCB->setCurrentIndex(generalSettings.gpsFormat);
ui->timezoneLE->setTime((generalSettings.timezone * 3600) + (generalSettings.timezoneMinutes/*quarter hours*/ * 15 * 60));
@@ -680,6 +682,12 @@ void GeneralSetupPanel::on_units_CB_currentIndexChanged(int index)
emit modified();
}
void GeneralSetupPanel::on_ppm_units_CB_currentIndexChanged(int index)
{
generalSettings.ppmunit = ui->ppm_units_CB->currentIndex();
emit modified();
}
void GeneralSetupPanel::on_beeperlenCB_currentIndexChanged(int index)
{
generalSettings.beeperLength = index-2;
+1
View File
@@ -47,6 +47,7 @@ class GeneralSetupPanel : public GeneralPanel
void on_re_CB_currentIndexChanged(int index);
void on_countrycode_CB_currentIndexChanged(int index);
void on_units_CB_currentIndexChanged(int index);
void on_ppm_units_CB_currentIndexChanged(int index);
void on_faimode_CB_stateChanged(int );
void on_rotEncMode_CB_currentIndexChanged(int index);
void on_speakerPitchSB_editingFinished();
+30 -1
View File
@@ -7,7 +7,7 @@
<x>0</x>
<y>0</y>
<width>858</width>
<height>880</height>
<height>891</height>
</rect>
</property>
<property name="windowTitle">
@@ -2485,6 +2485,35 @@ p, li { white-space: pre-wrap; }
</property>
</widget>
</item>
<item row="26" column="0">
<widget class="QLabel" name="ppm_units_label">
<property name="text">
<string>PPM Units</string>
</property>
</widget>
</item>
<item row="26" column="1">
<widget class="QComboBox" name="ppm_units_CB">
<property name="currentText">
<string>0.--</string>
</property>
<item>
<property name="text">
<string>0.--</string>
</property>
</item>
<item>
<property name="text">
<string>0.0</string>
</property>
</item>
<item>
<property name="text">
<string>us</string>
</property>
</item>
</widget>
</item>
</layout>
</item>
<item row="0" column="2">
+5 -5
View File
@@ -23,7 +23,7 @@
#include "filtereditemmodels.h"
#include "curveimagewidget.h"
LimitsGroup::LimitsGroup(Firmware * firmware, TableLayout * tableLayout, int row, int col, int & value, const ModelData & model,
LimitsGroup::LimitsGroup(Firmware * firmware, TableLayout * tableLayout, int row, int col, int & value, const ModelData & model, GeneralSettings & generalSettings,
int min, int max, int deflt, FilteredItemModel * gvarModel, ModelPanel * panel):
firmware(firmware),
spinbox(new QDoubleSpinBox()),
@@ -34,7 +34,7 @@ LimitsGroup::LimitsGroup(Firmware * firmware, TableLayout * tableLayout, int row
spinbox->setAccelerated(true);
spinbox->setDecimals(1);
if (firmware->getCapability(PPMUnitMicroseconds)) {
if (generalSettings.ppmunit == GeneralSettings::PPM_US) {
displayStep = 0.512;
spinbox->setSuffix("us");
}
@@ -141,13 +141,13 @@ ChannelsPanel::ChannelsPanel(QWidget * parent, ModelData & model, GeneralSetting
}
// Channel offset
chnOffset[i] = new LimitsGroup(firmware, tableLayout, i, col++, model.limitData[i].offset, model, -1000, 1000, 0, dialogFilteredItemModels->getItemModel(gvid), this);
chnOffset[i] = new LimitsGroup(firmware, tableLayout, i, col++, model.limitData[i].offset, model, generalSettings, -1000, 1000, 0, dialogFilteredItemModels->getItemModel(gvid), this);
// Channel min
chnMin[i] = new LimitsGroup(firmware, tableLayout, i, col++, model.limitData[i].min, model, -model.getChannelsMax() * 10, 0, -1000, dialogFilteredItemModels->getItemModel(gvid), this);
chnMin[i] = new LimitsGroup(firmware, tableLayout, i, col++, model.limitData[i].min, model, generalSettings, -model.getChannelsMax() * 10, 0, -1000, dialogFilteredItemModels->getItemModel(gvid), this);
// Channel max
chnMax[i] = new LimitsGroup(firmware, tableLayout, i, col++, model.limitData[i].max, model, 0, model.getChannelsMax() * 10, 1000, dialogFilteredItemModels->getItemModel(gvid), this);
chnMax[i] = new LimitsGroup(firmware, tableLayout, i, col++, model.limitData[i].max, model, generalSettings, 0, model.getChannelsMax() * 10, 1000, dialogFilteredItemModels->getItemModel(gvid), this);
// Channel inversion
invCB[i] = new QComboBox(this);
+1 -1
View File
@@ -38,7 +38,7 @@ class LimitsGroup
Q_DECLARE_TR_FUNCTIONS(LimitsGroup)
public:
LimitsGroup(Firmware * firmware, TableLayout * tableLayout, int row, int col, int & value, const ModelData & model,
LimitsGroup(Firmware * firmware, TableLayout * tableLayout, int row, int col, int & value, const ModelData & model, GeneralSettings & generalSettings,
int min, int max, int deflt, FilteredItemModel * gvarModel, ModelPanel * panel = nullptr);
~LimitsGroup();
-10
View File
@@ -11,8 +11,6 @@ set(TRANSLATIONS "EN" CACHE STRING "Radio language, one of: ${RADIO_LANGUAGES}")
set_property(CACHE TRANSLATIONS PROPERTY STRINGS ${RADIO_LANGUAGES})
set(SPLASH "DEFAULT" CACHE STRING "Splash (DEFAULT/OFF/FRSKY)")
set_property(CACHE SPLASH PROPERTY STRINGS DEFAULT OFF FRSKY)
set(PPM_UNIT "PERCENT_PREC0" CACHE STRING "PPM display unit (US/PERCENT_PREC1/PERCENT_PREC0)")
set_property(CACHE PPM_UNIT PROPERTY STRINGS US PERCENT_PREC1 PERCENT_PREC0)
set(DEFAULT_MODE "" CACHE STRING "Default sticks mode")
set(POPUP_LEVEL 2 CACHE STRING "Popup level")
@@ -254,14 +252,6 @@ if(SHUTDOWN_CONFIRMATION)
add_definitions(-DSHUTDOWN_CONFIRMATION)
endif()
if(PPM_UNIT STREQUAL US)
add_definitions(-DPPM_UNIT_US)
elseif(PPM_UNIT STREQUAL PERCENT_PREC1)
add_definitions(-DPPM_UNIT_PERCENT_PREC1)
else()
add_definitions(-DPPM_UNIT_PERCENT_PREC0)
endif()
if(PPM_CENTER_ADJUSTABLE)
add_definitions(-DPPM_CENTER_ADJUSTABLE)
endif()
+7
View File
@@ -686,4 +686,11 @@ enum ModelOverridableEnable {
#define SELECTED_THEME_NAME_LEN 26
// PPM Units
enum PPMUnit {
PPM_PERCENT_PREC0,
PPM_PERCENT_PREC1,
PPM_US
};
#endif // _DATACONSTANTS_H_
+1 -1
View File
@@ -843,7 +843,7 @@ PACK(struct RadioData {
NOBACKUP(uint8_t manuallyEdited:1);
int8_t timezoneMinutes:3; // -3 to +3 ==> (-45 to 45 minutes in 15 minute increments)
NOBACKUP(uint8_t hatsMode:2 ENUM(HatsMode));
NOBACKUP(int8_t spare0:2 SKIP);
NOBACKUP(uint8_t ppmunit:2); // PPMUnit enum
CUST_ATTR(semver,nullptr,w_semver);
CUST_ATTR(board,nullptr,w_board);
CalibData calib[MAX_CALIB_ANALOG_INPUTS] NO_IDX;
+9 -10
View File
@@ -61,9 +61,8 @@ void menuModelFailsafe(event_t event)
LcdFlags attr = (sub == k) ? INVERS : 0;
uint8_t wbar = LCD_W - FW * 4 - FWNUM * 4;
#if defined(PPM_UNIT_PERCENT_PREC1)
wbar -= 6;
#endif
if (g_eeGeneral.ppmunit == PPM_PERCENT_PREC1)
wbar -= 6;
if (sub == k && !READ_ONLY() && event == EVT_KEY_LONG(KEY_ENTER)) {
killEvents(event);
@@ -102,13 +101,13 @@ void menuModelFailsafe(event_t event)
failsafeValue = 0;
}
else {
#if defined(PPM_UNIT_US)
lcdDrawNumber(xValue, y, PPM_CH_CENTER(k)+failsafeValue/2, RIGHT|flags);
#elif defined(PPM_UNIT_PERCENT_PREC1)
lcdDrawNumber(xValue, y, calcRESXto1000(failsafeValue), RIGHT|PREC1|flags);
#else
lcdDrawNumber(xValue, y, calcRESXto1000(failsafeValue)/10, RIGHT|flags);
#endif
if (g_eeGeneral.ppmunit == PPM_US) {
lcdDrawNumber(xValue, y, PPM_CH_CENTER(k)+failsafeValue/2, RIGHT|flags);
} else if (g_eeGeneral.ppmunit == PPM_PERCENT_PREC1) {
lcdDrawNumber(xValue, y, calcRESXto1000(failsafeValue), RIGHT|PREC1|flags);
} else {
lcdDrawNumber(xValue, y, calcRESXto1000(failsafeValue)/10, RIGHT|flags);
}
}
// Gauge
+32 -38
View File
@@ -34,14 +34,6 @@ enum MenuModelOutputsItems {
ITEM_OUTPUTS_MAXROW = ITEM_OUTPUTS_COUNT-1
};
#if defined(PPM_UNIT_US)
#define LIMITS_MIN_POS 12*FW+1
#define PREC_THRESHOLD 804
#else
#define LIMITS_MIN_POS 12*FW-2
#define PREC_THRESHOLD 0
#endif
#define LIMITS_OFFSET_POS 8*FW-1
#if defined(PPM_LIMITS_SYMETRICAL)
@@ -70,14 +62,6 @@ enum MenuModelOutputsItems {
#define CONVERT_US_MIN_MAX(x) ((int16_t(x)*128)/25)
#define MIN_MAX_ATTR attr
#if defined(PPM_UNIT_US)
#define SET_MIN_MAX(x, val) x = ((val)*250)/128
#define MIN_MAX_DISPLAY(x) CONVERT_US_MIN_MAX(x)
#else
#define MIN_MAX_DISPLAY(x) (x)
#define SET_MIN_MAX(x, val) x = (val)
#endif
enum MenuModelOutputsOneItems {
ITEM_OUTPUTONE_CH_NAME,
ITEM_OUTPUTONE_OFFSET,
@@ -96,6 +80,13 @@ enum MenuModelOutputsOneItems {
#define LIMITS_ONE_2ND_COLUMN (13*FW)
int32_t minMaxDisplay(int32_t val)
{
if (g_eeGeneral.ppmunit == PPM_US)
val = CONVERT_US_MIN_MAX(val);
return val;
}
void menuModelLimitsOne(event_t event)
{
title(STR_MENULIMITS);
@@ -135,7 +126,7 @@ void menuModelLimitsOne(event_t event)
ld->min = GVAR_MENU_ITEM(LIMITS_ONE_2ND_COLUMN, y, ld->min, -LIMIT_EXT_MAX, LIMIT_EXT_MAX, attr|PREC1, 0, event);
break;
}
lcdDrawNumber(LIMITS_ONE_2ND_COLUMN, y, MIN_MAX_DISPLAY(ld->min-LIMITS_MIN_MAX_OFFSET), attr|PREC1);
lcdDrawNumber(LIMITS_ONE_2ND_COLUMN, y, minMaxDisplay(ld->min-LIMITS_MIN_MAX_OFFSET), attr|PREC1);
if (active) {
ld->min = LIMITS_MIN_MAX_OFFSET + checkIncDec(event, ld->min-LIMITS_MIN_MAX_OFFSET, -limit, 0, EE_MODEL, nullptr, stops1000);
}
@@ -147,7 +138,7 @@ void menuModelLimitsOne(event_t event)
ld->max = GVAR_MENU_ITEM(LIMITS_ONE_2ND_COLUMN, y, ld->max, -LIMIT_EXT_MAX, LIMIT_EXT_MAX, attr|PREC1, 0, event);
break;
}
lcdDrawNumber(LIMITS_ONE_2ND_COLUMN, y, MIN_MAX_DISPLAY(ld->max+LIMITS_MIN_MAX_OFFSET), attr|PREC1);
lcdDrawNumber(LIMITS_ONE_2ND_COLUMN, y, minMaxDisplay(ld->max+LIMITS_MIN_MAX_OFFSET), attr|PREC1);
if (active) {
ld->max = -LIMITS_MIN_MAX_OFFSET + checkIncDec(event, ld->max+LIMITS_MIN_MAX_OFFSET, 0, +limit, EE_MODEL, nullptr, stops1000);
}
@@ -274,39 +265,42 @@ void menuModelLimits(event_t event)
lcdDrawSizedText(0, y, ld->name, sizeof(ld->name), ((sub==k) ? INVERS : 0) | LEFT);
}
coord_t limitsMinPos = (g_eeGeneral.ppmunit == PPM_US) ? 12*FW+1 : 12*FW-2;
int precThreshold = (g_eeGeneral.ppmunit == PPM_US) ? 804 : 0;
for (uint8_t j=0; j<ITEM_OUTPUTS_COUNT; j++) {
switch (j) {
case ITEM_OUTPUTS_OFFSET:
#if defined(PPM_UNIT_US)
lcdDrawNumber(LIMITS_OFFSET_POS, y, ((int32_t)ld->offset*128) / 25, PREC1|RIGHT);
#else
if (g_eeGeneral.ppmunit == PPM_US) {
lcdDrawNumber(LIMITS_OFFSET_POS, y, ((int32_t)ld->offset*128) / 25, PREC1|RIGHT);
} else {
#if defined(GVARS)
if (GV_IS_GV_VALUE(ld->offset, -GV_RANGELARGE, GV_RANGELARGE)) {
drawGVarName(LIMITS_OFFSET_POS, y, ld->offset, attr|PREC1|RIGHT);
break;
}
if (GV_IS_GV_VALUE(ld->offset, -GV_RANGELARGE, GV_RANGELARGE)) {
drawGVarName(LIMITS_OFFSET_POS, y, ld->offset, attr|PREC1|RIGHT);
break;
}
#endif
if (abs(ld->offset) >= 1000) {
lcdDrawNumber(LIMITS_OFFSET_POS, y, ld->offset/10, RIGHT);
if (abs(ld->offset) >= 1000) {
lcdDrawNumber(LIMITS_OFFSET_POS, y, ld->offset/10, RIGHT);
}
else {
lcdDrawNumber(LIMITS_OFFSET_POS, y, ld->offset, PREC1|RIGHT);
}
}
else {
lcdDrawNumber(LIMITS_OFFSET_POS, y, ld->offset, PREC1|RIGHT);
}
#endif
break;
case ITEM_OUTPUTS_MIN:
#if defined(GVARS)
if (GV_IS_GV_VALUE(ld->min, -GV_RANGELARGE, GV_RANGELARGE)) {
drawGVarName(LIMITS_MIN_POS, y, ld->min, attr|PREC1|RIGHT);
drawGVarName(limitsMinPos, y, ld->min, attr|PREC1|RIGHT);
break;
}
#endif
if (ld->min <= PREC_THRESHOLD) {
lcdDrawNumber(LIMITS_MIN_POS, y, MIN_MAX_DISPLAY(ld->min-LIMITS_MIN_MAX_OFFSET)/10, RIGHT);
if (ld->min <= precThreshold) {
lcdDrawNumber(limitsMinPos, y, minMaxDisplay(ld->min-LIMITS_MIN_MAX_OFFSET)/10, RIGHT);
}
else {
lcdDrawNumber(LIMITS_MIN_POS, y, MIN_MAX_DISPLAY(ld->min-LIMITS_MIN_MAX_OFFSET), attr|PREC1|RIGHT);
lcdDrawNumber(limitsMinPos, y, minMaxDisplay(ld->min-LIMITS_MIN_MAX_OFFSET), attr|PREC1|RIGHT);
}
break;
@@ -317,11 +311,11 @@ void menuModelLimits(event_t event)
break;
}
#endif
if (ld->max >= -PREC_THRESHOLD) {
lcdDrawNumber(LIMITS_MAX_POS, y, MIN_MAX_DISPLAY(ld->max+LIMITS_MIN_MAX_OFFSET)/10, RIGHT);
if (ld->max >= -precThreshold) {
lcdDrawNumber(LIMITS_MAX_POS, y, minMaxDisplay(ld->max+LIMITS_MIN_MAX_OFFSET)/10, RIGHT);
}
else {
lcdDrawNumber(LIMITS_MAX_POS, y, MIN_MAX_DISPLAY(ld->max+LIMITS_MIN_MAX_OFFSET), attr|PREC1|RIGHT);
lcdDrawNumber(LIMITS_MAX_POS, y, minMaxDisplay(ld->max+LIMITS_MIN_MAX_OFFSET), attr|PREC1|RIGHT);
}
break;
+6 -1
View File
@@ -107,6 +107,7 @@ enum {
CASE_PXX1(ITEM_RADIO_SETUP_COUNTRYCODE)
ITEM_RADIO_SETUP_LANGUAGE,
ITEM_RADIO_SETUP_IMPERIAL,
ITEM_RADIO_SETUP_PPM,
IF_FAI_CHOICE(ITEM_RADIO_SETUP_FAI)
ITEM_RADIO_SETUP_SWITCHES_DELAY,
ITEM_RADIO_SETUP_USB_MODE,
@@ -202,7 +203,7 @@ void menuRadioSetup(event_t event)
CASE_GPS(0)
0, CASE_GPS(0)
CASE_PXX1(0)
0, 0, IF_FAI_CHOICE(0)
0, 0, 0, IF_FAI_CHOICE(0)
0,
0, // USB mode
CASE_JACK_DETECT(0) // Jack mode
@@ -671,6 +672,10 @@ void menuRadioSetup(event_t event)
g_eeGeneral.imperial = editChoice(LCD_W-2, y, STR_UNITS_SYSTEM, STR_VUNITSSYSTEM, g_eeGeneral.imperial, 0, 1, attr|RIGHT, event);
break;
case ITEM_RADIO_SETUP_PPM:
g_eeGeneral.ppmunit = editChoice(LCD_W-2, y, STR_UNITS_PPM, STR_PPMUNIT, g_eeGeneral.ppmunit, PPM_PERCENT_PREC0, PPM_US, attr|RIGHT, event);
break;
#if defined(FAI_CHOICE)
case ITEM_RADIO_SETUP_FAI:
editCheckBox(g_eeGeneral.fai, LCD_W-9, y, "FAI Mode", attr, event);
+7 -7
View File
@@ -96,13 +96,13 @@ void menuChannelsViewCommon(event_t event)
}
// Value
#if defined(PPM_UNIT_US)
lcdDrawNumber(CHANNEL_VALUE_OFFSET, y + 1, PPM_CH_CENTER(ch) + val / 2, TINSIZE | RIGHT);
#elif defined(PPM_UNIT_PERCENT_PREC1)
lcdDrawNumber(CHANNEL_VALUE_OFFSET, y + 1, calcRESXto1000(val), PREC1 | TINSIZE | RIGHT);
#else
lcdDrawNumber(CHANNEL_VALUE_OFFSET, y + 1, calcRESXto1000(val) / 10, TINSIZE | RIGHT);
#endif
if (g_eeGeneral.ppmunit == PPM_US) {
lcdDrawNumber(CHANNEL_VALUE_OFFSET, y + 1, PPM_CH_CENTER(ch) + val / 2, TINSIZE | RIGHT);
} else if (g_eeGeneral.ppmunit == PPM_PERCENT_PREC1) {
lcdDrawNumber(CHANNEL_VALUE_OFFSET, y + 1, calcRESXto1000(val), PREC1 | TINSIZE | RIGHT);
} else {
lcdDrawNumber(CHANNEL_VALUE_OFFSET, y + 1, calcRESXto1000(val) / 10, TINSIZE | RIGHT);
}
// Gauge
drawGauge(CHANNEL_GAUGE_OFFSET, y, CHANNEL_BAR_WIDTH, 6, val, limits);
+7 -7
View File
@@ -517,13 +517,13 @@ void menuMainView(event_t event)
#else
y0 = i / 4 * FH + 40;
#endif
#if defined(PPM_UNIT_US)
lcdDrawNumber(x0 + 4 * FW, y0, PPM_CH_CENTER(chan) + val / 2, RIGHT);
#elif defined(PPM_UNIT_PERCENT_PREC1)
lcdDrawNumber(x0 + 4 * FW, y0, calcRESXto1000(val), RIGHT | PREC1);
#else
lcdDrawNumber(x0+4*FW , y0, calcRESXto1000(val)/10, RIGHT); // G: Don't like the decimal part*
#endif
if (g_eeGeneral.ppmunit == PPM_US) {
lcdDrawNumber(x0 + 4 * FW, y0, PPM_CH_CENTER(chan) + val / 2, RIGHT);
} else if (g_eeGeneral.ppmunit == PPM_PERCENT_PREC1) {
lcdDrawNumber(x0 + 4 * FW, y0, calcRESXto1000(val), RIGHT | PREC1);
} else {
lcdDrawNumber(x0+4*FW , y0, calcRESXto1000(val)/10, RIGHT); // G: Don't like the decimal part*
}
}
else {
constexpr coord_t WBAR2 = (50 / 2);
+10 -10
View File
@@ -97,9 +97,9 @@ void menuModelFailsafe(event_t event)
uint8_t lenLabel = ZLEN(g_model.limitData[ch+channelStart].name);
uint8_t barW = colW - FW * reusableBuffer.modelFailsafe.maxNameLen - FWNUM * 3; // default bar width
#if defined(PPM_UNIT_PERCENT_PREC1)
barW -= FWNUM + 1;
#endif
if (g_eeGeneral.ppmunit == PPM_PERCENT_PREC1) {
barW -= FWNUM + 1;
}
barW += (barW % 2);
// Channel name if present, number if not
@@ -137,13 +137,13 @@ void menuModelFailsafe(event_t event)
failsafeValue = 0;
}
else {
#if defined(PPM_UNIT_US)
lcdDrawNumber(xValue, y, PPM_CH_CENTER(ch)+failsafeValue/2, RIGHT|flags);
#elif defined(PPM_UNIT_PERCENT_PREC1)
lcdDrawNumber(xValue, y, calcRESXto1000(failsafeValue), RIGHT|PREC1|flags);
#else
lcdDrawNumber(xValue, y, calcRESXto1000(failsafeValue)/10, RIGHT|flags);
#endif
if (g_eeGeneral.ppmunit == PPM_US) {
lcdDrawNumber(xValue, y, PPM_CH_CENTER(ch)+failsafeValue/2, RIGHT|flags);
} else if (g_eeGeneral.ppmunit == PPM_PERCENT_PREC1) {
lcdDrawNumber(xValue, y, calcRESXto1000(failsafeValue), RIGHT|PREC1|flags);
} else {
lcdDrawNumber(xValue, y, calcRESXto1000(failsafeValue)/10, RIGHT|flags);
}
}
// Gauge
+20 -16
View File
@@ -56,13 +56,12 @@ enum LimitsItems {
#define CONVERT_US_MIN_MAX(x) (((x)*1280)/250)
#if defined(PPM_UNIT_US)
#define SET_MIN_MAX(x, val) x = ((val)*250)/128
#define MIN_MAX_DISPLAY(x) CONVERT_US_MIN_MAX(x)
#else
#define MIN_MAX_DISPLAY(x) (x)
#define SET_MIN_MAX(x, val) x = (val)
#endif
int32_t minMaxDisplay(int32_t val)
{
if (g_eeGeneral.ppmunit == PPM_US)
val = CONVERT_US_MIN_MAX(val);
return val;
}
void onLimitsMenu(const char *result)
{
@@ -96,11 +95,16 @@ void menuModelLimits(event_t event)
int sub = menuVerticalPosition;
if (sub < MAX_OUTPUT_CHANNELS) {
#if defined(PPM_CENTER_ADJUSTABLE) || defined(PPM_UNIT_US)
#if defined(PPM_CENTER_ADJUSTABLE)
lcdDrawNumber(13*FW, 0, PPM_CH_CENTER(sub)+channelOutputs[sub]/2, RIGHT);
lcdDrawText(13*FW, 0, STR_US);
#else
lcdDrawNumber(13*FW, 0, calcRESXto1000(channelOutputs[sub]), PREC1|RIGHT);
if (g_eeGeneral.ppmunit == PPM_US) {
lcdDrawNumber(13*FW, 0, PPM_CH_CENTER(sub)+channelOutputs[sub]/2, RIGHT);
lcdDrawText(13*FW, 0, STR_US);
} else {
lcdDrawNumber(13*FW, 0, calcRESXto1000(channelOutputs[sub]), PREC1|RIGHT);
}
#endif
}
@@ -167,11 +171,11 @@ void menuModelLimits(event_t event)
break;
}
#if defined(PPM_UNIT_US)
lcdDrawNumber(LIMITS_OFFSET_POS, y, ((int32_t)ld->offset*128) / 25, attr|PREC1|RIGHT);
#else
lcdDrawNumber(LIMITS_OFFSET_POS, y, ld->offset, attr|PREC1|RIGHT);
#endif
if (g_eeGeneral.ppmunit == PPM_US) {
lcdDrawNumber(LIMITS_OFFSET_POS, y, ((int32_t)ld->offset*128) / 25, attr|PREC1|RIGHT);
} else {
lcdDrawNumber(LIMITS_OFFSET_POS, y, ld->offset, attr|PREC1|RIGHT);
}
if (active) {
ld->offset = checkIncDec(event, ld->offset, -1000, 1000, EE_MODEL, nullptr, stops1000);
}
@@ -186,7 +190,7 @@ void menuModelLimits(event_t event)
ld->min = GVAR_MENU_ITEM(LIMITS_MIN_POS, y, ld->min, -LIMIT_EXT_MAX, LIMIT_EXT_MAX, attr|PREC1|RIGHT, 0, event);
break;
}
lcdDrawNumber(LIMITS_MIN_POS, y, MIN_MAX_DISPLAY(ld->min-LIMITS_MIN_MAX_OFFSET), attr|PREC1|RIGHT);
lcdDrawNumber(LIMITS_MIN_POS, y, minMaxDisplay(ld->min-LIMITS_MIN_MAX_OFFSET), attr|PREC1|RIGHT);
if (active) ld->min = LIMITS_MIN_MAX_OFFSET + checkIncDec(event, ld->min-LIMITS_MIN_MAX_OFFSET, -limit, 0, EE_MODEL, nullptr, stops1000);
break;
@@ -195,7 +199,7 @@ void menuModelLimits(event_t event)
ld->max = GVAR_MENU_ITEM(LIMITS_MAX_POS, y, ld->max, -LIMIT_EXT_MAX, LIMIT_EXT_MAX, attr|PREC1|RIGHT, 0, event);
break;
}
lcdDrawNumber(LIMITS_MAX_POS, y, MIN_MAX_DISPLAY(ld->max+LIMITS_MIN_MAX_OFFSET), attr|PREC1|RIGHT);
lcdDrawNumber(LIMITS_MAX_POS, y, minMaxDisplay(ld->max+LIMITS_MIN_MAX_OFFSET), attr|PREC1|RIGHT);
if (active) ld->max = -LIMITS_MIN_MAX_OFFSET + checkIncDec(event, ld->max+LIMITS_MIN_MAX_OFFSET, 0, +limit, EE_MODEL, nullptr, stops1000);
break;
+6
View File
@@ -96,6 +96,7 @@ enum MenuRadioSetupItems {
CASE_PXX1(ITEM_RADIO_SETUP_COUNTRYCODE)
ITEM_RADIO_SETUP_LANGUAGE,
ITEM_RADIO_SETUP_IMPERIAL,
ITEM_RADIO_SETUP_PPM,
IF_FAI_CHOICE(ITEM_RADIO_SETUP_FAI)
ITEM_RADIO_SETUP_SWITCHES_DELAY,
ITEM_RADIO_SETUP_USB_MODE,
@@ -198,6 +199,7 @@ void menuRadioSetup(event_t event)
CASE_PXX1(0) // country code
0, // voice language
0, // imperial
0, // PPM unit
IF_FAI_CHOICE(0)
0, // switches delay
0, // USB mode
@@ -603,6 +605,10 @@ void menuRadioSetup(event_t event)
g_eeGeneral.imperial = editChoice(RADIO_SETUP_2ND_COLUMN, y, STR_UNITS_SYSTEM, STR_VUNITSSYSTEM, g_eeGeneral.imperial, 0, 1, attr, event);
break;
case ITEM_RADIO_SETUP_PPM:
g_eeGeneral.ppmunit = editChoice(RADIO_SETUP_2ND_COLUMN, y, STR_UNITS_PPM, STR_PPMUNIT, g_eeGeneral.ppmunit, PPM_PERCENT_PREC0, PPM_US, attr, event);
break;
#if defined(FAI_CHOICE)
case ITEM_RADIO_SETUP_FAI:
editCheckBox(g_eeGeneral.fai, RADIO_SETUP_2ND_COLUMN, y, "FAI Mode", attr, event);
+10 -10
View File
@@ -27,9 +27,9 @@ void menuChannelsView(event_t event)
uint8_t wbar = (reusableBuffer.viewChannels.longNames ? 54 : 64);
int16_t limits = 512 * 2;
#if defined(PPM_UNIT_PERCENT_PREC1)
wbar -= 6;
#endif
if (g_eeGeneral.ppmunit == PPM_PERCENT_PREC1) {
wbar -= 6;
}
switch(event) {
case EVT_ENTRY:
@@ -87,13 +87,13 @@ void menuChannelsView(event_t event)
}
// Value
#if defined(PPM_UNIT_US)
lcdDrawNumber(x+LCD_W/2-3-wbar-ofs, y+1, PPM_CH_CENTER(ch)+val/2, TINSIZE|RIGHT);
#elif defined(PPM_UNIT_PERCENT_PREC1)
lcdDrawNumber(x+LCD_W/2-3-wbar-ofs, y+1, calcRESXto1000(val), PREC1|TINSIZE|RIGHT);
#else
lcdDrawNumber(x+LCD_W/2-3-wbar-ofs, y+1, calcRESXto1000(val)/10, TINSIZE|RIGHT);
#endif
if (g_eeGeneral.ppmunit == PPM_US) {
lcdDrawNumber(x+LCD_W/2-3-wbar-ofs, y+1, PPM_CH_CENTER(ch)+val/2, TINSIZE|RIGHT);
} else if (g_eeGeneral.ppmunit == PPM_PERCENT_PREC1) {
lcdDrawNumber(x+LCD_W/2-3-wbar-ofs, y+1, calcRESXto1000(val), PREC1|TINSIZE|RIGHT);
} else {
lcdDrawNumber(x+LCD_W/2-3-wbar-ofs, y+1, calcRESXto1000(val)/10, TINSIZE|RIGHT);
}
// Gauge
drawGauge(x+LCD_W/2-3-wbar-ofs, y, wbar, 6, val, limits);
+5 -5
View File
@@ -462,11 +462,11 @@ void drawSourceCustomValue(BitmapBuffer * dc, coord_t x, coord_t y, source_t sou
dc->drawNumber(x, y, calcRESXto100(value), flags);
}
else if (source <= MIXSRC_LAST_CH) {
#if defined(PPM_UNIT_PERCENT_PREC1)
dc->drawNumber(x, y, calcRESXto1000(value), flags|PREC1);
#else
dc->drawNumber(x, y, calcRESXto100(value), flags);
#endif
if (g_eeGeneral.ppmunit == PPM_PERCENT_PREC1) {
dc->drawNumber(x, y, calcRESXto1000(value), flags|PREC1);
} else {
dc->drawNumber(x, y, calcRESXto100(value), flags);
}
}
else {
dc->drawNumber(x, y, value, flags);
+5
View File
@@ -773,6 +773,11 @@ void RadioSetupPage::build(FormWindow * window)
new StaticText(line, rect_t{}, STR_UNITS_SYSTEM, 0, COLOR_THEME_PRIMARY1);
new Choice(line, rect_t{}, STR_VUNITSSYSTEM, 0, 1, GET_SET_DEFAULT(g_eeGeneral.imperial));
// PPM units
line = window->newLine(&grid);
new StaticText(line, rect_t{}, STR_UNITS_PPM, 0, COLOR_THEME_PRIMARY1);
new Choice(line, rect_t{}, STR_PPMUNIT, PPM_PERCENT_PREC0, PPM_PERCENT_PREC1, GET_SET_DEFAULT(g_eeGeneral.ppmunit));
#if defined(FAI_CHOICE)
/* case ITEM_SETUP_FAI:
lcdDrawText(MENUS_MARGIN_LEFT, y, "FAI Mode");
+5 -7
View File
@@ -49,12 +49,6 @@ static const lv_coord_t col_dsc[] = {LV_GRID_FR(7), LV_GRID_FR(15), LV_GRID_FR(9
static const lv_coord_t row_dsc[] = {LV_GRID_CONTENT, LV_GRID_TEMPLATE_LAST};
#if defined(PPM_UNIT_PERCENT_PREC1)
#define PPM_PRECISION PREC1
#else
#define PPM_PRECISION 0
#endif
void RadioTrainerPage::build(FormWindow * form)
{
FlexGridLayout grid(col_dsc, row_dsc, 2);
@@ -85,9 +79,13 @@ void RadioTrainerPage::build(FormWindow * form)
line->padBottom(8);
#endif
LcdFlags flags = LEFT | COLOR_THEME_PRIMARY1;
if (g_eeGeneral.ppmunit == PPM_PERCENT_PREC1)
flags |= PREC1;
new DynamicNumber<int16_t>(line, rect_t{},
[=]() { return (trainerInput[i] - g_eeGeneral.trainer.calib[i]) * 2; },
LEFT | PPM_PRECISION | COLOR_THEME_PRIMARY1);
flags);
}
auto line = form->newLine(&grid);
@@ -492,11 +492,11 @@ void drawSourceCustomValue(coord_t x, coord_t y, source_t source, int32_t value,
lcdDrawNumber(x, y, calcRESXto100(value), flags);
}
else if (source <= MIXSRC_LAST_CH) {
#if defined(PPM_UNIT_PERCENT_PREC1)
lcdDrawNumber(x, y, calcRESXto1000(value), flags|PREC1);
#else
lcdDrawNumber(x, y, calcRESXto100(value), flags);
#endif
if (g_eeGeneral.ppmunit == PPM_PERCENT_PREC1) {
lcdDrawNumber(x, y, calcRESXto1000(value), flags|PREC1);
} else {
lcdDrawNumber(x, y, calcRESXto100(value), flags);
}
}
else {
lcdDrawNumber(x, y, value, flags);
@@ -96,11 +96,11 @@ void menuRadioTrainer(event_t event)
int32_t chVal = trainerInput[i] - g_eeGeneral.trainer.calib[i];
chVal *= g_eeGeneral.trainer.mix[i].studWeight * 10;
chVal /= 512;
#if defined (PPM_UNIT_PERCENT_PREC1)
lcdDrawNumber(x, MENU_HEADER_HEIGHT+1+6*FH, chVal, PREC1|RIGHT);
#else
lcdDrawNumber(x, MENU_HEADER_HEIGHT+1+6*FH, chVal / 10, RIGHT);
#endif
if (g_eeGeneral.ppmunit == PPM_PERCENT_PREC1) {
lcdDrawNumber(x, MENU_HEADER_HEIGHT+1+6*FH, chVal, PREC1|RIGHT);
} else {
lcdDrawNumber(x, MENU_HEADER_HEIGHT+1+6*FH, chVal / 10, RIGHT);
}
}
if (attr) {
-3
View File
@@ -86,9 +86,6 @@ static const char * const options[] = {
#if !defined(OVERRIDE_CHANNEL_FUNCTION)
"nooverridech",
#endif
#if defined(PPM_UNIT_US)
"ppmus",
#endif
#if defined(NO_RAS)
"noras",
#endif
@@ -275,7 +275,7 @@ static const struct YamlNode struct_RadioData[] = {
YAML_UNSIGNED( "manuallyEdited", 1 ),
YAML_SIGNED( "timezoneMinutes", 3 ),
YAML_ENUM("hatsMode", 2, enum_HatsMode),
YAML_PADDING( 2 ),
YAML_UNSIGNED( "ppmunit", 2 ),
YAML_CUSTOM("semver",nullptr,w_semver),
YAML_CUSTOM("board",nullptr,w_board),
YAML_ARRAY("calib", 48, 12, struct_CalibData, NULL),
@@ -286,7 +286,7 @@ static const struct YamlNode struct_RadioData[] = {
YAML_UNSIGNED( "manuallyEdited", 1 ),
YAML_SIGNED( "timezoneMinutes", 3 ),
YAML_ENUM("hatsMode", 2, enum_HatsMode),
YAML_PADDING( 2 ),
YAML_UNSIGNED( "ppmunit", 2 ),
YAML_CUSTOM("semver",nullptr,w_semver),
YAML_CUSTOM("board",nullptr,w_board),
YAML_ARRAY("calib", 48, 22, struct_CalibData, NULL),
@@ -275,7 +275,7 @@ static const struct YamlNode struct_RadioData[] = {
YAML_UNSIGNED( "manuallyEdited", 1 ),
YAML_SIGNED( "timezoneMinutes", 3 ),
YAML_ENUM("hatsMode", 2, enum_HatsMode),
YAML_PADDING( 2 ),
YAML_UNSIGNED( "ppmunit", 2 ),
YAML_CUSTOM("semver",nullptr,w_semver),
YAML_CUSTOM("board",nullptr,w_board),
YAML_ARRAY("calib", 48, 12, struct_CalibData, NULL),
@@ -275,7 +275,7 @@ static const struct YamlNode struct_RadioData[] = {
YAML_UNSIGNED( "manuallyEdited", 1 ),
YAML_SIGNED( "timezoneMinutes", 3 ),
YAML_ENUM("hatsMode", 2, enum_HatsMode),
YAML_PADDING( 2 ),
YAML_UNSIGNED( "ppmunit", 2 ),
YAML_CUSTOM("semver",nullptr,w_semver),
YAML_CUSTOM("board",nullptr,w_board),
YAML_ARRAY("calib", 48, 12, struct_CalibData, NULL),
@@ -294,7 +294,7 @@ static const struct YamlNode struct_RadioData[] = {
YAML_UNSIGNED( "manuallyEdited", 1 ),
YAML_SIGNED( "timezoneMinutes", 3 ),
YAML_ENUM("hatsMode", 2, enum_HatsMode),
YAML_PADDING( 2 ),
YAML_UNSIGNED( "ppmunit", 2 ),
YAML_CUSTOM("semver",nullptr,w_semver),
YAML_CUSTOM("board",nullptr,w_board),
YAML_ARRAY("calib", 48, 22, struct_CalibData, NULL),
@@ -294,7 +294,7 @@ static const struct YamlNode struct_RadioData[] = {
YAML_UNSIGNED( "manuallyEdited", 1 ),
YAML_SIGNED( "timezoneMinutes", 3 ),
YAML_ENUM("hatsMode", 2, enum_HatsMode),
YAML_PADDING( 2 ),
YAML_UNSIGNED( "ppmunit", 2 ),
YAML_CUSTOM("semver",nullptr,w_semver),
YAML_CUSTOM("board",nullptr,w_board),
YAML_ARRAY("calib", 48, 22, struct_CalibData, NULL),
@@ -275,7 +275,7 @@ static const struct YamlNode struct_RadioData[] = {
YAML_UNSIGNED( "manuallyEdited", 1 ),
YAML_SIGNED( "timezoneMinutes", 3 ),
YAML_ENUM("hatsMode", 2, enum_HatsMode),
YAML_PADDING( 2 ),
YAML_UNSIGNED( "ppmunit", 2 ),
YAML_CUSTOM("semver",nullptr,w_semver),
YAML_CUSTOM("board",nullptr,w_board),
YAML_ARRAY("calib", 48, 12, struct_CalibData, NULL),
@@ -275,7 +275,7 @@ static const struct YamlNode struct_RadioData[] = {
YAML_UNSIGNED( "manuallyEdited", 1 ),
YAML_SIGNED( "timezoneMinutes", 3 ),
YAML_ENUM("hatsMode", 2, enum_HatsMode),
YAML_PADDING( 2 ),
YAML_UNSIGNED( "ppmunit", 2 ),
YAML_CUSTOM("semver",nullptr,w_semver),
YAML_CUSTOM("board",nullptr,w_board),
YAML_ARRAY("calib", 48, 12, struct_CalibData, NULL),
@@ -275,7 +275,7 @@ static const struct YamlNode struct_RadioData[] = {
YAML_UNSIGNED( "manuallyEdited", 1 ),
YAML_SIGNED( "timezoneMinutes", 3 ),
YAML_ENUM("hatsMode", 2, enum_HatsMode),
YAML_PADDING( 2 ),
YAML_UNSIGNED( "ppmunit", 2 ),
YAML_CUSTOM("semver",nullptr,w_semver),
YAML_CUSTOM("board",nullptr,w_board),
YAML_ARRAY("calib", 48, 12, struct_CalibData, NULL),
@@ -277,7 +277,7 @@ static const struct YamlNode struct_RadioData[] = {
YAML_UNSIGNED( "manuallyEdited", 1 ),
YAML_SIGNED( "timezoneMinutes", 3 ),
YAML_ENUM("hatsMode", 2, enum_HatsMode),
YAML_PADDING( 2 ),
YAML_UNSIGNED( "ppmunit", 2 ),
YAML_CUSTOM("semver",nullptr,w_semver),
YAML_CUSTOM("board",nullptr,w_board),
YAML_ARRAY("calib", 48, 12, struct_CalibData, NULL),
+7 -7
View File
@@ -889,13 +889,13 @@ char *getSourceCustomValueString(char (&dest)[L], source_t source, int32_t val,
BitmapBuffer::formatNumberAsString(dest, len, val, flags);
}
else if (source <= MIXSRC_LAST_CH) {
#if defined(PPM_UNIT_PERCENT_PREC1)
val = calcRESXto1000(val);
BitmapBuffer::formatNumberAsString(dest, len, val, flags | PREC1);
#else
val = calcRESXto100(val);
BitmapBuffer::formatNumberAsString(dest, len, val, flags);
#endif
if (g_eeGeneral.ppmunit == PPM_PERCENT_PREC1) {
val = calcRESXto1000(val);
BitmapBuffer::formatNumberAsString(dest, len, val, flags | PREC1);
} else {
val = calcRESXto100(val);
BitmapBuffer::formatNumberAsString(dest, len, val, flags);
}
}
else {
BitmapBuffer::formatNumberAsString(dest, len, val, flags);
+2
View File
@@ -102,6 +102,7 @@ ISTR(FSGROUPS);
ISTR(ADCFILTERVALUES);
ISTR(TIMER_DIR);
ISTR(PREFLIGHT_POTSLIDER_CHECK);
ISTR(PPMUNIT);
#if defined(HELI)
ISTR(VSWASHTYPE);
@@ -385,6 +386,7 @@ const char STR_BATT_CALIB[] = TR_BATT_CALIB;
const char STR_VOLTAGE[] = TR_VOLTAGE;
const char STR_CURRENT_CALIB[] = TR_CURRENT_CALIB;
const char STR_UNITS_SYSTEM[] = TR_UNITS_SYSTEM;
const char STR_UNITS_PPM[] = TR_UNITS_PPM;
const char STR_VOICE_LANGUAGE[] = TR_VOICE_LANGUAGE;
const char STR_MODELIDUSED[] = TR_MODELIDUSED;
const char STR_MODELIDUNIQUE[] = TR_MODELIDUNIQUE;
+2
View File
@@ -240,6 +240,7 @@ extern const char STR_FILE_SIZE[];
extern const char STR_FILE_OPEN[];
extern const char* const STR_TIMER_MODES[];
extern const char* const STR_MONTHS[];
extern const char* const STR_PPMUNIT[];
extern const char STR_BLUETOOTH[];
extern const char STR_BLUETOOTH_DISC[];
@@ -614,6 +615,7 @@ extern const char STR_BATT_CALIB[];
extern const char STR_VOLTAGE[];
extern const char STR_CURRENT_CALIB[];
extern const char STR_UNITS_SYSTEM[];
extern const char STR_UNITS_PPM[];
extern const char STR_VOICE_LANGUAGE[];
extern const char STR_MODELIDUSED[];
extern const char STR_MODELIDUNIQUE[];
+2
View File
@@ -204,6 +204,7 @@
#define TR_TEXT_SIZE "标准","小","较小","中等","双倍"
#define TR_SUBTRIMMODES STR_CHAR_DELTA "(中点)", "=(整体)"
#define TR_TIMER_DIR TR("Remain", "Show Remain"), TR("Elaps.", "Show Elapsed")
#define TR_PPMUNIT "0.--","0.0","us"
#if defined(COLORLCD)
#if defined(BOLD)
@@ -796,6 +797,7 @@
#define TR_JACK_MODE "教练插口模式"
#define TR_VOICE_LANGUAGE "播报语言"
#define TR_UNITS_SYSTEM "单位"
#define TR_UNITS_PPM "PPM Units"
#define TR_EDIT "编辑"
#define TR_INSERT_BEFORE "在本条前插入"
#define TR_INSERT_AFTER "在本条后插入"
+2
View File
@@ -216,6 +216,7 @@
#define TR_VCELLINDEX "Nízký","1","2","3","4","5","6","7","8","Nejvíce","Delta"
#define TR_SUBTRIMMODES STR_CHAR_DELTA"(pouze středy)","= (symetrický)"
#define TR_TIMER_DIR TR("Zbývající", "Zobrazit zbývající"), TR("Uplynulý", "Zobrazit uplynulý")
#define TR_PPMUNIT "0.--","0.0","us"
// ZERO TERMINATED STRINGS
@@ -813,6 +814,7 @@
#define TR_JACK_MODE "Režim Jack"
#define TR_VOICE_LANGUAGE "Jazyk hlasu"
#define TR_UNITS_SYSTEM "Jednotky"
#define TR_UNITS_PPM "PPM Units"
#define TR_EDIT "Upravit"
#define TR_INSERT_BEFORE "Vložit před"
#define TR_INSERT_AFTER "Vložit za"
+2
View File
@@ -212,6 +212,7 @@
#define TR_TEXT_SIZE "Standard","Tynd","Lille","Medium","Dobbelt"
#define TR_SUBTRIMMODES STR_CHAR_DELTA " (center kun)","= (symmetrisk)"
#define TR_TIMER_DIR TR("Rest", "Vis rest"), TR("Gået tid", "Vis gået tid")
#define TR_PPMUNIT "0.--","0.0","us"
#if defined(COLORLCD)
#if defined(BOLD)
@@ -812,6 +813,7 @@
#define TR_JACK_MODE "Jack tilstand"
#define TR_VOICE_LANGUAGE "Stemme sprog"
#define TR_UNITS_SYSTEM "Enheder"
#define TR_UNITS_PPM "PPM Units"
#define TR_EDIT "Rediger"
#define TR_INSERT_BEFORE "Insæt før"
#define TR_INSERT_AFTER "Insæt efter"
+2
View File
@@ -207,6 +207,7 @@
#define TR_TEXT_SIZE "Standard","Winzig","Klein","Mittel","Gross"
#define TR_SUBTRIMMODES STR_CHAR_DELTA" (center only)","= (symetrical)"
#define TR_TIMER_DIR TR("Rückw.", "Rückwärts"), TR("Vorwä.", "Vorwärts")
#define TR_PPMUNIT "0.--","0.0","us"
// ZERO TERMINATED STRINGS
@@ -801,6 +802,7 @@
#define TR_JACK_MODE "Jack Mode"
#define TR_VOICE_LANGUAGE "Sprachansagen"
#define TR_UNITS_SYSTEM "Einheiten"
#define TR_UNITS_PPM "PPM Units"
#define TR_EDIT "Zeile Editieren"
#define TR_INSERT_BEFORE "Neue Zeile davor"
#define TR_INSERT_AFTER "Neue Zeile danach"
+2
View File
@@ -209,6 +209,7 @@
#define TR_TEXT_SIZE "Standard","Tiny","Small","Mid","Double"
#define TR_SUBTRIMMODES STR_CHAR_DELTA " (center only)","= (symmetrical)"
#define TR_TIMER_DIR TR("Remain", "Show Remain"), TR("Elaps.", "Show Elapsed")
#define TR_PPMUNIT "0.--","0.0","us"
#if defined(COLORLCD)
#if defined(BOLD)
@@ -807,6 +808,7 @@
#define TR_JACK_MODE "Jack mode"
#define TR_VOICE_LANGUAGE "Voice language"
#define TR_UNITS_SYSTEM "Units"
#define TR_UNITS_PPM "PPM Units"
#define TR_EDIT "Edit"
#define TR_INSERT_BEFORE "Insert before"
#define TR_INSERT_AFTER "Insert after"
+2
View File
@@ -205,6 +205,7 @@
#define TR_TEXT_SIZE "Normal","Muy pequeño","Pequeño","Medio","Doble"
#define TR_SUBTRIMMODES STR_CHAR_DELTA " (center only)","= (symetrical)"
#define TR_TIMER_DIR TR("Remain", "Show Remain"), TR("Elaps.", "Show Elapsed")
#define TR_PPMUNIT "0.--","0.0","us"
#if defined(COLORLCD)
#if defined(BOLD)
@@ -802,6 +803,7 @@
#define TR_JACK_MODE "Modo Jack"
#define TR_VOICE_LANGUAGE "Idioma voces"
#define TR_UNITS_SYSTEM "Unidades"
#define TR_UNITS_PPM "PPM Units"
#define TR_EDIT "Editar"
#define TR_INSERT_BEFORE "Insertar antes"
#define TR_INSERT_AFTER "Insertar después"
+2
View File
@@ -215,6 +215,7 @@
#define TR_VCELLINDEX "Alin","1","2","3","4","5","6","7","8","Korkein","Ero"
#define TR_SUBTRIMMODES STR_CHAR_DELTA" (center only)","= (symetrical)"
#define TR_TIMER_DIR TR("Remain", "Show Remain"), TR("Elaps.", "Show Elapsed")
#define TR_PPMUNIT "0.--","0.0","us"
#if defined(COLORLCD)
#if defined(BOLD)
@@ -817,6 +818,7 @@
#define TR_JACK_MODE "Jack Mode"
#define TR_VOICE_LANGUAGE "Äänen kieli"
#define TR_UNITS_SYSTEM "Units"
#define TR_UNITS_PPM "PPM Units"
#define TR_EDIT "Edit"
#define TR_INSERT_BEFORE "Insert Before"
#define TR_INSERT_AFTER "Insert After"
+2
View File
@@ -216,6 +216,7 @@
#define TR_VCELLINDEX "Mini.","1","2","3","4","5","6","7","8","Maxi.","Diff."
#define TR_SUBTRIMMODES STR_CHAR_DELTA " (centre seulement)","= (symétrique)"
#define TR_TIMER_DIR TR("Reste", "Voir restant"), TR("Écoulé", "Voir écoulé")
#define TR_PPMUNIT "0.--","0.0","us"
// ZERO TERMINATED STRINGS
@@ -813,6 +814,7 @@
#define TR_JACK_MODE "Mode Jack"
#define TR_VOICE_LANGUAGE TR("Langue voix", "Langue annonces vocales")
#define TR_UNITS_SYSTEM "Unités"
#define TR_UNITS_PPM "PPM Units"
#define TR_EDIT "Éditer"
#define TR_INSERT_BEFORE "Insérer avant"
#define TR_INSERT_AFTER "Insérer après"
+2
View File
@@ -214,6 +214,7 @@
#define TR_TEXT_SIZE "Standard","Tiny","Small","Mid","Double"
#define TR_SUBTRIMMODES STR_CHAR_DELTA " (center only)","= (symmetrical)"
#define TR_TIMER_DIR TR("Remain", "Show Remain"), TR("Elaps.", "Show Elapsed")
#define TR_PPMUNIT "0.--","0.0","us"
#if defined(COLORLCD)
#if defined(BOLD)
@@ -812,6 +813,7 @@
#define TR_JACK_MODE "Jack mode"
#define TR_VOICE_LANGUAGE "שפת שמע"
#define TR_UNITS_SYSTEM "יחידות"
#define TR_UNITS_PPM "PPM Units"
#define TR_EDIT "ערוך"
#define TR_INSERT_BEFORE "כלול לפני"
#define TR_INSERT_AFTER "כלול אחרי"
+2
View File
@@ -209,6 +209,7 @@
#define TR_TEXT_SIZE "Standard","Minusc.","Piccolo","Medio","Doppio"
#define TR_SUBTRIMMODES STR_CHAR_DELTA" (center only)","= (symetrical)"
#define TR_TIMER_DIR TR("Riman.", "Mostra Riman."), TR("Trasc.", "Mostra Trascorso")
#define TR_PPMUNIT "0.--","0.0","us"
#if defined(COLORLCD)
#if defined(BOLD)
@@ -806,6 +807,7 @@
#define TR_JACK_MODE "Modo JACK"
#define TR_VOICE_LANGUAGE "Lingua vocale"
#define TR_UNITS_SYSTEM "Unità"
#define TR_UNITS_PPM "PPM Units"
#define TR_EDIT "Modifica"
#define TR_INSERT_BEFORE "Inserisci prima"
#define TR_INSERT_AFTER "Inserisci dopo"
+2
View File
@@ -209,6 +209,7 @@
#define TR_TEXT_SIZE "標準","極小","小","中","2倍"
#define TR_SUBTRIMMODES STR_CHAR_DELTA " (中央)","= (全体)"
#define TR_TIMER_DIR TR("Remain", "残り時間表示"), TR("Elaps.", "経過時間表示")
#define TR_PPMUNIT "0.--","0.0","us"
#if defined(COLORLCD)
#if defined(BOLD)
@@ -802,6 +803,7 @@
#define TR_JACK_MODE "Jackモード"
#define TR_VOICE_LANGUAGE "音声言語"
#define TR_UNITS_SYSTEM "ユニット"
#define TR_UNITS_PPM "PPM Units"
#define TR_EDIT "編集"
#define TR_INSERT_BEFORE "前に挿入"
#define TR_INSERT_AFTER "後に挿入"
+2
View File
@@ -206,6 +206,7 @@
#define TR_TEXT_SIZE "Standard","Tiny","Small","Mid","Double"
#define TR_SUBTRIMMODES STR_CHAR_DELTA " (center only)","= (symetrical)"
#define TR_TIMER_DIR TR("Remain", "Show Remain"), TR("Elaps.", "Show Elapsed")
#define TR_PPMUNIT "0.--","0.0","us"
#if defined(COLORLCD)
#if defined(BOLD)
@@ -803,6 +804,7 @@
#define TR_JACK_MODE "Jack Mode"
#define TR_VOICE_LANGUAGE "Taal"
#define TR_UNITS_SYSTEM "Eenheden"
#define TR_UNITS_PPM "PPM Units"
#define TR_EDIT "Wijzigen"
#define TR_INSERT_BEFORE "Invoegen ervoor"
#define TR_INSERT_AFTER "Invoegen erna"
+2
View File
@@ -205,6 +205,7 @@
#define TR_TEXT_SIZE "Standard","Tiny","Small","Mid","Double"
#define TR_SUBTRIMMODES STR_CHAR_DELTA" (center only)","= (symetrical)"
#define TR_TIMER_DIR TR("Remain", "Show Remain"), TR("Elaps.", "Show Elapsed")
#define TR_PPMUNIT "0.--","0.0","us"
#if defined(COLORLCD)
#if defined(BOLD)
@@ -799,6 +800,7 @@
#define TR_JACK_MODE "Tryb Jack"
#define TR_VOICE_LANGUAGE "Język głosu"
#define TR_UNITS_SYSTEM "Jednostki"
#define TR_UNITS_PPM "PPM Units"
#define TR_EDIT "Edytuj"
#define TR_INSERT_BEFORE "Wstaw przed"
#define TR_INSERT_AFTER "Wstaw za"
+2
View File
@@ -212,6 +212,7 @@
#define TR_TEXT_SIZE "Padrao","Minusculo","Pequeno","Medio","Dobro"
#define TR_SUBTRIMMODES STR_CHAR_DELTA " (center only)","= (symmetrical)"
#define TR_TIMER_DIR TR("Restan", "Restante"), TR("Passd.", "Passado")
#define TR_PPMUNIT "0.--","0.0","us"
#if defined(COLORLCD)
#if defined(BOLD)
@@ -810,6 +811,7 @@
#define TR_JACK_MODE "Jack mode"
#define TR_VOICE_LANGUAGE "Idoma da Voz"
#define TR_UNITS_SYSTEM "Unidades"
#define TR_UNITS_PPM "PPM Units"
#define TR_EDIT "Editar"
#define TR_INSERT_BEFORE "Inserir antes"
#define TR_INSERT_AFTER "Inserir depois"
+2
View File
@@ -221,6 +221,7 @@
#define TR_VCELLINDEX "Lägsta","1","2","3","4","5","6","7","8","Högsta","Skillnad"
#define TR_SUBTRIMMODES STR_CHAR_DELTA " (endast center)","= (symmetrisk)"
#define TR_TIMER_DIR TR("Återst.", "Visa återstående"), TR("Förbrukad", "Visa förbrukad")
#define TR_PPMUNIT "0.--","0.0","us"
#if defined(COLORLCD)
#if defined(BOLD)
@@ -824,6 +825,7 @@
#define TR_JACK_MODE "Uttagsläge"
#define TR_VOICE_LANGUAGE "Röstspråk"
#define TR_UNITS_SYSTEM "Enheter"
#define TR_UNITS_PPM "PPM Units"
#define TR_EDIT "Redigera"
#define TR_INSERT_BEFORE "Addera före"
#define TR_INSERT_AFTER "Addera efter"
+2
View File
@@ -210,6 +210,7 @@
#define TR_TEXT_SIZE "標準","小","較小","中等","雙倍"
#define TR_SUBTRIMMODES STR_CHAR_DELTA "(中点)","=(整體)"
#define TR_TIMER_DIR TR("Remain", "Show Remain"), TR("Elaps.", "Show Elapsed")
#define TR_PPMUNIT "0.--","0.0","us"
#if defined(COLORLCD)
#if defined(BOLD)
@@ -802,6 +803,7 @@
#define TR_JACK_MODE "教練插口模式"
#define TR_VOICE_LANGUAGE "播報語言"
#define TR_UNITS_SYSTEM "單位"
#define TR_UNITS_PPM "PPM Units"
#define TR_EDIT "編輯"
#define TR_INSERT_BEFORE "在本條前插入"
#define TR_INSERT_AFTER "在本條後插入"
-24
View File
@@ -25,7 +25,6 @@ tts_languages = {
options_sky9x = {
"heli": ("HELI", "YES", "NO"),
"ppmus": ("PPM_UNIT", "US", "PERCENT_PREC1"),
"gvars": ("GVARS", "YES", "NO"),
"potscroll": ("NAVIGATION", "POTS", "NO"),
"autosource": ("AUTOSOURCE", "YES", "NO"),
@@ -45,7 +44,6 @@ options_sky9x = {
options_ar9x = {
"heli": ("HELI", "YES", "NO"),
"ppmus": ("PPM_UNIT", "US", "PERCENT_PREC1"),
"gvars": ("GVARS", "YES", "NO"),
"potscroll": ("NAVIGATION", "POTS", "NO"),
"autosource": ("AUTOSOURCE", "YES", "NO"),
@@ -66,7 +64,6 @@ options_ar9x = {
options_taranis_x9d = {
"noheli": ("HELI", "NO", "YES"),
"ppmus": ("PPM_UNIT", "US", "PERCENT_PREC1"),
"lua": ("LUA", "YES", "NO_MODEL_SCRIPTS"),
"haptic": ("HAPTIC", "YES", "NO"),
"nogvars": ("GVARS", "NO", "YES"),
@@ -82,7 +79,6 @@ options_taranis_x9d = {
options_taranis_x9dp = {
"noheli": ("HELI", "NO", "YES"),
"ppmus": ("PPM_UNIT", "US", "PERCENT_PREC1"),
"lua": ("LUA", "YES", "NO_MODEL_SCRIPTS"),
"nogvars": ("GVARS", "NO", "YES"),
"sqt5font": ("FONT", "SQT5", None),
@@ -96,7 +92,6 @@ options_taranis_x9dp = {
}
options_taranis_x7 = {
"noheli": ("HELI", "NO", "YES"),
"ppmus": ("PPM_UNIT", "US", "PERCENT_PREC1"),
"lua": ("LUA", "YES", "NO_MODEL_SCRIPTS"),
"nogvars": ("GVARS", "NO", "YES"),
"sqt5font": ("FONT", "SQT5", None),
@@ -109,7 +104,6 @@ options_taranis_x7 = {
options_taranis_x9lite = {
"noheli": ("HELI", "NO", "YES"),
"ppmus": ("PPM_UNIT", "US", "PERCENT_PREC1"),
"lua": ("LUA", "YES", "NO_MODEL_SCRIPTS"),
"nogvars": ("GVARS", "NO", "YES"),
"sqt5font": ("FONT", "SQT5", None),
@@ -123,7 +117,6 @@ options_taranis_x9lite = {
options_taranis_xlite = {
"noheli": ("HELI", "NO", "YES"),
"ppmus": ("PPM_UNIT", "US", "PERCENT_PREC1"),
"lua": ("LUA", "YES", "NO_MODEL_SCRIPTS"),
"nogvars": ("GVARS", "NO", "YES"),
"sqt5font": ("FONT", "SQT5", None),
@@ -137,7 +130,6 @@ options_taranis_xlite = {
options_taranis_xlites = {
"noheli": ("HELI", "NO", "YES"),
"ppmus": ("PPM_UNIT", "US", "PERCENT_PREC1"),
"lua": ("LUA", "YES", "NO_MODEL_SCRIPTS"),
"nogvars": ("GVARS", "NO", "YES"),
"sqt5font": ("FONT", "SQT5", None),
@@ -151,7 +143,6 @@ options_taranis_xlites = {
options_taranis_x9e = {
"noheli": ("HELI", "NO", "YES"),
"ppmus": ("PPM_UNIT", "US", "PERCENT_PREC1"),
"lua": ("LUA", "YES", "NO_MODEL_SCRIPTS"),
"nogvars": ("GVARS", "NO", "YES"),
"sqt5font": ("FONT", "SQT5", None),
@@ -167,7 +158,6 @@ options_taranis_x9e = {
options_horus_x12s = {
"noheli": ("HELI", "NO", "YES"),
"ppmus": ("PPM_UNIT", "US", "PERCENT_PREC1"),
"lua": ("LUA", "YES", "NO_MODEL_SCRIPTS"),
"nogvars": ("GVARS", "NO", "YES"),
"faimode": ("FAI", "YES", None),
@@ -182,7 +172,6 @@ options_horus_x12s = {
options_horus_x10 = {
"noheli": ("HELI", "NO", "YES"),
"ppmus": ("PPM_UNIT", "US", "PERCENT_PREC1"),
"lua": ("LUA", "YES", "NO_MODEL_SCRIPTS"),
"nogvars": ("GVARS", "NO", "YES"),
"faimode": ("FAI", "YES", None),
@@ -196,7 +185,6 @@ options_horus_x10 = {
options_horus_x10express = {
"noheli": ("HELI", "NO", "YES"),
"ppmus": ("PPM_UNIT", "US", "PERCENT_PREC1"),
"lua": ("LUA", "YES", "NO_MODEL_SCRIPTS"),
"luac": ("LUA_COMPILER", "YES", "NO"),
"nogvars": ("GVARS", "NO", "YES"),
@@ -209,7 +197,6 @@ options_horus_x10express = {
options_betafpv_lr3pro = {
"noheli": ("HELI", "NO", "YES"),
"ppmus": ("PPM_UNIT", "US", "PERCENT_PREC1"),
"lua": ("LUA", "YES", "NO_MODEL_SCRIPTS"),
"nogvars": ("GVARS", "NO", "YES"),
"faimode": ("FAI", "YES", None),
@@ -220,7 +207,6 @@ options_betafpv_lr3pro = {
options_jumper_tlite = {
"noheli": ("HELI", "NO", "YES"),
"ppmus": ("PPM_UNIT", "US", "PERCENT_PREC1"),
"lua": ("LUA", "YES", "NO_MODEL_SCRIPTS"),
"nogvars": ("GVARS", "NO", "YES"),
"faimode": ("FAI", "YES", None),
@@ -232,7 +218,6 @@ options_jumper_tlite = {
options_jumper_t12 = {
"noheli": ("HELI", "NO", "YES"),
"ppmus": ("PPM_UNIT", "US", "PERCENT_PREC1"),
"lua": ("LUA", "YES", "NO_MODEL_SCRIPTS"),
"nogvars": ("GVARS", "NO", "YES"),
"faimode": ("FAI", "YES", None),
@@ -245,7 +230,6 @@ options_jumper_t12 = {
options_jumper_t16 = {
"noheli": ("HELI", "NO", "YES"),
"ppmus": ("PPM_UNIT", "US", "PERCENT_PREC1"),
"lua": ("LUA", "YES", "NO_MODEL_SCRIPTS"),
"nogvars": ("GVARS", "NO", "YES"),
"faimode": ("FAI", "YES", None),
@@ -259,7 +243,6 @@ options_jumper_t16 = {
options_jumper_t18 = {
"noheli": ("HELI", "NO", "YES"),
"ppmus": ("PPM_UNIT", "US", "PERCENT_PREC1"),
"lua": ("LUA", "YES", "NO_MODEL_SCRIPTS"),
"nogvars": ("GVARS", "NO", "YES"),
"faimode": ("FAI", "YES", None),
@@ -272,7 +255,6 @@ options_jumper_t18 = {
options_radiomaster_tx12 = {
"noheli": ("HELI", "NO", "YES"),
"ppmus": ("PPM_UNIT", "US", "PERCENT_PREC1"),
"lua": ("LUA", "YES", "NO_MODEL_SCRIPTS"),
"nogvars": ("GVARS", "NO", "YES"),
"faimode": ("FAI", "YES", None),
@@ -284,7 +266,6 @@ options_radiomaster_tx12 = {
options_radiomaster_tx12mk2 = {
"noheli": ("HELI", "NO", "YES"),
"ppmus": ("PPM_UNIT", "US", "PERCENT_PREC1"),
"lua": ("LUA", "YES", "NO_MODEL_SCRIPTS"),
"nogvars": ("GVARS", "NO", "YES"),
"faimode": ("FAI", "YES", None),
@@ -297,7 +278,6 @@ options_radiomaster_tx12mk2 = {
options_radiomaster_zorro = {
"noheli": ("HELI", "NO", "YES"),
"ppmus": ("PPM_UNIT", "US", "PERCENT_PREC1"),
"lua": ("LUA", "YES", "NO_MODEL_SCRIPTS"),
"nogvars": ("GVARS", "NO", "YES"),
"faimode": ("FAI", "YES", None),
@@ -310,7 +290,6 @@ options_radiomaster_zorro = {
options_radiomaster_boxer = {
"noheli": ("HELI", "NO", "YES"),
"ppmus": ("PPM_UNIT", "US", "PERCENT_PREC1"),
"lua": ("LUA", "YES", "NO_MODEL_SCRIPTS"),
"nogvars": ("GVARS", "NO", "YES"),
"faimode": ("FAI", "YES", None),
@@ -323,7 +302,6 @@ options_radiomaster_boxer = {
options_radiomaster_t8 = {
"noheli": ("HELI", "NO", "YES"),
"ppmus": ("PPM_UNIT", "US", "PERCENT_PREC1"),
"lua": ("LUA", "YES", "NO_MODEL_SCRIPTS"),
"nogvars": ("GVARS", "NO", "YES"),
"faimode": ("FAI", "YES", None),
@@ -334,7 +312,6 @@ options_radiomaster_t8 = {
options_radiomaster_tx16s = {
"noheli": ("HELI", "NO", "YES"),
"ppmus": ("PPM_UNIT", "US", "PERCENT_PREC1"),
"lua": ("LUA", "YES", "NO_MODEL_SCRIPTS"),
"nogvars": ("GVARS", "NO", "YES"),
"faimode": ("FAI", "YES", None),
@@ -348,7 +325,6 @@ options_radiomaster_tx16s = {
options_commando8_t8 = {
"noheli": ("HELI", "NO", "YES"),
"ppmus": ("PPM_UNIT", "US", "PERCENT_PREC1"),
"lua": ("LUA", "YES", "NO_MODEL_SCRIPTS"),
"nogvars": ("GVARS", "NO", "YES"),
"faimode": ("FAI", "YES", None),
+1 -1
View File
@@ -11,7 +11,7 @@
export BRANCH_NAME="main" # main|2.9|...
export RADIO_TYPE="tx16s" # tx16s|x10|x10-access|x12s|x9d|x9dp|x9lite|x9lites|x7|x7-access|t12|tx12|tx12mk2|boxer|t8|zorro|pocket|tlite|tpro|t20|lr3pro|xlite|xlites|x9dp2019|x9e|x9e-hall|t16|t18|nv14|commando8
export BUILD_OPTIONS="-DDEFAULT_MODE=2 -DGVARS=YES -DPPM_UNIT=US"
export BUILD_OPTIONS="-DDEFAULT_MODE=2 -DGVARS=YES"
echo "Building ${fw_name}"
case $RADIO_TYPE in