Merge branch 'next' into bsongis/issue_1471_Lua_read_write_SD
This commit is contained in:
+2
-2
@@ -307,7 +307,7 @@ MIXERS_MONITOR = NO
|
||||
|
||||
# Use newlib-nano
|
||||
# Values = NO, YES
|
||||
NANO = YES
|
||||
NANO = NO
|
||||
|
||||
# Use custom bin based allocator for Lua
|
||||
# Values = NO, YES
|
||||
@@ -853,7 +853,7 @@ ifeq ($(PCB), TARANIS)
|
||||
INCDIRS += targets/taranis $(THIRDPARTY) $(COOSDIR) $(COOSDIR)/kernel $(COOSDIR)/portable
|
||||
ifeq ($(PCBREV), REV9E)
|
||||
STM32LIBPATH = $(THIRDPARTY)/STM32F4xx_DSP_StdPeriph_Lib_V1.4.0/Libraries
|
||||
CPPDEFS += -DHSE_VALUE=16800000
|
||||
CPPDEFS += -DHSE_VALUE=12000000
|
||||
CPPDEFS += -DSTM32F40_41xxx
|
||||
EXTRAINCDIRS += $(STM32LIBPATH)/CMSIS/Device/ST/STM32F4xx/Include $(STM32LIBPATH)/CMSIS/Include $(STM32LIBPATH)/STM32F4xx_StdPeriph_Driver/inc
|
||||
else
|
||||
|
||||
@@ -974,6 +974,12 @@ void audioEvent(unsigned int index, unsigned int freq)
|
||||
if (index == AU_NONE)
|
||||
return;
|
||||
|
||||
#if defined(HAPTIC)
|
||||
if (index >= AU_THROTTLE_ALERT) {
|
||||
haptic.event(index); //do this before audio to help sync timings
|
||||
}
|
||||
#endif
|
||||
|
||||
if (index <= AU_ERROR || (index >= AU_WARNING1 && index < AU_FRSKY_FIRST)) {
|
||||
if (g_eeGeneral.alarmsFlash) {
|
||||
flashCounter = FLASH_DURATION;
|
||||
|
||||
@@ -58,6 +58,7 @@ bool eeModelExists(uint8_t id);
|
||||
void eeLoadModelName(uint8_t id, char *name);
|
||||
void eeLoadModel(uint8_t id);
|
||||
bool eeConvert();
|
||||
void eeErase(bool warn);
|
||||
void ConvertModel(int id, int version);
|
||||
uint8_t eeFindEmptyModel(uint8_t id, bool down);
|
||||
void selectModel(uint8_t sub);
|
||||
|
||||
+16
-13
@@ -1016,6 +1016,21 @@ void eeLoadModel(uint8_t id)
|
||||
}
|
||||
}
|
||||
|
||||
void eeErase(bool warn)
|
||||
{
|
||||
generalDefault();
|
||||
|
||||
if (warn) {
|
||||
ALERT(STR_EEPROMWARN, STR_BADEEPROMDATA, AU_BAD_EEPROM);
|
||||
}
|
||||
|
||||
MESSAGE(STR_EEPROMWARN, STR_EEPROMFORMATTING, NULL, AU_EEPROM_FORMATTING);
|
||||
EeFsFormat();
|
||||
theFile.writeRlc(FILE_GENERAL, FILE_TYP_GENERAL, (uint8_t*)&g_eeGeneral, sizeof(EEGeneral), true);
|
||||
modelDefault(0);
|
||||
theFile.writeRlc(FILE_MODEL(0), FILE_TYP_MODEL, (uint8_t*)&g_model, sizeof(g_model), true);
|
||||
}
|
||||
|
||||
// TODO merge this code with eeprom_arm.cpp one
|
||||
void eeReadAll()
|
||||
{
|
||||
@@ -1023,19 +1038,7 @@ void eeReadAll()
|
||||
EeFsck() < 0 ||
|
||||
!eeLoadGeneral())
|
||||
{
|
||||
generalDefault();
|
||||
|
||||
ALERT(STR_EEPROMWARN, STR_BADEEPROMDATA, AU_BAD_EEPROM);
|
||||
|
||||
MESSAGE(STR_EEPROMWARN, STR_EEPROMFORMATTING, NULL, AU_EEPROM_FORMATTING);
|
||||
|
||||
EeFsFormat();
|
||||
|
||||
theFile.writeRlc(FILE_GENERAL, FILE_TYP_GENERAL, (uint8_t*)&g_eeGeneral, sizeof(EEGeneral), true);
|
||||
|
||||
modelDefault(0);
|
||||
|
||||
theFile.writeRlc(FILE_MODEL(0), FILE_TYP_MODEL, (uint8_t*)&g_model, sizeof(g_model), true);
|
||||
eeErase(true);
|
||||
}
|
||||
else {
|
||||
eeLoadModelHeaders();
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 331 B After Width: | Height: | Size: 15 KiB |
@@ -355,6 +355,12 @@ void evalFunctions()
|
||||
break;
|
||||
#endif
|
||||
}
|
||||
#if defined(CPUARM)
|
||||
if (CFN_PARAM(cfn)>=FUNC_RESET_PARAM_FIRST_TELEM) {
|
||||
TelemetryItem * telemetryItem = & telemetryItems[CFN_PARAM(cfn)-FUNC_RESET_PARAM_FIRST_TELEM];
|
||||
telemetryItem->clear();
|
||||
}
|
||||
#endif
|
||||
break;
|
||||
|
||||
#if defined(CPUARM)
|
||||
|
||||
@@ -105,9 +105,6 @@ bool isInputSourceAvailable(int source)
|
||||
if (source>=MIXSRC_Rud && source<=MIXSRC_MAX)
|
||||
return true;
|
||||
|
||||
if (source>=MIXSRC_Rud && source<=MIXSRC_MAX)
|
||||
return true;
|
||||
|
||||
if (source>=MIXSRC_TrimRud && source<MIXSRC_SW1)
|
||||
return true;
|
||||
|
||||
|
||||
@@ -192,7 +192,9 @@ enum SensorFields {
|
||||
SENSOR_FIELD_PARAM2,
|
||||
SENSOR_FIELD_PARAM3,
|
||||
SENSOR_FIELD_PARAM4,
|
||||
SENSOR_FIELD_INPUT_FLAGS,
|
||||
SENSOR_FIELD_AUTOOFFSET,
|
||||
SENSOR_FIELD_FILTER,
|
||||
SENSOR_FIELD_PERSISTENT,
|
||||
SENSOR_FIELD_LOGS,
|
||||
SENSOR_FIELD_MAX
|
||||
};
|
||||
@@ -243,18 +245,21 @@ bool isSensorAvailable(int sensor)
|
||||
#define SENSOR_2ND_COLUMN (12*FW)
|
||||
#define SENSOR_3RD_COLUMN (18*FW)
|
||||
|
||||
#define SENSOR_UNIT_ROWS (sensor->type == TELEM_TYPE_CALCULATED && sensor->formula >= TELEM_FORMULA_CELL) ? HIDDEN_ROW : ((sensor->unit == UNIT_GPS || sensor->unit == UNIT_DATETIME || sensor->unit == UNIT_CELLS) ? HIDDEN_ROW : (uint8_t)0)
|
||||
#define SENSOR_PREC_ROWS (sensor->type == TELEM_TYPE_CALCULATED && sensor->formula >= TELEM_FORMULA_CELL) ? HIDDEN_ROW : ((sensor->unit == UNIT_GPS || sensor->unit == UNIT_DATETIME) ? HIDDEN_ROW : (uint8_t)0)
|
||||
#define SENSOR_PARAM1_ROWS (sensor->unit == UNIT_GPS || sensor->unit == UNIT_DATETIME || sensor->unit == UNIT_CELLS) ? HIDDEN_ROW : (uint8_t)0
|
||||
#define SENSOR_PARAM2_ROWS (sensor->unit == UNIT_GPS || sensor->unit == UNIT_DATETIME || sensor->unit == UNIT_CELLS || (sensor->type==TELEM_TYPE_CALCULATED && sensor->formula==TELEM_FORMULA_CONSUMPTION)) ? HIDDEN_ROW : (uint8_t)0
|
||||
#define SENSOR_PARAM3_ROWS (sensor->type == TELEM_TYPE_CALCULATED && sensor->formula < TELEM_FORMULA_MULTIPLY) ? (uint8_t)0 : HIDDEN_ROW
|
||||
#define SENSOR_PARAM4_ROWS (sensor->type == TELEM_TYPE_CALCULATED && sensor->formula < TELEM_FORMULA_MULTIPLY) ? (uint8_t)0 : HIDDEN_ROW
|
||||
#define SENSOR_UNIT_ROWS (sensor->isConfigurable() ? (uint8_t)0 : HIDDEN_ROW)
|
||||
#define SENSOR_PREC_ROWS (sensor->isConfigurable() ? (uint8_t)0 : HIDDEN_ROW)
|
||||
#define SENSOR_PARAM1_ROWS (sensor->unit >= UNIT_FIRST_VIRTUAL ? HIDDEN_ROW : (uint8_t)0)
|
||||
#define SENSOR_PARAM2_ROWS (sensor->unit == UNIT_RPMS || sensor->unit == UNIT_GPS || sensor->unit == UNIT_DATETIME || sensor->unit == UNIT_CELLS || (sensor->type==TELEM_TYPE_CALCULATED && (sensor->formula==TELEM_FORMULA_CONSUMPTION || sensor->formula==TELEM_FORMULA_TOTALIZE)) ? HIDDEN_ROW : (uint8_t)0)
|
||||
#define SENSOR_PARAM3_ROWS (sensor->type == TELEM_TYPE_CALCULATED && sensor->formula < TELEM_FORMULA_MULTIPLY) ? (uint8_t)0 : HIDDEN_ROW
|
||||
#define SENSOR_PARAM4_ROWS (sensor->type == TELEM_TYPE_CALCULATED && sensor->formula < TELEM_FORMULA_MULTIPLY) ? (uint8_t)0 : HIDDEN_ROW
|
||||
#define SENSOR_AUTOOFFSET_ROWS (sensor->isConfigurable() ? (uint8_t)0 : HIDDEN_ROW)
|
||||
#define SENSOR_FILTER_ROWS (sensor->isConfigurable() ? (uint8_t)0 : HIDDEN_ROW)
|
||||
#define SENSOR_PERSISTENT_ROWS (sensor->isConfigurable() ? (uint8_t)0 : HIDDEN_ROW)
|
||||
|
||||
void menuModelSensor(uint8_t event)
|
||||
{
|
||||
TelemetrySensor * sensor = & g_model.telemetrySensors[s_currIdx];
|
||||
|
||||
SUBMENU(STR_MENUSENSOR, SENSOR_FIELD_MAX, {0, 0, sensor->type == TELEM_TYPE_CALCULATED ? (uint8_t)0 : (uint8_t)1, SENSOR_UNIT_ROWS, SENSOR_PREC_ROWS, SENSOR_PARAM1_ROWS, SENSOR_PARAM2_ROWS, SENSOR_PARAM3_ROWS, SENSOR_PARAM4_ROWS, 0 });
|
||||
SUBMENU(STR_MENUSENSOR, SENSOR_FIELD_MAX, {0, 0, sensor->type == TELEM_TYPE_CALCULATED ? (uint8_t)0 : (uint8_t)1, SENSOR_UNIT_ROWS, SENSOR_PREC_ROWS, SENSOR_PARAM1_ROWS, SENSOR_PARAM2_ROWS, SENSOR_PARAM3_ROWS, SENSOR_PARAM4_ROWS, SENSOR_AUTOOFFSET_ROWS, SENSOR_FILTER_ROWS, SENSOR_PERSISTENT_ROWS, 0 });
|
||||
lcd_outdezAtt(PSIZE(TR_MENUSENSOR)*FW+1, 0, s_currIdx+1, INVERS|LEFT);
|
||||
|
||||
putsTelemetryChannelValue(SENSOR_2ND_COLUMN, 0, s_currIdx, getValue(MIXSRC_FIRST_TELEM+3*s_currIdx), LEFT);
|
||||
@@ -279,12 +284,13 @@ void menuModelSensor(uint8_t event)
|
||||
break;
|
||||
|
||||
case SENSOR_FIELD_TYPE:
|
||||
sensor->type = selectMenuItem(SENSOR_2ND_COLUMN, y, STR_TYPE, "\012Custom\0 Calculated", sensor->type, 0, 1, attr, event);
|
||||
sensor->type = selectMenuItem(SENSOR_2ND_COLUMN, y, NO_INDENT(STR_TYPE), STR_VSENSORTYPES, sensor->type, 0, 1, attr, event);
|
||||
if (attr && checkIncDec_Ret) {
|
||||
sensor->instance = 0;
|
||||
if (sensor->type == TELEM_TYPE_CALCULATED) {
|
||||
sensor->param = 0;
|
||||
sensor->inputFlags = 0;
|
||||
sensor->autoOffset = 0;
|
||||
sensor->filter = 0;
|
||||
}
|
||||
}
|
||||
break;
|
||||
@@ -307,7 +313,7 @@ void menuModelSensor(uint8_t event)
|
||||
}
|
||||
}
|
||||
else {
|
||||
sensor->formula = selectMenuItem(SENSOR_2ND_COLUMN, y, "Formula", "\010Add\0 Average\0Min\0 Max\0 MultiplyCell\0 ConsumptDistance", sensor->formula, 0, TELEM_FORMULA_DIST, attr, event);
|
||||
sensor->formula = selectMenuItem(SENSOR_2ND_COLUMN, y, STR_FORMULA, STR_VFORMULAS, sensor->formula, 0, TELEM_FORMULA_LAST, attr, event);
|
||||
if (attr && checkIncDec_Ret) {
|
||||
sensor->param = 0;
|
||||
if (sensor->formula == TELEM_FORMULA_CELL) {
|
||||
@@ -339,7 +345,7 @@ void menuModelSensor(uint8_t event)
|
||||
break;
|
||||
|
||||
case SENSOR_FIELD_PRECISION:
|
||||
sensor->prec = selectMenuItem(SENSOR_2ND_COLUMN, y, STR_PRECISION, "\005PREC0PREC1PREC2", sensor->prec, 0, 2, attr, event);
|
||||
sensor->prec = selectMenuItem(SENSOR_2ND_COLUMN, y, STR_PRECISION, STR_VPREC, sensor->prec, 0, 2, attr, event);
|
||||
if (attr && checkIncDec_Ret) {
|
||||
telemetryItems[s_currIdx].clear();
|
||||
}
|
||||
@@ -348,7 +354,7 @@ void menuModelSensor(uint8_t event)
|
||||
case SENSOR_FIELD_PARAM1:
|
||||
if (sensor->type == TELEM_TYPE_CALCULATED) {
|
||||
if (sensor->formula == TELEM_FORMULA_CELL) {
|
||||
lcd_putsLeft(y, "Cells sensor");
|
||||
lcd_putsLeft(y, STR_CELLSENSOR);
|
||||
putsMixerSource(SENSOR_2ND_COLUMN, y, sensor->cell.source ? MIXSRC_FIRST_TELEM+3*(sensor->cell.source-1) : 0, attr);
|
||||
if (attr) {
|
||||
sensor->cell.source = checkIncDec(event, sensor->cell.source, 0, TELEM_VALUES_MAX, EE_MODEL|NO_INCDEC_MARKS, isCellsSensor);
|
||||
@@ -356,7 +362,7 @@ void menuModelSensor(uint8_t event)
|
||||
break;
|
||||
}
|
||||
else if (sensor->formula == TELEM_FORMULA_DIST) {
|
||||
lcd_putsLeft(y, "GPS sensor");
|
||||
lcd_putsLeft(y, STR_GPSSENSOR);
|
||||
putsMixerSource(SENSOR_2ND_COLUMN, y, sensor->dist.gps ? MIXSRC_FIRST_TELEM+3*(sensor->dist.gps-1) : 0, attr);
|
||||
if (attr) {
|
||||
sensor->dist.gps = checkIncDec(event, sensor->dist.gps, 0, TELEM_VALUES_MAX, EE_MODEL|NO_INCDEC_MARKS, isGPSSensor);
|
||||
@@ -364,7 +370,7 @@ void menuModelSensor(uint8_t event)
|
||||
break;
|
||||
}
|
||||
else if (sensor->formula == TELEM_FORMULA_CONSUMPTION) {
|
||||
lcd_putsLeft(y, "Amps sensor");
|
||||
lcd_putsLeft(y, STR_CURRENTSENSOR);
|
||||
putsMixerSource(SENSOR_2ND_COLUMN, y, sensor->consumption.source ? MIXSRC_FIRST_TELEM+3*(sensor->consumption.source-1) : 0, attr);
|
||||
if (attr) {
|
||||
sensor->consumption.source = checkIncDec(event, sensor->consumption.source, 0, TELEM_VALUES_MAX, EE_MODEL|NO_INCDEC_MARKS, isCurrentSensor);
|
||||
@@ -373,24 +379,32 @@ void menuModelSensor(uint8_t event)
|
||||
}
|
||||
}
|
||||
else {
|
||||
lcd_putsLeft(y, "Ratio");
|
||||
if (attr) CHECK_INCDEC_MODELVAR(event, sensor->custom.ratio, 0, 30000);
|
||||
if (sensor->custom.ratio == 0)
|
||||
lcd_putcAtt(SENSOR_2ND_COLUMN, y, '-', attr);
|
||||
else
|
||||
lcd_outdezAtt(SENSOR_2ND_COLUMN, y, sensor->custom.ratio, LEFT|attr|PREC1);
|
||||
break;
|
||||
if (sensor->unit == UNIT_RPMS) {
|
||||
lcd_putsLeft(y, NO_INDENT(STR_BLADES));
|
||||
if (attr) CHECK_INCDEC_MODELVAR(event, sensor->custom.ratio, 1, 30000);
|
||||
lcd_outdezAtt(SENSOR_2ND_COLUMN, y, sensor->custom.ratio, LEFT|attr);
|
||||
break;
|
||||
}
|
||||
else {
|
||||
lcd_putsLeft(y, STR_RATIO);
|
||||
if (attr) CHECK_INCDEC_MODELVAR(event, sensor->custom.ratio, 0, 30000);
|
||||
if (sensor->custom.ratio == 0)
|
||||
lcd_putcAtt(SENSOR_2ND_COLUMN, y, '-', attr);
|
||||
else
|
||||
lcd_outdezAtt(SENSOR_2ND_COLUMN, y, sensor->custom.ratio, LEFT|attr|PREC1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
// no break
|
||||
|
||||
case SENSOR_FIELD_PARAM2:
|
||||
if (sensor->type == TELEM_TYPE_CALCULATED) {
|
||||
if (sensor->formula == TELEM_FORMULA_CELL) {
|
||||
sensor->cell.index = selectMenuItem(SENSOR_2ND_COLUMN, y, "Cell index", "\007Lowest\0001\0 2\0 3\0 4\0 5\0 6\0 HighestDelta\0", sensor->cell.index, 0, 8, attr, event);
|
||||
sensor->cell.index = selectMenuItem(SENSOR_2ND_COLUMN, y, STR_CELLINDEX, STR_VCELLINDEX, sensor->cell.index, 0, 8, attr, event);
|
||||
break;
|
||||
}
|
||||
else if (sensor->formula == TELEM_FORMULA_DIST) {
|
||||
lcd_putsLeft(y, "Alt sensor");
|
||||
lcd_putsLeft(y, STR_ALTSENSOR);
|
||||
putsMixerSource(SENSOR_2ND_COLUMN, y, sensor->dist.alt ? MIXSRC_FIRST_TELEM+3*(sensor->dist.alt-1) : 0, attr);
|
||||
if (attr) {
|
||||
sensor->dist.alt = checkIncDec(event, sensor->dist.alt, 0, TELEM_VALUES_MAX, EE_MODEL|NO_INCDEC_MARKS, isAltSensor);
|
||||
@@ -412,7 +426,7 @@ void menuModelSensor(uint8_t event)
|
||||
|
||||
case SENSOR_FIELD_PARAM4:
|
||||
{
|
||||
putsStrIdx(0, y, "Source", k-SENSOR_FIELD_PARAM1+1);
|
||||
putsStrIdx(0, y, NO_INDENT(STR_SOURCE), k-SENSOR_FIELD_PARAM1+1);
|
||||
int8_t & source = sensor->calc.sources[k-SENSOR_FIELD_PARAM1];
|
||||
if (attr) {
|
||||
source = checkIncDec(event, source, -TELEM_VALUES_MAX, TELEM_VALUES_MAX, EE_MODEL|NO_INCDEC_MARKS, isSensorAvailable);
|
||||
@@ -427,12 +441,20 @@ void menuModelSensor(uint8_t event)
|
||||
break;
|
||||
}
|
||||
|
||||
case SENSOR_FIELD_INPUT_FLAGS:
|
||||
sensor->inputFlags = selectMenuItem(SENSOR_2ND_COLUMN, y, "Options", "\013None\0 ""Auto Offset""Filter\0", sensor->inputFlags, 0, TELEM_INPUT_FLAGS_MAX, attr, event);
|
||||
case SENSOR_FIELD_AUTOOFFSET:
|
||||
ON_OFF_MENU_ITEM(sensor->autoOffset, SENSOR_2ND_COLUMN, y, STR_AUTOOFFSET, attr, event);
|
||||
break;
|
||||
|
||||
case SENSOR_FIELD_FILTER:
|
||||
ON_OFF_MENU_ITEM(sensor->filter, SENSOR_2ND_COLUMN, y, STR_FILTER, attr, event);
|
||||
break;
|
||||
|
||||
case SENSOR_FIELD_PERSISTENT:
|
||||
ON_OFF_MENU_ITEM(sensor->persistent, SENSOR_2ND_COLUMN, y, NO_INDENT(STR_PERSISTENT), attr, event);
|
||||
break;
|
||||
|
||||
case SENSOR_FIELD_LOGS:
|
||||
ON_OFF_MENU_ITEM(sensor->logs, SENSOR_2ND_COLUMN, y, "Logs", attr, event);
|
||||
ON_OFF_MENU_ITEM(sensor->logs, SENSOR_2ND_COLUMN, y, STR_LOGS, attr, event);
|
||||
break;
|
||||
|
||||
}
|
||||
@@ -552,6 +574,9 @@ void menuModelTelemetry(uint8_t event)
|
||||
s_currIdx = res;
|
||||
pushMenu(menuModelSensor);
|
||||
}
|
||||
else {
|
||||
POPUP_WARNING(STR_TELEMETRYFULL);
|
||||
}
|
||||
}
|
||||
break;
|
||||
#endif
|
||||
|
||||
@@ -95,9 +95,9 @@ void displayGpsCoord(uint8_t y, char direction, int16_t bp, int16_t ap)
|
||||
lcd_outdezNAtt(lcdLastPos+FW+FW+1, y, mn, LEFT|LEADING0, 2); // mm before '.'
|
||||
lcd_vline(lcdLastPos, y, 2);
|
||||
uint16_t ss = ap * 6;
|
||||
lcd_outdezAtt(lcdLastPos+3, y, ss / 1000, LEFT); // ''
|
||||
lcd_outdezNAtt(lcdLastPos+3, y, ss / 1000, LEFT|LEADING0, 2); // ''
|
||||
lcd_plot(lcdLastPos, y+FH-2, 0); // small decimal point
|
||||
lcd_outdezAtt(lcdLastPos+2, y, ss % 1000, LEFT); // ''
|
||||
lcd_outdezNAtt(lcdLastPos+2, y, ss % 1000, LEFT|LEADING0, 3); // ''
|
||||
lcd_vline(lcdLastPos, y, 2);
|
||||
lcd_vline(lcdLastPos+2, y, 2);
|
||||
}
|
||||
|
||||
@@ -53,6 +53,9 @@ void displayScrollbar(coord_t x, coord_t y, coord_t h, uint16_t offset, uint16_t
|
||||
void displayMenuBar(const MenuItem *menu, int index);
|
||||
void displayProgressBar(const char *label);
|
||||
void updateProgressBar(int num, int den);
|
||||
#if defined(REV9E)
|
||||
void displayShutdownProgress(uint32_t progress);
|
||||
#endif
|
||||
|
||||
extern coord_t scrollbar_X;
|
||||
#define SET_SCROLLBAR_X(x) scrollbar_X = (x);
|
||||
|
||||
@@ -38,14 +38,8 @@
|
||||
|
||||
uint8_t switchToMix(uint8_t source)
|
||||
{
|
||||
if (source <= 5*3)
|
||||
return MIXSRC_FIRST_SWITCH + (source-1) / 3;
|
||||
else if (source <= 17)
|
||||
return MIXSRC_SF;
|
||||
else if (source <= 20)
|
||||
return MIXSRC_SG;
|
||||
else
|
||||
return MIXSRC_SH;
|
||||
div_t qr = div(source-1, 3);
|
||||
return qr.quot+MIXSRC_FIRST_SWITCH;
|
||||
}
|
||||
|
||||
int circularIncDec(int current, int inc, int min, int max, IsValueAvailable isValueAvailable)
|
||||
@@ -94,6 +88,10 @@ bool isSourceAvailable(int source)
|
||||
return IS_POT_AVAILABLE(POT1+source-MIXSRC_FIRST_POT);
|
||||
}
|
||||
|
||||
if (source>=MIXSRC_FIRST_SWITCH && source<=MIXSRC_LAST_SWITCH) {
|
||||
return SWITCH_EXISTS(source-MIXSRC_FIRST_SWITCH);
|
||||
}
|
||||
|
||||
#if !defined(HELI)
|
||||
if (source>=MIXSRC_CYC1 && source<=MIXSRC_CYC3)
|
||||
return false;
|
||||
@@ -109,7 +107,7 @@ bool isSourceAvailable(int source)
|
||||
return false;
|
||||
}
|
||||
|
||||
if (source>=MIXSRC_SW1 && source<=MIXSRC_LAST_LOGICAL_SWITCH) {
|
||||
if (source>=MIXSRC_FIRST_LOGICAL_SWITCH && source<=MIXSRC_LAST_LOGICAL_SWITCH) {
|
||||
LogicalSwitchData * cs = lswAddress(source-MIXSRC_SW1);
|
||||
return (cs->func != LS_FUNC_NONE);
|
||||
}
|
||||
@@ -156,20 +154,22 @@ bool isInputSourceAvailable(int source)
|
||||
if (source>=MIXSRC_Rud && source<=MIXSRC_MAX)
|
||||
return true;
|
||||
|
||||
if (source>=MIXSRC_Rud && source<=MIXSRC_MAX)
|
||||
return true;
|
||||
|
||||
if (source>=MIXSRC_TrimRud && source<MIXSRC_SW1)
|
||||
if (source>=MIXSRC_FIRST_TRIM && source<=MIXSRC_LAST_TRIM)
|
||||
return true;
|
||||
|
||||
if (source>=MIXSRC_FIRST_SWITCH && source<=MIXSRC_LAST_SWITCH)
|
||||
return SWITCH_EXISTS(source-MIXSRC_FIRST_SWITCH);
|
||||
|
||||
if (source>=MIXSRC_FIRST_CH && source<=MIXSRC_LAST_CH)
|
||||
return true;
|
||||
|
||||
if (source>=MIXSRC_FIRST_TRAINER && source<=MIXSRC_LAST_TRAINER)
|
||||
return true;
|
||||
|
||||
if (source>=MIXSRC_FIRST_TELEM && source<=MIXSRC_LAST_TELEM)
|
||||
return isTelemetryFieldAvailable(source-MIXSRC_FIRST_TELEM);
|
||||
if (source>=MIXSRC_FIRST_TELEM && source<=MIXSRC_LAST_TELEM) {
|
||||
div_t qr = div(source-MIXSRC_FIRST_TELEM, 3);
|
||||
return isTelemetryFieldAvailable(qr.quot) && isTelemetryFieldComparisonAvailable(qr.quot);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
@@ -196,18 +196,12 @@ bool isSwitchAvailable(int swtch, SwitchContext context)
|
||||
swtch = -swtch;
|
||||
}
|
||||
|
||||
#if defined(REV9E)
|
||||
if (swtch >= SWSRC_SA0 && swtch <= SWSRC_SR2) {
|
||||
if (swtch >= SWSRC_SA0 && swtch <= SWSRC_LAST_SWITCH) {
|
||||
if (!SWITCH_EXISTS(index))
|
||||
return false;
|
||||
if ((swtch-SWSRC_SA1)%3 == 0)
|
||||
return IS_3POS(index);
|
||||
}
|
||||
#else
|
||||
if (swtch == SWSRC_SA1 || swtch == SWSRC_SB1 || swtch == SWSRC_SC1 || swtch == SWSRC_SD1 || swtch == SWSRC_SE1 || swtch == SWSRC_SG1) {
|
||||
return IS_3POS(index);
|
||||
}
|
||||
#endif
|
||||
|
||||
if (swtch >= SWSRC_FIRST_MULTIPOS_SWITCH && swtch <= SWSRC_LAST_MULTIPOS_SWITCH) {
|
||||
int index = (swtch - SWSRC_FIRST_MULTIPOS_SWITCH) / XPOTS_MULTIPOS_COUNT;
|
||||
@@ -350,3 +344,14 @@ bool modelHasNotes()
|
||||
return isFileAvailable(filename);
|
||||
}
|
||||
|
||||
int getFirstAvailableSource(int min, int max, bool (*func)(int))
|
||||
{
|
||||
int retval = MIXSRC_NONE;
|
||||
for (int i = min; i <= max; i++) {
|
||||
if ((*func)(i)) {
|
||||
retval = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
return retval;
|
||||
}
|
||||
|
||||
@@ -632,7 +632,7 @@ void putsStickName(coord_t x, coord_t y, uint8_t idx, LcdFlags att)
|
||||
}
|
||||
#endif
|
||||
|
||||
void putsMixerSource(coord_t x, coord_t y, uint8_t idx, LcdFlags att)
|
||||
void putsMixerSource(coord_t x, coord_t y, uint32_t idx, LcdFlags att)
|
||||
{
|
||||
if (idx == 0) {
|
||||
lcd_putsiAtt(x, y, STR_VSRCRAW, 0, att); // TODO macro
|
||||
@@ -890,7 +890,12 @@ void displayDate(coord_t x, coord_t y, TelemetryItem & telemetryItem, LcdFlags a
|
||||
lcd_outdezNAtt(lcdNextPos, y, telemetryItem.datetime.sec, att|LEADING0|LEFT, 2);
|
||||
}
|
||||
else {
|
||||
lcd_outdezNAtt(x, y, telemetryItem.datetime.hour, att|LEADING0|LEFT, 2);
|
||||
lcd_outdezNAtt(x, y, telemetryItem.datetime.day, att|LEADING0|LEFT, 2);
|
||||
lcd_putcAtt(lcdLastPos-1, y, '-', att);
|
||||
lcd_outdezNAtt(lcdNextPos, y, telemetryItem.datetime.month, att|LEFT, 2);
|
||||
lcd_putcAtt(lcdLastPos-1, y, '-', att);
|
||||
lcd_outdezAtt(lcdNextPos, y, telemetryItem.datetime.year, att|LEFT);
|
||||
lcd_outdezNAtt(lcdNextPos+FW+1, y, telemetryItem.datetime.hour, att|LEADING0|LEFT, 2);
|
||||
lcd_putcAtt(lcdLastPos, y, ':', att);
|
||||
lcd_outdezNAtt(lcdNextPos, y, telemetryItem.datetime.min, att|LEADING0|LEFT, 2);
|
||||
lcd_putcAtt(lcdLastPos, y, ':', att);
|
||||
|
||||
@@ -169,7 +169,7 @@ void putsStrIdx(coord_t x, coord_t y, const pm_char *str, uint8_t idx, LcdFlags
|
||||
void putsModelName(coord_t x, coord_t y, char *name, uint8_t id, LcdFlags att);
|
||||
void putsSwitches(coord_t x, coord_t y, int8_t swtch, LcdFlags att=0);
|
||||
void putsStickName(coord_t x, coord_t y, uint8_t idx, LcdFlags att=0);
|
||||
void putsMixerSource(coord_t x, coord_t y, uint8_t idx, LcdFlags att=0);
|
||||
void putsMixerSource(coord_t x, coord_t y, uint32_t idx, LcdFlags att=0);
|
||||
void putsFlightMode(coord_t x, coord_t y, int8_t idx, LcdFlags att=0);
|
||||
#if !defined(BOOT)
|
||||
void putsCurveRef(coord_t x, coord_t y, CurveRef &curve, LcdFlags att);
|
||||
|
||||
@@ -321,8 +321,8 @@ void menuGeneralSdManager(uint8_t _event)
|
||||
}
|
||||
}
|
||||
else if (!READ_ONLY() && !strcasecmp(ext, SPORT_FIRMWARE_EXT)) {
|
||||
MENU_ADD_ITEM(STR_FLASH_INTERNAL_MODULE);
|
||||
MENU_ADD_ITEM(STR_FLASH_EXTERNAL_DEVICE);
|
||||
MENU_ADD_ITEM(STR_FLASH_INTERNAL_MODULE);
|
||||
}
|
||||
}
|
||||
if (!READ_ONLY()) {
|
||||
@@ -437,7 +437,10 @@ void menuGeneralSdManager(uint8_t _event)
|
||||
editName(lcdNextPos, y, reusableBuffer.sdmanager.lines[i], SD_SCREEN_FILE_LENGTH-4, _event, attr, 0);
|
||||
if (s_editMode == 0) {
|
||||
unsigned int len = effectiveLen(reusableBuffer.sdmanager.lines[i], SD_SCREEN_FILE_LENGTH-LEN_FILE_EXTENSION);
|
||||
strAppend(&reusableBuffer.sdmanager.lines[i][len], getFileExtension(reusableBuffer.sdmanager.originalName, sizeof(reusableBuffer.sdmanager.originalName)));
|
||||
char * ext = getFileExtension(reusableBuffer.sdmanager.originalName, sizeof(reusableBuffer.sdmanager.originalName));
|
||||
if (ext) {
|
||||
strAppend(&reusableBuffer.sdmanager.lines[i][len], ext);
|
||||
}
|
||||
f_rename(reusableBuffer.sdmanager.originalName, reusableBuffer.sdmanager.lines[i]);
|
||||
REFRESH_FILES();
|
||||
}
|
||||
|
||||
@@ -90,7 +90,9 @@ enum menuGeneralSetupItems {
|
||||
CASE_REVPLUS(ITEM_SETUP_BACKLIGHT_COLOR)
|
||||
ITEM_SETUP_FLASH_BEEP,
|
||||
CASE_SPLASH_PARAM(ITEM_SETUP_DISABLE_SPLASH)
|
||||
CASE_GPS(ITEM_SETUP_LABEL_GPS)
|
||||
CASE_GPS(ITEM_SETUP_TIMEZONE)
|
||||
CASE_GPS(ITEM_SETUP_ADJUST_RTC)
|
||||
CASE_GPS(ITEM_SETUP_GPSFORMAT)
|
||||
CASE_PXX(ITEM_SETUP_COUNTRYCODE)
|
||||
ITEM_SETUP_LANGUAGE,
|
||||
@@ -126,7 +128,7 @@ void menuGeneralSetup(uint8_t event)
|
||||
}
|
||||
#endif
|
||||
|
||||
MENU(STR_MENURADIOSETUP, menuTabGeneral, e_Setup, ITEM_SETUP_MAX, { 2, 2, 1, LABEL(SOUND), 0, 0, 0, 0, 0, 0, 0, CASE_VARIO_CPUARM(LABEL(VARIO)) CASE_VARIO_CPUARM(0) CASE_VARIO_CPUARM(0) CASE_VARIO_CPUARM(0) CASE_VARIO_CPUARM(0) CASE_HAPTIC(LABEL(HAPTIC)) CASE_HAPTIC(0) CASE_HAPTIC(0) CASE_HAPTIC(0) 0, LABEL(ALARMS), 0, 0, 0, 0, IF_ROTARY_ENCODERS(0) LABEL(BACKLIGHT), 0, 0, 0, CASE_REVPLUS(0) CASE_PWM_BACKLIGHT(0) CASE_PWM_BACKLIGHT(0) 0, CASE_SPLASH_PARAM(0) CASE_GPS(0) CASE_GPS(0) CASE_PXX(0) 0, 0, IF_FAI_CHOICE(0) CASE_MAVLINK(0) 0, 0, LABEL(TX_MODE), 0, 1/*to force edit mode*/ });
|
||||
MENU(STR_MENURADIOSETUP, menuTabGeneral, e_Setup, ITEM_SETUP_MAX, { 2, 2, 1, LABEL(SOUND), 0, 0, 0, 0, 0, 0, 0, CASE_VARIO_CPUARM(LABEL(VARIO)) CASE_VARIO_CPUARM(0) CASE_VARIO_CPUARM(0) CASE_VARIO_CPUARM(0) CASE_VARIO_CPUARM(0) CASE_HAPTIC(LABEL(HAPTIC)) CASE_HAPTIC(0) CASE_HAPTIC(0) CASE_HAPTIC(0) 0, LABEL(ALARMS), 0, 0, 0, 0, IF_ROTARY_ENCODERS(0) LABEL(BACKLIGHT), 0, 0, 0, CASE_REVPLUS(0) CASE_PWM_BACKLIGHT(0) CASE_PWM_BACKLIGHT(0) 0, CASE_SPLASH_PARAM(0) CASE_GPS(LABEL(GPS)) CASE_GPS(0) CASE_GPS(0) CASE_GPS(0) CASE_PXX(0) 0, 0, IF_FAI_CHOICE(0) CASE_MAVLINK(0) 0, 0, LABEL(TX_MODE), 0, 1/*to force edit mode*/ });
|
||||
|
||||
int sub = m_posVert;
|
||||
|
||||
@@ -412,12 +414,20 @@ void menuGeneralSetup(uint8_t event)
|
||||
#endif
|
||||
|
||||
#if defined(FRSKY) && defined(FRSKY_HUB) && defined(GPS)
|
||||
case ITEM_SETUP_LABEL_GPS:
|
||||
lcd_putsLeft(y, STR_GPS);
|
||||
break;
|
||||
|
||||
case ITEM_SETUP_TIMEZONE:
|
||||
lcd_putsLeft(y, STR_TIMEZONE);
|
||||
lcd_outdezAtt(RADIO_SETUP_2ND_COLUMN, y, g_eeGeneral.timezone, attr|LEFT);
|
||||
if (attr) CHECK_INCDEC_GENVAR(event, g_eeGeneral.timezone, -12, 12);
|
||||
break;
|
||||
|
||||
case ITEM_SETUP_ADJUST_RTC:
|
||||
g_eeGeneral.adjustRTC = onoffMenuItem(g_eeGeneral.adjustRTC, RADIO_SETUP_2ND_COLUMN, y, STR_ADJUST_RTC, attr, event);
|
||||
break;
|
||||
|
||||
case ITEM_SETUP_GPSFORMAT:
|
||||
g_eeGeneral.gpsFormat = selectMenuItem(RADIO_SETUP_2ND_COLUMN, y, STR_GPSCOORD, STR_GPSFORMAT, g_eeGeneral.gpsFormat, 0, 1, attr, event);
|
||||
break;
|
||||
|
||||
@@ -88,12 +88,27 @@ void backupEeprom()
|
||||
|
||||
void menuGeneralVersion(uint8_t event)
|
||||
{
|
||||
if (s_warning_result) {
|
||||
s_warning_result = 0;
|
||||
displayPopup(STR_EEPROMFORMATTING);
|
||||
eeErase(false);
|
||||
#if !defined(SIMU)
|
||||
NVIC_SystemReset();
|
||||
#else
|
||||
exit(0);
|
||||
#endif
|
||||
}
|
||||
|
||||
SIMPLE_MENU(STR_MENUVERSION, menuTabGeneral, e_Vers, 1);
|
||||
|
||||
lcd_putsLeft(MENU_HEADER_HEIGHT+FH, vers_stamp);
|
||||
|
||||
lcd_putsLeft(MENU_HEADER_HEIGHT+6*FH, STR_EEBACKUP);
|
||||
lcd_putsLeft(MENU_HEADER_HEIGHT+5*FH, STR_EEBACKUP);
|
||||
lcd_putsLeft(MENU_HEADER_HEIGHT+6*FH, STR_FACTORYRESET);
|
||||
if (event == EVT_KEY_LONG(KEY_ENTER)) {
|
||||
backupEeprom();
|
||||
}
|
||||
else if (event == EVT_KEY_LONG(KEY_MENU)) {
|
||||
POPUP_CONFIRMATION(STR_CONFIRMRESET);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -211,8 +211,18 @@ void menuCustomFunctions(uint8_t event, CustomFunctionData * functions, CustomFu
|
||||
int16_t val_min = 0;
|
||||
int16_t val_max = 255;
|
||||
if (func == FUNC_RESET) {
|
||||
val_max = FUNC_RESET_PARAM_LAST;
|
||||
lcd_putsiAtt(MODEL_CUSTOM_FUNC_3RD_COLUMN, y, STR_VFSWRESET, CFN_PARAM(cfn), attr);
|
||||
val_max = FUNC_RESET_PARAM_FIRST_TELEM+lastUsedTelemetryIndex();
|
||||
int param = CFN_PARAM(cfn);
|
||||
if (param < FUNC_RESET_PARAM_FIRST_TELEM) {
|
||||
lcd_putsiAtt(MODEL_CUSTOM_FUNC_3RD_COLUMN, y, STR_VFSWRESET, param, attr);
|
||||
}
|
||||
else {
|
||||
if (param > FUNC_RESET_PARAM_FIRST_TELEM) {
|
||||
INCDEC_ENABLE_CHECK(isSensorAvailableInResetSpecialFunction);
|
||||
}
|
||||
TelemetrySensor * sensor = & g_model.telemetrySensors[param-FUNC_RESET_PARAM_FIRST_TELEM];
|
||||
lcd_putsnAtt(MODEL_CUSTOM_FUNC_3RD_COLUMN, y, sensor->label, TELEM_LABEL_LEN, attr|ZCHAR);
|
||||
}
|
||||
}
|
||||
#if defined(OVERRIDE_CHANNEL_FUNCTION)
|
||||
else if (func == FUNC_OVERRIDE_CHANNEL) {
|
||||
|
||||
@@ -346,7 +346,7 @@ void menuModelExpoOne(uint8_t event)
|
||||
|
||||
case EXPO_FIELD_SCALE:
|
||||
lcd_putsLeft(y, STR_SCALE);
|
||||
putsTelemetryChannelValue(EXPO_ONE_2ND_COLUMN, y, ed->srcRaw - MIXSRC_FIRST_TELEM, convertTelemValue(ed->srcRaw - MIXSRC_FIRST_TELEM + 1, ed->scale), LEFT|attr);
|
||||
putsTelemetryChannelValue(EXPO_ONE_2ND_COLUMN, y, (ed->srcRaw - MIXSRC_FIRST_TELEM)/3, convertTelemValue(ed->srcRaw - MIXSRC_FIRST_TELEM + 1, ed->scale), LEFT|attr);
|
||||
if (attr) ed->scale = checkIncDec(event, ed->scale, 0, maxTelemValue(ed->srcRaw - MIXSRC_FIRST_TELEM + 1), EE_MODEL);
|
||||
break;
|
||||
|
||||
@@ -396,7 +396,7 @@ void menuModelExpoOne(uint8_t event)
|
||||
|
||||
int x512 = getValue(ed->srcRaw);
|
||||
if (ed->srcRaw >= MIXSRC_FIRST_TELEM) {
|
||||
putsTelemetryChannelValue(LCD_W-8, 6*FH, ed->srcRaw - MIXSRC_FIRST_TELEM, x512, 0);
|
||||
putsTelemetryChannelValue(LCD_W-8, 6*FH, (ed->srcRaw - MIXSRC_FIRST_TELEM) / 3, x512, 0);
|
||||
if (ed->scale > 0) x512 = (x512 * 1024) / convertTelemValue(ed->srcRaw - MIXSRC_FIRST_TELEM + 1, ed->scale);
|
||||
}
|
||||
else {
|
||||
@@ -869,7 +869,7 @@ void menuModelExpoMix(uint8_t expo, uint8_t event)
|
||||
if (cur-s_pgOfs >= 0 && cur-s_pgOfs < NUM_BODY_LINES) {
|
||||
uint8_t attr = ((s_copyMode || sub != cur) ? 0 : INVERS);
|
||||
if (expo) {
|
||||
ed->weight = GVAR_MENU_ITEM(EXPO_LINE_WEIGHT_POS, y, ed->weight, MIN_EXPO_WEIGHT, 100, attr | (isExpoActive(i) ? BOLD : 0), 0, event);
|
||||
GVAR_MENU_ITEM(EXPO_LINE_WEIGHT_POS, y, ed->weight, MIN_EXPO_WEIGHT, 100, attr | (isExpoActive(i) ? BOLD : 0), 0, 0);
|
||||
displayExpoLine(y, ed);
|
||||
if (ed->mode!=3) {
|
||||
lcd_putc(EXPO_LINE_SIDE_POS, y, ed->mode == 2 ? 126 : 127);
|
||||
@@ -884,7 +884,7 @@ void menuModelExpoMix(uint8_t expo, uint8_t event)
|
||||
|
||||
putsMixerSource(MIX_LINE_SRC_POS, y, md->srcRaw, 0);
|
||||
|
||||
gvarWeightItem(MIX_LINE_WEIGHT_POS, y, md, attr | (isMixActive(i) ? BOLD : 0), event);
|
||||
gvarWeightItem(MIX_LINE_WEIGHT_POS, y, md, attr | (isMixActive(i) ? BOLD : 0), 0);
|
||||
|
||||
displayMixLine(y, md);
|
||||
|
||||
|
||||
@@ -163,7 +163,7 @@ void menuModelLogicalSwitches(uint8_t event)
|
||||
}
|
||||
}
|
||||
else if (cstate == LS_FAMILY_COMP) {
|
||||
v1_val = (uint8_t)cs->v1;
|
||||
v1_val = cs->v1;
|
||||
putsMixerSource(CSW_2ND_COLUMN, y, v1_val, attr1);
|
||||
putsMixerSource(CSW_3RD_COLUMN, y, cs->v2, attr2);
|
||||
INCDEC_SET_FLAG(EE_MODEL | INCDEC_SOURCE);
|
||||
@@ -178,7 +178,7 @@ void menuModelLogicalSwitches(uint8_t event)
|
||||
INCDEC_ENABLE_CHECK(NULL);
|
||||
}
|
||||
else {
|
||||
v1_val = (uint8_t)cs->v1;
|
||||
v1_val = cs->v1;
|
||||
putsMixerSource(CSW_2ND_COLUMN, y, v1_val, attr1);
|
||||
if (horz == 1) {
|
||||
INCDEC_SET_FLAG(EE_MODEL | INCDEC_SOURCE);
|
||||
|
||||
@@ -149,7 +149,9 @@ enum SensorFields {
|
||||
SENSOR_FIELD_PARAM2,
|
||||
SENSOR_FIELD_PARAM3,
|
||||
SENSOR_FIELD_PARAM4,
|
||||
SENSOR_FIELD_INPUT_FLAGS,
|
||||
SENSOR_FIELD_AUTOOFFSET,
|
||||
SENSOR_FIELD_FILTER,
|
||||
SENSOR_FIELD_PERSISTENT,
|
||||
SENSOR_FIELD_LOGS,
|
||||
SENSOR_FIELD_MAX
|
||||
};
|
||||
@@ -200,18 +202,21 @@ bool isSensorAvailable(int sensor)
|
||||
#define SENSOR_2ND_COLUMN (12*FW)
|
||||
#define SENSOR_3RD_COLUMN (18*FW)
|
||||
|
||||
#define SENSOR_UNIT_ROWS (sensor->type == TELEM_TYPE_CALCULATED && sensor->formula >= TELEM_FORMULA_CELL) ? HIDDEN_ROW : ((sensor->unit == UNIT_GPS || sensor->unit == UNIT_DATETIME || sensor->unit == UNIT_CELLS) ? HIDDEN_ROW : (uint8_t)0)
|
||||
#define SENSOR_PREC_ROWS (sensor->type == TELEM_TYPE_CALCULATED && sensor->formula >= TELEM_FORMULA_CELL) ? HIDDEN_ROW : ((sensor->unit == UNIT_GPS || sensor->unit == UNIT_DATETIME) ? HIDDEN_ROW : (uint8_t)0)
|
||||
#define SENSOR_PARAM1_ROWS (sensor->unit == UNIT_GPS || sensor->unit == UNIT_DATETIME || sensor->unit == UNIT_CELLS) ? HIDDEN_ROW : (uint8_t)0
|
||||
#define SENSOR_PARAM2_ROWS (sensor->unit == UNIT_GPS || sensor->unit == UNIT_DATETIME || sensor->unit == UNIT_CELLS || (sensor->type==TELEM_TYPE_CALCULATED && sensor->formula==TELEM_FORMULA_CONSUMPTION)) ? HIDDEN_ROW : (uint8_t)0
|
||||
#define SENSOR_PARAM3_ROWS (sensor->type == TELEM_TYPE_CALCULATED && sensor->formula < TELEM_FORMULA_MULTIPLY) ? (uint8_t)0 : HIDDEN_ROW
|
||||
#define SENSOR_PARAM4_ROWS (sensor->type == TELEM_TYPE_CALCULATED && sensor->formula < TELEM_FORMULA_MULTIPLY) ? (uint8_t)0 : HIDDEN_ROW
|
||||
#define SENSOR_UNIT_ROWS (sensor->isConfigurable() ? (uint8_t)0 : HIDDEN_ROW)
|
||||
#define SENSOR_PREC_ROWS (sensor->isConfigurable() ? (uint8_t)0 : HIDDEN_ROW)
|
||||
#define SENSOR_PARAM1_ROWS (sensor->unit >= UNIT_FIRST_VIRTUAL ? HIDDEN_ROW : (uint8_t)0)
|
||||
#define SENSOR_PARAM2_ROWS (sensor->unit == UNIT_GPS || sensor->unit == UNIT_DATETIME || sensor->unit == UNIT_CELLS || (sensor->type==TELEM_TYPE_CALCULATED && (sensor->formula==TELEM_FORMULA_CONSUMPTION || sensor->formula==TELEM_FORMULA_TOTALIZE)) ? HIDDEN_ROW : (uint8_t)0)
|
||||
#define SENSOR_PARAM3_ROWS (sensor->type == TELEM_TYPE_CALCULATED && sensor->formula < TELEM_FORMULA_MULTIPLY) ? (uint8_t)0 : HIDDEN_ROW
|
||||
#define SENSOR_PARAM4_ROWS (sensor->type == TELEM_TYPE_CALCULATED && sensor->formula < TELEM_FORMULA_MULTIPLY) ? (uint8_t)0 : HIDDEN_ROW
|
||||
#define SENSOR_AUTOOFFSET_ROWS (sensor->unit != UNIT_RPMS && sensor->isConfigurable() ? (uint8_t)0 : HIDDEN_ROW)
|
||||
#define SENSOR_FILTER_ROWS (sensor->isConfigurable() ? (uint8_t)0 : HIDDEN_ROW)
|
||||
#define SENSOR_PERSISTENT_ROWS (sensor->isConfigurable() ? (uint8_t)0 : HIDDEN_ROW)
|
||||
|
||||
void menuModelSensor(uint8_t event)
|
||||
{
|
||||
TelemetrySensor * sensor = & g_model.telemetrySensors[s_currIdx];
|
||||
|
||||
SUBMENU(STR_MENUSENSOR, SENSOR_FIELD_MAX, {0, 0, sensor->type == TELEM_TYPE_CALCULATED ? (uint8_t)0 : (uint8_t)1, SENSOR_UNIT_ROWS, SENSOR_PREC_ROWS, SENSOR_PARAM1_ROWS, SENSOR_PARAM2_ROWS, SENSOR_PARAM3_ROWS, SENSOR_PARAM4_ROWS, 0 });
|
||||
SUBMENU(STR_MENUSENSOR, SENSOR_FIELD_MAX, {0, 0, sensor->type == TELEM_TYPE_CALCULATED ? (uint8_t)0 : (uint8_t)1, SENSOR_UNIT_ROWS, SENSOR_PREC_ROWS, SENSOR_PARAM1_ROWS, SENSOR_PARAM2_ROWS, SENSOR_PARAM3_ROWS, SENSOR_PARAM4_ROWS, SENSOR_AUTOOFFSET_ROWS, SENSOR_FILTER_ROWS, SENSOR_PERSISTENT_ROWS, 0 });
|
||||
lcd_outdezAtt(PSIZE(TR_MENUSENSOR)*FW+1, 0, s_currIdx+1, INVERS|LEFT);
|
||||
|
||||
putsTelemetryChannelValue(SENSOR_2ND_COLUMN, 0, s_currIdx, getValue(MIXSRC_FIRST_TELEM+3*s_currIdx), LEFT);
|
||||
@@ -223,7 +228,7 @@ void menuModelSensor(uint8_t event)
|
||||
int k = i + s_pgOfs;
|
||||
|
||||
for (int j=0; j<k; j++) {
|
||||
if (mstate_tab[j] == HIDDEN_ROW)
|
||||
if (mstate_tab[j+1] == HIDDEN_ROW)
|
||||
k++;
|
||||
}
|
||||
|
||||
@@ -236,12 +241,13 @@ void menuModelSensor(uint8_t event)
|
||||
break;
|
||||
|
||||
case SENSOR_FIELD_TYPE:
|
||||
sensor->type = selectMenuItem(SENSOR_2ND_COLUMN, y, STR_TYPE, "\012Custom\0 Calculated", sensor->type, 0, 1, attr, event);
|
||||
sensor->type = selectMenuItem(SENSOR_2ND_COLUMN, y, NO_INDENT(STR_TYPE), STR_VSENSORTYPES, sensor->type, 0, 1, attr, event);
|
||||
if (attr && checkIncDec_Ret) {
|
||||
sensor->instance = 0;
|
||||
if (sensor->type == TELEM_TYPE_CALCULATED) {
|
||||
sensor->param = 0;
|
||||
sensor->inputFlags = 0;
|
||||
sensor->filter = 0;
|
||||
sensor->autoOffset = 0;
|
||||
}
|
||||
}
|
||||
break;
|
||||
@@ -264,7 +270,7 @@ void menuModelSensor(uint8_t event)
|
||||
}
|
||||
}
|
||||
else {
|
||||
sensor->formula = selectMenuItem(SENSOR_2ND_COLUMN, y, "Formula", "\010Add\0 Average\0Min\0 Max\0 MultiplyCell\0 ConsumptDistance", sensor->formula, 0, TELEM_FORMULA_DIST, attr, event);
|
||||
sensor->formula = selectMenuItem(SENSOR_2ND_COLUMN, y, STR_FORMULA, STR_VFORMULAS, sensor->formula, 0, TELEM_FORMULA_LAST, attr, event);
|
||||
if (attr && checkIncDec_Ret) {
|
||||
sensor->param = 0;
|
||||
if (sensor->formula == TELEM_FORMULA_CELL) {
|
||||
@@ -284,7 +290,7 @@ void menuModelSensor(uint8_t event)
|
||||
break;
|
||||
|
||||
case SENSOR_FIELD_UNIT:
|
||||
lcd_putsLeft(y, "Unit");
|
||||
lcd_putsLeft(y, STR_UNIT);
|
||||
// TODO flash saving with selectMenuItem where I copied those 2 lines?
|
||||
lcd_putsiAtt(SENSOR_2ND_COLUMN, y, STR_VTELEMUNIT, sensor->unit, attr);
|
||||
if (attr) {
|
||||
@@ -296,7 +302,7 @@ void menuModelSensor(uint8_t event)
|
||||
break;
|
||||
|
||||
case SENSOR_FIELD_PRECISION:
|
||||
sensor->prec = selectMenuItem(SENSOR_2ND_COLUMN, y, STR_PRECISION, "\005PREC0PREC1PREC2", sensor->prec, 0, 2, attr, event);
|
||||
sensor->prec = selectMenuItem(SENSOR_2ND_COLUMN, y, STR_PRECISION, STR_VPREC, sensor->prec, 0, 2, attr, event);
|
||||
if (attr && checkIncDec_Ret) {
|
||||
telemetryItems[s_currIdx].clear();
|
||||
}
|
||||
@@ -305,7 +311,7 @@ void menuModelSensor(uint8_t event)
|
||||
case SENSOR_FIELD_PARAM1:
|
||||
if (sensor->type == TELEM_TYPE_CALCULATED) {
|
||||
if (sensor->formula == TELEM_FORMULA_CELL) {
|
||||
lcd_putsLeft(y, "Cells sensor");
|
||||
lcd_putsLeft(y, STR_CELLSENSOR);
|
||||
putsMixerSource(SENSOR_2ND_COLUMN, y, sensor->cell.source ? MIXSRC_FIRST_TELEM+3*(sensor->cell.source-1) : 0, attr);
|
||||
if (attr) {
|
||||
sensor->cell.source = checkIncDec(event, sensor->cell.source, 0, TELEM_VALUES_MAX, EE_MODEL|NO_INCDEC_MARKS, isCellsSensor);
|
||||
@@ -313,7 +319,7 @@ void menuModelSensor(uint8_t event)
|
||||
break;
|
||||
}
|
||||
else if (sensor->formula == TELEM_FORMULA_DIST) {
|
||||
lcd_putsLeft(y, "GPS sensor");
|
||||
lcd_putsLeft(y, STR_GPSSENSOR);
|
||||
putsMixerSource(SENSOR_2ND_COLUMN, y, sensor->dist.gps ? MIXSRC_FIRST_TELEM+3*(sensor->dist.gps-1) : 0, attr);
|
||||
if (attr) {
|
||||
sensor->dist.gps = checkIncDec(event, sensor->dist.gps, 0, TELEM_VALUES_MAX, EE_MODEL|NO_INCDEC_MARKS, isGPSSensor);
|
||||
@@ -321,33 +327,49 @@ void menuModelSensor(uint8_t event)
|
||||
break;
|
||||
}
|
||||
else if (sensor->formula == TELEM_FORMULA_CONSUMPTION) {
|
||||
lcd_putsLeft(y, "Amps sensor");
|
||||
lcd_putsLeft(y, STR_CURRENTSENSOR);
|
||||
putsMixerSource(SENSOR_2ND_COLUMN, y, sensor->consumption.source ? MIXSRC_FIRST_TELEM+3*(sensor->consumption.source-1) : 0, attr);
|
||||
if (attr) {
|
||||
sensor->consumption.source = checkIncDec(event, sensor->consumption.source, 0, TELEM_VALUES_MAX, EE_MODEL|NO_INCDEC_MARKS, isCurrentSensor);
|
||||
}
|
||||
break;
|
||||
}
|
||||
else if (sensor->formula == TELEM_FORMULA_TOTALIZE) {
|
||||
lcd_putsLeft(y, NO_INDENT(STR_SOURCE));
|
||||
putsMixerSource(SENSOR_2ND_COLUMN, y, sensor->consumption.source ? MIXSRC_FIRST_TELEM+3*(sensor->consumption.source-1) : 0, attr);
|
||||
if (attr) {
|
||||
sensor->consumption.source = checkIncDec(event, sensor->consumption.source, 0, TELEM_VALUES_MAX, EE_MODEL|NO_INCDEC_MARKS, isTelemetryFieldComparisonAvailable);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
else {
|
||||
lcd_putsLeft(y, "Ratio");
|
||||
if (attr) CHECK_INCDEC_MODELVAR(event, sensor->custom.ratio, 0, 30000);
|
||||
if (sensor->custom.ratio == 0)
|
||||
lcd_putcAtt(SENSOR_2ND_COLUMN, y, '-', attr);
|
||||
else
|
||||
lcd_outdezAtt(SENSOR_2ND_COLUMN, y, sensor->custom.ratio, LEFT|attr|PREC1);
|
||||
break;
|
||||
if (sensor->unit == UNIT_RPMS) {
|
||||
lcd_putsLeft(y, NO_INDENT(STR_BLADES));
|
||||
if (attr) CHECK_INCDEC_MODELVAR(event, sensor->custom.ratio, 1, 30000);
|
||||
lcd_outdezAtt(SENSOR_2ND_COLUMN, y, sensor->custom.ratio, LEFT|attr);
|
||||
break;
|
||||
}
|
||||
else {
|
||||
lcd_putsLeft(y, STR_RATIO);
|
||||
if (attr) CHECK_INCDEC_MODELVAR(event, sensor->custom.ratio, 0, 30000);
|
||||
if (sensor->custom.ratio == 0)
|
||||
lcd_putcAtt(SENSOR_2ND_COLUMN, y, '-', attr);
|
||||
else
|
||||
lcd_outdezAtt(SENSOR_2ND_COLUMN, y, sensor->custom.ratio, LEFT|attr|PREC1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
// no break
|
||||
|
||||
case SENSOR_FIELD_PARAM2:
|
||||
if (sensor->type == TELEM_TYPE_CALCULATED) {
|
||||
if (sensor->formula == TELEM_FORMULA_CELL) {
|
||||
sensor->cell.index = selectMenuItem(SENSOR_2ND_COLUMN, y, "Cell index", "\007Lowest\0001\0 2\0 3\0 4\0 5\0 6\0 HighestDelta\0", sensor->cell.index, 0, 8, attr, event);
|
||||
sensor->cell.index = selectMenuItem(SENSOR_2ND_COLUMN, y, STR_CELLINDEX, STR_VCELLINDEX, sensor->cell.index, 0, 8, attr, event);
|
||||
break;
|
||||
}
|
||||
else if (sensor->formula == TELEM_FORMULA_DIST) {
|
||||
lcd_putsLeft(y, "Alt sensor");
|
||||
lcd_putsLeft(y, STR_ALTSENSOR);
|
||||
putsMixerSource(SENSOR_2ND_COLUMN, y, sensor->dist.alt ? MIXSRC_FIRST_TELEM+3*(sensor->dist.alt-1) : 0, attr);
|
||||
if (attr) {
|
||||
sensor->dist.alt = checkIncDec(event, sensor->dist.alt, 0, TELEM_VALUES_MAX, EE_MODEL|NO_INCDEC_MARKS, isAltSensor);
|
||||
@@ -355,6 +377,12 @@ void menuModelSensor(uint8_t event)
|
||||
break;
|
||||
}
|
||||
}
|
||||
else if (sensor->unit == UNIT_RPMS) {
|
||||
lcd_putsLeft(y, STR_MULTIPLIER);
|
||||
if (attr) CHECK_INCDEC_MODELVAR(event, sensor->custom.offset, 1, 30000);
|
||||
lcd_outdezAtt(SENSOR_2ND_COLUMN, y, sensor->custom.offset, LEFT|attr);
|
||||
break;
|
||||
}
|
||||
else {
|
||||
lcd_putsLeft(y, NO_INDENT(STR_OFFSET));
|
||||
if (attr) CHECK_INCDEC_MODELVAR(event, sensor->custom.offset, -30000, +30000);
|
||||
@@ -369,7 +397,7 @@ void menuModelSensor(uint8_t event)
|
||||
|
||||
case SENSOR_FIELD_PARAM4:
|
||||
{
|
||||
putsStrIdx(0, y, "Source", k-SENSOR_FIELD_PARAM1+1);
|
||||
putsStrIdx(0, y, NO_INDENT(STR_SOURCE), k-SENSOR_FIELD_PARAM1+1);
|
||||
int8_t & source = sensor->calc.sources[k-SENSOR_FIELD_PARAM1];
|
||||
if (attr) {
|
||||
source = checkIncDec(event, source, -TELEM_VALUES_MAX, TELEM_VALUES_MAX, EE_MODEL|NO_INCDEC_MARKS, isSensorAvailable);
|
||||
@@ -384,12 +412,20 @@ void menuModelSensor(uint8_t event)
|
||||
break;
|
||||
}
|
||||
|
||||
case SENSOR_FIELD_INPUT_FLAGS:
|
||||
sensor->inputFlags = selectMenuItem(SENSOR_2ND_COLUMN, y, "Options", "\013None\0 ""Auto Offset""Filter\0", sensor->inputFlags, 0, TELEM_INPUT_FLAGS_MAX, attr, event);
|
||||
case SENSOR_FIELD_AUTOOFFSET:
|
||||
ON_OFF_MENU_ITEM(sensor->autoOffset, SENSOR_2ND_COLUMN, y, STR_AUTOOFFSET, attr, event);
|
||||
break;
|
||||
|
||||
case SENSOR_FIELD_FILTER:
|
||||
ON_OFF_MENU_ITEM(sensor->filter, SENSOR_2ND_COLUMN, y, STR_FILTER, attr, event);
|
||||
break;
|
||||
|
||||
case SENSOR_FIELD_PERSISTENT:
|
||||
ON_OFF_MENU_ITEM(sensor->persistent, SENSOR_2ND_COLUMN, y, NO_INDENT(STR_PERSISTENT), attr, event);
|
||||
break;
|
||||
|
||||
case SENSOR_FIELD_LOGS:
|
||||
ON_OFF_MENU_ITEM(sensor->logs, SENSOR_2ND_COLUMN, y, "Logs", attr, event);
|
||||
ON_OFF_MENU_ITEM(sensor->logs, SENSOR_2ND_COLUMN, y, STR_LOGS, attr, event);
|
||||
break;
|
||||
|
||||
}
|
||||
@@ -478,6 +514,10 @@ void menuModelTelemetry(uint8_t event)
|
||||
else {
|
||||
lcd_putsAtt(TELEM_COL2, y, "---", 0); // TODO shortcut
|
||||
}
|
||||
TelemetrySensor * sensor = & g_model.telemetrySensors[index];
|
||||
if (sensor->type == TELEM_TYPE_CUSTOM) {
|
||||
lcd_outdezAtt(TELEM_COL3+1*FW, y, sensor->instance, LEFT);
|
||||
}
|
||||
if (attr) {
|
||||
s_editMode = 0;
|
||||
s_currIdx = index;
|
||||
@@ -501,6 +541,8 @@ void menuModelTelemetry(uint8_t event)
|
||||
|
||||
case ITEM_TELEMETRY_SENSORS_LABEL:
|
||||
lcd_putsLeft(y, STR_TELEMETRY_SENSORS);
|
||||
lcd_putsAtt(TELEM_COL2, y, STR_VALUE, 0);
|
||||
lcd_putsAtt(TELEM_COL3+1*FW, y, STR_ID, 0);
|
||||
break;
|
||||
|
||||
case ITEM_TELEMETRY_NEWSENSOR:
|
||||
@@ -512,6 +554,9 @@ void menuModelTelemetry(uint8_t event)
|
||||
s_currIdx = res;
|
||||
pushMenu(menuModelSensor);
|
||||
}
|
||||
else {
|
||||
POPUP_WARNING(STR_TELEMETRYFULL);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -590,8 +635,8 @@ void menuModelTelemetry(uint8_t event)
|
||||
|
||||
#if defined(REV9E)
|
||||
case ITEM_TELEMETRY_TOP_LCD_TIMER:
|
||||
lcd_putsLeft(y, "Top LCD Timer");
|
||||
putsStrIdx(TELEM_COL2, y, "Timer", g_model.topLcdTimer+1, attr);
|
||||
lcd_putsLeft(y, STR_TOPLCDTIMER);
|
||||
putsStrIdx(TELEM_COL2, y, STR_TIMER, g_model.topLcdTimer+1, attr);
|
||||
if (attr) {
|
||||
g_model.topLcdTimer = checkIncDec(event, g_model.topLcdTimer, 0, MAX_TIMERS-1, EE_MODEL);
|
||||
}
|
||||
@@ -728,7 +773,7 @@ void menuModelTelemetry(uint8_t event)
|
||||
const coord_t pos[] = {TELEM_COL1, TELEM_COL2, TELEM_COL3};
|
||||
putsMixerSource(pos[c], y, value, cellAttr);
|
||||
if (cellAttr && s_editMode>0) {
|
||||
CHECK_INCDEC_MODELVAR_ZERO_CHECK(event, value, MIXSRC_LAST_TELEM, isSourceAvailable);
|
||||
value = checkIncDec(event, value, 0, MIXSRC_LAST_TELEM, EE_MODEL|INCDEC_SOURCE|NO_INCDEC_MARKS, isSourceAvailable);
|
||||
}
|
||||
}
|
||||
if (attr && m_posHorz == NUM_LINE_ITEMS) {
|
||||
|
||||
@@ -202,6 +202,7 @@ bool isSwitchAvailableInCustomFunctions(int swtch);
|
||||
bool isSwitchAvailableInMixes(int swtch);
|
||||
bool isSwitchAvailableInTimers(int swtch);
|
||||
bool isModuleAvailable(int module);
|
||||
int getFirstAvailableSource(int min, int max, bool (*func)(int));
|
||||
#define AUTOSWITCH_ENTER_LONG() (attr && event==EVT_KEY_LONG(KEY_ENTER))
|
||||
#define CHECK_INCDEC_SWITCH(event, var, min, max, flags, available) \
|
||||
var = checkIncDec(event, var, min, max, (flags)|INCDEC_SWITCH, available)
|
||||
@@ -326,7 +327,8 @@ extern uint8_t s_warning_info_flags;
|
||||
|
||||
#define NAVIGATION_MENUS
|
||||
#define MENU_ADD_ITEM(s) s_menu[s_menu_count++] = s
|
||||
#define MENU_MAX_LINES 6
|
||||
#define MENU_MAX_LINES 12
|
||||
#define MENU_MAX_DISPLAY_LINES 6
|
||||
#define MENU_ADD_SD_ITEM(s) MENU_ADD_ITEM(s)
|
||||
#define MENU_LINE_LENGTH (LEN_MODEL_NAME+12)
|
||||
extern const char *s_menu[MENU_MAX_LINES];
|
||||
|
||||
@@ -42,6 +42,7 @@ horzpos_t m_posHorz;
|
||||
int8_t s_editMode;
|
||||
uint8_t s_noHi;
|
||||
uint8_t calibrationState;
|
||||
int s_source = MIXSRC_NONE;
|
||||
|
||||
#if defined(AUTOSWITCH)
|
||||
int8_t checkIncDecMovedSwitch(int8_t val)
|
||||
@@ -52,7 +53,7 @@ int8_t checkIncDecMovedSwitch(int8_t val)
|
||||
div_t info = switchInfo(swtch);
|
||||
if (IS_TOGGLE(info.quot)) {
|
||||
if (info.rem != 0) {
|
||||
val = (val == swtch ? swtch+2 : swtch);
|
||||
val = (val == swtch ? swtch-2 : swtch);
|
||||
}
|
||||
}
|
||||
else {
|
||||
@@ -70,6 +71,44 @@ INIT_STOPS(stops100, 3, -100, 0, 100)
|
||||
INIT_STOPS(stops1000, 3, -1000, 0, 1000)
|
||||
INIT_STOPS(stopsSwitch, 15, SWSRC_FIRST, CATEGORY_END(-SWSRC_FIRST_LOGICAL_SWITCH), CATEGORY_END(-SWSRC_FIRST_TRIM), CATEGORY_END(-SWSRC_LAST_SWITCH+1), 0, CATEGORY_END(SWSRC_LAST_SWITCH), CATEGORY_END(SWSRC_FIRST_TRIM-1), CATEGORY_END(SWSRC_FIRST_LOGICAL_SWITCH-1), SWSRC_LAST)
|
||||
|
||||
void onLongEnterPress(const char *result)
|
||||
{
|
||||
if (result == STR_MENU_INPUTS)
|
||||
s_source = getFirstAvailableSource(MIXSRC_FIRST_INPUT, MIXSRC_LAST_INPUT, isInputAvailable)+1;
|
||||
#if defined(LUA_MODEL_SCRIPTS)
|
||||
else if (result == STR_MENU_LUA)
|
||||
s_source = getFirstAvailableSource(MIXSRC_FIRST_LUA, MIXSRC_LAST_LUA, isSourceAvailable);
|
||||
#endif
|
||||
else if (result == STR_MENU_STICKS)
|
||||
s_source = MIXSRC_FIRST_STICK;
|
||||
else if (result == STR_MENU_POTS)
|
||||
s_source = MIXSRC_FIRST_POT;
|
||||
else if (result == STR_MENU_MAX)
|
||||
s_source = MIXSRC_MAX;
|
||||
else if (result == STR_MENU_HELI)
|
||||
s_source = MIXSRC_FIRST_HELI;
|
||||
else if (result == STR_MENU_TRIMS)
|
||||
s_source = MIXSRC_FIRST_TRIM;
|
||||
else if (result == STR_MENU_SWITCHES)
|
||||
s_source = MIXSRC_FIRST_SWITCH;
|
||||
else if (result == STR_MENU_TRAINER)
|
||||
s_source = MIXSRC_FIRST_TRAINER;
|
||||
else if (result == STR_MENU_CHANNELS)
|
||||
s_source = getFirstAvailableSource(MIXSRC_FIRST_CH, MIXSRC_LAST_CH, isSourceAvailable);
|
||||
else if (result == STR_MENU_GVARS)
|
||||
s_source = MIXSRC_FIRST_GVAR;
|
||||
|
||||
else if (result == STR_MENU_TELEMETRY) {
|
||||
for (int i = 0; i < TELEM_VALUES_MAX; i++) {
|
||||
TelemetrySensor * sensor = & g_model.telemetrySensors[i];
|
||||
if (sensor->isAvailable()) {
|
||||
s_source = MIXSRC_FIRST_TELEM + 3*i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int checkIncDec(unsigned int event, int val, int i_min, int i_max, unsigned int i_flags, IsValueAvailable isValueAvailable, const CheckIncDecStops &stops)
|
||||
{
|
||||
int newval = val;
|
||||
@@ -207,6 +246,56 @@ int checkIncDec(unsigned int event, int val, int i_min, int i_max, unsigned int
|
||||
else {
|
||||
checkIncDec_Ret = 0;
|
||||
}
|
||||
|
||||
if (i_flags & INCDEC_SOURCE) {
|
||||
if (event == EVT_KEY_LONG(KEY_ENTER)) {
|
||||
killEvents(event);
|
||||
s_source = MIXSRC_NONE;
|
||||
|
||||
if (i_min <= MIXSRC_FIRST_INPUT && i_max >= MIXSRC_FIRST_INPUT) {
|
||||
if (getFirstAvailableSource(MIXSRC_FIRST_INPUT, MIXSRC_LAST_INPUT, isInputAvailable) != MIXSRC_NONE)
|
||||
MENU_ADD_ITEM(STR_MENU_INPUTS);
|
||||
}
|
||||
#if defined(LUA_MODEL_SCRIPTS)
|
||||
if (i_min <= MIXSRC_FIRST_LUA && i_max >= MIXSRC_FIRST_LUA) {
|
||||
if (getFirstAvailableSource(MIXSRC_FIRST_LUA, MIXSRC_LAST_LUA, isSourceAvailable) != MIXSRC_NONE)
|
||||
MENU_ADD_ITEM(STR_MENU_LUA);
|
||||
}
|
||||
#endif
|
||||
if (i_min <= MIXSRC_FIRST_STICK && i_max >= MIXSRC_FIRST_STICK) MENU_ADD_ITEM(STR_MENU_STICKS);
|
||||
if (i_min <= MIXSRC_FIRST_POT && i_max >= MIXSRC_FIRST_POT) MENU_ADD_ITEM(STR_MENU_POTS);
|
||||
if (i_min <= MIXSRC_MAX && i_max >= MIXSRC_MAX) MENU_ADD_ITEM(STR_MENU_MAX);
|
||||
#if defined(HELI)
|
||||
if (i_min <= MIXSRC_FIRST_HELI && i_max >= MIXSRC_FIRST_HELI) MENU_ADD_ITEM(STR_MENU_HELI);
|
||||
#endif
|
||||
if (i_min <= MIXSRC_FIRST_TRIM && i_max >= MIXSRC_FIRST_TRIM) MENU_ADD_ITEM(STR_MENU_TRIMS);
|
||||
if (i_min <= MIXSRC_FIRST_SWITCH && i_max >= MIXSRC_FIRST_SWITCH) MENU_ADD_ITEM(STR_MENU_SWITCHES);
|
||||
if (i_min <= MIXSRC_FIRST_TRAINER && i_max >= MIXSRC_FIRST_TRAINER) MENU_ADD_ITEM(STR_MENU_TRAINER);
|
||||
if (i_min <= MIXSRC_FIRST_CH && i_max >= MIXSRC_FIRST_CH) MENU_ADD_ITEM(STR_MENU_CHANNELS);
|
||||
if (i_min <= MIXSRC_FIRST_GVAR && i_max >= MIXSRC_FIRST_GVAR && isValueAvailable(MIXSRC_FIRST_GVAR))
|
||||
MENU_ADD_ITEM(STR_MENU_GVARS);
|
||||
|
||||
if (i_min <= MIXSRC_FIRST_TELEM && i_max >= MIXSRC_FIRST_TELEM) {
|
||||
bool available = false;
|
||||
for (int i = 0; i < TELEM_VALUES_MAX; i++) {
|
||||
TelemetrySensor * sensor = & g_model.telemetrySensors[i];
|
||||
if (sensor->isAvailable()) {
|
||||
available = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (available)
|
||||
MENU_ADD_ITEM(STR_MENU_TELEMETRY);
|
||||
}
|
||||
menuHandler = onLongEnterPress;
|
||||
}
|
||||
if (s_source != MIXSRC_NONE) {
|
||||
newval = s_source;
|
||||
if (s_source != MIXSRC_MAX)
|
||||
s_editMode = 1;
|
||||
s_source = MIXSRC_NONE;
|
||||
}
|
||||
}
|
||||
return newval;
|
||||
}
|
||||
|
||||
@@ -229,6 +318,7 @@ void onLongMenuPress(const char *result)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
tmr10ms_t menuEntryTime;
|
||||
|
||||
void check(const char *name, check_event_t event, uint8_t curr, const MenuFuncP *menuTab, uint8_t menuTabSize, const pm_uint8_t *horTab, uint8_t horTabMax, vertpos_t rowcount, uint8_t flags)
|
||||
|
||||
@@ -127,18 +127,18 @@ const char * displayMenu(uint8_t event)
|
||||
{
|
||||
const char * result = NULL;
|
||||
|
||||
uint8_t display_count = min(s_menu_count, (uint16_t)MENU_MAX_LINES);
|
||||
uint8_t display_count = min(s_menu_count, (uint16_t)MENU_MAX_DISPLAY_LINES);
|
||||
uint8_t y = (display_count >= 5 ? MENU_Y - FH - 1 : MENU_Y);
|
||||
drawFilledRect(MENU_X, y, MENU_W, display_count * (FH+1) + 2, SOLID, ERASE);
|
||||
lcd_rect(MENU_X, y, MENU_W, display_count * (FH+1) + 2);
|
||||
|
||||
for (uint8_t i=0; i<display_count; i++) {
|
||||
lcd_putsAtt(MENU_X+6, i*(FH+1) + y + 2, s_menu[i], s_menu_flags);
|
||||
lcd_putsAtt(MENU_X+6, i*(FH+1) + y + 2, s_menu[i+s_menu_offset], s_menu_flags);
|
||||
if (i == s_menu_item) drawFilledRect(MENU_X+1, i*(FH+1) + y + 1, MENU_W-2, 9);
|
||||
}
|
||||
|
||||
if (s_menu_count > display_count) {
|
||||
displayScrollbar(MENU_X+MENU_W-1, y+1, MENU_MAX_LINES * (FH+1), s_menu_offset, s_menu_count, MENU_MAX_LINES);
|
||||
displayScrollbar(MENU_X+MENU_W-1, y+1, MENU_MAX_DISPLAY_LINES * (FH+1), s_menu_offset, s_menu_count, display_count);
|
||||
}
|
||||
|
||||
switch(event) {
|
||||
@@ -152,9 +152,9 @@ const char * displayMenu(uint8_t event)
|
||||
result = STR_UPDATE_LIST;
|
||||
}
|
||||
else {
|
||||
s_menu_item = display_count - 1;
|
||||
if (s_menu_count > MENU_MAX_LINES) {
|
||||
s_menu_offset = s_menu_count - display_count;
|
||||
s_menu_item = min(display_count, (uint8_t)MENU_MAX_DISPLAY_LINES)-1;
|
||||
if (s_menu_count > MENU_MAX_DISPLAY_LINES) {
|
||||
s_menu_offset = s_menu_count - MENU_MAX_DISPLAY_LINES;
|
||||
result = STR_UPDATE_LIST;
|
||||
}
|
||||
}
|
||||
@@ -179,7 +179,7 @@ const char * displayMenu(uint8_t event)
|
||||
break;
|
||||
CASE_EVT_ROTARY_BREAK
|
||||
case EVT_KEY_BREAK(KEY_ENTER):
|
||||
result = s_menu[s_menu_item];
|
||||
result = s_menu[s_menu_item+s_menu_offset];
|
||||
// no break
|
||||
case EVT_KEY_BREAK(KEY_EXIT):
|
||||
s_menu_count = 0;
|
||||
|
||||
@@ -36,6 +36,10 @@
|
||||
|
||||
#include "../../opentx.h"
|
||||
|
||||
const pm_uchar about_bmp[] PROGMEM = {
|
||||
#include "../../bitmaps/Taranis/about.lbm"
|
||||
};
|
||||
|
||||
enum AboutScreens {
|
||||
ABOUT_OPENTX,
|
||||
ABOUT_BERTRAND,
|
||||
@@ -78,6 +82,10 @@ void menuAboutView(uint8_t event)
|
||||
break;
|
||||
}
|
||||
|
||||
lcd_bmp(0, 0, about_bmp);
|
||||
lcd_putsAtt(64, 0, STR_ABOUTUS, DBLSIZE);
|
||||
lcd_hline(ABOUT_X, 18, 120);
|
||||
lcd_hline(ABOUT_X, 19, 130, GREY_DEFAULT);
|
||||
LcdFlags att = GREY(max(0, 15-greyIndex/2));
|
||||
|
||||
uint8_t screenDuration = 150;
|
||||
|
||||
@@ -117,7 +117,7 @@ void doMainScreenGraphics()
|
||||
|
||||
void displayTrims(uint8_t phase)
|
||||
{
|
||||
for (unsigned int i=0; i<NUM_STICKS; ++i) {
|
||||
for (unsigned int i=0; i<NUM_STICKS; i++) {
|
||||
coord_t x[4] = { TRIM_LH_X, TRIM_LV_X, TRIM_RV_X, TRIM_RH_X };
|
||||
uint8_t vert[4] = { 0, 1, 1, 0 };
|
||||
coord_t xm, ym;
|
||||
@@ -159,9 +159,9 @@ void displayTrims(uint8_t phase)
|
||||
if (exttrim) {
|
||||
lcd_hline(xm-1, ym, 3);
|
||||
}
|
||||
if (g_model.displayTrims != DISPLAY_TRIMS_NEVER) {
|
||||
if ((g_model.displayTrims == DISPLAY_TRIMS_ALWAYS && dir != 0) || (trimsDisplayTimer > 0 && (trimsDisplayMask & (1<<stickIndex)))) {
|
||||
lcd_outdezAtt(dir>0 ? 25 : 57, xm-2, -abs(dir), TINSIZE|VERTICAL);
|
||||
if (g_model.displayTrims != DISPLAY_TRIMS_NEVER && dir != 0) {
|
||||
if (g_model.displayTrims == DISPLAY_TRIMS_ALWAYS || (trimsDisplayTimer > 0 && (trimsDisplayMask & (1<<i)))) {
|
||||
lcd_outdezAtt(dir>0 ? 22 : 54, xm-2, -abs(dir/5), TINSIZE|VERTICAL);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -182,8 +182,8 @@ void displayTrims(uint8_t phase)
|
||||
lcd_vline(xm, ym-1, 3);
|
||||
}
|
||||
if (g_model.displayTrims != DISPLAY_TRIMS_NEVER && dir != 0) {
|
||||
if (g_model.displayTrims == DISPLAY_TRIMS_ALWAYS || (trimsDisplayTimer > 0 && (trimsDisplayMask & (1<<stickIndex)))) {
|
||||
lcd_outdezAtt((stickIndex==0 ? TRIM_LH_X : TRIM_RH_X)+(dir>0 ? -9 : 22), ym-2, -abs(dir), TINSIZE);
|
||||
if (g_model.displayTrims == DISPLAY_TRIMS_ALWAYS || (trimsDisplayTimer > 0 && (trimsDisplayMask & (1<<i)))) {
|
||||
lcd_outdezAtt((stickIndex==0 ? TRIM_LH_X : TRIM_RH_X)+(dir>0 ? -11 : 20), ym-2, -abs(dir/5), TINSIZE);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -571,7 +571,6 @@ void menuMainView(uint8_t event)
|
||||
lcd_bmp(BITMAP_X, BITMAP_Y, modelBitmap);
|
||||
|
||||
// Switches
|
||||
#if defined(REV9E)
|
||||
if (getSwitchCount() > 8) {
|
||||
for (int i=0; i<NUM_SWITCHES; ++i) {
|
||||
div_t qr = div(i, 9);
|
||||
@@ -591,39 +590,13 @@ void menuMainView(uint8_t event)
|
||||
int index = 0;
|
||||
for (int i=0; i<NUM_SWITCHES; ++i) {
|
||||
if (SWITCH_EXISTS(i)) {
|
||||
getvalue_t val = getValue(MIXSRC_SA+i);
|
||||
getvalue_t val = getValue(MIXSRC_FIRST_SWITCH+i);
|
||||
getvalue_t sw = ((val < 0) ? 3*i+1 : ((val == 0) ? 3*i+2 : 3*i+3));
|
||||
putsSwitches((g_eeGeneral.view == VIEW_INPUTS) ? (index<4 ? 8*FW+3 : 24*FW+1) : (index<4 ? 3*FW+2 : 8*FW-1), (index%4)*FH+3*FH, sw, 0);
|
||||
index++;
|
||||
}
|
||||
}
|
||||
}
|
||||
#else
|
||||
for (int i=0; i<8; ++i) {
|
||||
getvalue_t sw;
|
||||
getvalue_t val;
|
||||
// TODO simplify this + reuse code in checkSwitches() + Menu MODELSETUP
|
||||
switch(i) {
|
||||
case 5:
|
||||
sw = getValue(MIXSRC_SF) > 0 ? 3*i+2 : 3*i+1;
|
||||
break;
|
||||
case 6:
|
||||
val = getValue(MIXSRC_SG);
|
||||
sw = ((val < 0) ? 3*i : ((val == 0) ? 3*i+1 : 3*i+2));
|
||||
break;
|
||||
case 7:
|
||||
sw = getValue(MIXSRC_SH) > 0 ? 3*i+1 : 3*i;
|
||||
break;
|
||||
default:
|
||||
{
|
||||
val = getValue(MIXSRC_SA+i);
|
||||
sw = ((val < 0) ? 3*i+1 : ((val == 0) ? 3*i+2 : 3*i+3));
|
||||
break;
|
||||
}
|
||||
}
|
||||
putsSwitches((g_eeGeneral.view == VIEW_INPUTS) ? (i<4 ? 8*FW+3 : 24*FW+1) : (i<4 ? 3*FW+2 : 8*FW-1), (i%4)*FH+3*FH, sw, 0);
|
||||
}
|
||||
#endif
|
||||
|
||||
if (g_eeGeneral.view == VIEW_TIMERS) {
|
||||
displayTimers();
|
||||
|
||||
@@ -63,6 +63,19 @@ void menu_lcd_onoff(coord_t x, coord_t y, uint8_t value, LcdFlags attr)
|
||||
lcd_square(x, y, 7);
|
||||
}
|
||||
|
||||
#if defined(REV9E)
|
||||
void displayShutdownProgress(uint32_t progress)
|
||||
{
|
||||
lcd_clear();
|
||||
lcd_putsLeft(LCD_H/2-20, STR_POWEROFF);
|
||||
drawFilledRect((LCD_W-44)/2, LCD_H/2-5, 28, 10, SOLID, ERASE);
|
||||
lcd_rect((LCD_W-44)/2, LCD_H/2-5, 28, 10);
|
||||
for (int i=(progress/100); i>=0; i--) {
|
||||
drawFilledRect((LCD_W-44)/2+3+i*8, LCD_H/2-3, 6, 6, SOLID);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
void displayScreenIndex(uint8_t index, uint8_t count, uint8_t attr)
|
||||
{
|
||||
lcd_outdezAtt(LCD_W, 0, count, attr);
|
||||
|
||||
@@ -89,17 +89,13 @@ enum EnumKeys {
|
||||
SW_SE1,
|
||||
SW_SE2,
|
||||
SW_SF0,
|
||||
#if defined(REV9E)
|
||||
SW_SF1,
|
||||
#endif
|
||||
SW_SF2,
|
||||
SW_SG0,
|
||||
SW_SG1,
|
||||
SW_SG2,
|
||||
SW_SH0,
|
||||
#if defined(REV9E)
|
||||
SW_SH1,
|
||||
#endif
|
||||
SW_SH2,
|
||||
#if defined(REV9E)
|
||||
SW_SI0,
|
||||
|
||||
+11
-2
@@ -39,8 +39,6 @@
|
||||
static uint8_t currentSpeakerVolume = 255;
|
||||
uint8_t requiredSpeakerVolume = 255;
|
||||
|
||||
extern void checkBattery();
|
||||
|
||||
void handleUsbConnection()
|
||||
{
|
||||
#if defined(PCBTARANIS) && !defined(SIMU)
|
||||
@@ -185,6 +183,13 @@ void perMain()
|
||||
drawStatusLine();
|
||||
}
|
||||
|
||||
#if defined(REV9E) && !defined(SIMU)
|
||||
uint32_t pwr_pressed_duration = pwrPressedDuration();
|
||||
if (pwr_pressed_duration > 0) {
|
||||
displayShutdownProgress(pwr_pressed_duration);
|
||||
}
|
||||
#endif
|
||||
|
||||
lcdRefresh();
|
||||
|
||||
#if defined(REV9E) && !defined(SIMU)
|
||||
@@ -198,4 +203,8 @@ void perMain()
|
||||
topLcdRefreshEnd();
|
||||
#endif
|
||||
|
||||
#if defined(REV9E) && !defined(SIMU)
|
||||
bt_wakeup();
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
+12
-29
@@ -278,32 +278,15 @@ getvalue_t getValue(mixsrc_t i)
|
||||
else if (i<=MIXSRC_TrimAil) return calc1000toRESX((int16_t)8 * getTrimValue(mixerCurrentFlightMode, i-MIXSRC_TrimRud));
|
||||
|
||||
#if defined(PCBTARANIS)
|
||||
else if (i==MIXSRC_SA) return (switchState(SW_SA0) ? -1024 : (switchState(SW_SA1) ? 0 : 1024));
|
||||
else if (i==MIXSRC_SB) return (switchState(SW_SB0) ? -1024 : (switchState(SW_SB1) ? 0 : 1024));
|
||||
else if (i==MIXSRC_SC) return (switchState(SW_SC0) ? -1024 : (switchState(SW_SC1) ? 0 : 1024));
|
||||
else if (i==MIXSRC_SD) return (switchState(SW_SD0) ? -1024 : (switchState(SW_SD1) ? 0 : 1024));
|
||||
else if (i==MIXSRC_SE) return (switchState(SW_SE0) ? -1024 : (switchState(SW_SE1) ? 0 : 1024));
|
||||
#if defined(REV9E)
|
||||
else if (i==MIXSRC_SF) return (switchState(SW_SF0) ? -1024 : (switchState(SW_SF1) ? 0 : 1024));
|
||||
#else
|
||||
else if (i==MIXSRC_SF) return (switchState(SW_SF0) ? -1024 : 1024);
|
||||
#endif
|
||||
else if (i==MIXSRC_SG) return (switchState(SW_SG0) ? -1024 : (switchState(SW_SG1) ? 0 : 1024));
|
||||
#if defined(REV9E)
|
||||
else if (i==MIXSRC_SH) return (switchState(SW_SH0) ? -1024 : (switchState(SW_SH1) ? 0 : 1024));
|
||||
else if (i==MIXSRC_SI) return (switchState(SW_SI0) ? -1024 : (switchState(SW_SI1) ? 0 : 1024));
|
||||
else if (i==MIXSRC_SJ) return (switchState(SW_SJ0) ? -1024 : (switchState(SW_SJ1) ? 0 : 1024));
|
||||
else if (i==MIXSRC_SK) return (switchState(SW_SK0) ? -1024 : (switchState(SW_SK1) ? 0 : 1024));
|
||||
else if (i==MIXSRC_SL) return (switchState(SW_SL0) ? -1024 : (switchState(SW_SL1) ? 0 : 1024));
|
||||
else if (i==MIXSRC_SM) return (switchState(SW_SM0) ? -1024 : (switchState(SW_SM1) ? 0 : 1024));
|
||||
else if (i==MIXSRC_SN) return (switchState(SW_SN0) ? -1024 : (switchState(SW_SN1) ? 0 : 1024));
|
||||
else if (i==MIXSRC_SO) return (switchState(SW_SO0) ? -1024 : (switchState(SW_SO1) ? 0 : 1024));
|
||||
else if (i==MIXSRC_SP) return (switchState(SW_SP0) ? -1024 : (switchState(SW_SP1) ? 0 : 1024));
|
||||
else if (i==MIXSRC_SQ) return (switchState(SW_SQ0) ? -1024 : (switchState(SW_SQ1) ? 0 : 1024));
|
||||
else if (i==MIXSRC_SR) return (switchState(SW_SR0) ? -1024 : (switchState(SW_SR1) ? 0 : 1024));
|
||||
#else
|
||||
else if (i==MIXSRC_SH) return (switchState(SW_SH0) ? -1024 : 1024);
|
||||
#endif
|
||||
else if ((i >= MIXSRC_FIRST_SWITCH) && (i <= MIXSRC_LAST_SWITCH)) {
|
||||
mixsrc_t sw = i-MIXSRC_FIRST_SWITCH;
|
||||
if (SWITCH_EXISTS(sw)) {
|
||||
return (switchState((EnumKeys)(SW_BASE+(3*sw))) ? -1024 : (switchState((EnumKeys)(SW_BASE+(3*sw)+1)) ? 0 : 1024));
|
||||
}
|
||||
else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
#else
|
||||
else if (i==MIXSRC_3POS) return (getSwitch(SW_ID0-SW_BASE+1) ? -1024 : (getSwitch(SW_ID1-SW_BASE+1) ? 0 : 1024));
|
||||
// don't use switchState directly to give getSwitch possibility to hack values if needed for switch warning
|
||||
@@ -670,7 +653,7 @@ void evalFlightModeMixes(uint8_t mode, uint8_t tick10ms)
|
||||
|
||||
if (md->srcRaw == 0) break;
|
||||
|
||||
uint8_t stickIndex = md->srcRaw - MIXSRC_Rud;
|
||||
mixsrc_t stickIndex = md->srcRaw - MIXSRC_Rud;
|
||||
|
||||
if (!(dirtyChannels & ((bitfield_channels_t)1 << md->destCh))) continue;
|
||||
|
||||
@@ -726,10 +709,10 @@ void evalFlightModeMixes(uint8_t mode, uint8_t tick10ms)
|
||||
else
|
||||
#endif
|
||||
{
|
||||
int8_t srcRaw = MIXSRC_Rud + stickIndex;
|
||||
mixsrc_t srcRaw = MIXSRC_Rud + stickIndex;
|
||||
v = getValue(srcRaw);
|
||||
srcRaw -= MIXSRC_CH1;
|
||||
if (srcRaw>=0 && srcRaw<=MIXSRC_LAST_CH-MIXSRC_CH1 && md->destCh != srcRaw) {
|
||||
if (srcRaw<=MIXSRC_LAST_CH-MIXSRC_CH1 && md->destCh != srcRaw) {
|
||||
if (dirtyChannels & ((bitfield_channels_t)1 << srcRaw) & (passDirtyChannels|~(((bitfield_channels_t) 1 << md->destCh)-1)))
|
||||
passDirtyChannels |= (bitfield_channels_t) 1 << md->destCh;
|
||||
if (srcRaw < md->destCh || pass > 0)
|
||||
|
||||
+40
-33
@@ -130,6 +130,7 @@
|
||||
#define NUM_POTS 5
|
||||
#define NUM_XPOTS 3
|
||||
#endif
|
||||
#define TELEM_VALUES_MAX 32
|
||||
#elif defined(CPUARM)
|
||||
#define MAX_MODELS 60
|
||||
#define NUM_CHNOUT 32 // number of real output channels CH1-CH32
|
||||
@@ -141,6 +142,7 @@
|
||||
#define NUM_TRAINER 16
|
||||
#define NUM_POTS 3
|
||||
#define NUM_XPOTS 0
|
||||
#define TELEM_VALUES_MAX 16
|
||||
#elif defined(CPUM2560) || defined(CPUM2561)
|
||||
#define MAX_MODELS 30
|
||||
#define NUM_CHNOUT 16 // number of real output channels CH1-CH16
|
||||
@@ -152,6 +154,7 @@
|
||||
#define NUM_TRAINER 8
|
||||
#define NUM_POTS 3
|
||||
#define NUM_XPOTS 0
|
||||
#define TELEM_VALUES_MAX 0
|
||||
#elif defined(CPUM128)
|
||||
#define MAX_MODELS 30
|
||||
#define NUM_CHNOUT 16 // number of real output channels CH1-CH16
|
||||
@@ -163,6 +166,7 @@
|
||||
#define NUM_TRAINER 8
|
||||
#define NUM_POTS 3
|
||||
#define NUM_XPOTS 0
|
||||
#define TELEM_VALUES_MAX 0
|
||||
#else
|
||||
#define MAX_MODELS 16
|
||||
#define NUM_CHNOUT 16 // number of real output channels CH1-CH16
|
||||
@@ -174,6 +178,7 @@
|
||||
#define NUM_TRAINER 8
|
||||
#define NUM_POTS 3
|
||||
#define NUM_XPOTS 0
|
||||
#define TELEM_VALUES_MAX 0
|
||||
#endif
|
||||
|
||||
#if defined(CPUARM)
|
||||
@@ -584,9 +589,13 @@ enum ResetFunctionParam {
|
||||
#endif
|
||||
#if ROTARY_ENCODERS > 1
|
||||
FUNC_RESET_ROTENC2,
|
||||
#endif
|
||||
#if defined(CPUARM)
|
||||
FUNC_RESET_PARAM_FIRST_TELEM,
|
||||
FUNC_RESET_PARAM_LAST_TELEM = FUNC_RESET_PARAM_FIRST_TELEM + TELEM_VALUES_MAX,
|
||||
#endif
|
||||
FUNC_RESET_PARAMS_COUNT,
|
||||
FUNC_RESET_PARAM_LAST = FUNC_RESET_PARAMS_COUNT-1
|
||||
FUNC_RESET_PARAM_LAST = FUNC_RESET_PARAMS_COUNT-1,
|
||||
};
|
||||
|
||||
enum AdjustGvarFunctionParam {
|
||||
@@ -742,7 +751,7 @@ PACK(typedef struct {
|
||||
uint8_t disableAlarmWarning:1;
|
||||
uint8_t stickMode:2;
|
||||
int8_t timezone:5;
|
||||
uint8_t spare1:1;
|
||||
uint8_t adjustRTC:1;
|
||||
uint8_t inactivityTimer;
|
||||
uint8_t mavbaud:3;
|
||||
SPLASH_MODE; /* 3bits */
|
||||
@@ -1141,11 +1150,14 @@ enum TelemetryUnit {
|
||||
UNIT_RPMS,
|
||||
UNIT_G,
|
||||
UNIT_DEGREE,
|
||||
UNIT_MILLILITERS,
|
||||
UNIT_FLOZ,
|
||||
UNIT_HOURS,
|
||||
UNIT_MINUTES,
|
||||
UNIT_SECONDS,
|
||||
// FrSky format used for these fields, could be another format in the future
|
||||
UNIT_CELLS,
|
||||
UNIT_FIRST_VIRTUAL,
|
||||
UNIT_CELLS = UNIT_FIRST_VIRTUAL,
|
||||
UNIT_DATETIME,
|
||||
UNIT_GPS,
|
||||
UNIT_GPS_LONGITUDE,
|
||||
@@ -1157,7 +1169,7 @@ enum TelemetryUnit {
|
||||
UNIT_DATETIME_HOUR_MIN,
|
||||
UNIT_DATETIME_SEC
|
||||
};
|
||||
#define UNIT_MAX UNIT_DEGREE
|
||||
#define UNIT_MAX UNIT_FLOZ
|
||||
#define UNIT_DIST UNIT_METERS
|
||||
#define UNIT_TEMPERATURE UNIT_CELSIUS
|
||||
#define UNIT_SPEED UNIT_KMH
|
||||
@@ -1211,11 +1223,6 @@ PACK(typedef struct {
|
||||
#endif
|
||||
|
||||
#if defined(CPUARM)
|
||||
#if defined(PCBTARANIS)
|
||||
#define TELEM_VALUES_MAX 32
|
||||
#else
|
||||
#define TELEM_VALUES_MAX 16
|
||||
#endif
|
||||
#define TELEM_LABEL_LEN 4
|
||||
//#define TELEM_FLAG_TIMEOUT 0x01
|
||||
#define TELEM_FLAG_LOG 0x02
|
||||
@@ -1238,17 +1245,11 @@ enum TelemetrySensorFormula
|
||||
TELEM_FORMULA_MIN,
|
||||
TELEM_FORMULA_MAX,
|
||||
TELEM_FORMULA_MULTIPLY,
|
||||
TELEM_FORMULA_TOTALIZE,
|
||||
TELEM_FORMULA_CELL,
|
||||
TELEM_FORMULA_CONSUMPTION,
|
||||
TELEM_FORMULA_DIST,
|
||||
};
|
||||
|
||||
enum TelemetrySensorInputFlags
|
||||
{
|
||||
TELEM_INPUT_FLAGS_NONE,
|
||||
TELEM_INPUT_FLAGS_AUTO_OFFSET,
|
||||
TELEM_INPUT_FLAGS_FILTERING,
|
||||
TELEM_INPUT_FLAGS_MAX=TELEM_INPUT_FLAGS_FILTERING
|
||||
TELEM_FORMULA_LAST = TELEM_FORMULA_DIST
|
||||
};
|
||||
|
||||
PACK(typedef struct {
|
||||
@@ -1264,7 +1265,8 @@ PACK(typedef struct {
|
||||
uint8_t type:1; // 0=custom / 1=calculated
|
||||
uint8_t unit:5; // user can choose what unit to display each value in
|
||||
uint8_t prec:2;
|
||||
uint8_t inputFlags:2;
|
||||
uint8_t autoOffset:1;
|
||||
uint8_t filter:1;
|
||||
uint8_t logs:1;
|
||||
uint8_t persistent:1;
|
||||
uint8_t spare:4;
|
||||
@@ -1296,6 +1298,7 @@ PACK(typedef struct {
|
||||
void init(uint16_t id);
|
||||
bool isAvailable();
|
||||
int32_t getValue(int32_t value, uint8_t unit, uint8_t prec) const;
|
||||
bool isConfigurable();
|
||||
}) TelemetrySensor;
|
||||
#endif
|
||||
|
||||
@@ -1630,17 +1633,13 @@ enum SwitchSources {
|
||||
SWSRC_SE1,
|
||||
SWSRC_SE2,
|
||||
SWSRC_SF0,
|
||||
#if defined(REV9E)
|
||||
SWSRC_SF1,
|
||||
#endif
|
||||
SWSRC_SF2,
|
||||
SWSRC_SG0,
|
||||
SWSRC_SG1,
|
||||
SWSRC_SG2,
|
||||
SWSRC_SH0,
|
||||
#if defined(REV9E)
|
||||
SWSRC_SH1,
|
||||
#endif
|
||||
SWSRC_SH2,
|
||||
SWSRC_TRAINER = SWSRC_SH2,
|
||||
#if defined(REV9E)
|
||||
@@ -1767,10 +1766,11 @@ enum MixSources {
|
||||
MIXSRC_LAST_LUA = MIXSRC_FIRST_LUA+(MAX_SCRIPTS*MAX_SCRIPT_OUTPUTS)-1,
|
||||
#endif
|
||||
|
||||
MIXSRC_Rud, LUA_EXPORT("rud", "Rudder")
|
||||
MIXSRC_Ele, LUA_EXPORT("ele", "Elevator")
|
||||
MIXSRC_Thr, LUA_EXPORT("thr", "Throttle")
|
||||
MIXSRC_Ail, LUA_EXPORT("ail", "Aileron")
|
||||
MIXSRC_FIRST_STICK,
|
||||
MIXSRC_Rud = MIXSRC_FIRST_STICK, LUA_EXPORT("rud", "Rudder")
|
||||
MIXSRC_Ele, LUA_EXPORT("ele", "Elevator")
|
||||
MIXSRC_Thr, LUA_EXPORT("thr", "Throttle")
|
||||
MIXSRC_Ail, LUA_EXPORT("ail", "Aileron")
|
||||
|
||||
MIXSRC_FIRST_POT,
|
||||
#if defined(PCBTARANIS)
|
||||
@@ -1813,14 +1813,17 @@ enum MixSources {
|
||||
|
||||
MIXSRC_MAX,
|
||||
|
||||
MIXSRC_CYC1, LUA_EXPORT("cyc1", "Cyclic 1")
|
||||
MIXSRC_CYC2, LUA_EXPORT("cyc2", "Cyclic 2")
|
||||
MIXSRC_CYC3, LUA_EXPORT("cyc3", "Cyclic 3")
|
||||
MIXSRC_FIRST_HELI,
|
||||
MIXSRC_CYC1 = MIXSRC_FIRST_HELI, LUA_EXPORT("cyc1", "Cyclic 1")
|
||||
MIXSRC_CYC2, LUA_EXPORT("cyc2", "Cyclic 2")
|
||||
MIXSRC_CYC3, LUA_EXPORT("cyc3", "Cyclic 3")
|
||||
|
||||
MIXSRC_TrimRud, LUA_EXPORT("trim-rud", "Rudder trim")
|
||||
MIXSRC_TrimEle, LUA_EXPORT("trim-ele", "Elevator trim")
|
||||
MIXSRC_TrimThr, LUA_EXPORT("trim-thr", "Throttle trim")
|
||||
MIXSRC_TrimAil, LUA_EXPORT("trim-ail", "Aileron trim")
|
||||
MIXSRC_FIRST_TRIM,
|
||||
MIXSRC_TrimRud = MIXSRC_FIRST_TRIM, LUA_EXPORT("trim-rud", "Rudder trim")
|
||||
MIXSRC_TrimEle, LUA_EXPORT("trim-ele", "Elevator trim")
|
||||
MIXSRC_TrimThr, LUA_EXPORT("trim-thr", "Throttle trim")
|
||||
MIXSRC_TrimAil, LUA_EXPORT("trim-ail", "Aileron trim")
|
||||
MIXSRC_LAST_TRIM = MIXSRC_TrimAil,
|
||||
|
||||
MIXSRC_FIRST_SWITCH,
|
||||
|
||||
@@ -1844,6 +1847,9 @@ enum MixSources {
|
||||
MIXSRC_SP, LUA_EXPORT("sp", "Switch P")
|
||||
MIXSRC_SQ, LUA_EXPORT("sq", "Switch Q")
|
||||
MIXSRC_SR, LUA_EXPORT("sr", "Switch R")
|
||||
MIXSRC_LAST_SWITCH = MIXSRC_SR,
|
||||
#else
|
||||
MIXSRC_LAST_SWITCH = MIXSRC_SH,
|
||||
#endif
|
||||
#else
|
||||
MIXSRC_3POS = MIXSRC_FIRST_SWITCH,
|
||||
@@ -1853,6 +1859,7 @@ enum MixSources {
|
||||
MIXSRC_AIL,
|
||||
MIXSRC_GEA,
|
||||
MIXSRC_TRN,
|
||||
MIXSRC_LAST_SWITCH = MIXSRC_TRN,
|
||||
#endif
|
||||
MIXSRC_FIRST_LOGICAL_SWITCH,
|
||||
MIXSRC_SW1 = MIXSRC_FIRST_LOGICAL_SWITCH, LUA_EXPORT_MULTIPLE("ls", "Logical switch L%d", NUM_LOGICAL_SWITCH)
|
||||
|
||||
@@ -334,14 +334,15 @@ void defaultInputs()
|
||||
expo->mode = 3; // TODO constant
|
||||
#if defined(TRANSLATIONS_CZ)
|
||||
for (int c=0; c<4; c++) {
|
||||
g_model.inputNames[i][c] = char2idx(STR_INPUTNAMES[1+STR_INPUTNAMES[0]*(stick_index-1)+c]);
|
||||
g_model.inputNames[i][c] = char2idx(STR_INPUTNAMES[1+4*(stick_index-1)+c]);
|
||||
}
|
||||
g_model.inputNames[i][4] = '\0';
|
||||
#else
|
||||
for (int c=0; c<3; c++) {
|
||||
g_model.inputNames[i][c] = char2idx(STR_VSRCRAW[2+4*stick_index+c]);
|
||||
#endif
|
||||
}
|
||||
g_model.inputNames[i][3] = '\0';
|
||||
#endif
|
||||
}
|
||||
eeDirty(EE_MODEL);
|
||||
}
|
||||
@@ -2527,6 +2528,10 @@ int main(void)
|
||||
lcdSetRefVolt(25);
|
||||
#endif
|
||||
|
||||
#if defined(PCBTARANIS)
|
||||
displaySplash();
|
||||
#endif
|
||||
|
||||
sei(); // interrupts needed for telemetryInit and eeReadAll.
|
||||
|
||||
#if defined(FRSKY) && !defined(DSM2_SERIAL)
|
||||
|
||||
@@ -1474,6 +1474,10 @@ enum AUDIO_SOUNDS {
|
||||
extern uint8_t requiredSpeakerVolume;
|
||||
#endif
|
||||
|
||||
extern void checkBattery();
|
||||
extern void opentxClose();
|
||||
extern void opentxInit();
|
||||
|
||||
// Re-useable byte array to save having multiple buffers
|
||||
#define SD_SCREEN_FILE_LENGTH (32)
|
||||
union ReusableBuffer
|
||||
|
||||
@@ -207,8 +207,9 @@ char *strAppendFilename(char *dest, const char *filename, const int size)
|
||||
#define LEN_FILE_EXTENSION 4
|
||||
char *getFileExtension(char *filename, int size)
|
||||
{
|
||||
for (int i=0; i<size-LEN_FILE_EXTENSION; ++i) {
|
||||
if (filename[i] == '.' || filename[i] == '\0') {
|
||||
int len = min<int>(size, strlen(filename));
|
||||
for (int i=len; i>=len-LEN_FILE_EXTENSION; --i) {
|
||||
if (filename[i] == '.') {
|
||||
return &filename[i];
|
||||
}
|
||||
}
|
||||
|
||||
+1
-30
@@ -77,32 +77,10 @@ uint64_t switchesPos = 0;
|
||||
tmr10ms_t potsLastposStart[NUM_XPOTS] = { 0 };
|
||||
uint8_t potsPos[NUM_XPOTS];
|
||||
|
||||
#if defined(REV9E)
|
||||
div_t switchInfo(int switchPosition)
|
||||
{
|
||||
return div(switchPosition-SWSRC_FIRST_SWITCH, 3);
|
||||
}
|
||||
#else
|
||||
div_t switchInfo(int switchPosition)
|
||||
{
|
||||
if (switchPosition <= SWSRC_SE2) {
|
||||
return div(switchPosition-SWSRC_SA0, 3);
|
||||
}
|
||||
else if (switchPosition <= SWSRC_SF2) {
|
||||
div_t qr = { 5, switchPosition == SWSRC_SF2 ? 2 : 0 };
|
||||
return qr;
|
||||
}
|
||||
else if (switchPosition <= SWSRC_SG2) {
|
||||
div_t qr = { 6, switchPosition-SWSRC_SG0 };
|
||||
return qr;
|
||||
}
|
||||
else {
|
||||
div_t qr = div(2*7+switchPosition-SWSRC_SH0, 2);
|
||||
qr.rem *= 2;
|
||||
return qr;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
uint64_t check2PosSwitchPosition(EnumKeys sw)
|
||||
{
|
||||
@@ -577,14 +555,7 @@ int8_t getMovedSwitch()
|
||||
uint8_t next = (1024+getValue(MIXSRC_SA+i)) / 1024;
|
||||
if (prev != next) {
|
||||
switches_states = (switches_states & (~mask)) | ((swarnstate_t)next << (i*2));
|
||||
if (i<5)
|
||||
result = 1+(3*i)+next;
|
||||
else if (i==5)
|
||||
result = 1+(3*5)+(next!=0);
|
||||
else if (i==6)
|
||||
result = 1+(3*5)+2+next;
|
||||
else
|
||||
result = 1+(3*5)+2+3+(next!=0);
|
||||
result = 1+(3*i)+next;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -100,7 +100,7 @@ uint8_t pwrCheck()
|
||||
|
||||
void pwrOff()
|
||||
{
|
||||
PORTH = 0x1F; // PortH-4 set to 0
|
||||
PORTH = 0xEF; // PortH-4 set to 0
|
||||
}
|
||||
|
||||
FORCEINLINE uint8_t keyDown()
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include "../opentx.h"
|
||||
#include "../../opentx.h"
|
||||
|
||||
#if defined(REVX)
|
||||
// TODO change this, not the right place
|
||||
|
||||
@@ -16,9 +16,16 @@
|
||||
#define BT_UART_AF GPIO_AF_USART6
|
||||
#define BT_UART_IRQn USART6_IRQn
|
||||
|
||||
#define BT_UART_GPIO_PORT GPIOG
|
||||
#define BT_UART_GPIO_CLK_TXRX RCC_AHB1Periph_GPIOG
|
||||
#define BT_UART_GPIO_PORT_TXRX GPIOG
|
||||
#define BT_UART_GPIO_PIN_TX GPIO_Pin_14
|
||||
#define BT_UART_GPIO_PIN_RX GPIO_Pin_9
|
||||
#define BT_UART_GPIO_CLK_EN RCC_AHB1Periph_GPIOD
|
||||
#define BT_UART_GPIO_PORT_EN GPIOD
|
||||
#define BT_UART_GPIO_PIN_EN GPIO_Pin_11
|
||||
#define BT_UART_GPIO_CLK_BRTS RCC_AHB1Periph_GPIOB
|
||||
#define BT_UART_GPIO_PORT_BRTS GPIOB
|
||||
#define BT_UART_GPIO_PIN_BRTS GPIO_Pin_10
|
||||
#define BT_UART_GPIO_TX_PinSource GPIO_PinSource14
|
||||
#define BT_UART_GPIO_RX_PinSource GPIO_PinSource9
|
||||
|
||||
@@ -30,25 +37,34 @@ int bt_open()
|
||||
GPIO_InitTypeDef GPIO_InitStructure;
|
||||
USART_InitTypeDef USART_InitStructure;
|
||||
|
||||
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOG, ENABLE);
|
||||
RCC_AHB1PeriphClockCmd(BT_UART_GPIO_CLK_TXRX, ENABLE);
|
||||
RCC_AHB1PeriphClockCmd(BT_UART_GPIO_CLK_EN, ENABLE);
|
||||
RCC_AHB1PeriphClockCmd(BT_UART_GPIO_CLK_BRTS, ENABLE);
|
||||
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART6, ENABLE);
|
||||
|
||||
GPIO_PinAFConfig(BT_UART_GPIO_PORT, BT_UART_GPIO_TX_PinSource, BT_UART_AF);
|
||||
GPIO_PinAFConfig(BT_UART_GPIO_PORT, BT_UART_GPIO_RX_PinSource, BT_UART_AF);
|
||||
|
||||
GPIO_InitStructure.GPIO_Pin = BT_UART_GPIO_PIN_TX;
|
||||
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
|
||||
GPIO_InitStructure.GPIO_Pin = BT_UART_GPIO_PIN_EN;
|
||||
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
|
||||
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
|
||||
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
|
||||
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
|
||||
GPIO_Init(BT_UART_GPIO_PORT, &GPIO_InitStructure);
|
||||
|
||||
GPIO_InitStructure.GPIO_Pin = BT_UART_GPIO_PIN_RX;
|
||||
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
|
||||
GPIO_Init(BT_UART_GPIO_PORT_EN, &GPIO_InitStructure);
|
||||
|
||||
GPIO_InitStructure.GPIO_Pin = BT_UART_GPIO_PIN_BRTS;
|
||||
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
|
||||
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
|
||||
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
|
||||
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
|
||||
GPIO_Init(BT_UART_GPIO_PORT, &GPIO_InitStructure);
|
||||
GPIO_Init(BT_UART_GPIO_PORT_BRTS, &GPIO_InitStructure);
|
||||
|
||||
GPIO_InitStructure.GPIO_Pin = BT_UART_GPIO_PIN_TX|BT_UART_GPIO_PIN_RX;
|
||||
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
|
||||
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
|
||||
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
|
||||
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
|
||||
GPIO_Init(BT_UART_GPIO_PORT_TXRX, &GPIO_InitStructure);
|
||||
|
||||
GPIO_PinAFConfig(BT_UART_GPIO_PORT_TXRX, BT_UART_GPIO_TX_PinSource, BT_UART_AF);
|
||||
GPIO_PinAFConfig(BT_UART_GPIO_PORT_TXRX, BT_UART_GPIO_RX_PinSource, BT_UART_AF);
|
||||
|
||||
USART_InitStructure.USART_BaudRate = 115200;
|
||||
USART_InitStructure.USART_Parity = USART_Parity_No;
|
||||
@@ -68,9 +84,14 @@ int bt_open()
|
||||
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
|
||||
NVIC_Init(&NVIC_InitStructure);
|
||||
|
||||
GPIO_SetBits(BT_UART_GPIO_PORT_BRTS, BT_UART_GPIO_PIN_BRTS);
|
||||
GPIO_ResetBits(BT_UART_GPIO_PORT_EN, BT_UART_GPIO_PIN_EN); // open bluetooth
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
uint8_t bt_state = 0;
|
||||
|
||||
extern "C" void USART6_IRQHandler(void)
|
||||
{
|
||||
#if 1
|
||||
@@ -90,6 +111,8 @@ extern "C" void USART6_IRQHandler(void)
|
||||
}
|
||||
else {
|
||||
USART_ITConfig(BT_UART, USART_IT_TXE, DISABLE);
|
||||
GPIO_SetBits(BT_UART_GPIO_PORT_BRTS, BT_UART_GPIO_PIN_BRTS);
|
||||
bt_state = 0;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
@@ -101,10 +124,23 @@ int bt_write(const void *buffer, int len)
|
||||
for (int i=0; i<len; ++i) {
|
||||
btTxFifo.push(data[i]);
|
||||
}
|
||||
USART_ITConfig(BT_UART, USART_IT_TXE, ENABLE);
|
||||
return 0;
|
||||
}
|
||||
|
||||
void bt_wakeup(void)
|
||||
{
|
||||
if (bt_state < 2 && !btTxFifo.empty()) {
|
||||
if (bt_state == 0) {
|
||||
GPIO_ResetBits(BT_UART_GPIO_PORT_BRTS, BT_UART_GPIO_PIN_BRTS);
|
||||
bt_state = 1;
|
||||
}
|
||||
else {
|
||||
USART_ITConfig(BT_UART, USART_IT_TXE, ENABLE);
|
||||
bt_state = 2;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int bt_read(void *buffer, int len)
|
||||
{
|
||||
int result = 0;
|
||||
@@ -121,5 +157,6 @@ int bt_read(void *buffer, int len)
|
||||
|
||||
int bt_close()
|
||||
{
|
||||
GPIO_SetBits(BT_UART_GPIO_PORT_EN, BT_UART_GPIO_PIN_EN); // close bluetooth
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -110,16 +110,30 @@ extern "C" {
|
||||
#define PIN_OUTPUT 0x0001
|
||||
#define PIN_PERIPHERAL 0x0002
|
||||
#define PIN_ANALOG 0x0003
|
||||
|
||||
#define PIN_PULL_MASK 0x000C
|
||||
#define PIN_PULLUP 0x0004
|
||||
#define PIN_NO_PULLUP 0x0000
|
||||
#define PIN_PULLDOWN 0x0008
|
||||
#define PIN_NO_PULLDOWN 0x0000
|
||||
#define PIN_PERI_MASK 0x00F0
|
||||
#define PIN_PUSHPULL 0x0000
|
||||
#define PIN_ODRAIN 0x8000
|
||||
|
||||
#define PIN_PORT_MASK 0x0700
|
||||
#define PIN_PORTA 0x0000
|
||||
#define PIN_PORTB 0x0100
|
||||
#define PIN_PORTC 0x0200
|
||||
#define PIN_PORTD 0x0300
|
||||
#define PIN_PORTE 0x0400
|
||||
#define PIN_PORTF 0x0500
|
||||
|
||||
#define PIN_PERI_MASK 0x00F0
|
||||
#define PIN_PER_1 0x0010
|
||||
#define PIN_PER_2 0x0020
|
||||
#define PIN_PER_3 0x0030
|
||||
#define PIN_PER_5 0x0050
|
||||
#define PIN_PER_6 0x0060
|
||||
#define PIN_PER_8 0x0080
|
||||
|
||||
#define PIN_SPEED_MASK 0x6000
|
||||
#define PIN_OS25 0x2000
|
||||
#define PIN_OS50 0x4000
|
||||
#define PIN_OS100 0x6000
|
||||
|
||||
void configure_pins( uint32_t pins, uint16_t config );
|
||||
|
||||
@@ -243,6 +257,10 @@ extern "C" {
|
||||
void pwrInit(void);
|
||||
uint32_t pwrCheck(void);
|
||||
void pwrOff(void);
|
||||
#if defined(REV9E)
|
||||
uint32_t pwrPressed(void);
|
||||
uint32_t pwrPressedDuration(void);
|
||||
#endif
|
||||
#define UNEXPECTED_SHUTDOWN() (g_eeGeneral.unexpectedShutdown)
|
||||
|
||||
// Backlight driver
|
||||
@@ -312,6 +330,7 @@ void uart3Stop(void);
|
||||
int bt_open(void);
|
||||
int bt_write(const void *buffer, int len);
|
||||
int bt_read(void *buffer, int len);
|
||||
void bt_wakeup(void);
|
||||
|
||||
// Top LCD driver
|
||||
#if defined(REV9E)
|
||||
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
/bootloader_ramBoot.*
|
||||
/.dep
|
||||
|
||||
@@ -791,11 +791,17 @@ int main()
|
||||
}
|
||||
}
|
||||
|
||||
if (pwrCheck() == e_power_off && state != ST_FLASHING && state != ST_USB) {
|
||||
lcdOff(); // this drains LCD caps
|
||||
pwrOff();
|
||||
for (;;) {
|
||||
// Wait for power to go off
|
||||
if (state != ST_FLASHING && state != ST_USB) {
|
||||
#if defined(REV9E)
|
||||
if (pwrPressed()) {
|
||||
#else
|
||||
if (pwrCheck() == e_power_off) {
|
||||
#endif
|
||||
lcdOff(); // this drains LCD caps
|
||||
pwrOff();
|
||||
for (;;) {
|
||||
// Wait for power to go off
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -65,10 +65,6 @@ void configure_pins( uint32_t pins, uint16_t config )
|
||||
|
||||
/* Output mode configuration*/
|
||||
pgpio->OTYPER &= ~((GPIO_OTYPER_OT_0) << ((uint16_t)pos)) ;
|
||||
if ( config & PIN_ODRAIN )
|
||||
{
|
||||
pgpio->OTYPER |= (GPIO_OTYPER_OT_0) << pos ;
|
||||
}
|
||||
}
|
||||
/* Pull-up Pull down resistor configuration*/
|
||||
pgpio->PUPDR &= ~(GPIO_PUPDR_PUPDR0 << ((uint16_t)pos * 2));
|
||||
|
||||
@@ -210,23 +210,6 @@
|
||||
#define GPIOTRNDET GPIOA
|
||||
#define PIN_TRNDET GPIO_Pin_8
|
||||
|
||||
#define PIN_PORTA 0x0000
|
||||
#define PIN_PORTB 0x0100
|
||||
#define PIN_PORTC 0x0200
|
||||
#define PIN_PORTD 0x0300
|
||||
#define PIN_PORTE 0x0400
|
||||
#define PIN_PORTF 0x0500
|
||||
#define PIN_PER_1 0x0010
|
||||
#define PIN_PER_2 0x0020
|
||||
#define PIN_PER_3 0x0030
|
||||
#define PIN_PER_5 0x0050
|
||||
#define PIN_PER_6 0x0060
|
||||
#define PIN_PER_8 0x0080
|
||||
// #define PIN_OS2 0x0000
|
||||
#define PIN_OS25 0x2000
|
||||
#define PIN_OS50 0x4000
|
||||
#define PIN_OS100 0x6000
|
||||
|
||||
// Cppm
|
||||
#define RCC_AHB1Periph_GPIO_INTPPM RCC_AHB1Periph_GPIOA
|
||||
#define PIN_INTPPM_OUT GPIO_Pin_10 // PA.10
|
||||
@@ -301,7 +284,7 @@
|
||||
#endif
|
||||
|
||||
// LCD
|
||||
#if defined(REVPLUS)
|
||||
#if defined(REV9E)
|
||||
#define RCC_AHB1Periph_LCD (RCC_AHB1Periph_GPIOA | RCC_AHB1Periph_GPIOC | RCC_AHB1Periph_GPIOD)
|
||||
#define RCC_AHB1Periph_LCD_RST RCC_AHB1Periph_GPIOD
|
||||
#define RCC_AHB1Periph_LCD_NCS RCC_AHB1Periph_GPIOA
|
||||
@@ -312,7 +295,19 @@
|
||||
#define PIN_LCD_CLK GPIO_Pin_10 // PC.10
|
||||
#define PIN_LCD_NCS GPIO_Pin_15 // PA.15
|
||||
#define PIN_LCD_A0 GPIO_Pin_11 // PC.11
|
||||
#define PIN_LCD_RST GPIO_Pin_15 // TOTO PD.12
|
||||
#define PIN_LCD_RST GPIO_Pin_15 // PD.15
|
||||
#elif defined(REVPLUS)
|
||||
#define RCC_AHB1Periph_LCD (RCC_AHB1Periph_GPIOA | RCC_AHB1Periph_GPIOC | RCC_AHB1Periph_GPIOD)
|
||||
#define RCC_AHB1Periph_LCD_RST RCC_AHB1Periph_GPIOD
|
||||
#define RCC_AHB1Periph_LCD_NCS RCC_AHB1Periph_GPIOA
|
||||
#define GPIO_LCD_SPI GPIOC
|
||||
#define GPIO_LCD_NCS GPIOA
|
||||
#define GPIO_LCD_RST GPIOD
|
||||
#define PIN_LCD_MOSI GPIO_Pin_12 // PC.12
|
||||
#define PIN_LCD_CLK GPIO_Pin_10 // PC.10
|
||||
#define PIN_LCD_NCS GPIO_Pin_15 // PA.15
|
||||
#define PIN_LCD_A0 GPIO_Pin_11 // PC.11
|
||||
#define PIN_LCD_RST GPIO_Pin_12 // PD.12
|
||||
#else
|
||||
#define RCC_AHB1Periph_LCD RCC_AHB1Periph_GPIOD
|
||||
#define GPIO_LCD_SPI GPIOD
|
||||
|
||||
@@ -55,10 +55,10 @@ void initLcdSpi()
|
||||
SPI3->CR1 |= SPI_CR1_MSTR ; // Make sure in case SSM/SSI needed to be set first
|
||||
SPI3->CR1 |= SPI_CR1_SPE ;
|
||||
|
||||
configure_pins( PIN_LCD_NCS, PIN_OUTPUT | PIN_PORTA | PIN_PUSHPULL | PIN_OS25 | PIN_NO_PULLUP ) ;
|
||||
configure_pins( PIN_LCD_RST, PIN_OUTPUT | PIN_PORTD | PIN_PUSHPULL | PIN_OS25 | PIN_NO_PULLUP ) ;
|
||||
configure_pins( PIN_LCD_A0, PIN_OUTPUT | PIN_PORTC | PIN_PUSHPULL | PIN_OS50 | PIN_NO_PULLUP ) ;
|
||||
configure_pins( PIN_LCD_MOSI|PIN_LCD_CLK, PIN_PORTC | PIN_PUSHPULL | PIN_OS50 | PIN_NO_PULLUP | PIN_PER_6 | PIN_PERIPHERAL ) ;
|
||||
configure_pins( PIN_LCD_NCS, PIN_OUTPUT | PIN_PORTA | PIN_OS25) ;
|
||||
configure_pins( PIN_LCD_RST, PIN_OUTPUT | PIN_PORTD | PIN_OS25) ;
|
||||
configure_pins( PIN_LCD_A0, PIN_OUTPUT | PIN_PORTC | PIN_OS50) ;
|
||||
configure_pins( PIN_LCD_MOSI|PIN_LCD_CLK, PIN_PORTC | PIN_OS50 | PIN_PER_6 | PIN_PERIPHERAL ) ;
|
||||
|
||||
|
||||
// NVIC_SetPriority( DMA1_Stream7_IRQn, 8 ) ;
|
||||
|
||||
@@ -323,7 +323,7 @@ static void init_pa10_ppm()
|
||||
//RCC->AHB1ENR |= RCC_AHB1ENR_GPIOAEN ; // Enable portA clock
|
||||
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIO_INTPPM, ENABLE);
|
||||
|
||||
configure_pins( PIN_INTPPM_OUT, PIN_PERIPHERAL | PIN_PORTA | PIN_PER_1 | PIN_OS25 | PIN_PUSHPULL ) ;
|
||||
configure_pins( PIN_INTPPM_OUT, PIN_PERIPHERAL | PIN_PORTA | PIN_PER_1 | PIN_OS25) ;
|
||||
|
||||
RCC->APB2ENR |= RCC_APB2ENR_TIM1EN ; // Enable clock
|
||||
TIM1->CR1 &= ~TIM_CR1_CEN ;
|
||||
@@ -553,7 +553,7 @@ static void init_pa7_ppm()
|
||||
ppmStreamPtr[EXTERNAL_MODULE] = ppmStream[EXTERNAL_MODULE];
|
||||
|
||||
RCC->AHB1ENR |= RCC_AHB1ENR_GPIOAEN ; // Enable portA clock
|
||||
configure_pins( PIN_EXTPPM_OUT, PIN_PERIPHERAL | PIN_PORTA | PIN_PER_3 | PIN_OS25 | PIN_PUSHPULL ) ;
|
||||
configure_pins( PIN_EXTPPM_OUT, PIN_PERIPHERAL | PIN_PORTA | PIN_PER_3 | PIN_OS25) ;
|
||||
RCC->APB2ENR |= RCC_APB2ENR_TIM8EN ; // Enable clock
|
||||
TIM8->CR1 &= ~TIM_CR1_CEN ;
|
||||
|
||||
|
||||
@@ -37,14 +37,8 @@
|
||||
#include "board_taranis.h"
|
||||
#include "../../pwr.h"
|
||||
|
||||
#ifdef REV9E
|
||||
#define POWER_STATE_OFF 0
|
||||
#define POWER_STATE_START 1
|
||||
#define POWER_STATE_RUNNING 2
|
||||
#define POWER_STATE_STOPPING 3
|
||||
#define POWER_STATE_STOPPED 4
|
||||
uint8_t PowerState = POWER_STATE_OFF ;
|
||||
#endif
|
||||
extern volatile uint32_t g_tmr10ms;
|
||||
#define get_tmr10ms() g_tmr10ms
|
||||
|
||||
void pwrInit()
|
||||
{
|
||||
@@ -99,6 +93,10 @@ void pwrInit()
|
||||
|
||||
// Soft power ON
|
||||
GPIO_SetBits(GPIOPWR, PIN_MCU_PWR);
|
||||
|
||||
#if defined(REV9E)
|
||||
while (pwrPressed()) ;
|
||||
#endif
|
||||
}
|
||||
|
||||
void pwrOff()
|
||||
@@ -106,41 +104,45 @@ void pwrOff()
|
||||
GPIO_ResetBits(GPIOPWR, PIN_MCU_PWR);
|
||||
}
|
||||
|
||||
// TODO enums should be UPPERCASE
|
||||
#if defined(REV9E)
|
||||
uint32_t pwrPressed()
|
||||
{
|
||||
return GPIO_ReadInputDataBit(GPIOPWR, PIN_PWR_STATUS) == Bit_RESET;
|
||||
}
|
||||
#if !defined(BOOT)
|
||||
uint32_t pwrPressTime = 0;
|
||||
uint32_t pwrPressedDuration()
|
||||
{
|
||||
if (pwrPressTime == 0) {
|
||||
return 0;
|
||||
}
|
||||
else {
|
||||
return get_tmr10ms() - pwrPressTime;
|
||||
}
|
||||
}
|
||||
uint32_t pwrCheck()
|
||||
{
|
||||
if (pwrPressed()) {
|
||||
if (pwrPressTime == 0) {
|
||||
pwrPressTime = get_tmr10ms();
|
||||
}
|
||||
else {
|
||||
if (get_tmr10ms() - pwrPressTime > 250) {
|
||||
return e_power_off;
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
pwrPressTime = 0;
|
||||
}
|
||||
return e_power_on;
|
||||
}
|
||||
#endif
|
||||
#else
|
||||
uint32_t pwrCheck()
|
||||
{
|
||||
#if defined(SIMU)
|
||||
return e_power_on;
|
||||
#elif defined(REV9E)
|
||||
uint32_t switchValue = GPIO_ReadInputDataBit(GPIOPWR, PIN_PWR_STATUS) == Bit_RESET;
|
||||
switch ( PowerState )
|
||||
{
|
||||
case POWER_STATE_OFF :
|
||||
PowerState = POWER_STATE_START ;
|
||||
return e_power_on ;
|
||||
|
||||
case POWER_STATE_START :
|
||||
if ( !switchValue ) {
|
||||
PowerState = POWER_STATE_RUNNING ;
|
||||
}
|
||||
return e_power_on ;
|
||||
|
||||
case POWER_STATE_RUNNING :
|
||||
if ( switchValue ) {
|
||||
PowerState = POWER_STATE_STOPPING ;
|
||||
// return e_power_on;
|
||||
}
|
||||
return e_power_on ;
|
||||
|
||||
case POWER_STATE_STOPPING :
|
||||
if ( !switchValue ) {
|
||||
PowerState = POWER_STATE_STOPPED ;
|
||||
}
|
||||
return e_power_off ;
|
||||
|
||||
case POWER_STATE_STOPPED :
|
||||
return e_power_off ;
|
||||
}
|
||||
#else
|
||||
if (GPIO_ReadInputDataBit(GPIOPWR, PIN_PWR_STATUS) == Bit_RESET)
|
||||
return e_power_on;
|
||||
@@ -150,3 +152,4 @@ uint32_t pwrCheck()
|
||||
return e_power_off;
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -48,7 +48,7 @@ void init_trainer_ppm()
|
||||
TrainerPulsePtr = ppmStream[TRAINER_MODULE];
|
||||
|
||||
RCC->AHB1ENR |= RCC_AHB1ENR_GPIOCEN ; // Enable portC clock
|
||||
configure_pins( PIN_TR_PPM_OUT, PIN_PERIPHERAL | PIN_PORTC | PIN_PER_2 | PIN_OS25 | PIN_PUSHPULL ) ;
|
||||
configure_pins( PIN_TR_PPM_OUT, PIN_PERIPHERAL | PIN_PORTC | PIN_PER_2 | PIN_OS25) ;
|
||||
configure_pins( PIN_TR_PPM_IN, PIN_PORTA | PIN_INPUT ) ;
|
||||
RCC->APB1ENR |= RCC_APB1ENR_TIM3EN ; // Enable clock
|
||||
TIM3->CR1 &= ~TIM_CR1_CEN ;
|
||||
@@ -92,10 +92,22 @@ void set_trainer_ppm_parameters(uint32_t idleTime, uint32_t delay, uint32_t posi
|
||||
// Trainer capture, PC8, Timer 3 channel 3
|
||||
void init_trainer_capture()
|
||||
{
|
||||
RCC->AHB1ENR |= RCC_AHB1ENR_GPIOCEN ; // Enable portC clock
|
||||
configure_pins (PIN_TR_PPM_IN, PIN_PERIPHERAL | PIN_PORTC | PIN_PER_2) ;
|
||||
RCC->APB1ENR |= RCC_APB1ENR_TIM3EN ; // Enable clock
|
||||
GPIO_InitTypeDef GPIO_InitStructure;
|
||||
|
||||
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOC, ENABLE);
|
||||
#if 0
|
||||
configure_pins (PIN_TR_PPM_IN, PIN_PERIPHERAL | PIN_PORTC | PIN_PER_2) ;
|
||||
#else
|
||||
GPIO_InitStructure.GPIO_Pin = PIN_TR_PPM_IN;
|
||||
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
|
||||
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
|
||||
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;
|
||||
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
|
||||
GPIO_Init(GPIO_TR_INOUT, &GPIO_InitStructure);
|
||||
GPIO_PinAFConfig(GPIO_TR_INOUT, GPIO_PinSource8, GPIO_AF_TIM3);
|
||||
#endif
|
||||
|
||||
RCC->APB1ENR |= RCC_APB1ENR_TIM3EN ;
|
||||
TIM3->ARR = 0xFFFF ;
|
||||
TIM3->PSC = (PERI1_FREQUENCY * TIMER_MULT_APB1) / 2000000 - 1 ; // 0.5uS
|
||||
TIM3->CR2 = 0 ;
|
||||
|
||||
@@ -155,9 +155,6 @@ void mixerTask(void * pdata)
|
||||
|
||||
#define MENU_TASK_PERIOD_TICKS 10 // 20ms
|
||||
|
||||
extern void opentxClose();
|
||||
extern void opentxInit();
|
||||
|
||||
void menusTask(void * pdata)
|
||||
{
|
||||
opentxInit();
|
||||
|
||||
@@ -357,6 +357,11 @@ void telemetryWakeup()
|
||||
uint8_t lastReceived = telemetryItems[i].lastReceived;
|
||||
if (lastReceived < TELEMETRY_VALUE_TIMER_CYCLE && uint8_t(now - lastReceived) > TELEMETRY_VALUE_OLD_THRESHOLD) {
|
||||
telemetryItems[i].lastReceived = TELEMETRY_VALUE_OLD;
|
||||
TelemetrySensor * sensor = & g_model.telemetrySensors[i];
|
||||
if (sensor->unit == UNIT_DATETIME) {
|
||||
telemetryItems[i].datetime.datestate = 0;
|
||||
telemetryItems[i].datetime.timestate = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -566,12 +571,15 @@ void telemetryReset()
|
||||
#endif
|
||||
|
||||
#if defined(CPUARM) && defined(SIMU)
|
||||
setTelemetryValue(TELEM_PROTO_FRSKY_SPORT, RSSI_ID, 0, 75, UNIT_RAW, 0);
|
||||
setTelemetryValue(TELEM_PROTO_FRSKY_SPORT, T1_FIRST_ID, 0, 100, UNIT_CELSIUS, 0);
|
||||
setTelemetryValue(TELEM_PROTO_FRSKY_SPORT, T1_FIRST_ID, 1, 200, UNIT_CELSIUS, 0);
|
||||
setTelemetryValue(TELEM_PROTO_FRSKY_SPORT, RSSI_ID, 25, 75, UNIT_RAW, 0);
|
||||
setTelemetryValue(TELEM_PROTO_FRSKY_SPORT, SWR_ID, 25, 5, UNIT_RAW, 0);
|
||||
setTelemetryValue(TELEM_PROTO_FRSKY_SPORT, T1_FIRST_ID, 5, 100, UNIT_CELSIUS, 0);
|
||||
setTelemetryValue(TELEM_PROTO_FRSKY_SPORT, T1_FIRST_ID+0x10, 5, 200, UNIT_CELSIUS, 0);
|
||||
setTelemetryValue(TELEM_PROTO_FRSKY_SPORT, ALT_FIRST_ID, 1, 1000, UNIT_METERS, 2);
|
||||
setTelemetryValue(TELEM_PROTO_FRSKY_SPORT, CELLS_FIRST_ID, 1, 0x80280220, UNIT_CELLS, 0);
|
||||
setTelemetryValue(TELEM_PROTO_FRSKY_SPORT, CURR_FIRST_ID, 1, 100, UNIT_AMPS, 2);
|
||||
setTelemetryValue(TELEM_PROTO_FRSKY_SPORT, CELLS_FIRST_ID, 2, 0x80280220, UNIT_CELLS, 0);
|
||||
setTelemetryValue(TELEM_PROTO_FRSKY_SPORT, CURR_FIRST_ID, 3, 100, UNIT_AMPS, 2);
|
||||
setTelemetryValue(TELEM_PROTO_FRSKY_SPORT, RPM_FIRST_ID, 5, 3600, UNIT_RPMS, 0);
|
||||
setTelemetryValue(TELEM_PROTO_FRSKY_SPORT, FUEL_QTY_FIRST_ID, 11, 1000, UNIT_MILLILITERS, 2);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
@@ -135,9 +135,13 @@
|
||||
#define RSSI_ID 0xf101
|
||||
#define ADC1_ID 0xf102
|
||||
#define ADC2_ID 0xf103
|
||||
#define SP2UART_A_ID 0xfd00
|
||||
#define SP2UART_B_ID 0xfd01
|
||||
#define BATT_ID 0xf104
|
||||
#define SWR_ID 0xf105
|
||||
#define XJT_VERSION_ID 0xf106
|
||||
#define FUEL_QTY_FIRST_ID 0x0a10
|
||||
#define FUEL_QTY_LAST_ID 0x0a1f
|
||||
|
||||
// Default sensor data IDs (Physical IDs + CRC)
|
||||
#define DATA_ID_VARIO 0x00 // 0
|
||||
@@ -331,7 +335,8 @@ struct FrskyData {
|
||||
};
|
||||
#endif
|
||||
|
||||
#define IS_VALID_XJT_VERSION() (frskyData.xjtVersion != 0 && frskyData.xjtVersion != 0xff)
|
||||
#define IS_VALID_XJT_VERSION() (frskyData.xjtVersion != 0 && frskyData.xjtVersion != 0xff)
|
||||
#define IS_HIDDEN_TELEMETRY_VALUE() ((appId == SP2UART_A_ID) || (appId == SP2UART_B_ID) || (appId == XJT_VERSION_ID) || ((appId == SWR_ID) && !IS_VALID_XJT_VERSION()))
|
||||
|
||||
enum AlarmLevel {
|
||||
alarm_off = 0,
|
||||
|
||||
@@ -643,10 +643,10 @@ void frskyDSetDefault(int index, uint16_t id)
|
||||
if (id >= D_A1_ID && id <= D_A2_ID) {
|
||||
telemetrySensor.prec = 1;
|
||||
telemetrySensor.custom.ratio = 132;
|
||||
telemetrySensor.inputFlags = TELEM_INPUT_FLAGS_FILTERING;
|
||||
telemetrySensor.filter = 1;
|
||||
}
|
||||
else if (id == D_RSSI_ID) {
|
||||
telemetrySensor.inputFlags = TELEM_INPUT_FLAGS_FILTERING;
|
||||
telemetrySensor.filter = 1;
|
||||
}
|
||||
}
|
||||
else {
|
||||
|
||||
@@ -58,9 +58,12 @@ struct FrSkySportSensor {
|
||||
|
||||
const FrSkySportSensor sportSensors[] = {
|
||||
{ RSSI_ID, RSSI_ID, ZSTR_RSSI, UNIT_RAW, 0 },
|
||||
{ ADC1_ID, ADC1_ID, ZSTR_A1, UNIT_VOLTS, 0 },
|
||||
{ ADC2_ID, ADC2_ID, ZSTR_A2, UNIT_VOLTS, 0 },
|
||||
{ BATT_ID, BATT_ID, ZSTR_BATT, UNIT_VOLTS, 0 },
|
||||
{ SWR_ID, SWR_ID, ZSTR_SWR, UNIT_RAW, 0 },
|
||||
{ ADC1_ID, ADC1_ID, ZSTR_A1, UNIT_VOLTS, 1 },
|
||||
{ ADC2_ID, ADC2_ID, ZSTR_A2, UNIT_VOLTS, 1 },
|
||||
{ A3_FIRST_ID, A3_LAST_ID, ZSTR_A3, UNIT_VOLTS, 2 },
|
||||
{ A4_FIRST_ID, A4_LAST_ID, ZSTR_A4, UNIT_VOLTS, 2 },
|
||||
{ BATT_ID, BATT_ID, ZSTR_BATT, UNIT_VOLTS, 1 },
|
||||
{ T1_FIRST_ID, T2_LAST_ID, ZSTR_TEMP, UNIT_CELSIUS, 0 },
|
||||
{ RPM_FIRST_ID, RPM_LAST_ID, ZSTR_RPM, UNIT_RPMS, 0 },
|
||||
{ FUEL_FIRST_ID, FUEL_LAST_ID, ZSTR_FUEL, UNIT_PERCENT, 0 },
|
||||
@@ -77,6 +80,7 @@ const FrSkySportSensor sportSensors[] = {
|
||||
{ GPS_ALT_FIRST_ID, GPS_ALT_LAST_ID, ZSTR_GPSALT, UNIT_METERS, 2 },
|
||||
{ GPS_TIME_DATE_FIRST_ID, GPS_TIME_DATE_LAST_ID, ZSTR_GPSDATETIME, UNIT_DATETIME, 0 },
|
||||
{ GPS_LONG_LATI_FIRST_ID, GPS_LONG_LATI_LAST_ID, ZSTR_GPS, UNIT_GPS, 0 },
|
||||
{ FUEL_QTY_FIRST_ID, FUEL_QTY_LAST_ID, ZSTR_FUEL, UNIT_MILLILITERS, 2 },
|
||||
{ 0, 0, NULL, UNIT_RAW, 0 } // sentinel
|
||||
};
|
||||
|
||||
@@ -166,7 +170,7 @@ void processSportUpdatePacket(uint8_t *packet)
|
||||
|
||||
void processSportPacket(uint8_t *packet)
|
||||
{
|
||||
uint8_t dataId = packet[0];
|
||||
uint8_t dataId = (packet[0] & 0x1F) + 1;
|
||||
uint8_t prim = packet[1];
|
||||
uint16_t appId = *((uint16_t *)(packet+2));
|
||||
|
||||
@@ -220,8 +224,8 @@ void processSportPacket(uint8_t *packet)
|
||||
uint16_t value = HUB_DATA_U16(packet);
|
||||
processHubPacket(id, value);
|
||||
}
|
||||
else {
|
||||
if (appId == ADC1_ID || appId == ADC2_ID || appId == BATT_ID) {
|
||||
else if (!IS_HIDDEN_TELEMETRY_VALUE()) {
|
||||
if (appId == ADC1_ID || appId == ADC2_ID || appId == BATT_ID || appId == SWR_ID) {
|
||||
data = SPORT_DATA_U8(packet);
|
||||
}
|
||||
const FrSkySportSensor * sensor = getFrSkySportSensor(appId);
|
||||
@@ -250,9 +254,12 @@ void frskySportSetDefault(int index, uint16_t id, uint8_t instance)
|
||||
uint8_t prec = min<uint8_t>(2, sensor->prec);
|
||||
telemetrySensor.init(sensor->name, unit, prec);
|
||||
if (id >= ADC1_ID && id <= BATT_ID) {
|
||||
telemetrySensor.prec = 1;
|
||||
telemetrySensor.custom.ratio = 132;
|
||||
telemetrySensor.inputFlags = TELEM_INPUT_FLAGS_FILTERING;
|
||||
telemetrySensor.filter = 1;
|
||||
}
|
||||
if (unit == UNIT_RPMS) {
|
||||
telemetrySensor.custom.ratio = 1;
|
||||
telemetrySensor.custom.offset = 1;
|
||||
}
|
||||
}
|
||||
else {
|
||||
|
||||
@@ -14,8 +14,10 @@ void TelemetryItem::gpsReceived()
|
||||
lastReceived = now();
|
||||
}
|
||||
|
||||
void TelemetryItem::setValue(const TelemetrySensor & sensor, int32_t newVal, uint32_t unit, uint32_t prec)
|
||||
void TelemetryItem::setValue(const TelemetrySensor & sensor, int32_t val, uint32_t unit, uint32_t prec)
|
||||
{
|
||||
int32_t newVal = val;
|
||||
|
||||
if (unit == UNIT_CELLS) {
|
||||
uint32_t data = uint32_t(newVal);
|
||||
uint8_t cellIndex = data & 0xF;
|
||||
@@ -52,13 +54,41 @@ void TelemetryItem::setValue(const TelemetrySensor & sensor, int32_t newVal, uin
|
||||
datetime.year = (uint16_t) ((data & 0xff000000) >> 24);
|
||||
datetime.month = (uint8_t) ((data & 0x00ff0000) >> 16);
|
||||
datetime.day = (uint8_t) ((data & 0x0000ff00) >> 8);
|
||||
datetime.datestate = 1;
|
||||
if (datetime.year != 0) {
|
||||
datetime.datestate = 1;
|
||||
}
|
||||
#if defined(RTCLOCK)
|
||||
if (g_eeGeneral.adjustRTC && (datetime.datestate == 1)) {
|
||||
struct gtm t;
|
||||
gettime(&t);
|
||||
t.tm_year = datetime.year+4;
|
||||
t.tm_mon = datetime.month-1;
|
||||
t.tm_mday = datetime.day;
|
||||
rtcSetTime(&t);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
else {
|
||||
datetime.hour = ((uint8_t) ((data & 0xff000000) >> 24) + g_eeGeneral.timezone + 24) % 24;
|
||||
datetime.min = (uint8_t) ((data & 0x00ff0000) >> 16);
|
||||
datetime.sec = (uint16_t) ((data & 0x0000ff00) >> 8);
|
||||
datetime.timestate = 1;
|
||||
if (datetime.datestate == 1) {
|
||||
datetime.timestate = 1;
|
||||
}
|
||||
#if defined(RTCLOCK)
|
||||
if (g_eeGeneral.adjustRTC && (datetime.datestate == 1)) {
|
||||
struct gtm t;
|
||||
gettime(&t);
|
||||
if (abs((t.tm_hour-datetime.hour)*3600 + (t.tm_min-datetime.min)*60 + (t.tm_sec-datetime.sec)) > 20) {
|
||||
// we adjust RTC only if difference is > 20 seconds
|
||||
t.tm_hour = datetime.hour;
|
||||
t.tm_min = datetime.min;
|
||||
t.tm_sec = datetime.sec;
|
||||
g_rtcTime = gmktime(&t); // update local timestamp and get wday calculated
|
||||
rtcSetTime(&t);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
if (datetime.year == 0) {
|
||||
return;
|
||||
@@ -141,30 +171,33 @@ void TelemetryItem::setValue(const TelemetrySensor & sensor, int32_t newVal, uin
|
||||
datetime.timestate = 1;
|
||||
newVal = 0;
|
||||
}
|
||||
else if (unit == UNIT_RPMS) {
|
||||
newVal = (newVal * sensor.custom.offset) / sensor.custom.ratio;
|
||||
}
|
||||
else {
|
||||
newVal = sensor.getValue(newVal, unit, prec);
|
||||
if (sensor.inputFlags == TELEM_INPUT_FLAGS_AUTO_OFFSET) {
|
||||
if (sensor.autoOffset) {
|
||||
if (!isAvailable()) {
|
||||
offsetAuto = -newVal;
|
||||
std.offsetAuto = -newVal;
|
||||
}
|
||||
newVal += offsetAuto;
|
||||
newVal += std.offsetAuto;
|
||||
}
|
||||
else if (sensor.inputFlags == TELEM_INPUT_FLAGS_FILTERING) {
|
||||
else if (sensor.filter) {
|
||||
if (!isAvailable()) {
|
||||
for (int i=0; i<TELEMETRY_AVERAGE_COUNT; i++) {
|
||||
filterValues[i] = newVal;
|
||||
std.filterValues[i] = newVal;
|
||||
}
|
||||
}
|
||||
else {
|
||||
// calculate the average from values[] and value
|
||||
// also shift readings in values [] array
|
||||
unsigned int sum = filterValues[0];
|
||||
unsigned int sum = std.filterValues[0];
|
||||
for (int i=0; i<TELEMETRY_AVERAGE_COUNT-1; i++) {
|
||||
int32_t tmp = filterValues[i+1];
|
||||
filterValues[i] = tmp;
|
||||
int32_t tmp = std.filterValues[i+1];
|
||||
std.filterValues[i] = tmp;
|
||||
sum += tmp;
|
||||
}
|
||||
filterValues[TELEMETRY_AVERAGE_COUNT-1] = newVal;
|
||||
std.filterValues[TELEMETRY_AVERAGE_COUNT-1] = newVal;
|
||||
sum += newVal;
|
||||
newVal = sum/(TELEMETRY_AVERAGE_COUNT+1);
|
||||
}
|
||||
@@ -185,6 +218,15 @@ void TelemetryItem::setValue(const TelemetrySensor & sensor, int32_t newVal, uin
|
||||
}
|
||||
}
|
||||
|
||||
for (int i=0; i<TELEM_VALUES_MAX; i++) {
|
||||
TelemetrySensor & it = g_model.telemetrySensors[i];
|
||||
if (it.type == TELEM_TYPE_CALCULATED && it.formula == TELEM_FORMULA_TOTALIZE && &g_model.telemetrySensors[it.consumption.source-1] == &sensor) {
|
||||
TelemetryItem & item = telemetryItems[i];
|
||||
int32_t increment = it.getValue(val, unit, prec);
|
||||
item.setValue(it, item.value+increment, it.unit, it.prec);
|
||||
}
|
||||
}
|
||||
|
||||
value = newVal;
|
||||
lastReceived = now();
|
||||
}
|
||||
@@ -401,40 +443,6 @@ void TelemetryItem::eval(const TelemetrySensor & sensor)
|
||||
}
|
||||
}
|
||||
|
||||
int getTelemetryIndex(TelemetryProtocol protocol, uint16_t id, uint8_t instance)
|
||||
{
|
||||
int available = -1;
|
||||
|
||||
for (int index=0; index<TELEM_VALUES_MAX; index++) {
|
||||
TelemetrySensor & telemetrySensor = g_model.telemetrySensors[index];
|
||||
if (telemetrySensor.id == id && telemetrySensor.instance == instance) {
|
||||
return index;
|
||||
}
|
||||
else if (available < 0 && telemetrySensor.id == 0) {
|
||||
available = index;
|
||||
}
|
||||
}
|
||||
|
||||
if (available >= 0) {
|
||||
switch (protocol) {
|
||||
#if defined(FRSKY_SPORT)
|
||||
case TELEM_PROTO_FRSKY_SPORT:
|
||||
frskySportSetDefault(available, id, instance);
|
||||
break;
|
||||
#endif
|
||||
#if defined(FRSKY)
|
||||
case TELEM_PROTO_FRSKY_D:
|
||||
frskyDSetDefault(available, id);
|
||||
break;
|
||||
#endif
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return available;
|
||||
}
|
||||
|
||||
void delTelemetryIndex(uint8_t index)
|
||||
{
|
||||
memclear(&g_model.telemetrySensors[index], sizeof(TelemetrySensor));
|
||||
@@ -453,15 +461,56 @@ int availableTelemetryIndex()
|
||||
return -1;
|
||||
}
|
||||
|
||||
int lastUsedTelemetryIndex()
|
||||
{
|
||||
for (int index=TELEM_VALUES_MAX-1; index>=0; index--) {
|
||||
TelemetrySensor & telemetrySensor = g_model.telemetrySensors[index];
|
||||
if (telemetrySensor.isAvailable()) {
|
||||
return index;
|
||||
}
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
bool isSensorAvailableInResetSpecialFunction(int index)
|
||||
{
|
||||
TelemetrySensor & telemetrySensor = g_model.telemetrySensors[index-FUNC_RESET_PARAM_FIRST_TELEM];
|
||||
return telemetrySensor.isAvailable();
|
||||
}
|
||||
|
||||
void setTelemetryValue(TelemetryProtocol protocol, uint16_t id, uint8_t instance, int32_t value, uint32_t unit, uint32_t prec)
|
||||
{
|
||||
int index = getTelemetryIndex(protocol, id, instance);
|
||||
|
||||
if (index >= 0) {
|
||||
telemetryItems[index].setValue(g_model.telemetrySensors[index], value, unit, prec);
|
||||
bool available = false;
|
||||
|
||||
for (int index=0; index<TELEM_VALUES_MAX; index++) {
|
||||
TelemetrySensor & telemetrySensor = g_model.telemetrySensors[index];
|
||||
if (telemetrySensor.id == id && telemetrySensor.instance == instance) {
|
||||
telemetryItems[index].setValue(g_model.telemetrySensors[index], value, unit, prec);
|
||||
available = true;
|
||||
}
|
||||
}
|
||||
else {
|
||||
// TODO error too many sensors
|
||||
|
||||
if (!available) {
|
||||
int index = availableTelemetryIndex();
|
||||
if (index >= 0) {
|
||||
switch (protocol) {
|
||||
#if defined(FRSKY_SPORT)
|
||||
case TELEM_PROTO_FRSKY_SPORT:
|
||||
frskySportSetDefault(index, id, instance);
|
||||
break;
|
||||
#endif
|
||||
#if defined(FRSKY)
|
||||
case TELEM_PROTO_FRSKY_D:
|
||||
frskyDSetDefault(index, id);
|
||||
break;
|
||||
#endif
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
else {
|
||||
POPUP_WARNING(STR_TELEMETRYFULL);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -516,7 +565,12 @@ int32_t convertTelemetryValue(int32_t value, uint8_t unit, uint8_t prec, uint8_t
|
||||
value = 32 + (value*18)/10;
|
||||
}
|
||||
}
|
||||
|
||||
else if (unit == UNIT_MILLILITERS) {
|
||||
if (destUnit == UNIT_FLOZ) {
|
||||
value = (value * 100) / 2957;
|
||||
}
|
||||
}
|
||||
|
||||
for (int i=destPrec; i<prec; i++)
|
||||
value /= 10;
|
||||
|
||||
@@ -545,3 +599,17 @@ int32_t TelemetrySensor::getValue(int32_t value, uint8_t unit, uint8_t prec) con
|
||||
return value;
|
||||
}
|
||||
|
||||
bool TelemetrySensor::isConfigurable()
|
||||
{
|
||||
if (type == TELEM_TYPE_CALCULATED) {
|
||||
if (formula >= TELEM_FORMULA_CELL) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (unit >= UNIT_FIRST_VIRTUAL) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -97,8 +97,10 @@ class TelemetryItem
|
||||
uint8_t lastReceived; // for detection of sensor loss
|
||||
|
||||
union {
|
||||
int32_t offsetAuto;
|
||||
int32_t filterValues[TELEMETRY_AVERAGE_COUNT];
|
||||
struct {
|
||||
int32_t offsetAuto;
|
||||
int32_t filterValues[TELEMETRY_AVERAGE_COUNT];
|
||||
} std;
|
||||
struct {
|
||||
uint16_t prescale;
|
||||
} consumption;
|
||||
@@ -175,16 +177,18 @@ inline bool isTelemetryFieldComparisonAvailable(int index)
|
||||
TelemetrySensor & sensor = g_model.telemetrySensors[index];
|
||||
if (sensor.type == TELEM_TYPE_CALCULATED)
|
||||
return true;
|
||||
if (sensor.unit == UNIT_GPS)
|
||||
return false;
|
||||
if (sensor.unit == UNIT_DATETIME)
|
||||
if (sensor.unit >= UNIT_DATETIME)
|
||||
return false;
|
||||
return (sensor.id != 0);
|
||||
}
|
||||
|
||||
extern TelemetryItem telemetryItems[];
|
||||
|
||||
void setTelemetryValue(TelemetryProtocol protocol, uint16_t id, uint8_t instance, int32_t value, uint32_t unit, uint32_t prec);
|
||||
void delTelemetryIndex(uint8_t index);
|
||||
int availableTelemetryIndex();
|
||||
int lastUsedTelemetryIndex();
|
||||
bool isSensorAvailableInResetSpecialFunction(int index);
|
||||
int32_t getTelemetryValue(uint8_t index, uint8_t & prec);
|
||||
int32_t convertTelemetryValue(int32_t value, uint8_t unit, uint8_t prec, uint8_t destUnit, uint8_t destPrec);
|
||||
|
||||
|
||||
@@ -761,6 +761,9 @@ TEST(Mixer, SlowOnSwitchSource)
|
||||
g_model.mixData[0].weight = 100;
|
||||
g_model.mixData[0].speedUp = SLOW_STEP*5;
|
||||
g_model.mixData[0].speedDown = SLOW_STEP*5;
|
||||
#if defined(PCBTARANIS)
|
||||
g_eeGeneral.switchConfig = 0x03;
|
||||
#endif
|
||||
|
||||
s_mixer_first_run_done = true;
|
||||
|
||||
|
||||
+67
-640
@@ -2,10 +2,12 @@
|
||||
******************************************************************************
|
||||
* @file system_stm32f4xx.c
|
||||
* @author MCD Application Team
|
||||
* @version V1.4.0
|
||||
* @date 04-August-2014
|
||||
* @version V1.1.0
|
||||
* @date 21-March-2015
|
||||
* @brief CMSIS Cortex-M4 Device Peripheral Access Layer System Source File.
|
||||
* This file contains the system clock configuration for STM32F4xx devices.
|
||||
* This file contains the system clock configuration for STM32F4xx devices,
|
||||
* and is generated by the clock configuration tool
|
||||
* stm32f4xx_Clock_Configuration_V1.1.0.xls
|
||||
*
|
||||
* 1. This file provides two functions and one global variable to be called from
|
||||
* user application:
|
||||
@@ -40,7 +42,7 @@
|
||||
* 5. This file configures the system clock as follows:
|
||||
*=============================================================================
|
||||
*=============================================================================
|
||||
* Supported STM32F40xxx/41xxx devices
|
||||
* Supported STM32F40xx/41xx/427x/437x devices
|
||||
*-----------------------------------------------------------------------------
|
||||
* System Clock source | PLL (HSE)
|
||||
*-----------------------------------------------------------------------------
|
||||
@@ -54,9 +56,9 @@
|
||||
*-----------------------------------------------------------------------------
|
||||
* APB2 Prescaler | 2
|
||||
*-----------------------------------------------------------------------------
|
||||
* HSE Frequency(Hz) | 25000000
|
||||
* HSE Frequency(Hz) | 12000000
|
||||
*-----------------------------------------------------------------------------
|
||||
* PLL_M | 25
|
||||
* PLL_M | 12
|
||||
*-----------------------------------------------------------------------------
|
||||
* PLL_N | 336
|
||||
*-----------------------------------------------------------------------------
|
||||
@@ -82,152 +84,11 @@
|
||||
*-----------------------------------------------------------------------------
|
||||
* Data cache | ON
|
||||
*-----------------------------------------------------------------------------
|
||||
* Require 48MHz for USB OTG FS, | Disabled
|
||||
* Require 48MHz for USB OTG FS, | Enabled
|
||||
* SDIO and RNG clock |
|
||||
*-----------------------------------------------------------------------------
|
||||
*=============================================================================
|
||||
*=============================================================================
|
||||
* Supported STM32F42xxx/43xxx devices
|
||||
*-----------------------------------------------------------------------------
|
||||
* System Clock source | PLL (HSE)
|
||||
*-----------------------------------------------------------------------------
|
||||
* SYSCLK(Hz) | 180000000
|
||||
*-----------------------------------------------------------------------------
|
||||
* HCLK(Hz) | 180000000
|
||||
*-----------------------------------------------------------------------------
|
||||
* AHB Prescaler | 1
|
||||
*-----------------------------------------------------------------------------
|
||||
* APB1 Prescaler | 4
|
||||
*-----------------------------------------------------------------------------
|
||||
* APB2 Prescaler | 2
|
||||
*-----------------------------------------------------------------------------
|
||||
* HSE Frequency(Hz) | 25000000
|
||||
*-----------------------------------------------------------------------------
|
||||
* PLL_M | 25
|
||||
*-----------------------------------------------------------------------------
|
||||
* PLL_N | 360
|
||||
*-----------------------------------------------------------------------------
|
||||
* PLL_P | 2
|
||||
*-----------------------------------------------------------------------------
|
||||
* PLL_Q | 7
|
||||
*-----------------------------------------------------------------------------
|
||||
* PLLI2S_N | NA
|
||||
*-----------------------------------------------------------------------------
|
||||
* PLLI2S_R | NA
|
||||
*-----------------------------------------------------------------------------
|
||||
* I2S input clock | NA
|
||||
*-----------------------------------------------------------------------------
|
||||
* VDD(V) | 3.3
|
||||
*-----------------------------------------------------------------------------
|
||||
* Main regulator output voltage | Scale1 mode
|
||||
*-----------------------------------------------------------------------------
|
||||
* Flash Latency(WS) | 5
|
||||
*-----------------------------------------------------------------------------
|
||||
* Prefetch Buffer | ON
|
||||
*-----------------------------------------------------------------------------
|
||||
* Instruction cache | ON
|
||||
*-----------------------------------------------------------------------------
|
||||
* Data cache | ON
|
||||
*-----------------------------------------------------------------------------
|
||||
* Require 48MHz for USB OTG FS, | Disabled
|
||||
* SDIO and RNG clock |
|
||||
*-----------------------------------------------------------------------------
|
||||
*=============================================================================
|
||||
*=============================================================================
|
||||
* Supported STM32F401xx devices
|
||||
*-----------------------------------------------------------------------------
|
||||
* System Clock source | PLL (HSE)
|
||||
*-----------------------------------------------------------------------------
|
||||
* SYSCLK(Hz) | 84000000
|
||||
*-----------------------------------------------------------------------------
|
||||
* HCLK(Hz) | 84000000
|
||||
*-----------------------------------------------------------------------------
|
||||
* AHB Prescaler | 1
|
||||
*-----------------------------------------------------------------------------
|
||||
* APB1 Prescaler | 2
|
||||
*-----------------------------------------------------------------------------
|
||||
* APB2 Prescaler | 1
|
||||
*-----------------------------------------------------------------------------
|
||||
* HSE Frequency(Hz) | 25000000
|
||||
*-----------------------------------------------------------------------------
|
||||
* PLL_M | 25
|
||||
*-----------------------------------------------------------------------------
|
||||
* PLL_N | 336
|
||||
*-----------------------------------------------------------------------------
|
||||
* PLL_P | 4
|
||||
*-----------------------------------------------------------------------------
|
||||
* PLL_Q | 7
|
||||
*-----------------------------------------------------------------------------
|
||||
* PLLI2S_N | NA
|
||||
*-----------------------------------------------------------------------------
|
||||
* PLLI2S_R | NA
|
||||
*-----------------------------------------------------------------------------
|
||||
* I2S input clock | NA
|
||||
*-----------------------------------------------------------------------------
|
||||
* VDD(V) | 3.3
|
||||
*-----------------------------------------------------------------------------
|
||||
* Main regulator output voltage | Scale1 mode
|
||||
*-----------------------------------------------------------------------------
|
||||
* Flash Latency(WS) | 2
|
||||
*-----------------------------------------------------------------------------
|
||||
* Prefetch Buffer | ON
|
||||
*-----------------------------------------------------------------------------
|
||||
* Instruction cache | ON
|
||||
*-----------------------------------------------------------------------------
|
||||
* Data cache | ON
|
||||
*-----------------------------------------------------------------------------
|
||||
* Require 48MHz for USB OTG FS, | Disabled
|
||||
* SDIO and RNG clock |
|
||||
*-----------------------------------------------------------------------------
|
||||
*=============================================================================
|
||||
*=============================================================================
|
||||
* Supported STM32F411xx devices
|
||||
*-----------------------------------------------------------------------------
|
||||
* System Clock source | PLL (HSI)
|
||||
*-----------------------------------------------------------------------------
|
||||
* SYSCLK(Hz) | 100000000
|
||||
*-----------------------------------------------------------------------------
|
||||
* HCLK(Hz) | 100000000
|
||||
*-----------------------------------------------------------------------------
|
||||
* AHB Prescaler | 1
|
||||
*-----------------------------------------------------------------------------
|
||||
* APB1 Prescaler | 2
|
||||
*-----------------------------------------------------------------------------
|
||||
* APB2 Prescaler | 1
|
||||
*-----------------------------------------------------------------------------
|
||||
* HSI Frequency(Hz) | 16000000
|
||||
*-----------------------------------------------------------------------------
|
||||
* PLL_M | 16
|
||||
*-----------------------------------------------------------------------------
|
||||
* PLL_N | 400
|
||||
*-----------------------------------------------------------------------------
|
||||
* PLL_P | 4
|
||||
*-----------------------------------------------------------------------------
|
||||
* PLL_Q | 7
|
||||
*-----------------------------------------------------------------------------
|
||||
* PLLI2S_N | NA
|
||||
*-----------------------------------------------------------------------------
|
||||
* PLLI2S_R | NA
|
||||
*-----------------------------------------------------------------------------
|
||||
* I2S input clock | NA
|
||||
*-----------------------------------------------------------------------------
|
||||
* VDD(V) | 3.3
|
||||
*-----------------------------------------------------------------------------
|
||||
* Main regulator output voltage | Scale1 mode
|
||||
*-----------------------------------------------------------------------------
|
||||
* Flash Latency(WS) | 3
|
||||
*-----------------------------------------------------------------------------
|
||||
* Prefetch Buffer | ON
|
||||
*-----------------------------------------------------------------------------
|
||||
* Instruction cache | ON
|
||||
*-----------------------------------------------------------------------------
|
||||
* Data cache | ON
|
||||
*-----------------------------------------------------------------------------
|
||||
* Require 48MHz for USB OTG FS, | Disabled
|
||||
* SDIO and RNG clock |
|
||||
*-----------------------------------------------------------------------------
|
||||
*=============================================================================
|
||||
******************************************************************************
|
||||
******************************************************************************
|
||||
* @attention
|
||||
*
|
||||
* <h2><center>© COPYRIGHT 2013 STMicroelectronics</center></h2>
|
||||
@@ -278,31 +139,10 @@
|
||||
*/
|
||||
|
||||
/************************* Miscellaneous Configuration ************************/
|
||||
/*!< Uncomment the following line if you need to use external SRAM or SDRAM mounted
|
||||
on STM324xG_EVAL/STM324x7I_EVAL/STM324x9I_EVAL boards as data memory */
|
||||
#if defined (STM32F40_41xxx) || defined (STM32F427_437xx) || defined (STM32F429_439xx)
|
||||
/*!< Uncomment the following line if you need to use external SRAM mounted
|
||||
on STM324xG_EVAL/STM324x7I_EVAL board as data memory */
|
||||
/* #define DATA_IN_ExtSRAM */
|
||||
#endif /* STM32F40_41xxx || STM32F427_437x || STM32F429_439xx */
|
||||
|
||||
#if defined (STM32F427_437xx) || defined (STM32F429_439xx)
|
||||
/* #define DATA_IN_ExtSDRAM */
|
||||
#endif /* STM32F427_437x || STM32F429_439xx */
|
||||
|
||||
#if defined (STM32F411xE)
|
||||
/*!< Uncomment the following line if you need to clock the STM32F411xE by HSE Bypass
|
||||
through STLINK MCO pin of STM32F103 microcontroller. The frequency cannot be changed
|
||||
and is fixed at 8 MHz.
|
||||
Hardware configuration needed for Nucleo Board:
|
||||
� SB54, SB55 OFF
|
||||
� R35 removed
|
||||
� SB16, SB50 ON */
|
||||
/* #define USE_HSE_BYPASS */
|
||||
|
||||
#if defined (USE_HSE_BYPASS)
|
||||
#define HSE_BYPASS_INPUT_FREQUENCY 8000000
|
||||
#endif /* USE_HSE_BYPASS */
|
||||
#endif /* STM32F411xE */
|
||||
|
||||
/*!< Uncomment the following line if you need to relocate your vector Table in
|
||||
Internal SRAM. */
|
||||
/* #define VECT_TAB_SRAM */
|
||||
@@ -311,48 +151,16 @@
|
||||
/******************************************************************************/
|
||||
|
||||
/************************* PLL Parameters *************************************/
|
||||
#if defined (STM32F40_41xxx) || defined (STM32F427_437xx) || defined (STM32F429_439xx) || defined (STM32F401xx)
|
||||
/* PLL_VCO = (HSE_VALUE or HSI_VALUE / PLL_M) * PLL_N */
|
||||
#if defined(REV9E)
|
||||
#define PLL_M 12
|
||||
#else
|
||||
#define PLL_M 25
|
||||
#endif
|
||||
#else /* STM32F411xE */
|
||||
#if defined (USE_HSE_BYPASS)
|
||||
#define PLL_M 8
|
||||
#else /* STM32F411xE */
|
||||
#define PLL_M 16
|
||||
#endif /* USE_HSE_BYPASS */
|
||||
#endif /* STM32F40_41xxx || STM32F427_437xx || STM32F429_439xx || STM32F401xx */
|
||||
#define PLL_N 336
|
||||
|
||||
/* SYSCLK = PLL_VCO / PLL_P */
|
||||
#define PLL_P 2
|
||||
|
||||
/* USB OTG FS, SDIO and RNG Clock = PLL_VCO / PLLQ */
|
||||
#define PLL_Q 7
|
||||
|
||||
#if defined (STM32F40_41xxx)
|
||||
#define PLL_N 336
|
||||
/* SYSCLK = PLL_VCO / PLL_P */
|
||||
#define PLL_P 2
|
||||
#endif /* STM32F40_41xxx */
|
||||
|
||||
#if defined (STM32F427_437xx) || defined (STM32F429_439xx)
|
||||
#define PLL_N 360
|
||||
/* SYSCLK = PLL_VCO / PLL_P */
|
||||
#define PLL_P 2
|
||||
#endif /* STM32F427_437x || STM32F429_439xx */
|
||||
|
||||
#if defined (STM32F401xx)
|
||||
#define PLL_N 336
|
||||
/* SYSCLK = PLL_VCO / PLL_P */
|
||||
#define PLL_P 4
|
||||
#endif /* STM32F401xx */
|
||||
|
||||
#if defined (STM32F411xE)
|
||||
#define PLL_N 400
|
||||
/* SYSCLK = PLL_VCO / PLL_P */
|
||||
#define PLL_P 4
|
||||
#endif /* STM32F411xx */
|
||||
|
||||
/******************************************************************************/
|
||||
|
||||
/**
|
||||
@@ -371,23 +179,9 @@
|
||||
* @{
|
||||
*/
|
||||
|
||||
#if defined (STM32F40_41xxx)
|
||||
uint32_t SystemCoreClock = 168000000;
|
||||
#endif /* STM32F40_41xxx */
|
||||
|
||||
#if defined (STM32F427_437xx) || defined (STM32F429_439xx)
|
||||
uint32_t SystemCoreClock = 180000000;
|
||||
#endif /* STM32F427_437x || STM32F429_439xx */
|
||||
|
||||
#if defined (STM32F401xx)
|
||||
uint32_t SystemCoreClock = 84000000;
|
||||
#endif /* STM32F401xx */
|
||||
|
||||
#if defined (STM32F411xE)
|
||||
uint32_t SystemCoreClock = 100000000;
|
||||
#endif /* STM32F401xx */
|
||||
|
||||
__I uint8_t AHBPrescTable[16] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 6, 7, 8, 9};
|
||||
__I uint8_t AHBPrescTable[16] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 6, 7, 8, 9};
|
||||
|
||||
/**
|
||||
* @}
|
||||
@@ -398,10 +192,9 @@ __I uint8_t AHBPrescTable[16] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 6, 7, 8, 9}
|
||||
*/
|
||||
|
||||
static void SetSysClock(void);
|
||||
|
||||
#if defined (DATA_IN_ExtSRAM) || defined (DATA_IN_ExtSDRAM)
|
||||
static void SystemInit_ExtMemCtl(void);
|
||||
#endif /* DATA_IN_ExtSRAM || DATA_IN_ExtSDRAM */
|
||||
#ifdef DATA_IN_ExtSRAM
|
||||
static void SystemInit_ExtMemCtl(void);
|
||||
#endif /* DATA_IN_ExtSRAM */
|
||||
|
||||
/**
|
||||
* @}
|
||||
@@ -443,9 +236,9 @@ void SystemInit(void)
|
||||
/* Disable all interrupts */
|
||||
RCC->CIR = 0x00000000;
|
||||
|
||||
#if defined (DATA_IN_ExtSRAM) || defined (DATA_IN_ExtSDRAM)
|
||||
#ifdef DATA_IN_ExtSRAM
|
||||
SystemInit_ExtMemCtl();
|
||||
#endif /* DATA_IN_ExtSRAM || DATA_IN_ExtSDRAM */
|
||||
#endif /* DATA_IN_ExtSRAM */
|
||||
|
||||
/* Configure the System clock source, PLL Multiplier and Divider factors,
|
||||
AHB/APBx prescalers and Flash settings ----------------------------------*/
|
||||
@@ -513,13 +306,13 @@ void SystemCoreClockUpdate(void)
|
||||
SystemCoreClock = HSE_VALUE;
|
||||
break;
|
||||
case 0x08: /* PLL used as system clock source */
|
||||
/* PLL_VCO = (HSE_VALUE or HSI_VALUE / PLL_M) * PLL_N
|
||||
|
||||
/* PLL_VCO = (HSE_VALUE or HSI_VALUE / PLL_M) * PLL_N
|
||||
SYSCLK = PLL_VCO / PLL_P
|
||||
*/
|
||||
pllsource = (RCC->PLLCFGR & RCC_PLLCFGR_PLLSRC) >> 22;
|
||||
pllm = RCC->PLLCFGR & RCC_PLLCFGR_PLLM;
|
||||
|
||||
#if defined (STM32F40_41xxx) || defined (STM32F427_437xx) || defined (STM32F429_439xx) || defined (STM32F401xx)
|
||||
if (pllsource != 0)
|
||||
{
|
||||
/* HSE used as PLL clock source */
|
||||
@@ -530,23 +323,9 @@ void SystemCoreClockUpdate(void)
|
||||
/* HSI used as PLL clock source */
|
||||
pllvco = (HSI_VALUE / pllm) * ((RCC->PLLCFGR & RCC_PLLCFGR_PLLN) >> 6);
|
||||
}
|
||||
#elif defined (STM32F411xE)
|
||||
#if defined (USE_HSE_BYPASS)
|
||||
if (pllsource != 0)
|
||||
{
|
||||
/* HSE used as PLL clock source */
|
||||
pllvco = (HSE_BYPASS_INPUT_FREQUENCY / pllm) * ((RCC->PLLCFGR & RCC_PLLCFGR_PLLN) >> 6);
|
||||
}
|
||||
#else
|
||||
if (pllsource == 0)
|
||||
{
|
||||
/* HSI used as PLL clock source */
|
||||
pllvco = (HSI_VALUE / pllm) * ((RCC->PLLCFGR & RCC_PLLCFGR_PLLN) >> 6);
|
||||
}
|
||||
#endif /* USE_HSE_BYPASS */
|
||||
#endif /* STM32F40_41xxx || STM32F427_437xx || STM32F429_439xx || STM32F401xx */
|
||||
|
||||
pllp = (((RCC->PLLCFGR & RCC_PLLCFGR_PLLP) >>16) + 1 ) *2;
|
||||
SystemCoreClock = pllvco/pllp;
|
||||
SystemCoreClock = pllvco/pllp;
|
||||
break;
|
||||
default:
|
||||
SystemCoreClock = HSI_VALUE;
|
||||
@@ -569,7 +348,6 @@ void SystemCoreClockUpdate(void)
|
||||
*/
|
||||
static void SetSysClock(void)
|
||||
{
|
||||
#if defined (STM32F40_41xxx) || defined (STM32F427_437xx) || defined (STM32F429_439xx) || defined (STM32F401xx)
|
||||
/******************************************************************************/
|
||||
/* PLL (clocked by HSE) used as System clock source */
|
||||
/******************************************************************************/
|
||||
@@ -596,29 +374,19 @@ static void SetSysClock(void)
|
||||
|
||||
if (HSEStatus == (uint32_t)0x01)
|
||||
{
|
||||
/* Select regulator voltage output Scale 1 mode */
|
||||
/* Select regulator voltage output Scale 1 mode, System frequency up to 168 MHz */
|
||||
RCC->APB1ENR |= RCC_APB1ENR_PWREN;
|
||||
PWR->CR |= PWR_CR_VOS;
|
||||
|
||||
/* HCLK = SYSCLK / 1*/
|
||||
RCC->CFGR |= RCC_CFGR_HPRE_DIV1;
|
||||
|
||||
#if defined (STM32F40_41xxx) || defined (STM32F427_437xx) || defined (STM32F429_439xx)
|
||||
|
||||
/* PCLK2 = HCLK / 2*/
|
||||
RCC->CFGR |= RCC_CFGR_PPRE2_DIV2;
|
||||
|
||||
/* PCLK1 = HCLK / 4*/
|
||||
RCC->CFGR |= RCC_CFGR_PPRE1_DIV4;
|
||||
#endif /* STM32F40_41xxx || STM32F427_437x || STM32F429_439xx */
|
||||
|
||||
#if defined (STM32F401xx)
|
||||
/* PCLK2 = HCLK / 2*/
|
||||
RCC->CFGR |= RCC_CFGR_PPRE2_DIV1;
|
||||
|
||||
/* PCLK1 = HCLK / 4*/
|
||||
RCC->CFGR |= RCC_CFGR_PPRE1_DIV2;
|
||||
#endif /* STM32F401xx */
|
||||
|
||||
/* Configure the main PLL */
|
||||
RCC->PLLCFGR = PLL_M | (PLL_N << 6) | (((PLL_P >> 1) -1) << 16) |
|
||||
(RCC_PLLCFGR_PLLSRC_HSE) | (PLL_Q << 24);
|
||||
@@ -631,29 +399,8 @@ static void SetSysClock(void)
|
||||
{
|
||||
}
|
||||
|
||||
#if defined (STM32F427_437xx) || defined (STM32F429_439xx)
|
||||
/* Enable the Over-drive to extend the clock frequency to 180 Mhz */
|
||||
PWR->CR |= PWR_CR_ODEN;
|
||||
while((PWR->CSR & PWR_CSR_ODRDY) == 0)
|
||||
{
|
||||
}
|
||||
PWR->CR |= PWR_CR_ODSWEN;
|
||||
while((PWR->CSR & PWR_CSR_ODSWRDY) == 0)
|
||||
{
|
||||
}
|
||||
/* Configure Flash prefetch, Instruction cache, Data cache and wait state */
|
||||
FLASH->ACR = FLASH_ACR_PRFTEN | FLASH_ACR_ICEN |FLASH_ACR_DCEN |FLASH_ACR_LATENCY_5WS;
|
||||
#endif /* STM32F427_437x || STM32F429_439xx */
|
||||
|
||||
#if defined (STM32F40_41xxx)
|
||||
/* Configure Flash prefetch, Instruction cache, Data cache and wait state */
|
||||
FLASH->ACR = FLASH_ACR_PRFTEN | FLASH_ACR_ICEN |FLASH_ACR_DCEN |FLASH_ACR_LATENCY_5WS;
|
||||
#endif /* STM32F40_41xxx */
|
||||
|
||||
#if defined (STM32F401xx)
|
||||
/* Configure Flash prefetch, Instruction cache, Data cache and wait state */
|
||||
FLASH->ACR = FLASH_ACR_PRFTEN | FLASH_ACR_ICEN |FLASH_ACR_DCEN |FLASH_ACR_LATENCY_2WS;
|
||||
#endif /* STM32F401xx */
|
||||
FLASH->ACR = FLASH_ACR_PRFTEN |FLASH_ACR_ICEN |FLASH_ACR_DCEN |FLASH_ACR_LATENCY_5WS;
|
||||
|
||||
/* Select the main PLL as system clock source */
|
||||
RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_SW));
|
||||
@@ -668,113 +415,7 @@ static void SetSysClock(void)
|
||||
{ /* If HSE fails to start-up, the application will have wrong clock
|
||||
configuration. User can add here some code to deal with this error */
|
||||
}
|
||||
#elif defined (STM32F411xE)
|
||||
#if defined (USE_HSE_BYPASS)
|
||||
/******************************************************************************/
|
||||
/* PLL (clocked by HSE) used as System clock source */
|
||||
/******************************************************************************/
|
||||
__IO uint32_t StartUpCounter = 0, HSEStatus = 0;
|
||||
|
||||
/* Enable HSE and HSE BYPASS */
|
||||
RCC->CR |= ((uint32_t)RCC_CR_HSEON | RCC_CR_HSEBYP);
|
||||
|
||||
/* Wait till HSE is ready and if Time out is reached exit */
|
||||
do
|
||||
{
|
||||
HSEStatus = RCC->CR & RCC_CR_HSERDY;
|
||||
StartUpCounter++;
|
||||
} while((HSEStatus == 0) && (StartUpCounter != HSE_STARTUP_TIMEOUT));
|
||||
|
||||
if ((RCC->CR & RCC_CR_HSERDY) != RESET)
|
||||
{
|
||||
HSEStatus = (uint32_t)0x01;
|
||||
}
|
||||
else
|
||||
{
|
||||
HSEStatus = (uint32_t)0x00;
|
||||
}
|
||||
|
||||
if (HSEStatus == (uint32_t)0x01)
|
||||
{
|
||||
/* Select regulator voltage output Scale 1 mode */
|
||||
RCC->APB1ENR |= RCC_APB1ENR_PWREN;
|
||||
PWR->CR |= PWR_CR_VOS;
|
||||
|
||||
/* HCLK = SYSCLK / 1*/
|
||||
RCC->CFGR |= RCC_CFGR_HPRE_DIV1;
|
||||
|
||||
/* PCLK2 = HCLK / 2*/
|
||||
RCC->CFGR |= RCC_CFGR_PPRE2_DIV1;
|
||||
|
||||
/* PCLK1 = HCLK / 4*/
|
||||
RCC->CFGR |= RCC_CFGR_PPRE1_DIV2;
|
||||
|
||||
/* Configure the main PLL */
|
||||
RCC->PLLCFGR = PLL_M | (PLL_N << 6) | (((PLL_P >> 1) -1) << 16) |
|
||||
(RCC_PLLCFGR_PLLSRC_HSE) | (PLL_Q << 24);
|
||||
|
||||
/* Enable the main PLL */
|
||||
RCC->CR |= RCC_CR_PLLON;
|
||||
|
||||
/* Wait till the main PLL is ready */
|
||||
while((RCC->CR & RCC_CR_PLLRDY) == 0)
|
||||
{
|
||||
}
|
||||
|
||||
/* Configure Flash prefetch, Instruction cache, Data cache and wait state */
|
||||
FLASH->ACR = FLASH_ACR_PRFTEN | FLASH_ACR_ICEN |FLASH_ACR_DCEN |FLASH_ACR_LATENCY_2WS;
|
||||
|
||||
/* Select the main PLL as system clock source */
|
||||
RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_SW));
|
||||
RCC->CFGR |= RCC_CFGR_SW_PLL;
|
||||
|
||||
/* Wait till the main PLL is used as system clock source */
|
||||
while ((RCC->CFGR & (uint32_t)RCC_CFGR_SWS ) != RCC_CFGR_SWS_PLL);
|
||||
{
|
||||
}
|
||||
}
|
||||
else
|
||||
{ /* If HSE fails to start-up, the application will have wrong clock
|
||||
configuration. User can add here some code to deal with this error */
|
||||
}
|
||||
#else /* HSI will be used as PLL clock source */
|
||||
/* Select regulator voltage output Scale 1 mode */
|
||||
RCC->APB1ENR |= RCC_APB1ENR_PWREN;
|
||||
PWR->CR |= PWR_CR_VOS;
|
||||
|
||||
/* HCLK = SYSCLK / 1*/
|
||||
RCC->CFGR |= RCC_CFGR_HPRE_DIV1;
|
||||
|
||||
/* PCLK2 = HCLK / 2*/
|
||||
RCC->CFGR |= RCC_CFGR_PPRE2_DIV1;
|
||||
|
||||
/* PCLK1 = HCLK / 4*/
|
||||
RCC->CFGR |= RCC_CFGR_PPRE1_DIV2;
|
||||
|
||||
/* Configure the main PLL */
|
||||
RCC->PLLCFGR = PLL_M | (PLL_N << 6) | (((PLL_P >> 1) -1) << 16) | (PLL_Q << 24);
|
||||
|
||||
/* Enable the main PLL */
|
||||
RCC->CR |= RCC_CR_PLLON;
|
||||
|
||||
/* Wait till the main PLL is ready */
|
||||
while((RCC->CR & RCC_CR_PLLRDY) == 0)
|
||||
{
|
||||
}
|
||||
|
||||
/* Configure Flash prefetch, Instruction cache, Data cache and wait state */
|
||||
FLASH->ACR = FLASH_ACR_PRFTEN | FLASH_ACR_ICEN |FLASH_ACR_DCEN |FLASH_ACR_LATENCY_2WS;
|
||||
|
||||
/* Select the main PLL as system clock source */
|
||||
RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_SW));
|
||||
RCC->CFGR |= RCC_CFGR_SW_PLL;
|
||||
|
||||
/* Wait till the main PLL is used as system clock source */
|
||||
while ((RCC->CFGR & (uint32_t)RCC_CFGR_SWS ) != RCC_CFGR_SWS_PLL);
|
||||
{
|
||||
}
|
||||
#endif /* USE_HSE_BYPASS */
|
||||
#endif /* STM32F40_41xxx || STM32F427_437xx || STM32F429_439xx || STM32F401xx */
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -787,7 +428,7 @@ static void SetSysClock(void)
|
||||
/**
|
||||
* @brief Setup the external memory controller.
|
||||
* Called in startup_stm32f4xx.s before jump to main.
|
||||
* This function configures the external SRAM mounted on STM324xG_EVAL/STM324x7I boards
|
||||
* This function configures the external SRAM mounted on STM324xG_EVAL/STM324x7I_EVAL board
|
||||
* This SRAM will be used as program data memory (including heap and stack).
|
||||
* @param None
|
||||
* @retval None
|
||||
@@ -796,28 +437,31 @@ void SystemInit_ExtMemCtl(void)
|
||||
{
|
||||
/*-- GPIOs Configuration -----------------------------------------------------*/
|
||||
/*
|
||||
+-------------------+--------------------+------------------+--------------+
|
||||
+ SRAM pins assignment +
|
||||
+-------------------+--------------------+------------------+--------------+
|
||||
| PD0 <-> FMC_D2 | PE0 <-> FMC_NBL0 | PF0 <-> FMC_A0 | PG0 <-> FMC_A10 |
|
||||
| PD1 <-> FMC_D3 | PE1 <-> FMC_NBL1 | PF1 <-> FMC_A1 | PG1 <-> FMC_A11 |
|
||||
| PD4 <-> FMC_NOE | PE3 <-> FMC_A19 | PF2 <-> FMC_A2 | PG2 <-> FMC_A12 |
|
||||
| PD5 <-> FMC_NWE | PE4 <-> FMC_A20 | PF3 <-> FMC_A3 | PG3 <-> FMC_A13 |
|
||||
| PD8 <-> FMC_D13 | PE7 <-> FMC_D4 | PF4 <-> FMC_A4 | PG4 <-> FMC_A14 |
|
||||
| PD9 <-> FMC_D14 | PE8 <-> FMC_D5 | PF5 <-> FMC_A5 | PG5 <-> FMC_A15 |
|
||||
| PD10 <-> FMC_D15 | PE9 <-> FMC_D6 | PF12 <-> FMC_A6 | PG9 <-> FMC_NE2 |
|
||||
| PD11 <-> FMC_A16 | PE10 <-> FMC_D7 | PF13 <-> FMC_A7 |-----------------+
|
||||
| PD12 <-> FMC_A17 | PE11 <-> FMC_D8 | PF14 <-> FMC_A8 |
|
||||
| PD13 <-> FMC_A18 | PE12 <-> FMC_D9 | PF15 <-> FMC_A9 |
|
||||
| PD14 <-> FMC_D0 | PE13 <-> FMC_D10 |-----------------+
|
||||
| PD15 <-> FMC_D1 | PE14 <-> FMC_D11 |
|
||||
| | PE15 <-> FMC_D12 |
|
||||
+------------------+------------------+
|
||||
+-------------------+--------------------+------------------+------------------+
|
||||
+ SRAM pins assignment +
|
||||
+-------------------+--------------------+------------------+------------------+
|
||||
| PD0 <-> FSMC_D2 | PE0 <-> FSMC_NBL0 | PF0 <-> FSMC_A0 | PG0 <-> FSMC_A10 |
|
||||
| PD1 <-> FSMC_D3 | PE1 <-> FSMC_NBL1 | PF1 <-> FSMC_A1 | PG1 <-> FSMC_A11 |
|
||||
| PD4 <-> FSMC_NOE | PE2 <-> FSMC_A23 | PF2 <-> FSMC_A2 | PG2 <-> FSMC_A12 |
|
||||
| PD5 <-> FSMC_NWE | PE3 <-> FSMC_A19 | PF3 <-> FSMC_A3 | PG3 <-> FSMC_A13 |
|
||||
| PD8 <-> FSMC_D13 | PE4 <-> FSMC_A20 | PF4 <-> FSMC_A4 | PG4 <-> FSMC_A14 |
|
||||
| PD9 <-> FSMC_D14 | PE5 <-> FSMC_A21 | PF5 <-> FSMC_A5 | PG5 <-> FSMC_A15 |
|
||||
| PD10 <-> FSMC_D15 | PE6 <-> FSMC_A22 | PF12 <-> FSMC_A6 | PG9 <-> FSMC_NE2 |
|
||||
| PD11 <-> FSMC_A16 | PE7 <-> FSMC_D4 | PF13 <-> FSMC_A7 |------------------+
|
||||
| PD12 <-> FSMC_A17 | PE8 <-> FSMC_D5 | PF14 <-> FSMC_A8 |
|
||||
| PD13 <-> FSMC_A18 | PE9 <-> FSMC_D6 | PF15 <-> FSMC_A9 |
|
||||
| PD14 <-> FSMC_D0 | PE10 <-> FSMC_D7 |------------------+
|
||||
| PD15 <-> FSMC_D1 | PE11 <-> FSMC_D8 |
|
||||
+-------------------| PE12 <-> FSMC_D9 |
|
||||
| PE13 <-> FSMC_D10 |
|
||||
| PE14 <-> FSMC_D11 |
|
||||
| PE15 <-> FSMC_D12 |
|
||||
+--------------------+
|
||||
*/
|
||||
/* Enable GPIOD, GPIOE, GPIOF and GPIOG interface clock */
|
||||
RCC->AHB1ENR |= 0x00000078;
|
||||
|
||||
/* Connect PDx pins to FMC Alternate function */
|
||||
/* Connect PDx pins to FSMC Alternate function */
|
||||
GPIOD->AFR[0] = 0x00cc00cc;
|
||||
GPIOD->AFR[1] = 0xcccccccc;
|
||||
/* Configure PDx pins in Alternate function mode */
|
||||
@@ -829,7 +473,7 @@ void SystemInit_ExtMemCtl(void)
|
||||
/* No pull-up, pull-down for PDx pins */
|
||||
GPIOD->PUPDR = 0x00000000;
|
||||
|
||||
/* Connect PEx pins to FMC Alternate function */
|
||||
/* Connect PEx pins to FSMC Alternate function */
|
||||
GPIOE->AFR[0] = 0xcccccccc;
|
||||
GPIOE->AFR[1] = 0xcccccccc;
|
||||
/* Configure PEx pins in Alternate function mode */
|
||||
@@ -841,7 +485,7 @@ void SystemInit_ExtMemCtl(void)
|
||||
/* No pull-up, pull-down for PEx pins */
|
||||
GPIOE->PUPDR = 0x00000000;
|
||||
|
||||
/* Connect PFx pins to FMC Alternate function */
|
||||
/* Connect PFx pins to FSMC Alternate function */
|
||||
GPIOF->AFR[0] = 0x00cccccc;
|
||||
GPIOF->AFR[1] = 0xcccc0000;
|
||||
/* Configure PFx pins in Alternate function mode */
|
||||
@@ -853,7 +497,7 @@ void SystemInit_ExtMemCtl(void)
|
||||
/* No pull-up, pull-down for PFx pins */
|
||||
GPIOF->PUPDR = 0x00000000;
|
||||
|
||||
/* Connect PGx pins to FMC Alternate function */
|
||||
/* Connect PGx pins to FSMC Alternate function */
|
||||
GPIOG->AFR[0] = 0x00cccccc;
|
||||
GPIOG->AFR[1] = 0x000000c0;
|
||||
/* Configure PGx pins in Alternate function mode */
|
||||
@@ -865,34 +509,24 @@ void SystemInit_ExtMemCtl(void)
|
||||
/* No pull-up, pull-down for PGx pins */
|
||||
GPIOG->PUPDR = 0x00000000;
|
||||
|
||||
/*-- FMC Configuration ------------------------------------------------------*/
|
||||
/* Enable the FMC/FSMC interface clock */
|
||||
/*-- FSMC Configuration ------------------------------------------------------*/
|
||||
/* Enable the FSMC interface clock */
|
||||
RCC->AHB3ENR |= 0x00000001;
|
||||
|
||||
#if defined (STM32F427_437xx) || defined (STM32F429_439xx)
|
||||
/* Configure and enable Bank1_SRAM2 */
|
||||
FMC_Bank1->BTCR[2] = 0x00001011;
|
||||
FMC_Bank1->BTCR[3] = 0x00000201;
|
||||
FMC_Bank1E->BWTR[2] = 0x0fffffff;
|
||||
#endif /* STM32F427_437xx || STM32F429_439xx */
|
||||
|
||||
#if defined (STM32F40_41xxx)
|
||||
/* Configure and enable Bank1_SRAM2 */
|
||||
FSMC_Bank1->BTCR[2] = 0x00001011;
|
||||
FSMC_Bank1->BTCR[3] = 0x00000201;
|
||||
FSMC_Bank1E->BWTR[2] = 0x0fffffff;
|
||||
#endif /* STM32F40_41xxx */
|
||||
|
||||
/*
|
||||
Bank1_SRAM2 is configured as follow:
|
||||
In case of FSMC configuration
|
||||
NORSRAMTimingStructure.FSMC_AddressSetupTime = 1;
|
||||
NORSRAMTimingStructure.FSMC_AddressHoldTime = 0;
|
||||
NORSRAMTimingStructure.FSMC_DataSetupTime = 2;
|
||||
NORSRAMTimingStructure.FSMC_BusTurnAroundDuration = 0;
|
||||
NORSRAMTimingStructure.FSMC_CLKDivision = 0;
|
||||
NORSRAMTimingStructure.FSMC_DataLatency = 0;
|
||||
NORSRAMTimingStructure.FSMC_AccessMode = FMC_AccessMode_A;
|
||||
|
||||
p.FSMC_AddressSetupTime = 1;
|
||||
p.FSMC_AddressHoldTime = 0;
|
||||
p.FSMC_DataSetupTime = 2;
|
||||
p.FSMC_BusTurnAroundDuration = 0;
|
||||
p.FSMC_CLKDivision = 0;
|
||||
p.FSMC_DataLatency = 0;
|
||||
p.FSMC_AccessMode = FSMC_AccessMode_A;
|
||||
|
||||
FSMC_NORSRAMInitStructure.FSMC_Bank = FSMC_Bank1_NORSRAM2;
|
||||
FSMC_NORSRAMInitStructure.FSMC_DataAddressMux = FSMC_DataAddressMux_Disable;
|
||||
@@ -907,219 +541,11 @@ void SystemInit_ExtMemCtl(void)
|
||||
FSMC_NORSRAMInitStructure.FSMC_WaitSignal = FSMC_WaitSignal_Disable;
|
||||
FSMC_NORSRAMInitStructure.FSMC_ExtendedMode = FSMC_ExtendedMode_Disable;
|
||||
FSMC_NORSRAMInitStructure.FSMC_WriteBurst = FSMC_WriteBurst_Disable;
|
||||
FSMC_NORSRAMInitStructure.FSMC_ReadWriteTimingStruct = &NORSRAMTimingStructure;
|
||||
FSMC_NORSRAMInitStructure.FSMC_WriteTimingStruct = &NORSRAMTimingStructure;
|
||||
|
||||
In case of FMC configuration
|
||||
NORSRAMTimingStructure.FMC_AddressSetupTime = 1;
|
||||
NORSRAMTimingStructure.FMC_AddressHoldTime = 0;
|
||||
NORSRAMTimingStructure.FMC_DataSetupTime = 2;
|
||||
NORSRAMTimingStructure.FMC_BusTurnAroundDuration = 0;
|
||||
NORSRAMTimingStructure.FMC_CLKDivision = 0;
|
||||
NORSRAMTimingStructure.FMC_DataLatency = 0;
|
||||
NORSRAMTimingStructure.FMC_AccessMode = FMC_AccessMode_A;
|
||||
|
||||
FMC_NORSRAMInitStructure.FMC_Bank = FMC_Bank1_NORSRAM2;
|
||||
FMC_NORSRAMInitStructure.FMC_DataAddressMux = FMC_DataAddressMux_Disable;
|
||||
FMC_NORSRAMInitStructure.FMC_MemoryType = FMC_MemoryType_SRAM;
|
||||
FMC_NORSRAMInitStructure.FMC_MemoryDataWidth = FMC_MemoryDataWidth_16b;
|
||||
FMC_NORSRAMInitStructure.FMC_BurstAccessMode = FMC_BurstAccessMode_Disable;
|
||||
FMC_NORSRAMInitStructure.FMC_AsynchronousWait = FMC_AsynchronousWait_Disable;
|
||||
FMC_NORSRAMInitStructure.FMC_WaitSignalPolarity = FMC_WaitSignalPolarity_Low;
|
||||
FMC_NORSRAMInitStructure.FMC_WrapMode = FMC_WrapMode_Disable;
|
||||
FMC_NORSRAMInitStructure.FMC_WaitSignalActive = FMC_WaitSignalActive_BeforeWaitState;
|
||||
FMC_NORSRAMInitStructure.FMC_WriteOperation = FMC_WriteOperation_Enable;
|
||||
FMC_NORSRAMInitStructure.FMC_WaitSignal = FMC_WaitSignal_Disable;
|
||||
FMC_NORSRAMInitStructure.FMC_ExtendedMode = FMC_ExtendedMode_Disable;
|
||||
FMC_NORSRAMInitStructure.FMC_WriteBurst = FMC_WriteBurst_Disable;
|
||||
FMC_NORSRAMInitStructure.FMC_ContinousClock = FMC_CClock_SyncOnly;
|
||||
FMC_NORSRAMInitStructure.FMC_ReadWriteTimingStruct = &NORSRAMTimingStructure;
|
||||
FMC_NORSRAMInitStructure.FMC_WriteTimingStruct = &NORSRAMTimingStructure;
|
||||
FSMC_NORSRAMInitStructure.FSMC_ReadWriteTimingStruct = &p;
|
||||
FSMC_NORSRAMInitStructure.FSMC_WriteTimingStruct = &p;
|
||||
*/
|
||||
|
||||
}
|
||||
#endif /* DATA_IN_ExtSRAM */
|
||||
|
||||
#ifdef DATA_IN_ExtSDRAM
|
||||
/**
|
||||
* @brief Setup the external memory controller.
|
||||
* Called in startup_stm32f4xx.s before jump to main.
|
||||
* This function configures the external SDRAM mounted on STM324x9I_EVAL board
|
||||
* This SDRAM will be used as program data memory (including heap and stack).
|
||||
* @param None
|
||||
* @retval None
|
||||
*/
|
||||
void SystemInit_ExtMemCtl(void)
|
||||
{
|
||||
register uint32_t tmpreg = 0, timeout = 0xFFFF;
|
||||
register uint32_t index;
|
||||
|
||||
/* Enable GPIOC, GPIOD, GPIOE, GPIOF, GPIOG, GPIOH and GPIOI interface
|
||||
clock */
|
||||
RCC->AHB1ENR |= 0x000001FC;
|
||||
|
||||
/* Connect PCx pins to FMC Alternate function */
|
||||
GPIOC->AFR[0] = 0x0000000c;
|
||||
GPIOC->AFR[1] = 0x00007700;
|
||||
/* Configure PCx pins in Alternate function mode */
|
||||
GPIOC->MODER = 0x00a00002;
|
||||
/* Configure PCx pins speed to 50 MHz */
|
||||
GPIOC->OSPEEDR = 0x00a00002;
|
||||
/* Configure PCx pins Output type to push-pull */
|
||||
GPIOC->OTYPER = 0x00000000;
|
||||
/* No pull-up, pull-down for PCx pins */
|
||||
GPIOC->PUPDR = 0x00500000;
|
||||
|
||||
/* Connect PDx pins to FMC Alternate function */
|
||||
GPIOD->AFR[0] = 0x000000CC;
|
||||
GPIOD->AFR[1] = 0xCC000CCC;
|
||||
/* Configure PDx pins in Alternate function mode */
|
||||
GPIOD->MODER = 0xA02A000A;
|
||||
/* Configure PDx pins speed to 50 MHz */
|
||||
GPIOD->OSPEEDR = 0xA02A000A;
|
||||
/* Configure PDx pins Output type to push-pull */
|
||||
GPIOD->OTYPER = 0x00000000;
|
||||
/* No pull-up, pull-down for PDx pins */
|
||||
GPIOD->PUPDR = 0x00000000;
|
||||
|
||||
/* Connect PEx pins to FMC Alternate function */
|
||||
GPIOE->AFR[0] = 0xC00000CC;
|
||||
GPIOE->AFR[1] = 0xCCCCCCCC;
|
||||
/* Configure PEx pins in Alternate function mode */
|
||||
GPIOE->MODER = 0xAAAA800A;
|
||||
/* Configure PEx pins speed to 50 MHz */
|
||||
GPIOE->OSPEEDR = 0xAAAA800A;
|
||||
/* Configure PEx pins Output type to push-pull */
|
||||
GPIOE->OTYPER = 0x00000000;
|
||||
/* No pull-up, pull-down for PEx pins */
|
||||
GPIOE->PUPDR = 0x00000000;
|
||||
|
||||
/* Connect PFx pins to FMC Alternate function */
|
||||
GPIOF->AFR[0] = 0xcccccccc;
|
||||
GPIOF->AFR[1] = 0xcccccccc;
|
||||
/* Configure PFx pins in Alternate function mode */
|
||||
GPIOF->MODER = 0xAA800AAA;
|
||||
/* Configure PFx pins speed to 50 MHz */
|
||||
GPIOF->OSPEEDR = 0xAA800AAA;
|
||||
/* Configure PFx pins Output type to push-pull */
|
||||
GPIOF->OTYPER = 0x00000000;
|
||||
/* No pull-up, pull-down for PFx pins */
|
||||
GPIOF->PUPDR = 0x00000000;
|
||||
|
||||
/* Connect PGx pins to FMC Alternate function */
|
||||
GPIOG->AFR[0] = 0xcccccccc;
|
||||
GPIOG->AFR[1] = 0xcccccccc;
|
||||
/* Configure PGx pins in Alternate function mode */
|
||||
GPIOG->MODER = 0xaaaaaaaa;
|
||||
/* Configure PGx pins speed to 50 MHz */
|
||||
GPIOG->OSPEEDR = 0xaaaaaaaa;
|
||||
/* Configure PGx pins Output type to push-pull */
|
||||
GPIOG->OTYPER = 0x00000000;
|
||||
/* No pull-up, pull-down for PGx pins */
|
||||
GPIOG->PUPDR = 0x00000000;
|
||||
|
||||
/* Connect PHx pins to FMC Alternate function */
|
||||
GPIOH->AFR[0] = 0x00C0CC00;
|
||||
GPIOH->AFR[1] = 0xCCCCCCCC;
|
||||
/* Configure PHx pins in Alternate function mode */
|
||||
GPIOH->MODER = 0xAAAA08A0;
|
||||
/* Configure PHx pins speed to 50 MHz */
|
||||
GPIOH->OSPEEDR = 0xAAAA08A0;
|
||||
/* Configure PHx pins Output type to push-pull */
|
||||
GPIOH->OTYPER = 0x00000000;
|
||||
/* No pull-up, pull-down for PHx pins */
|
||||
GPIOH->PUPDR = 0x00000000;
|
||||
|
||||
/* Connect PIx pins to FMC Alternate function */
|
||||
GPIOI->AFR[0] = 0xCCCCCCCC;
|
||||
GPIOI->AFR[1] = 0x00000CC0;
|
||||
/* Configure PIx pins in Alternate function mode */
|
||||
GPIOI->MODER = 0x0028AAAA;
|
||||
/* Configure PIx pins speed to 50 MHz */
|
||||
GPIOI->OSPEEDR = 0x0028AAAA;
|
||||
/* Configure PIx pins Output type to push-pull */
|
||||
GPIOI->OTYPER = 0x00000000;
|
||||
/* No pull-up, pull-down for PIx pins */
|
||||
GPIOI->PUPDR = 0x00000000;
|
||||
|
||||
/*-- FMC Configuration ------------------------------------------------------*/
|
||||
/* Enable the FMC interface clock */
|
||||
RCC->AHB3ENR |= 0x00000001;
|
||||
|
||||
/* Configure and enable SDRAM bank1 */
|
||||
FMC_Bank5_6->SDCR[0] = 0x000039D0;
|
||||
FMC_Bank5_6->SDTR[0] = 0x01115351;
|
||||
|
||||
/* SDRAM initialization sequence */
|
||||
/* Clock enable command */
|
||||
FMC_Bank5_6->SDCMR = 0x00000011;
|
||||
tmpreg = FMC_Bank5_6->SDSR & 0x00000020;
|
||||
while((tmpreg != 0) & (timeout-- > 0))
|
||||
{
|
||||
tmpreg = FMC_Bank5_6->SDSR & 0x00000020;
|
||||
}
|
||||
|
||||
/* Delay */
|
||||
for (index = 0; index<1000; index++);
|
||||
|
||||
/* PALL command */
|
||||
FMC_Bank5_6->SDCMR = 0x00000012;
|
||||
timeout = 0xFFFF;
|
||||
while((tmpreg != 0) & (timeout-- > 0))
|
||||
{
|
||||
tmpreg = FMC_Bank5_6->SDSR & 0x00000020;
|
||||
}
|
||||
|
||||
/* Auto refresh command */
|
||||
FMC_Bank5_6->SDCMR = 0x00000073;
|
||||
timeout = 0xFFFF;
|
||||
while((tmpreg != 0) & (timeout-- > 0))
|
||||
{
|
||||
tmpreg = FMC_Bank5_6->SDSR & 0x00000020;
|
||||
}
|
||||
|
||||
/* MRD register program */
|
||||
FMC_Bank5_6->SDCMR = 0x00046014;
|
||||
timeout = 0xFFFF;
|
||||
while((tmpreg != 0) & (timeout-- > 0))
|
||||
{
|
||||
tmpreg = FMC_Bank5_6->SDSR & 0x00000020;
|
||||
}
|
||||
|
||||
/* Set refresh count */
|
||||
tmpreg = FMC_Bank5_6->SDRTR;
|
||||
FMC_Bank5_6->SDRTR = (tmpreg | (0x0000027C<<1));
|
||||
|
||||
/* Disable write protection */
|
||||
tmpreg = FMC_Bank5_6->SDCR[0];
|
||||
FMC_Bank5_6->SDCR[0] = (tmpreg & 0xFFFFFDFF);
|
||||
|
||||
/*
|
||||
Bank1_SDRAM is configured as follow:
|
||||
|
||||
FMC_SDRAMTimingInitStructure.FMC_LoadToActiveDelay = 2;
|
||||
FMC_SDRAMTimingInitStructure.FMC_ExitSelfRefreshDelay = 6;
|
||||
FMC_SDRAMTimingInitStructure.FMC_SelfRefreshTime = 4;
|
||||
FMC_SDRAMTimingInitStructure.FMC_RowCycleDelay = 6;
|
||||
FMC_SDRAMTimingInitStructure.FMC_WriteRecoveryTime = 2;
|
||||
FMC_SDRAMTimingInitStructure.FMC_RPDelay = 2;
|
||||
FMC_SDRAMTimingInitStructure.FMC_RCDDelay = 2;
|
||||
|
||||
FMC_SDRAMInitStructure.FMC_Bank = SDRAM_BANK;
|
||||
FMC_SDRAMInitStructure.FMC_ColumnBitsNumber = FMC_ColumnBits_Number_8b;
|
||||
FMC_SDRAMInitStructure.FMC_RowBitsNumber = FMC_RowBits_Number_11b;
|
||||
FMC_SDRAMInitStructure.FMC_SDMemoryDataWidth = FMC_SDMemory_Width_16b;
|
||||
FMC_SDRAMInitStructure.FMC_InternalBankNumber = FMC_InternalBank_Number_4;
|
||||
FMC_SDRAMInitStructure.FMC_CASLatency = FMC_CAS_Latency_3;
|
||||
FMC_SDRAMInitStructure.FMC_WriteProtection = FMC_Write_Protection_Disable;
|
||||
FMC_SDRAMInitStructure.FMC_SDClockPeriod = FMC_SDClock_Period_2;
|
||||
FMC_SDRAMInitStructure.FMC_ReadBurst = FMC_Read_Burst_disable;
|
||||
FMC_SDRAMInitStructure.FMC_ReadPipeDelay = FMC_ReadPipe_Delay_1;
|
||||
FMC_SDRAMInitStructure.FMC_SDRAMTimingStruct = &FMC_SDRAMTimingInitStructure;
|
||||
*/
|
||||
|
||||
}
|
||||
#endif /* DATA_IN_ExtSDRAM */
|
||||
|
||||
|
||||
/**
|
||||
@@ -1134,3 +560,4 @@ void SystemInit_ExtMemCtl(void)
|
||||
* @}
|
||||
*/
|
||||
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
|
||||
|
||||
|
||||
@@ -121,6 +121,10 @@ const pm_char STR_OPEN9X[] PROGMEM =
|
||||
ISTR(DSM_PROTOCOLS)
|
||||
ISTR(VOLTSRC)
|
||||
ISTR(CURVE_TYPES)
|
||||
ISTR(VSENSORTYPES)
|
||||
ISTR(VFORMULAS)
|
||||
ISTR(VPREC)
|
||||
ISTR(VCELLINDEX)
|
||||
#endif
|
||||
#if defined(MAVLINK)
|
||||
ISTR(MAVLINK_BAUDS)
|
||||
@@ -248,6 +252,8 @@ const pm_char STR_THROTTLEWARNING[] PROGMEM = TR_THROTTLEWARNING;
|
||||
const pm_char STR_SWITCHWARNING[] PROGMEM = TR_SWITCHWARNING;
|
||||
#ifdef FRSKY
|
||||
const pm_char STR_TIMEZONE[] PROGMEM = TR_TIMEZONE;
|
||||
const pm_char STR_ADJUST_RTC[] PROGMEM = TR_ADJUST_RTC;
|
||||
const pm_char STR_GPS[] PROGMEM = TR_GPS;
|
||||
const pm_char STR_GPSCOORD[] PROGMEM = TR_GPSCOORD;
|
||||
const pm_char STR_VARIO[] PROGMEM = TR_VARIO;
|
||||
const pm_char STR_PITCH_AT_ZERO[] PROGMEM = TR_PITCH_AT_ZERO;
|
||||
@@ -376,6 +382,10 @@ const pm_char STR_SHUTDOWN[] PROGMEM = TR_SHUTDOWN;
|
||||
const pm_char STR_SAVEMODEL[] PROGMEM = TR_SAVEMODEL;
|
||||
#endif
|
||||
|
||||
#if defined(PCBTARANIS) && defined(REV9E)
|
||||
const pm_char STR_POWEROFF[] PROGMEM = TR_POWEROFF;
|
||||
#endif
|
||||
|
||||
const pm_char STR_BATT_CALIB[] PROGMEM = TR_BATT_CALIB;
|
||||
|
||||
#if defined(CPUARM) || defined(FRSKY)
|
||||
@@ -499,6 +509,8 @@ const pm_char STR_FLASH_EXTERNAL_DEVICE[] PROGMEM = TR_FLASH_EXTERNAL_DEVICE;
|
||||
const pm_char STR_WRITING[] PROGMEM = TR_WRITING;
|
||||
const pm_char STR_CONFIRM_FORMAT[] PROGMEM = TR_CONFIRM_FORMAT;
|
||||
const pm_char STR_EEBACKUP[] PROGMEM = TR_EEBACKUP;
|
||||
const pm_char STR_FACTORYRESET[] PROGMEM = TR_FACTORYRESET;
|
||||
const pm_char STR_CONFIRMRESET[] PROGMEM = TR_CONFIRMRESET;
|
||||
const pm_char STR_TOO_MANY_LUA_SCRIPTS[] PROGMEM = TR_TO_MANY_LUA_SCRIPTS;
|
||||
const pm_char STR_BLCOLOR[] PROGMEM = TR_BLCOLOR;
|
||||
|
||||
@@ -529,9 +541,24 @@ const pm_char STR_BLCOLOR[] PROGMEM = TR_BLCOLOR;
|
||||
const pm_char STR_CRITICALALARM[] PROGMEM = TR_CRITICALALARM;
|
||||
const pm_char STR_TELEMETRY_TYPE[] PROGMEM = TR_TELEMETRY_TYPE;
|
||||
const pm_char STR_TELEMETRY_SENSORS[] PROGMEM = TR_TELEMETRY_SENSORS;
|
||||
const pm_char STR_VALUE[] PROGMEM = TR_VALUE;
|
||||
const pm_char STR_TOPLCDTIMER[] PROGMEM = TR_TOPLCDTIMER;
|
||||
const pm_char STR_UNIT[] PROGMEM = TR_UNIT;
|
||||
const pm_char STR_TELEMETRY_NEWSENSOR[] PROGMEM = TR_TELEMETRY_NEWSENSOR;
|
||||
const pm_char STR_ID[] PROGMEM = TR_ID;
|
||||
const pm_char STR_PRECISION[] PROGMEM = TR_PRECISION;
|
||||
const pm_char STR_RATIO[] PROGMEM = TR_RATIO;
|
||||
const pm_char STR_FORMULA[] PROGMEM = TR_FORMULA;
|
||||
const pm_char STR_CELLINDEX[] PROGMEM = TR_CELLINDEX;
|
||||
const pm_char STR_LOGS[] PROGMEM = TR_LOGS;
|
||||
const pm_char STR_OPTIONS[] PROGMEM = TR_OPTIONS;
|
||||
const pm_char STR_ALTSENSOR[] PROGMEM = TR_ALTSENSOR;
|
||||
const pm_char STR_CELLSENSOR[] PROGMEM = TR_CELLSENSOR;
|
||||
const pm_char STR_GPSSENSOR[] PROGMEM = TR_GPSSENSOR;
|
||||
const pm_char STR_CURRENTSENSOR[] PROGMEM = TR_CURRENTSENSOR;
|
||||
const pm_char STR_AUTOOFFSET[] PROGMEM = TR_AUTOOFFSET;
|
||||
const pm_char STR_FILTER[] PROGMEM = TR_FILTER;
|
||||
const pm_char STR_TELEMETRYFULL[] PROGMEM = TR_TELEMETRYFULL;
|
||||
#endif
|
||||
|
||||
#if defined(PCBTARANIS)
|
||||
@@ -561,6 +588,18 @@ const pm_char STR_BLCOLOR[] PROGMEM = TR_BLCOLOR;
|
||||
const pm_char STR_SCRIPT[] PROGMEM = TR_SCRIPT;
|
||||
const pm_char STR_INPUTS[] PROGMEM = TR_INPUTS;
|
||||
const pm_char STR_OUTPUTS[] PROGMEM = TR_OUTPUTS;
|
||||
const pm_char STR_MENU_INPUTS[] PROGMEM = TR_MENU_INPUTS;
|
||||
const pm_char STR_MENU_LUA[] PROGMEM = TR_MENU_LUA;
|
||||
const pm_char STR_MENU_STICKS[] PROGMEM = TR_MENU_STICKS;
|
||||
const pm_char STR_MENU_POTS[] PROGMEM = TR_MENU_POTS;
|
||||
const pm_char STR_MENU_MAX[] PROGMEM = TR_MENU_MAX;
|
||||
const pm_char STR_MENU_HELI[] PROGMEM = TR_MENU_HELI;
|
||||
const pm_char STR_MENU_TRIMS[] PROGMEM = TR_MENU_TRIMS;
|
||||
const pm_char STR_MENU_SWITCHES[] PROGMEM = TR_MENU_SWITCHES;
|
||||
const pm_char STR_MENU_TRAINER[] PROGMEM = TR_MENU_TRAINER;
|
||||
const pm_char STR_MENU_CHANNELS[] PROGMEM = TR_MENU_CHANNELS;
|
||||
const pm_char STR_MENU_GVARS[] PROGMEM = TR_MENU_GVARS;
|
||||
const pm_char STR_MENU_TELEMETRY[] PROGMEM = TR_MENU_TELEMETRY;
|
||||
#endif
|
||||
|
||||
#if MENUS_LOCK == 1
|
||||
|
||||
@@ -192,7 +192,11 @@ extern const pm_char STR_OPEN9X[];
|
||||
#define OFS_DSM_PROTOCOLS (OFS_XJT_PROTOCOLS + sizeof(TR_XJT_PROTOCOLS))
|
||||
#define OFS_VOLTSRC (OFS_DSM_PROTOCOLS + sizeof(TR_DSM_PROTOCOLS))
|
||||
#define OFS_CURVE_TYPES (OFS_VOLTSRC + sizeof(TR_VOLTSRC))
|
||||
#define OFS_MAVLINK_BAUDS (OFS_CURVE_TYPES + sizeof(TR_CURVE_TYPES))
|
||||
#define OFS_VSENSORTYPES (OFS_CURVE_TYPES + sizeof(TR_CURVE_TYPES))
|
||||
#define OFS_VFORMULAS (OFS_VSENSORTYPES + sizeof(TR_VSENSORTYPES))
|
||||
#define OFS_VPREC (OFS_VFORMULAS + sizeof(TR_VFORMULAS))
|
||||
#define OFS_VCELLINDEX (OFS_VPREC + sizeof(TR_VPREC))
|
||||
#define OFS_MAVLINK_BAUDS (OFS_VCELLINDEX + sizeof(TR_VCELLINDEX))
|
||||
#else
|
||||
#define OFS_MAVLINK_BAUDS (OFS_VTRAINERMODES)
|
||||
#endif
|
||||
@@ -298,6 +302,10 @@ extern const pm_char STR_OPEN9X[];
|
||||
#define STR_XJT_PROTOCOLS (STR_OPEN9X + OFS_XJT_PROTOCOLS)
|
||||
#define STR_DSM_PROTOCOLS (STR_OPEN9X + OFS_DSM_PROTOCOLS)
|
||||
#define STR_CURVE_TYPES (STR_OPEN9X + OFS_CURVE_TYPES)
|
||||
#define STR_VSENSORTYPES (STR_OPEN9X + OFS_VSENSORTYPES)
|
||||
#define STR_VFORMULAS (STR_OPEN9X + OFS_VFORMULAS)
|
||||
#define STR_VPREC (STR_OPEN9X + OFS_VPREC)
|
||||
#define STR_VCELLINDEX (STR_OPEN9X + OFS_VCELLINDEX)
|
||||
#endif
|
||||
|
||||
#if defined(MAVLINK)
|
||||
@@ -427,6 +435,8 @@ extern const pm_char STR_SPLASHSCREEN[];
|
||||
extern const pm_char STR_THROTTLEWARNING[];
|
||||
extern const pm_char STR_SWITCHWARNING[];
|
||||
extern const pm_char STR_TIMEZONE[];
|
||||
extern const pm_char STR_ADJUST_RTC[];
|
||||
extern const pm_char STR_GPS[];
|
||||
extern const pm_char STR_GPSCOORD[];
|
||||
extern const pm_char STR_VARIO[];
|
||||
extern const pm_char STR_PITCH_AT_ZERO[];
|
||||
@@ -542,6 +552,10 @@ extern const pm_char STR_SHUTDOWN[];
|
||||
extern const pm_char STR_SAVEMODEL[];
|
||||
#endif
|
||||
|
||||
#if defined(PCBTARANIS) && defined(REV9E)
|
||||
extern const pm_char STR_POWEROFF[];
|
||||
#endif
|
||||
|
||||
extern const pm_char STR_BATT_CALIB[];
|
||||
|
||||
#if defined(CPUARM) || defined(FRSKY)
|
||||
@@ -669,6 +683,8 @@ extern const pm_char STR_FLASH_INTERNAL_MODULE[];
|
||||
extern const pm_char STR_WRITING[];
|
||||
extern const pm_char STR_CONFIRM_FORMAT[];
|
||||
extern const pm_char STR_EEBACKUP[];
|
||||
extern const pm_char STR_FACTORYRESET[];
|
||||
extern const pm_char STR_CONFIRMRESET[];
|
||||
extern const pm_char STR_TOO_MANY_LUA_SCRIPTS[];
|
||||
extern const pm_char STR_BLCOLOR[];
|
||||
|
||||
@@ -735,9 +751,24 @@ extern const pm_char STR_BLCOLOR[];
|
||||
extern const pm_char STR_CRITICALALARM[];
|
||||
extern const pm_char STR_TELEMETRY_TYPE[];
|
||||
extern const pm_char STR_TELEMETRY_SENSORS[];
|
||||
extern const pm_char STR_VALUE[];
|
||||
extern const pm_char STR_TOPLCDTIMER[];
|
||||
extern const pm_char STR_UNIT[] PROGMEM;
|
||||
extern const pm_char STR_TELEMETRY_NEWSENSOR[];
|
||||
extern const pm_char STR_ID[];
|
||||
extern const pm_char STR_PRECISION[];
|
||||
extern const pm_char STR_RATIO[];
|
||||
extern const pm_char STR_FORMULA[];
|
||||
extern const pm_char STR_CELLINDEX[];
|
||||
extern const pm_char STR_LOGS[];
|
||||
extern const pm_char STR_OPTIONS[];
|
||||
extern const pm_char STR_ALTSENSOR[];
|
||||
extern const pm_char STR_CELLSENSOR[];
|
||||
extern const pm_char STR_GPSSENSOR[];
|
||||
extern const pm_char STR_CURRENTSENSOR[];
|
||||
extern const pm_char STR_AUTOOFFSET[];
|
||||
extern const pm_char STR_FILTER[];
|
||||
extern const pm_char STR_TELEMETRYFULL[];
|
||||
#endif
|
||||
|
||||
#if defined(PCBTARANIS)
|
||||
@@ -767,6 +798,18 @@ extern const pm_char STR_BLCOLOR[];
|
||||
extern const pm_char STR_SCRIPT[];
|
||||
extern const pm_char STR_INPUTS[];
|
||||
extern const pm_char STR_OUTPUTS[];
|
||||
extern const pm_char STR_MENU_INPUTS[];
|
||||
extern const pm_char STR_MENU_LUA[];
|
||||
extern const pm_char STR_MENU_STICKS[];
|
||||
extern const pm_char STR_MENU_POTS[];
|
||||
extern const pm_char STR_MENU_MAX[];
|
||||
extern const pm_char STR_MENU_HELI[];
|
||||
extern const pm_char STR_MENU_TRIMS[];
|
||||
extern const pm_char STR_MENU_SWITCHES[];
|
||||
extern const pm_char STR_MENU_TRAINER[];
|
||||
extern const pm_char STR_MENU_CHANNELS[];
|
||||
extern const pm_char STR_MENU_GVARS[];
|
||||
extern const pm_char STR_MENU_TELEMETRY[];
|
||||
#endif
|
||||
|
||||
#if MENUS_LOCK == 1
|
||||
|
||||
+212
-79
@@ -82,9 +82,15 @@
|
||||
#define LEN_UART3MODES "\015"
|
||||
#define TR_UART3MODES "VYP\0 ""S-Port Mirror""Telemetrie\0 ""SBUS Trainer\0""Debug\0"
|
||||
|
||||
#define LEN_SWTYPES "\006"
|
||||
#define TR_SWTYPES "None\0 ""Toggle""2POS\0 ""3POS\0"
|
||||
|
||||
#define LEN_POTTYPES "\017"
|
||||
#define TR_POTTYPES "Není\0 ""Pot s aretací\0 ""Vícepol. přep.\0""Potenciometr\0"
|
||||
|
||||
#define LEN_SLIDERTYPES "\006"
|
||||
#define TR_SLIDERTYPES "žádný\0""Slider"
|
||||
|
||||
#define LEN_DATETIME "\006"
|
||||
#define TR_DATETIME "DATUM:""ČAS: "
|
||||
|
||||
@@ -109,15 +115,20 @@
|
||||
#define LEN_VTRIMINC "\007"
|
||||
#define TR_VTRIMINC "Expo\0 ""ExJemný""Jemný\0 ""Střední""Hrubý\0 "
|
||||
|
||||
#define LEN_VDISPLAYTRIMS "\006"
|
||||
#define TR_VDISPLAYTRIMS "Ne\0 ""Změna\0""Ano\0 "
|
||||
|
||||
#define LEN_VBEEPCOUNTDOWN "\006"
|
||||
#define TR_VBEEPCOUNTDOWN "Tichý\0""Zvuk\0 ""Hlas\0 "
|
||||
#define TR_VBEEPCOUNTDOWN "Ne\0 ""Zvuk\0 ""Hlas\0 "
|
||||
|
||||
#define LEN_CURVE_TYPES "\010"
|
||||
#define TR_CURVE_TYPES "Rastr-X\0""Volná-XY"
|
||||
|
||||
#define LEN_RETA123 "\001"
|
||||
|
||||
#if defined(PCBTARANIS) || defined(REVX)
|
||||
#if defined(PCBTARANIS) && defined(REV9E)
|
||||
#define TR_RETA123 "SVPK1234LRLR"
|
||||
#elif defined(PCBTARANIS) || defined(REVX)
|
||||
#define TR_RETA123 "SVPK123LR"
|
||||
#elif defined(PCBSKY9X)
|
||||
#define TR_RETA123 "SVPK123a"
|
||||
@@ -174,7 +185,7 @@
|
||||
#define LEN_VMIXTRIMS "\004"
|
||||
#define TR_VMIXTRIMS "VYP\0""ZAP\0""Směr""Výšk""Plyn""Křid"
|
||||
|
||||
#if defined(PCBTARANIS)
|
||||
#if LCD_W >= 212
|
||||
#define TR_CSWTIMER "Timer"
|
||||
#define TR_CSWSTICKY "Stcky"
|
||||
#define TR_CSWRANGE "Range"
|
||||
@@ -230,18 +241,18 @@
|
||||
#else
|
||||
#define TR_PLAY_TRACK "\221\222Stopa\0 "
|
||||
#endif
|
||||
#define TR_PLAY_BOTH "\221\222Pár\0 "
|
||||
#define TR_PLAY_VALUE "\221\222TTS\0 "
|
||||
#define TR_PLAY_BOTH "\221\222Pár stop\0"
|
||||
#define TR_PLAY_VALUE "\221\222Hlásit\0 "
|
||||
#else
|
||||
#define TR_PLAY_TRACK "[\221\222Stopa]\0 "
|
||||
#define TR_PLAY_BOTH "[\221\222Pár]\0 "
|
||||
#define TR_PLAY_VALUE "[\221\222TTS]\0 "
|
||||
#define TR_PLAY_VALUE "[\221\222Hlásit]\0"
|
||||
#endif
|
||||
|
||||
#define TR_SF_BG_MUSIC "BgHudba\0 ""BgHudba ||\0"
|
||||
#define TR_SF_BG_MUSIC "\221\222Hudba\0 ""\221\222Hudba ||\0"
|
||||
|
||||
#if defined(SDCARD)
|
||||
#define TR_SDCLOGS "Log na SD\0 "
|
||||
#define TR_SDCLOGS "Loguj na SD"
|
||||
#else
|
||||
#define TR_SDCLOGS "[Logování]\0"
|
||||
#endif
|
||||
@@ -249,7 +260,7 @@
|
||||
#ifdef GVARS
|
||||
#define TR_ADJUST_GVAR "Nastav \0 "
|
||||
#else
|
||||
#define TR_ADJUST_GVAR "[AdjustGV]\0"
|
||||
#define TR_ADJUST_GVAR "[Nastav GP]"
|
||||
#endif
|
||||
|
||||
#if defined(LUA)
|
||||
@@ -302,8 +313,8 @@
|
||||
#define TR_FSW_RESET_ROTENC
|
||||
#endif
|
||||
|
||||
#if defined(PCBTARANIS)
|
||||
#define TR_FSW_RESET_TIMERS "Timer 1\0 ""Timer 2\0 ""Timer 3\0 "
|
||||
#if LCD_W >= 212
|
||||
#define TR_FSW_RESET_TIMERS "Stopky 1\0 ""Stopky 2\0 ""Stopky 3\0 "
|
||||
#elif defined(CPUARM)
|
||||
#define TR_FSW_RESET_TIMERS "Tmr1""Tmr2""Tmr3"
|
||||
#else
|
||||
@@ -335,10 +346,10 @@
|
||||
|
||||
#define TR_ASPD_MAX TR("ASp+", "ASpd+")
|
||||
|
||||
#if defined(PCBTARANIS)
|
||||
#if LCD_W >= 212
|
||||
#define TR_TELEM_RSSI_RX "RSSI\0"
|
||||
#else
|
||||
#define TR_TELEM_RSSI_RX TR("Rx\0 ", "Rx\0 ")
|
||||
#define TR_TELEM_RSSI_RX TR("Rx\0 ", "Rx\0 ")
|
||||
#endif
|
||||
|
||||
#if defined(CPUARM)
|
||||
@@ -361,10 +372,8 @@
|
||||
#if defined(CPUARM)
|
||||
#define LEN_VUNITSSYSTEM TR("\006", "\010")
|
||||
#define TR_VUNITSSYSTEM TR("Metr.\0""Imper.", "Metrické""Imperial")
|
||||
#define LEN_VTELEMUNIT_METR "\003"
|
||||
#define TR_VTELEMUNIT_METR "v\0 ""A\0 ""m/s""-\0 ""kmh""m\0 ""@\0 ""%\0 ""mA\0""mAh""W\0 "
|
||||
#define LEN_VTELEMUNIT_IMP "\003"
|
||||
#define TR_VTELEMUNIT_IMP "v\0 ""A\0 ""m/s""-\0 ""kts""ft\0""@\0 ""%\0 ""mA\0""mAh""W\0 "
|
||||
#define LEN_VTELEMUNIT "\003"
|
||||
#define TR_VTELEMUNIT "-\0 ""v\0 ""A\0 ""mA\0""kts""m/s""kmh""mph""m\0 ""ft\0""@C\0""@F\0""%\0 ""mAh""W\0 ""dBm""rpm""g\0 ""@\0 ""ml\0""fOz"
|
||||
#else
|
||||
#if defined(IMPERIAL_UNITS)
|
||||
#define LENGTH_UNIT LENGTH_UNIT_IMP
|
||||
@@ -390,24 +399,29 @@
|
||||
#define TR_VTELPROTO "---\0 ""Hub\0 ""WSHHigh"
|
||||
|
||||
#if defined(CPUARM)
|
||||
#define LEN_AMPSRC TR("\003", "\007")
|
||||
#define TR_AMPSRC TR("---""A1\0""A2\0""A3\0""A4\0""FAS""Cel", "---\0 ""A1\0 ""A2\0 ""A3\0 ""A4\0 ""FAS\0 ""Cells\0 ")
|
||||
#define LEN_VOLTSRC TR("\003", "\007")
|
||||
#define TR_VOLTSRC TR("A1\0""A2\0""A3\0""A4\0""FAS""Cel", "A1\0 ""A2\0 ""A3\0 ""A4\0 ""FAS\0 ""Cells\0 ")
|
||||
#define LEN_AMPSRC TR("\003", "\005")
|
||||
#define TR_AMPSRC TR("---""A1\0""A2\0""A3\0""A4\0""FAS""Cel", "---\0 ""A1\0 ""A2\0 ""A3\0 ""A4\0 ""FAS\0 ""Cells")
|
||||
#define LEN_VOLTSRC TR("\003", "\005")
|
||||
#define TR_VOLTSRC TR("A1\0""A2\0""A3\0""A4\0""FAS""Cel", "A1\0 ""A2\0 ""A3\0 ""A4\0 ""FAS\0 ""Cells")
|
||||
#else
|
||||
#define LEN_AMPSRC TR("\003", "\007")
|
||||
#define TR_AMPSRC TR("---""A1\0""A2\0""FAS""Cel", "---\0 ""A1\0 ""A2\0 ""FAS\0 ""Cells\0 ")
|
||||
#define LEN_AMPSRC TR("\003", "\005")
|
||||
#define TR_AMPSRC TR("---""A1\0""A2\0""FAS""Cel", "---\0 ""A1\0 ""A2\0 ""FAS\0 ""Cells")
|
||||
#endif
|
||||
|
||||
#define LEN_VARIOSRC "\005"
|
||||
#define LEN_VARIOSRC "\004"
|
||||
#if defined(FRSKY_SPORT)
|
||||
#define TR_VARIOSRC "Vario""A1\0 ""A2\0"
|
||||
#define TR_VARIOSRC "VSpd""A1\0 ""A2\0 ""dTE\0"
|
||||
#else
|
||||
#define TR_VARIOSRC "Alti\0""Alti+""Vario""A1\0 ""A2\0"
|
||||
#define TR_VARIOSRC "Alt\0""Alt+""VSpd""A1\0 ""A2\0"
|
||||
#endif
|
||||
|
||||
#if defined(CPUARM)
|
||||
#define LEN_VTELEMSCREENTYPE "\010"
|
||||
#define TR_VTELEMSCREENTYPE "Hodnota ""Ukazatel""Skript\0"
|
||||
#else
|
||||
#define LEN_VTELEMSCREENTYPE "\010"
|
||||
#define TR_VTELEMSCREENTYPE "Hodnota ""Ukazatel"
|
||||
#endif
|
||||
|
||||
#define LEN_GPSFORMAT "\004"
|
||||
#define TR_GPSFORMAT "DMS\0""NMEA"
|
||||
@@ -428,22 +442,31 @@
|
||||
#define LEN_VSWITCHES "\003"
|
||||
#define LEN_VSRCRAW "\004"
|
||||
|
||||
#if defined(PCBTARANIS)
|
||||
#define TR_POTS_VSRCRAW "S1\0 ""S2\0 ""S3\0 ""LS\0 ""RS\0 "
|
||||
#define TR_SW_VSRCRAW "SA\0 ""SB\0 ""SC\0 ""SD\0 ""SE\0 ""SF\0 ""SG\0 ""SH\0 "
|
||||
#define LEN_INPUTNAMES "\004"
|
||||
#define TR_INPUTNAMES "Smer""Vysk""Plyn""Krid"
|
||||
|
||||
#define TR_STICKS_VSRCRAW TR("Směr""Výšk""Plyn""Křid", "\307Smě""\307Výš""\307Pln""\307Kři")
|
||||
#define TR_TRIMS_VSRCRAW TR("TrmS""TrmV""TrmP""TrmK", "\313Smě""\313Výš""\313Pln""\313Kři")
|
||||
|
||||
#if defined(PCBTARANIS) && defined(REV9E)
|
||||
#define TR_POTS_VSRCRAW "\310S1\0""\310S2\0""\310S3\0""\310S4\0""\311LS\0""\311RS\0""\311LS2""\311RS2"
|
||||
#define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0""\312SE\0""\312SF\0""\312SG\0""\312SH\0""\312SI\0""\312SJ\0""\312SK\0""\312SL\0""\312SM\0""\312SN\0""\312SO\0""\312SP\0""\312SQ\0""\312SR\0"
|
||||
#elif defined(PCBTARANIS)
|
||||
#define TR_POTS_VSRCRAW "\310S1\0""\310S2\0""\310S3\0""\311LS\0""\311RS\0"
|
||||
#define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0""\312SE\0""\312SF\0""\312SG\0""\312SH\0"
|
||||
#else
|
||||
#define TR_POTS_VSRCRAW "P1\0 ""P2\0 ""P3\0 "
|
||||
#define TR_POTS_VSRCRAW "POT1""POT2""POT3"
|
||||
#define TR_SW_VSRCRAW "3POS"
|
||||
#define TR_9X_3POS_SWITCHES "ID0""ID1""ID2"
|
||||
#endif
|
||||
|
||||
#if defined(CPUARM)
|
||||
#define TR_LOGICALSW "L1\0""L2\0""L3\0""L4\0""L5\0""L6\0""L7\0""L8\0""L9\0""L10""L11""L12""L13""L14""L15""L16""L17""L18""L19""L20""L21""L22""L23""L24""L25""L26""L27""L28""L29""L30""L31""L32"
|
||||
#define TR_LOGICALSW "L1\0""L2\0""L3\0""L4\0""L5\0""L6\0""L7\0""L8\0""L9\0""L10""L11""L12""L13""L14""L15""L16""L17""L18""L19""L20""L21""L22""L23""L24""L25""L26""L27""L28""L29""L30""L31""L32"
|
||||
#else
|
||||
#define TR_LOGICALSW "L1\0""L2\0""L3\0""L4\0""L5\0""L6\0""L7\0""L8\0""L9\0""L10""L11""L12"
|
||||
#define TR_LOGICALSW "L1\0""L2\0""L3\0""L4\0""L5\0""L6\0""L7\0""L8\0""L9\0""L10""L11""L12"
|
||||
#endif
|
||||
|
||||
#define TR_TRIMS_SWITCHES "tSl""tSp""tVd""tVn""tPd""tPn""tKl""tKp"
|
||||
#define TR_TRIMS_SWITCHES TR("tSl""tSp""tVd""tVn""tPd""tPn""tKl""tKp", "\313Sl""\313Sp""\313Vd""\313Vn""\313Pd""\313Pn""\313Kl""\313Kp")
|
||||
|
||||
#if defined(PCBSKY9X)
|
||||
#define TR_ROTARY_ENCODERS "REa\0"
|
||||
@@ -456,13 +479,23 @@
|
||||
#define TR_ROTENC_SWITCHES
|
||||
#endif
|
||||
|
||||
#if defined(PCBTARANIS)
|
||||
#define TR_6POS_POTS "S11""S12""S13""S14""S15""S16""S21""S22""S23""S24""S25""S26""S31""S32""S33""S34""S35""S36"
|
||||
#define TR_VSWITCHES "---""SA\300""SA-""SA\301""SB\300""SB-""SB\301""SC\300""SC-""SC\301""SD\300""SD-""SD\301""SE\300""SE-""SE\301""SF\300""SF\301""SG\300""SG-""SG\301""SH\300""SH\301" TR_6POS_POTS TR_TRIMS_SWITCHES TR_ROTENC_SWITCHES TR_LOGICALSW "ZAP""One"
|
||||
#elif defined(CPUARM)
|
||||
#define TR_VSWITCHES "---" TR_9X_3POS_SWITCHES "THR""RUD""ELE""AIL""GEA""TRN" TR_TRIMS_SWITCHES TR_ROTENC_SWITCHES TR_LOGICALSW "ZAP""One"
|
||||
#if defined(PCBTARANIS) && defined(REV9E)
|
||||
#define TR_PHYS_SWITCHES "SA\300""SA-""SA\301""SB\300""SB-""SB\301""SC\300""SC-""SC\301""SD\300""SD-""SD\301""SE\300""SE-""SE\301""SF\300""SF-""SF\301""SG\300""SG-""SG\301""SH\300""SH-""SH\301""SI\300""SI-""SI\301""SJ\300""SJ-""SJ\301""SK\300""SK-""SK\301""SL\300""SL-""SL\301""SM\300""SM-""SM\301""SN\300""SN-""SN\301""SO\300""SO-""SO\301""SP\300""SP-""SP\301""SQ\300""SQ-""SQ\301""SR\300""SR-""SR\301"
|
||||
#elif defined(PCBTARANIS)
|
||||
#define TR_PHYS_SWITCHES "SA\300""SA-""SA\301""SB\300""SB-""SB\301""SC\300""SC-""SC\301""SD\300""SD-""SD\301""SE\300""SE-""SE\301""SF\300""SF-""SF\301""SG\300""SG-""SG\301""SH\300""SH-""SH\301"
|
||||
#else
|
||||
#define TR_VSWITCHES "---" TR_9X_3POS_SWITCHES "THR""RUD""ELE""AIL""GEA""TRN" TR_TRIMS_SWITCHES TR_ROTENC_SWITCHES TR_LOGICALSW "ZAP""One"
|
||||
#define TR_PHYS_SWITCHES "THR""RUD""ELE""AIL""GEA""TRN"
|
||||
#endif
|
||||
|
||||
#if defined(PCBTARANIS)
|
||||
#if defined(REV9E)
|
||||
#define TR_6POS_POTS "S11""S12""S13""S14""S15""S16""S21""S22""S23""S24""S25""S26""S31""S32""S33""S34""S35""S36""S41""S42""S43""S44""S45""S46"
|
||||
#else
|
||||
#define TR_6POS_POTS "S11""S12""S13""S14""S15""S16""S21""S22""S23""S24""S25""S26""S31""S32""S33""S34""S35""S36"
|
||||
#endif
|
||||
#define TR_VSWITCHES "---" TR_PHYS_SWITCHES TR_6POS_POTS TR_TRIMS_SWITCHES TR_ROTENC_SWITCHES TR_LOGICALSW "ZAP""One"
|
||||
#else
|
||||
#define TR_VSWITCHES "---" TR_9X_3POS_SWITCHES TR_PHYS_SWITCHES TR_TRIMS_SWITCHES TR_ROTENC_SWITCHES TR_LOGICALSW "ZAP""One"
|
||||
#endif
|
||||
|
||||
#if defined(HELI)
|
||||
@@ -471,13 +504,17 @@
|
||||
#define TR_CYC_VSRCRAW "[C1]""[C2]""[C3]"
|
||||
#endif
|
||||
|
||||
#define TR_VSRCRAW "---\0""Směr""Výšk""Plyn""Křid" TR_POTS_VSRCRAW TR_ROTARY_ENCODERS "MAX\0" TR_CYC_VSRCRAW "TrmS" "TrmV" "TrmP" "TrmK" TR_SW_VSRCRAW
|
||||
#if defined(CPUARM)
|
||||
#define TR_RESERVE_VSRCRAW "[--]"
|
||||
#define TR_EXTRA_VSRCRAW "Batt""Time" TR_RESERVE_VSRCRAW TR_RESERVE_VSRCRAW TR_RESERVE_VSRCRAW TR_RESERVE_VSRCRAW TR_RESERVE_VSRCRAW "Tmr1""Tmr2""Tmr3"
|
||||
#else
|
||||
#define TR_EXTRA_VSRCRAW
|
||||
#endif
|
||||
|
||||
#define LEN_INPUTNAMES "\004"
|
||||
#define TR_INPUTNAMES "Smer""Vysk""Plyn""Krid"
|
||||
#define TR_VSRCRAW "---\0" TR_STICKS_VSRCRAW TR_POTS_VSRCRAW TR_ROTARY_ENCODERS "MAX\0" TR_CYC_VSRCRAW TR_TRIMS_VSRCRAW TR_SW_VSRCRAW TR_EXTRA_VSRCRAW
|
||||
|
||||
#define LEN_VTMRMODES "\004"
|
||||
#define TR_VTMRMODES "VYP\0""ABS\0""Pln>""Pln%""Pln*"
|
||||
#define TR_VTMRMODES "VYP\0""ZAP\0""Pln>""Pln%""Pln*"
|
||||
|
||||
#define LEN_VTRAINERMODES "\022"
|
||||
#define TR_VTRAINERMODES "Učitel/Jack\0 ""Žák/Jack\0 ""Master/SBUS Module""Master/CPPM Module""Master/Battery\0"
|
||||
@@ -494,10 +531,30 @@
|
||||
#define TR_MAVLINK_AP_MODES "Manual ""Circle ""Stabilize ""Training ""Fly by Wire A""Fly by Wire A""Auto ""RTL ""Loiter ""Guided ""Initialising ""INVALID "
|
||||
#endif
|
||||
|
||||
#define LEN_VSENSORTYPES "\012"
|
||||
#define TR_VSENSORTYPES "Custom\0 ""Calculated"
|
||||
|
||||
#define LEN_VFORMULAS "\010"
|
||||
#define TR_VFORMULAS "Add\0 ""Average\0""Min\0 ""Max\0 ""Multiply""Totalize""Cell\0 ""Consumpt""Distance"
|
||||
|
||||
#define LEN_VPREC "\005"
|
||||
#define TR_VPREC "PREC0""PREC1""PREC2"
|
||||
|
||||
#define LEN_VCELLINDEX "\007"
|
||||
#define TR_VCELLINDEX "Lowest\0""1\0 ""2\0 ""3\0 ""4\0 ""5\0 ""6\0 ""Highest""Delta\0"
|
||||
|
||||
// ZERO TERMINATED STRINGS
|
||||
#if defined(COLORLCD)
|
||||
#define INDENT "\007"
|
||||
#define LEN_INDENT 1
|
||||
#define INDENT_WIDTH 12
|
||||
#define BREAKSPACE "\036"
|
||||
#else
|
||||
#define INDENT "\001"
|
||||
#define LEN_INDENT 1
|
||||
#define INDENT_WIDTH (FW/2)
|
||||
#define BREAKSPACE " "
|
||||
#endif
|
||||
|
||||
#if defined(PCBTARANIS)
|
||||
#define TR_ENTER "[ENTER]"
|
||||
@@ -516,7 +573,7 @@
|
||||
|
||||
#define TR_MENUWHENDONE CENTER "\011" TR_ENTER " > DALŠÍ"
|
||||
#define TR_FREE TR("volné:", "volných")
|
||||
#define TR_DELETEMODEL "SMAZAT MODEL"
|
||||
#define TR_DELETEMODEL "SMAZAT" BREAKSPACE "MODEL"
|
||||
#define TR_COPYINGMODEL "Kopíruji model.."
|
||||
#define TR_MOVINGMODEL "Přesouvám model."
|
||||
#define TR_LOADINGMODEL "Aktivuji model.."
|
||||
@@ -525,7 +582,7 @@
|
||||
#define TR_PHASENAME "Název"
|
||||
#define TR_MIXNAME "Název"
|
||||
#define TR_INPUTNAME "Název"
|
||||
#if defined(PCBTARANIS)
|
||||
#if defined(VIRTUALINPUTS)
|
||||
#define TR_EXPONAME "Popis"
|
||||
#else
|
||||
#define TR_EXPONAME "Název"
|
||||
@@ -535,13 +592,17 @@
|
||||
#define TR_ELIMITS TR("Limit +25%", "Kanál +/- 125%")
|
||||
#define TR_ETRIMS TR("širší Trim", "Široký trim")
|
||||
#define TR_TRIMINC TR("Krok Trimu", "Krok trimu")
|
||||
#define TR_DISPLAY_TRIMS "Display Trims"
|
||||
#define TR_DISPLAY_TRIMS "Zobr.hodnotu trimu"
|
||||
#define TR_TTRACE TR("StopaPlynu", INDENT "Stopa plynu")
|
||||
#define TR_TTRIM TR("TrimVolnob.", INDENT "Trim jen volnoběh")
|
||||
#define TR_BEEPCTR "Středy \221\222"
|
||||
#define TR_BEEPCTR TR("Středy \221\222", "Pípat středy \221\222")
|
||||
#define TR_USE_GLOBAL_FUNCS "Use Global Funcs"
|
||||
#define TR_PROTO INDENT "Protokol"
|
||||
#if defined(CPUARM)
|
||||
#define TR_PPMFRAME INDENT "PPM frame"
|
||||
#else
|
||||
#define TR_PPMFRAME "PPM frame"
|
||||
#endif
|
||||
#define TR_MS "ms"
|
||||
#define TR_SWITCH "Spínač"
|
||||
#define TR_TRIMS "Trimy"
|
||||
@@ -552,8 +613,8 @@
|
||||
#define OFS_CHECKTRIMS (9*FW)
|
||||
#define TR_SWASHTYPE "Typ cykliky"
|
||||
#define TR_COLLECTIVE "Kolektiv"
|
||||
#define TR_AILERON "Aileron Source"
|
||||
#define TR_ELEVATOR "Elevator Source"
|
||||
#define TR_AILERON "Boční cyklika"
|
||||
#define TR_ELEVATOR "Podélná cykl."
|
||||
#define TR_SWASHRING "Cyklika"
|
||||
#define TR_ELEDIRECTION "Směr:Výškovka"
|
||||
#define TR_AILDIRECTION "\012Křidélka"
|
||||
@@ -617,10 +678,12 @@
|
||||
#define TR_BLOFFBRIGHTNESS INDENT"Jas Vyp."
|
||||
#define TR_BLCOLOR INDENT "Barva"
|
||||
#define TR_SPLASHSCREEN TR("úvodníLogo", "Zobrazit úvodní logo")
|
||||
#define TR_THROTTLEWARNING TR("* Plyn", INDENT "Páka Plynu")
|
||||
#define TR_SWITCHWARNING TR("* Spínače", INDENT "Polohy Spínačů")
|
||||
#define TR_THROTTLEWARNING TR("* Plyn", INDENT "Kontrola plynu")
|
||||
#define TR_SWITCHWARNING TR("* Spínače", INDENT "Polohy spínačů")
|
||||
#define TR_POTWARNING TR("* Potenc.", INDENT "Nastavení Pot.")
|
||||
#define TR_TIMEZONE "časové pásmo"
|
||||
#define TR_ADJUST_RTC INDENT "Adjust RTC"
|
||||
#define TR_GPS "GPS"
|
||||
#define TR_RXCHANNELORD TR("Pořadí kanálů", "Výchozí pořadí kanálů")
|
||||
#define TR_STICKS "Sticks"
|
||||
#define TR_POTS "Pots"
|
||||
@@ -632,9 +695,15 @@
|
||||
#define TR_CAL "Kal."
|
||||
#define TR_VTRIM "Trim- +"
|
||||
#define TR_BG "BG:"
|
||||
#define TR_MENUTOSTART CENTER "\011" TR_ENTER " = START"
|
||||
#define TR_SETMIDPOINT CENTER "\004Nastav páky na střed"
|
||||
#define TR_MOVESTICKSPOTS TR(CENTER "\006Hýbej pákami/poty", "\014Hýbej pákami i potenciometry")
|
||||
#if defined(COLORLCD)
|
||||
#define TR_MENUTOSTART TR_ENTER " = START"
|
||||
#define TR_SETMIDPOINT "Nastav páky na střed"
|
||||
#define TR_MOVESTICKSPOTS "Hýbej pákami/poty"
|
||||
#else
|
||||
#define TR_MENUTOSTART CENTER "\011" TR_ENTER " = START"
|
||||
#define TR_SETMIDPOINT CENTER "\004Nastav páky na střed"
|
||||
#define TR_MOVESTICKSPOTS TR(CENTER "\006Hýbej pákami/poty", "\014Hýbej pákami i potenciometry")
|
||||
#endif
|
||||
#define TR_RXBATT "Rx Bat.:"
|
||||
#define TR_TXnRX "Tx:\0Rx:"
|
||||
#define OFS_RX 4
|
||||
@@ -677,7 +746,11 @@
|
||||
#define TR_MENUDIAG "DIAG"
|
||||
#define TR_MENUANA "ANALOGY"
|
||||
#define TR_MENUCALIBRATION "KALIBRACE"
|
||||
#if defined(COLORLCD)
|
||||
#define TR_TRIMS2OFFSETS "\006Trimy => Subtrimy"
|
||||
#else
|
||||
#define TR_TRIMS2OFFSETS "\006Trimy => Subtrimy"
|
||||
#endif
|
||||
#define TR_MENUMODELSEL "MODEL"
|
||||
#define TR_MENUSETUP "NASTAVENÍ"
|
||||
#define TR_MENUFLIGHTPHASE "LETOVÝ REŽIM"
|
||||
@@ -686,15 +759,12 @@
|
||||
|
||||
#define TR_MENULIMITS "SERVA"
|
||||
|
||||
#if defined(PCBTARANIS)
|
||||
#if defined(VIRTUALINPUTS)
|
||||
#define TR_MENUINPUTS "VSTUPY"
|
||||
#else
|
||||
#define TR_MENUINPUTS "DR/EXPO"
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
#define TR_MENUCURVES "KŘIVKY"
|
||||
#define TR_MENUCURVE "\002K"
|
||||
#define TR_MENULOGICALSWITCH "LOG. SPÍNAč"
|
||||
@@ -706,8 +776,12 @@
|
||||
#define TR_MENUTEMPLATES "ŠABLONY"
|
||||
#define TR_MENUSTAT "STATISTIKA"
|
||||
#define TR_MENUDEBUG "DIAG"
|
||||
#define TR_RXNUM INDENT "Přijímač"
|
||||
#define TR_SYNCMENU "Sync [MENU]"
|
||||
#if defined(CPUARM)
|
||||
#define TR_RXNUM TR(INDENT "RX číslo", INDENT "Číslo přijímače")
|
||||
#else
|
||||
#define TR_RXNUM "RX číslo"
|
||||
#endif
|
||||
#define TR_SYNCMENU "[Sync]"
|
||||
#define TR_LIMIT INDENT"Limit"
|
||||
#define TR_MINRSSI "Min Rssi"
|
||||
#define TR_LATITUDE "Zem. šířka"
|
||||
@@ -717,8 +791,9 @@
|
||||
#define TR_PITCH_AT_ZERO INDENT "Tón na nule"
|
||||
#define TR_PITCH_AT_MAX INDENT "Tón na maximu"
|
||||
#define TR_REPEAT_AT_ZERO INDENT "Opakování na nule"
|
||||
#define TR_SHUTDOWN "VYPÍNÁNí.."
|
||||
#define TR_SAVEMODEL "Saving model settings"
|
||||
#define TR_POWEROFF "\027Power OFF..."
|
||||
#define TR_SHUTDOWN "Vypínání.."
|
||||
#define TR_SAVEMODEL "Ukládám nastavení modelu"
|
||||
#define TR_BATT_CALIB "Kalib. baterie"
|
||||
#define TR_CURRENT_CALIB " +=\006Proud"
|
||||
#define TR_VOLTAGE INDENT"Napětí"
|
||||
@@ -732,7 +807,7 @@
|
||||
#define TR_RESTORE_MODEL "Obnov model z SD"
|
||||
#define TR_SDCARD_ERROR "Chyba SD karty"
|
||||
#define TR_NO_SDCARD "Není SD karta"
|
||||
#define TR_SDCARD_FULL "SD Card Full"
|
||||
#define TR_SDCARD_FULL "Plná SD karta"
|
||||
#define TR_INCOMPATIBLE "Nekompatibilní"
|
||||
#define TR_WARNING "KONTROLA"
|
||||
#define TR_EEPROMWARN "EEPROM"
|
||||
@@ -740,7 +815,7 @@
|
||||
#define TR_THROTTLEWARN "PLYNU"
|
||||
#define TR_ALARMSWARN "ALARMU"
|
||||
#define TR_SWITCHWARN "POZICE"
|
||||
#define TR_KEYSTUCK "Key stuck"
|
||||
#define TR_KEYSTUCK "Zaseklá klávesa"
|
||||
#define TR_INVERT_THR "Invertovat plyn?"
|
||||
#define TR_SPEAKER_VOLUME INDENT "Hlasitost"
|
||||
#define TR_LCD "LCD"
|
||||
@@ -750,8 +825,8 @@
|
||||
#define TR_CPU_MAH "Spotřeba"
|
||||
#define TR_COPROC "CoProc."
|
||||
#define TR_COPROC_TEMP "Tepl. MB \016>"
|
||||
#define TR_CAPAWARNING INDENT "Kapacita"
|
||||
#define TR_TEMPWARNING INDENT "Teplota"
|
||||
#define TR_CAPAWARNING INDENT "Nízká kapacita"
|
||||
#define TR_TEMPWARNING INDENT "Přehřátí"
|
||||
#define TR_FUNC "Fce."
|
||||
#define TR_V1 "V1"
|
||||
#define TR_V2 "V2"
|
||||
@@ -759,10 +834,10 @@
|
||||
#define TR_DELAY "Zdržet"
|
||||
#define TR_SD_CARD "SD"
|
||||
#define TR_SDHC_CARD "SD-HC"
|
||||
#define TR_NO_SOUNDS_ON_SD "žádný zvuk na SD"
|
||||
#define TR_NO_MODELS_ON_SD "žádný model na SD"
|
||||
#define TR_NO_BITMAPS_ON_SD "žádné obrázky na SD"
|
||||
#define TR_NO_SCRIPTS_ON_SD "žádný skript na SD"
|
||||
#define TR_NO_SOUNDS_ON_SD "žádný zvuk" BREAKSPACE "na SD"
|
||||
#define TR_NO_MODELS_ON_SD "žádný model" BREAKSPACE "na SD"
|
||||
#define TR_NO_BITMAPS_ON_SD "žádné obrázky" BREAKSPACE "na SD"
|
||||
#define TR_NO_SCRIPTS_ON_SD "žádný skript" BREAKSPACE "na SD"
|
||||
#define TR_PLAY_FILE "Přehrát"
|
||||
#define TR_DELETE_FILE "Odstranit"
|
||||
#define TR_COPY_FILE "Kopírovat"
|
||||
@@ -783,7 +858,7 @@
|
||||
#define TR_SD_SPEED "Rychlost:"
|
||||
#define TR_SD_SECTORS "Sektorů :"
|
||||
#define TR_SD_SIZE "Velikost:"
|
||||
#define TR_TYPE TR_SD_TYPE
|
||||
#define TR_TYPE INDENT TR_SD_TYPE
|
||||
#define TR_GLOBAL_VARS "Globální proměnné"
|
||||
#define TR_GLOBAL_V "GLOB.PROM."
|
||||
#define TR_GLOBAL_VAR "Globální proměnná"
|
||||
@@ -792,17 +867,19 @@
|
||||
#define TR_DATE "Datum"
|
||||
#define TR_ROTARY_ENCODER "R.Encs"
|
||||
#define TR_CHANNELS_MONITOR "MONITOR KANÁLU"
|
||||
#define TR_MIXERS_MONITOR "MIXERS MONITOR"
|
||||
#define TR_MIXERS_MONITOR "MONITOR MIXU"
|
||||
#define TR_PATH_TOO_LONG "Cesta je moc dlouhá"
|
||||
#define TR_VIEW_TEXT "Zobrazit text"
|
||||
#define TR_FLASH_BOOTLOADER "Flash BootLoader"
|
||||
#define TR_WRITING "\032Writing..."
|
||||
#define TR_CONFIRM_FORMAT "Confirm Format?"
|
||||
#define TR_FLASH_BOOTLOADER "Flash BootLoaderu"
|
||||
#define TR_FLASH_EXTERNAL_DEVICE "Flash externí krabičky"
|
||||
#define TR_FLASH_INTERNAL_MODULE "Flash vnitřního modulu"
|
||||
#define TR_WRITING "\032Zapisuji.."
|
||||
#define TR_CONFIRM_FORMAT "Provést Formát?"
|
||||
#define TR_INTERNALRF "Vnitřní RF modul"
|
||||
#define TR_EXTERNALRF "Externí RF modul"
|
||||
#define TR_FAILSAFE "Mód Failsafe"
|
||||
#define TR_FAILSAFESET "NASTAVENÍ FAILSAFE"
|
||||
#define TR_MENUSENSOR "SENSOR"
|
||||
#define TR_MENUSENSOR "SENZOR"
|
||||
#define TR_COUNTRYCODE "Kód regionu"
|
||||
#define TR_VOICELANG "Jazyk hlasu"
|
||||
#define TR_UNITSSYSTEM "Jednotky"
|
||||
@@ -836,8 +913,11 @@
|
||||
#define TR_MODELIDUSED TR("ID již použito","ID modelu je již použito")
|
||||
#define TR_MODULE INDENT "Modul"
|
||||
#define TR_TELEMETRY_TYPE TR("Typ", "Typ telemetrie")
|
||||
#define TR_TELEMETRY_SENSORS "Sensors"
|
||||
#define TR_TELEMETRY_NEWSENSOR INDENT "Add a new sensor..."
|
||||
#define TR_TELEMETRY_SENSORS "Senzory"
|
||||
#define TR_VALUE "Value"
|
||||
#define TR_TOPLCDTIMER "Top LCD Timer"
|
||||
#define TR_UNIT "Unit"
|
||||
#define TR_TELEMETRY_NEWSENSOR INDENT "+ Přidat nový senzor.."
|
||||
#define TR_CHANNELRANGE INDENT "Rozsah kanálů"
|
||||
#define TR_LOWALARM INDENT "Nízký Alarm"
|
||||
#define TR_CRITICALALARM INDENT "Kritický Alarm"
|
||||
@@ -864,6 +944,8 @@
|
||||
#define TR_INPUTS "Vstupy"
|
||||
#define TR_OUTPUTS "Výstupy"
|
||||
#define TR_EEBACKUP "\010[dlouze ENTER] zálohuje EEPROM"
|
||||
#define TR_FACTORYRESET "\012[MENU Long]: Factory reset"
|
||||
#define TR_CONFIRMRESET "Erase ALL models and settings?"
|
||||
#define TR_TO_MANY_LUA_SCRIPTS "Příliš mnoho skriptů!"
|
||||
|
||||
#if defined(MAVLINK)
|
||||
@@ -968,4 +1050,55 @@
|
||||
#define TR_MODS_FORBIDDEN "Změny nejsou povoleny!"
|
||||
#define TR_UNLOCKED "Odemčeno"
|
||||
#define TR_ID "ID"
|
||||
#define TR_PRECISION "Precision"
|
||||
#define TR_PRECISION "Přesnost"
|
||||
#define TR_RATIO "Ratio"
|
||||
#define TR_FORMULA "Formula"
|
||||
#define TR_CELLINDEX "Cell index"
|
||||
#define TR_LOGS "Logs"
|
||||
#define TR_OPTIONS "Options"
|
||||
|
||||
#define TR_ALTSENSOR "Alt sensor"
|
||||
#define TR_CELLSENSOR "Cell sensor"
|
||||
#define TR_GPSSENSOR "GPS sensor"
|
||||
#define TR_CURRENTSENSOR "Current sensor"
|
||||
#define TR_AUTOOFFSET "Auto Offset"
|
||||
#define TR_FILTER "Filter"
|
||||
#define TR_TELEMETRYFULL "All telemetry slots full!"
|
||||
|
||||
#define TR_MENU_INPUTS "\314Inputs"
|
||||
#define TR_MENU_LUA "\322Lua scripts"
|
||||
#define TR_MENU_STICKS "\307Sticks"
|
||||
#define TR_MENU_POTS "\310Pots"
|
||||
#define TR_MENU_MAX "\315MAX"
|
||||
#define TR_MENU_HELI "\316Cyclic"
|
||||
#define TR_MENU_TRIMS "\313Trims"
|
||||
#define TR_MENU_SWITCHES "\312Switches"
|
||||
#define TR_MENU_TRAINER "\317Trainer"
|
||||
#define TR_MENU_CHANNELS "\320Channels"
|
||||
#define TR_MENU_GVARS "\311GVars"
|
||||
#define TR_MENU_TELEMETRY "\321Telemetry"
|
||||
|
||||
#define ZSTR_RSSI "RSSI"
|
||||
#define ZSTR_SWR "SWR"
|
||||
#define ZSTR_A1 "A1"
|
||||
#define ZSTR_A2 "A2"
|
||||
#define ZSTR_A3 "A3"
|
||||
#define ZSTR_A4 "A4"
|
||||
#define ZSTR_BATT "RxBt"
|
||||
#define ZSTR_ALT "Alt"
|
||||
#define ZSTR_TEMP "Temp"
|
||||
#define ZSTR_RPM "RPM"
|
||||
#define ZSTR_FUEL "Fuel"
|
||||
#define ZSTR_VSPD "VSpd"
|
||||
#define ZSTR_ACCX "AccX"
|
||||
#define ZSTR_ACCY "AccY"
|
||||
#define ZSTR_ACCZ "AccZ"
|
||||
#define ZSTR_CURR "Curr"
|
||||
#define ZSTR_VFAS "VFAS"
|
||||
#define ZSTR_ASPD "ASpd"
|
||||
#define ZSTR_GSPD "GSpd"
|
||||
#define ZSTR_HDG "Hdg"
|
||||
#define ZSTR_CELLS "Cels"
|
||||
#define ZSTR_GPSALT "GAlt"
|
||||
#define ZSTR_GPSDATETIME "Date"
|
||||
#define ZSTR_GPS "GPS"
|
||||
|
||||
@@ -375,7 +375,7 @@
|
||||
#define LEN_VUNITSSYSTEM TR("\006", "\012")
|
||||
#define TR_VUNITSSYSTEM TR("Metrik""Imper.", "Metrisch\0 ""Imperial\0 ")
|
||||
#define LEN_VTELEMUNIT "\003"
|
||||
#define TR_VTELEMUNIT "-\0 ""V\0 ""A\0 ""mA\0""kts""m/s""kmh""mph""m\0 ""ft\0""@C\0""@F\0""%\0 ""mAh""W\0 ""dBm""rpm""g\0 ""@\0"
|
||||
#define TR_VTELEMUNIT "-\0 ""V\0 ""A\0 ""mA\0""kts""m/s""kmh""mph""m\0 ""ft\0""@C\0""@F\0""%\0 ""mAh""W\0 ""dBm""rpm""g\0 ""@\0 ""ml\0""fOz"
|
||||
#else
|
||||
#if defined(IMPERIAL_UNITS)
|
||||
#define LENGTH_UNIT LENGTH_UNIT_IMP
|
||||
@@ -465,7 +465,7 @@
|
||||
#define TR_LOGICALSW "L1\0""L2\0""L3\0""L4\0""L5\0""L6\0""L7\0""L8\0""L9\0""L10""L11""L12"
|
||||
#endif
|
||||
|
||||
#define TR_TRIMS_SWITCHES "\313Sl""\313Sr""\313Hd""\313Hu""\313Gd""\313Gu""\313Ql""\313Qr"
|
||||
#define TR_TRIMS_SWITCHES TR("tSl""tSr""tHd""tHu""tGd""tGu""tQl""tQr", "\313Sl""\313Sr""\313Hd""\313Hu""\313Gd""\313Gu""\313Ql""\313Qr")
|
||||
|
||||
#if defined(PCBSKY9X)
|
||||
#define TR_ROTARY_ENCODERS "DGa\0"
|
||||
@@ -481,7 +481,7 @@
|
||||
#if defined(PCBTARANIS) && defined(REV9E)
|
||||
#define TR_PHYS_SWITCHES "SA\300""SA-""SA\301""SB\300""SB-""SB\301""SC\300""SC-""SC\301""SD\300""SD-""SD\301""SE\300""SE-""SE\301""SF\300""SF-""SF\301""SG\300""SG-""SG\301""SH\300""SH-""SH\301""SI\300""SI-""SI\301""SJ\300""SJ-""SJ\301""SK\300""SK-""SK\301""SL\300""SL-""SL\301""SM\300""SM-""SM\301""SN\300""SN-""SN\301""SO\300""SO-""SO\301""SP\300""SP-""SP\301""SQ\300""SQ-""SQ\301""SR\300""SR-""SR\301"
|
||||
#elif defined(PCBTARANIS)
|
||||
#define TR_PHYS_SWITCHES "SA\300""SA-""SA\301""SB\300""SB-""SB\301""SC\300""SC-""SC\301""SD\300""SD-""SD\301""SE\300""SE-""SE\301""SF\300""SF\301""SG\300""SG-""SG\301""SH\300""SH\301"
|
||||
#define TR_PHYS_SWITCHES "SA\300""SA-""SA\301""SB\300""SB-""SB\301""SC\300""SC-""SC\301""SD\300""SD-""SD\301""SE\300""SE-""SE\301""SF\300""SF-""SF\301""SG\300""SG-""SG\301""SH\300""SH-""SH\301"
|
||||
#else
|
||||
#define TR_PHYS_SWITCHES "THR""RUD""ELE""AIL""GEA""TRN"
|
||||
#endif
|
||||
@@ -530,6 +530,18 @@
|
||||
#define TR_MAVLINK_AP_MODES "Manual ""Circle ""Stabilize ""Training ""Fly by Wire A""Fly by Wire A""Auto ""RTL ""Loiter ""Guided ""Initialising ""INVALID "
|
||||
#endif
|
||||
|
||||
#define LEN_VSENSORTYPES "\012"
|
||||
#define TR_VSENSORTYPES "Custom\0 ""Calculated"
|
||||
|
||||
#define LEN_VFORMULAS "\010"
|
||||
#define TR_VFORMULAS "Add\0 ""Average\0""Min\0 ""Max\0 ""Multiply""Totalize""Cell\0 ""Consumpt""Distance"
|
||||
|
||||
#define LEN_VPREC "\005"
|
||||
#define TR_VPREC "PREC0""PREC1""PREC2"
|
||||
|
||||
#define LEN_VCELLINDEX "\007"
|
||||
#define TR_VCELLINDEX "Lowest\0""1\0 ""2\0 ""3\0 ""4\0 ""5\0 ""6\0 ""Highest""Delta\0"
|
||||
|
||||
// ZERO TERMINATED STRINGS
|
||||
#if defined(COLORLCD)
|
||||
#define INDENT "\007"
|
||||
@@ -669,6 +681,8 @@
|
||||
#define TR_SWITCHWARNING TR("Sch. Alarm", INDENT "Schalter-Alarm")
|
||||
#define TR_POTWARNING TR("Pot Warn.", INDENT "Poti-Warnung")
|
||||
#define TR_TIMEZONE TR("Zeitzone", "GPS-Zeitzone +/-Std")
|
||||
#define TR_ADJUST_RTC INDENT "Adjust RTC"
|
||||
#define TR_GPS "GPS"
|
||||
#define TR_RXCHANNELORD TR("Kanalanordnung", "Kanalvoreinstellung")
|
||||
#define TR_STICKS "Knüppel"
|
||||
#define TR_POTS "Potis"
|
||||
@@ -776,6 +790,7 @@
|
||||
#define TR_PITCH_AT_ZERO INDENT "Niedrigster Ton"
|
||||
#define TR_PITCH_AT_MAX INDENT "Höchster Ton"
|
||||
#define TR_REPEAT_AT_ZERO INDENT "Wiederholrate"
|
||||
#define TR_POWEROFF "\027Power OFF..."
|
||||
#define TR_SHUTDOWN "Herunterfahren"
|
||||
#define TR_SAVEMODEL "Modelleinstellungen speichern"
|
||||
#define TR_BATT_CALIB "Akku abgleichen"
|
||||
@@ -898,6 +913,9 @@
|
||||
#define TR_MODULE INDENT "Modul-Typ"
|
||||
#define TR_TELEMETRY_TYPE TR("Typ", "Telemetrytyp")
|
||||
#define TR_TELEMETRY_SENSORS "----Sensoren----"
|
||||
#define TR_VALUE "Value"
|
||||
#define TR_TOPLCDTIMER "Top LCD Timer"
|
||||
#define TR_UNIT "Unit"
|
||||
#define TR_TELEMETRY_NEWSENSOR INDENT "Sensor hinzufügen ..."
|
||||
#define TR_CHANNELRANGE TR(INDENT "Kanäle", INDENT "Ausgangs Kanäle") //wg 9XR-Pro
|
||||
#define TR_LOWALARM INDENT "Vor-Alarm bei"
|
||||
@@ -925,6 +943,8 @@
|
||||
#define TR_INPUTS "Inputs"
|
||||
#define TR_OUTPUTS "Outputs"
|
||||
#define TR_EEBACKUP "\002[ENTER Long] Backup EEPROM->SD-Karte"
|
||||
#define TR_FACTORYRESET "\012[MENU Long]: Factory reset"
|
||||
#define TR_CONFIRMRESET "Erase ALL models and settings?"
|
||||
#define TR_TO_MANY_LUA_SCRIPTS "Zu viele Lua-Scripten!!"
|
||||
|
||||
#if defined(MAVLINK)
|
||||
@@ -1030,11 +1050,40 @@
|
||||
#define TR_UNLOCKED "Entsperrt"
|
||||
#define TR_ID "ID"
|
||||
#define TR_PRECISION "Prezision"
|
||||
#define TR_RATIO "Ratio"
|
||||
#define TR_FORMULA "Formula"
|
||||
#define TR_CELLINDEX "Cell index"
|
||||
#define TR_LOGS "Logs"
|
||||
#define TR_OPTIONS "Options"
|
||||
|
||||
#define TR_ALTSENSOR "Alt sensor"
|
||||
#define TR_CELLSENSOR "Cell sensor"
|
||||
#define TR_GPSSENSOR "GPS sensor"
|
||||
#define TR_CURRENTSENSOR "Current sensor"
|
||||
#define TR_AUTOOFFSET "Auto Offset"
|
||||
#define TR_FILTER "Filter"
|
||||
#define TR_TELEMETRYFULL "All telemetry slots full!"
|
||||
|
||||
#define TR_MENU_INPUTS "\314Inputs"
|
||||
#define TR_MENU_LUA "\322Lua scripts"
|
||||
#define TR_MENU_STICKS "\307Sticks"
|
||||
#define TR_MENU_POTS "\310Pots"
|
||||
#define TR_MENU_MAX "\315MAX"
|
||||
#define TR_MENU_HELI "\316Cyclic"
|
||||
#define TR_MENU_TRIMS "\313Trims"
|
||||
#define TR_MENU_SWITCHES "\312Switches"
|
||||
#define TR_MENU_TRAINER "\317Trainer"
|
||||
#define TR_MENU_CHANNELS "\320Channels"
|
||||
#define TR_MENU_GVARS "\311GVars"
|
||||
#define TR_MENU_TELEMETRY "\321Telemetry"
|
||||
|
||||
#define ZSTR_RSSI "RSSI"
|
||||
#define ZSTR_SWR "SWR"
|
||||
#define ZSTR_A1 "A1"
|
||||
#define ZSTR_A2 "A2"
|
||||
#define ZSTR_BATT "Batt"
|
||||
#define ZSTR_A3 "A3"
|
||||
#define ZSTR_A4 "A4"
|
||||
#define ZSTR_BATT "RxBt"
|
||||
#define ZSTR_ALT "Alt"
|
||||
#define ZSTR_TEMP "Temp"
|
||||
#define ZSTR_RPM "RPM"
|
||||
|
||||
@@ -375,7 +375,7 @@
|
||||
#define LEN_VUNITSSYSTEM TR("\006", "\010")
|
||||
#define TR_VUNITSSYSTEM TR("Metric""Imper.", "Metric\0 ""Imperial")
|
||||
#define LEN_VTELEMUNIT "\003"
|
||||
#define TR_VTELEMUNIT "-\0 ""v\0 ""A\0 ""mA\0""kts""m/s""kmh""mph""m\0 ""ft\0""@C\0""@F\0""%\0 ""mAh""W\0 ""dBm""rpm""g\0 ""@\0"
|
||||
#define TR_VTELEMUNIT "-\0 ""v\0 ""A\0 ""mA\0""kts""m/s""kmh""mph""m\0 ""ft\0""@C\0""@F\0""%\0 ""mAh""W\0 ""dBm""rpm""g\0 ""@\0 ""ml\0""fOz"
|
||||
#else
|
||||
#if defined(IMPERIAL_UNITS)
|
||||
#define LENGTH_UNIT LENGTH_UNIT_IMP
|
||||
@@ -465,7 +465,7 @@
|
||||
#define TR_LOGICALSW "L1\0""L2\0""L3\0""L4\0""L5\0""L6\0""L7\0""L8\0""L9\0""L10""L11""L12"
|
||||
#endif
|
||||
|
||||
#define TR_TRIMS_SWITCHES "\313Rl""\313Rr""\313Ed""\313Eu""\313Td""\313Tu""\313Al""\313Ar"
|
||||
#define TR_TRIMS_SWITCHES TR("tRl""tRr""tEd""tEu""tTd""tTu""tAl""tAr", "\313Rl""\313Rr""\313Ed""\313Eu""\313Td""\313Tu""\313Al""\313Ar")
|
||||
|
||||
#if defined(PCBSKY9X)
|
||||
#define TR_ROTARY_ENCODERS "REa\0"
|
||||
@@ -481,7 +481,7 @@
|
||||
#if defined(PCBTARANIS) && defined(REV9E)
|
||||
#define TR_PHYS_SWITCHES "SA\300""SA-""SA\301""SB\300""SB-""SB\301""SC\300""SC-""SC\301""SD\300""SD-""SD\301""SE\300""SE-""SE\301""SF\300""SF-""SF\301""SG\300""SG-""SG\301""SH\300""SH-""SH\301""SI\300""SI-""SI\301""SJ\300""SJ-""SJ\301""SK\300""SK-""SK\301""SL\300""SL-""SL\301""SM\300""SM-""SM\301""SN\300""SN-""SN\301""SO\300""SO-""SO\301""SP\300""SP-""SP\301""SQ\300""SQ-""SQ\301""SR\300""SR-""SR\301"
|
||||
#elif defined(PCBTARANIS)
|
||||
#define TR_PHYS_SWITCHES "SA\300""SA-""SA\301""SB\300""SB-""SB\301""SC\300""SC-""SC\301""SD\300""SD-""SD\301""SE\300""SE-""SE\301""SF\300""SF\301""SG\300""SG-""SG\301""SH\300""SH\301"
|
||||
#define TR_PHYS_SWITCHES "SA\300""SA-""SA\301""SB\300""SB-""SB\301""SC\300""SC-""SC\301""SD\300""SD-""SD\301""SE\300""SE-""SE\301""SF\300""SF-""SF\301""SG\300""SG-""SG\301""SH\300""SH-""SH\301"
|
||||
#else
|
||||
#define TR_PHYS_SWITCHES "THR""RUD""ELE""AIL""GEA""TRN"
|
||||
#endif
|
||||
@@ -530,6 +530,18 @@
|
||||
#define TR_MAVLINK_AP_MODES "Manual ""Circle ""Stabilize ""Training ""Fly by Wire A""Fly by Wire A""Auto ""RTL ""Loiter ""Guided ""Initialising ""INVALID "
|
||||
#endif
|
||||
|
||||
#define LEN_VSENSORTYPES "\012"
|
||||
#define TR_VSENSORTYPES "Custom\0 ""Calculated"
|
||||
|
||||
#define LEN_VFORMULAS "\010"
|
||||
#define TR_VFORMULAS "Add\0 ""Average\0""Min\0 ""Max\0 ""Multiply""Totalize""Cell\0 ""Consumpt""Distance"
|
||||
|
||||
#define LEN_VPREC "\005"
|
||||
#define TR_VPREC "PREC0""PREC1""PREC2"
|
||||
|
||||
#define LEN_VCELLINDEX "\007"
|
||||
#define TR_VCELLINDEX "Lowest\0""1\0 ""2\0 ""3\0 ""4\0 ""5\0 ""6\0 ""Highest""Delta\0"
|
||||
|
||||
// ZERO TERMINATED STRINGS
|
||||
#if defined(COLORLCD)
|
||||
#define INDENT "\007"
|
||||
@@ -599,9 +611,9 @@
|
||||
#define TR_CHECKTRIMS CENTER "\006Check\012Trims"
|
||||
#define OFS_CHECKTRIMS CENTER_OFS+(9*FW)
|
||||
#define TR_SWASHTYPE "Swash Type"
|
||||
#define TR_COLLECTIVE TR("Collective", "Coll. pitch")
|
||||
#define TR_AILERON "Lateral cyc."
|
||||
#define TR_ELEVATOR "Long. cyc."
|
||||
#define TR_COLLECTIVE TR("Collective", "Coll. pitch source")
|
||||
#define TR_AILERON "Lateral cyc. source"
|
||||
#define TR_ELEVATOR "Long. cyc. source"
|
||||
#define TR_SWASHRING "Swash Ring"
|
||||
#define TR_ELEDIRECTION "ELE Direction"
|
||||
#define TR_AILDIRECTION "AIL Direction"
|
||||
@@ -668,7 +680,9 @@
|
||||
#define TR_THROTTLEWARNING TR(IF_CPUARM(INDENT) "T-Warning", INDENT "Throttle State")
|
||||
#define TR_SWITCHWARNING TR(IF_CPUARM(INDENT) "S-Warning", INDENT "Switch Positions")
|
||||
#define TR_POTWARNING TR(IF_CPUARM(INDENT) "Pot Warn.", INDENT "Pot Positions")
|
||||
#define TR_TIMEZONE TR("Time Zone", "GPS Time zone")
|
||||
#define TR_TIMEZONE TR("Time Zone", INDENT "Time zone")
|
||||
#define TR_ADJUST_RTC INDENT "Adjust RTC"
|
||||
#define TR_GPS "GPS"
|
||||
#define TR_RXCHANNELORD TR("Rx Channel Ord", "Default channel order")
|
||||
#define TR_STICKS "Sticks"
|
||||
#define TR_POTS "Pots"
|
||||
@@ -771,11 +785,12 @@
|
||||
#define TR_MINRSSI "Min Rssi"
|
||||
#define TR_LATITUDE "Latitude"
|
||||
#define TR_LONGITUDE "Longitude"
|
||||
#define TR_GPSCOORD TR("GPS Coords", "GPS coordinate format")
|
||||
#define TR_GPSCOORD TR("GPS Coords", INDENT "Coordinate format")
|
||||
#define TR_VARIO TR("Vario", "Variometer")
|
||||
#define TR_PITCH_AT_ZERO INDENT "Pitch at Zero"
|
||||
#define TR_PITCH_AT_MAX INDENT "Pitch at Max"
|
||||
#define TR_REPEAT_AT_ZERO INDENT "Repeat at Zero"
|
||||
#define TR_POWEROFF "\027Power OFF..."
|
||||
#define TR_SHUTDOWN "SHUTTING DOWN"
|
||||
#define TR_SAVEMODEL "Saving model settings"
|
||||
#define TR_BATT_CALIB "Battery Calib"
|
||||
@@ -898,6 +913,9 @@
|
||||
#define TR_MODULE INDENT "Module"
|
||||
#define TR_TELEMETRY_TYPE TR("Type", "Telemetry Type")
|
||||
#define TR_TELEMETRY_SENSORS "Sensors"
|
||||
#define TR_VALUE "Value"
|
||||
#define TR_TOPLCDTIMER "Top LCD Timer"
|
||||
#define TR_UNIT "Unit"
|
||||
#define TR_TELEMETRY_NEWSENSOR INDENT "Add a new sensor..."
|
||||
#define TR_CHANNELRANGE TR(INDENT "Ch. Range", INDENT "Channel Range")
|
||||
#define TR_LOWALARM INDENT "Low Alarm"
|
||||
@@ -925,6 +943,8 @@
|
||||
#define TR_INPUTS "Inputs"
|
||||
#define TR_OUTPUTS "Outputs"
|
||||
#define TR_EEBACKUP "\004[ENTER Long] to backup the EEPROM"
|
||||
#define TR_FACTORYRESET "\012[MENU Long]: Factory reset"
|
||||
#define TR_CONFIRMRESET "Erase ALL models and settings?"
|
||||
#define TR_TO_MANY_LUA_SCRIPTS "Too many Lua scripts!"
|
||||
|
||||
#if defined(MAVLINK)
|
||||
@@ -1030,11 +1050,40 @@
|
||||
#define TR_UNLOCKED "Unlocked"
|
||||
#define TR_ID "ID"
|
||||
#define TR_PRECISION "Precision"
|
||||
#define TR_RATIO "Ratio"
|
||||
#define TR_FORMULA "Formula"
|
||||
#define TR_CELLINDEX "Cell index"
|
||||
#define TR_LOGS "Logs"
|
||||
#define TR_OPTIONS "Options"
|
||||
|
||||
#define TR_ALTSENSOR "Alt sensor"
|
||||
#define TR_CELLSENSOR "Cell sensor"
|
||||
#define TR_GPSSENSOR "GPS sensor"
|
||||
#define TR_CURRENTSENSOR "Curr. sensor"
|
||||
#define TR_AUTOOFFSET "Auto Offset"
|
||||
#define TR_FILTER "Filter"
|
||||
#define TR_TELEMETRYFULL "All telemetry slots full!"
|
||||
|
||||
#define TR_MENU_INPUTS "\314Inputs"
|
||||
#define TR_MENU_LUA "\322Lua scripts"
|
||||
#define TR_MENU_STICKS "\307Sticks"
|
||||
#define TR_MENU_POTS "\310Pots"
|
||||
#define TR_MENU_MAX "\315MAX"
|
||||
#define TR_MENU_HELI "\316Cyclic"
|
||||
#define TR_MENU_TRIMS "\313Trims"
|
||||
#define TR_MENU_SWITCHES "\312Switches"
|
||||
#define TR_MENU_TRAINER "\317Trainer"
|
||||
#define TR_MENU_CHANNELS "\320Channels"
|
||||
#define TR_MENU_GVARS "\311GVars"
|
||||
#define TR_MENU_TELEMETRY "\321Telemetry"
|
||||
|
||||
#define ZSTR_RSSI "RSSI"
|
||||
#define ZSTR_SWR "SWR"
|
||||
#define ZSTR_A1 "A1"
|
||||
#define ZSTR_A2 "A2"
|
||||
#define ZSTR_BATT "Batt"
|
||||
#define ZSTR_A3 "A3"
|
||||
#define ZSTR_A4 "A4"
|
||||
#define ZSTR_BATT "RxBt"
|
||||
#define ZSTR_ALT "Alt"
|
||||
#define ZSTR_TEMP "Temp"
|
||||
#define ZSTR_RPM "RPM"
|
||||
|
||||
@@ -82,6 +82,9 @@
|
||||
#define LEN_UART3MODES "\015"
|
||||
#define TR_UART3MODES "OFF\0 ""S-Port Mirror""Telemetry\0 ""SBUS Trainer\0""Debug\0"
|
||||
|
||||
#define LEN_SWTYPES "\006"
|
||||
#define TR_SWTYPES "None\0 ""Toggle""2POS\0 ""3POS\0"
|
||||
|
||||
#define LEN_POTTYPES "\017"
|
||||
#define TR_POTTYPES "None\0 ""Pot with detent""Multipos Switch""Pot\0"
|
||||
|
||||
@@ -443,7 +446,7 @@
|
||||
#define TR_LOGICALSW "L1\0""L2\0""L3\0""L4\0""L5\0""L6\0""L7\0""L8\0""L9\0""L10""L11""L12"
|
||||
#endif
|
||||
|
||||
#define TR_TRIMS_SWITCHES "tRl""tRr""tEd""tEu""tTd""tTu""tAl""tAr"
|
||||
#define TR_TRIMS_SWITCHES TR("tRl""tRr""tEd""tEu""tTd""tTu""tAl""tAr", "\313Rl""\313Rr""\313Ed""\313Eu""\313Td""\313Tu""\313Al""\313Ar")
|
||||
|
||||
#if defined(PCBSKY9X)
|
||||
#define TR_ROTARY_ENCODERS "REa\0"
|
||||
@@ -456,13 +459,23 @@
|
||||
#define TR_ROTENC_SWITCHES
|
||||
#endif
|
||||
|
||||
#if defined(PCBTARANIS)
|
||||
#define TR_6POS_POTS "S11""S12""S13""S14""S15""S16""S21""S22""S23""S24""S25""S26""S31""S32""S33""S34""S35""S36"
|
||||
#define TR_VSWITCHES "---""SA\300""SA-""SA\301""SB\300""SB-""SB\301""SC\300""SC-""SC\301""SD\300""SD-""SD\301""SE\300""SE-""SE\301""SF\300""SF\301""SG\300""SG-""SG\301""SH\300""SH\301" TR_6POS_POTS TR_TRIMS_SWITCHES TR_ROTENC_SWITCHES TR_LOGICALSW "ON\0""One"
|
||||
#elif defined(CPUARM)
|
||||
#define TR_VSWITCHES "---" TR_9X_3POS_SWITCHES "THR""RUD""ELE""AIL""GEA""TRN" TR_TRIMS_SWITCHES TR_ROTENC_SWITCHES TR_LOGICALSW "ON\0""One"
|
||||
#if defined(PCBTARANIS) && defined(REV9E)
|
||||
#define TR_PHYS_SWITCHES "SA\300""SA-""SA\301""SB\300""SB-""SB\301""SC\300""SC-""SC\301""SD\300""SD-""SD\301""SE\300""SE-""SE\301""SF\300""SF-""SF\301""SG\300""SG-""SG\301""SH\300""SH-""SH\301""SI\300""SI-""SI\301""SJ\300""SJ-""SJ\301""SK\300""SK-""SK\301""SL\300""SL-""SL\301""SM\300""SM-""SM\301""SN\300""SN-""SN\301""SO\300""SO-""SO\301""SP\300""SP-""SP\301""SQ\300""SQ-""SQ\301""SR\300""SR-""SR\301"
|
||||
#elif defined(PCBTARANIS)
|
||||
#define TR_PHYS_SWITCHES "SA\300""SA-""SA\301""SB\300""SB-""SB\301""SC\300""SC-""SC\301""SD\300""SD-""SD\301""SE\300""SE-""SE\301""SF\300""SF-""SF\301""SG\300""SG-""SG\301""SH\300""SH-""SH\301"
|
||||
#else
|
||||
#define TR_VSWITCHES "---" TR_9X_3POS_SWITCHES "THR""RUD""ELE""AIL""GEA""TRN" TR_TRIMS_SWITCHES TR_ROTENC_SWITCHES TR_LOGICALSW "ON\0""One"
|
||||
#define TR_PHYS_SWITCHES "THR""RUD""ELE""AIL""GEA""TRN"
|
||||
#endif
|
||||
|
||||
#if defined(PCBTARANIS)
|
||||
#if defined(REV9E)
|
||||
#define TR_6POS_POTS "S11""S12""S13""S14""S15""S16""S21""S22""S23""S24""S25""S26""S31""S32""S33""S34""S35""S36""S41""S42""S43""S44""S45""S46"
|
||||
#else
|
||||
#define TR_6POS_POTS "S11""S12""S13""S14""S15""S16""S21""S22""S23""S24""S25""S26""S31""S32""S33""S34""S35""S36"
|
||||
#endif
|
||||
#define TR_VSWITCHES "---" TR_PHYS_SWITCHES TR_6POS_POTS TR_TRIMS_SWITCHES TR_ROTENC_SWITCHES TR_LOGICALSW "ON\0""One"
|
||||
#else
|
||||
#define TR_VSWITCHES "---" TR_9X_3POS_SWITCHES TR_PHYS_SWITCHES TR_TRIMS_SWITCHES TR_ROTENC_SWITCHES TR_LOGICALSW "ON\0""One"
|
||||
#endif
|
||||
|
||||
#if defined(HELI)
|
||||
@@ -491,6 +504,18 @@
|
||||
#define TR_MAVLINK_AP_MODES "Manual ""Circulo ""Estabilizar ""Entrenamiento""Fly by Wire A""Fly by Wire A""Auto ""RTL ""Loiter ""Guiado ""Inicialisando""INVALID "
|
||||
#endif
|
||||
|
||||
#define LEN_VSENSORTYPES "\012"
|
||||
#define TR_VSENSORTYPES "Custom\0 ""Calculated"
|
||||
|
||||
#define LEN_VFORMULAS "\010"
|
||||
#define TR_VFORMULAS "Add\0 ""Average\0""Min\0 ""Max\0 ""Multiply""Totalize""Cell\0 ""Consumpt""Distance"
|
||||
|
||||
#define LEN_VPREC "\005"
|
||||
#define TR_VPREC "PREC0""PREC1""PREC2"
|
||||
|
||||
#define LEN_VCELLINDEX "\007"
|
||||
#define TR_VCELLINDEX "Lowest\0""1\0 ""2\0 ""3\0 ""4\0 ""5\0 ""6\0 ""Highest""Delta\0"
|
||||
|
||||
// ZERO TERMINATED STRINGS
|
||||
#define INDENT "\001"
|
||||
#define LEN_INDENT 1
|
||||
@@ -549,8 +574,8 @@
|
||||
#define OFS_CHECKTRIMS CENTER_OFS+(9*FW)
|
||||
#define TR_SWASHTYPE "Tipo ciclico"
|
||||
#define TR_COLLECTIVE TR("Colectivo", "Fuente Colectivo")
|
||||
#define TR_AILERON "Aileron Source"
|
||||
#define TR_ELEVATOR "Elevator Source"
|
||||
#define TR_AILERON "Lateral cyc. source"
|
||||
#define TR_ELEVATOR "Long. cyc. source"
|
||||
#define TR_SWASHRING "Ciclico"
|
||||
#define TR_ELEDIRECTION TR("ELE Direccion","Largo cyc. direccion")
|
||||
#define TR_AILDIRECTION TR("AIL Direccion","Lateral cyc. direccion")
|
||||
@@ -618,6 +643,8 @@
|
||||
#define TR_SWITCHWARNING TR("Aviso-I", INDENT "Aviso Intrptor")
|
||||
#define TR_POTWARNING TR("Pot Warn.", INDENT "Pot Warning")
|
||||
#define TR_TIMEZONE TR("Zona Hora", "GPS Zona Hora")
|
||||
#define TR_ADJUST_RTC INDENT "Adjust RTC"
|
||||
#define TR_GPS "GPS"
|
||||
#define TR_RXCHANNELORD TR("Rx Orden canal", "Orden habitual canales")
|
||||
#define TR_STICKS "Sticks"
|
||||
#define TR_POTS "Pots"
|
||||
@@ -714,6 +741,7 @@
|
||||
#define TR_PITCH_AT_ZERO INDENT "Pitch at Zero"
|
||||
#define TR_PITCH_AT_MAX INDENT "Pitch at Max"
|
||||
#define TR_REPEAT_AT_ZERO INDENT "Repeat at Zero"
|
||||
#define TR_POWEROFF "\027Power OFF..."
|
||||
#define TR_SHUTDOWN "APAGANDO"
|
||||
#define TR_SAVEMODEL "Saving model settings"
|
||||
#define TR_BATT_CALIB "Calib.bateria"
|
||||
@@ -780,7 +808,7 @@
|
||||
#define TR_SD_SPEED "Velocidad:"
|
||||
#define TR_SD_SECTORS "Sectores:"
|
||||
#define TR_SD_SIZE "Tamaño:"
|
||||
#define TR_TYPE "Tipo"
|
||||
#define TR_TYPE INDENT "Tipo"
|
||||
#define TR_GLOBAL_VARS "Global Variables"
|
||||
#define TR_GLOBAL_V "GLOBAL V."
|
||||
#define TR_GLOBAL_VAR "Global Variable"
|
||||
@@ -834,6 +862,9 @@
|
||||
#define TR_MODULE INDENT "Modulo"
|
||||
#define TR_TELEMETRY_TYPE TR("Type", "Telemetry Type")
|
||||
#define TR_TELEMETRY_SENSORS "Sensors"
|
||||
#define TR_VALUE "Value"
|
||||
#define TR_TOPLCDTIMER "Top LCD Timer"
|
||||
#define TR_UNIT "Unit"
|
||||
#define TR_TELEMETRY_NEWSENSOR INDENT "Add a new sensor..."
|
||||
#define TR_CHANNELRANGE INDENT "Gama de canales"
|
||||
#define TR_LOWALARM INDENT "Alarma baja"
|
||||
@@ -861,6 +892,8 @@
|
||||
#define TR_INPUTS "Inputs"
|
||||
#define TR_OUTPUTS "Outputs"
|
||||
#define TR_EEBACKUP "\004[ENTER Long] to backup the EEPROM"
|
||||
#define TR_FACTORYRESET "\012[MENU Long]: Factory reset"
|
||||
#define TR_CONFIRMRESET "Erase ALL models and settings?"
|
||||
#define TR_TO_MANY_LUA_SCRIPTS "Too many Lua scripts!"
|
||||
|
||||
#if defined(MAVLINK)
|
||||
@@ -966,3 +999,54 @@
|
||||
#define TR_UNLOCKED "Unlocked"
|
||||
#define TR_ID "ID"
|
||||
#define TR_PRECISION "Precision"
|
||||
#define TR_RATIO "Ratio"
|
||||
#define TR_FORMULA "Formula"
|
||||
#define TR_CELLINDEX "Cell index"
|
||||
#define TR_LOGS "Logs"
|
||||
#define TR_OPTIONS "Options"
|
||||
|
||||
#define TR_ALTSENSOR "Alt sensor"
|
||||
#define TR_CELLSENSOR "Cell sensor"
|
||||
#define TR_GPSSENSOR "GPS sensor"
|
||||
#define TR_CURRENTSENSOR "Current sensor"
|
||||
#define TR_AUTOOFFSET "Auto Offset"
|
||||
#define TR_FILTER "Filter"
|
||||
#define TR_TELEMETRYFULL "All telemetry slots full!"
|
||||
|
||||
#define TR_MENU_INPUTS "\314Inputs"
|
||||
#define TR_MENU_LUA "\322Lua scripts"
|
||||
#define TR_MENU_STICKS "\307Sticks"
|
||||
#define TR_MENU_POTS "\310Pots"
|
||||
#define TR_MENU_MAX "\315MAX"
|
||||
#define TR_MENU_HELI "\316Cyclic"
|
||||
#define TR_MENU_TRIMS "\313Trims"
|
||||
#define TR_MENU_SWITCHES "\312Switches"
|
||||
#define TR_MENU_TRAINER "\317Trainer"
|
||||
#define TR_MENU_CHANNELS "\320Channels"
|
||||
#define TR_MENU_GVARS "\311GVars"
|
||||
#define TR_MENU_TELEMETRY "\321Telemetry"
|
||||
|
||||
#define ZSTR_RSSI "RSSI"
|
||||
#define ZSTR_SWR "SWR"
|
||||
#define ZSTR_A1 "A1"
|
||||
#define ZSTR_A2 "A2"
|
||||
#define ZSTR_A3 "A3"
|
||||
#define ZSTR_A4 "A4"
|
||||
#define ZSTR_BATT "RxBt"
|
||||
#define ZSTR_ALT "Alt"
|
||||
#define ZSTR_TEMP "Temp"
|
||||
#define ZSTR_RPM "RPM"
|
||||
#define ZSTR_FUEL "Fuel"
|
||||
#define ZSTR_VSPD "VSpd"
|
||||
#define ZSTR_ACCX "AccX"
|
||||
#define ZSTR_ACCY "AccY"
|
||||
#define ZSTR_ACCZ "AccZ"
|
||||
#define ZSTR_CURR "Curr"
|
||||
#define ZSTR_VFAS "VFAS"
|
||||
#define ZSTR_ASPD "ASpd"
|
||||
#define ZSTR_GSPD "GSpd"
|
||||
#define ZSTR_HDG "Hdg"
|
||||
#define ZSTR_CELLS "Cels"
|
||||
#define ZSTR_GPSALT "GAlt"
|
||||
#define ZSTR_GPSDATETIME "Date"
|
||||
#define ZSTR_GPS "GPS"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/*
|
||||
/*
|
||||
* Authors (alphabetical order)
|
||||
* - Bertrand Songis <bsongis@gmail.com>
|
||||
* - Bernet Andre <bernet.andre@gmail.com>
|
||||
@@ -82,6 +82,9 @@
|
||||
#define LEN_UART3MODES "\015"
|
||||
#define TR_UART3MODES "POIS\0 ""S-Port Pelik\0""Telemetry\0 ""SBUS Trainer\0""Debug\0"
|
||||
|
||||
#define LEN_SWTYPES "\006"
|
||||
#define TR_SWTYPES "None\0 ""Toggle""2POS\0 ""3POS\0"
|
||||
|
||||
#define LEN_POTTYPES "\017"
|
||||
#define TR_POTTYPES "None\0 ""Pot with detent""Monias. Kytkin\0""Potikka\0"
|
||||
|
||||
@@ -443,7 +446,7 @@
|
||||
#define TR_LOGICALSW "L1\0""L2\0""L3\0""L4\0""L5\0""L6\0""L7\0""L8\0""L9\0""L10""L11""L12"
|
||||
#endif
|
||||
|
||||
#define TR_TRIMS_SWITCHES "tRl""tRr""tEd""tEu""tTd""tTu""tAl""tAr"
|
||||
#define TR_TRIMS_SWITCHES TR("tRl""tRr""tEd""tEu""tTd""tTu""tAl""tAr", "\313Rl""\313Rr""\313Ed""\313Eu""\313\313d""\313\313u""\313Al""\313Ar")
|
||||
|
||||
#if defined(PCBSKY9X)
|
||||
#define TR_ROTARY_ENCODERS "REa\0"
|
||||
@@ -456,13 +459,23 @@
|
||||
#define TR_ROTENC_SWITCHES
|
||||
#endif
|
||||
|
||||
#if defined(PCBTARANIS)
|
||||
#define TR_6POS_POTS "S11""S12""S13""S14""S15""S16""S21""S22""S23""S24""S25""S26""S31""S32""S33""S34""S35""S36"
|
||||
#define TR_VSWITCHES "---""SA\300""SA-""SA\301""SB\300""SB-""SB\301""SC\300""SC-""SC\301""SD\300""SD-""SD\301""SE\300""SE-""SE\301""SF\300""SF\301""SG\300""SG-""SG\301""SH\300""SH\301" TR_6POS_POTS TR_TRIMS_SWITCHES TR_ROTENC_SWITCHES TR_LOGICALSW "ON\0""One"
|
||||
#elif defined(CPUARM)
|
||||
#define TR_VSWITCHES "---" TR_9X_3POS_SWITCHES "THR""RUD""ELE""AIL""GEA""TRN" TR_TRIMS_SWITCHES TR_ROTENC_SWITCHES TR_LOGICALSW "ON\0""One"
|
||||
#if defined(PCBTARANIS) && defined(REV9E)
|
||||
#define TR_PHYS_SWITCHES "SA\300""SA-""SA\301""SB\300""SB-""SB\301""SC\300""SC-""SC\301""SD\300""SD-""SD\301""SE\300""SE-""SE\301""SF\300""SF-""SF\301""SG\300""SG-""SG\301""SH\300""SH-""SH\301""SI\300""SI-""SI\301""SJ\300""SJ-""SJ\301""SK\300""SK-""SK\301""SL\300""SL-""SL\301""SM\300""SM-""SM\301""SN\300""SN-""SN\301""SO\300""SO-""SO\301""SP\300""SP-""SP\301""SQ\300""SQ-""SQ\301""SR\300""SR-""SR\301"
|
||||
#elif defined(PCBTARANIS)
|
||||
#define TR_PHYS_SWITCHES "SA\300""SA-""SA\301""SB\300""SB-""SB\301""SC\300""SC-""SC\301""SD\300""SD-""SD\301""SE\300""SE-""SE\301""SF\300""SF-""SF\301""SG\300""SG-""SG\301""SH\300""SH-""SH\301"
|
||||
#else
|
||||
#define TR_VSWITCHES "---" TR_9X_3POS_SWITCHES "THR""RUD""ELE""AIL""GEA""TRN" TR_TRIMS_SWITCHES TR_ROTENC_SWITCHES TR_LOGICALSW "ON\0""One"
|
||||
#define TR_PHYS_SWITCHES "THR""RUD""ELE""AIL""GEA""TRN"
|
||||
#endif
|
||||
|
||||
#if defined(PCBTARANIS)
|
||||
#if defined(REV9E)
|
||||
#define TR_6POS_POTS "S11""S12""S13""S14""S15""S16""S21""S22""S23""S24""S25""S26""S31""S32""S33""S34""S35""S36""S41""S42""S43""S44""S45""S46"
|
||||
#else
|
||||
#define TR_6POS_POTS "S11""S12""S13""S14""S15""S16""S21""S22""S23""S24""S25""S26""S31""S32""S33""S34""S35""S36"
|
||||
#endif
|
||||
#define TR_VSWITCHES "---" TR_PHYS_SWITCHES TR_6POS_POTS TR_TRIMS_SWITCHES TR_ROTENC_SWITCHES TR_LOGICALSW "ON\0""One"
|
||||
#else
|
||||
#define TR_VSWITCHES "---" TR_9X_3POS_SWITCHES TR_PHYS_SWITCHES TR_TRIMS_SWITCHES TR_ROTENC_SWITCHES TR_LOGICALSW "ON\0""One"
|
||||
#endif
|
||||
|
||||
#if defined(HELI)
|
||||
@@ -491,6 +504,18 @@
|
||||
#define TR_MAVLINK_AP_MODES "Manual ""Circle ""Stabilize ""Training ""Fly by Wire A""Fly by Wire A""Auto ""RTL ""Loiter ""Guided ""Initialising ""INVALID "
|
||||
#endif
|
||||
|
||||
#define LEN_VSENSORTYPES "\012"
|
||||
#define TR_VSENSORTYPES "Custom\0 ""Calculated"
|
||||
|
||||
#define LEN_VFORMULAS "\010"
|
||||
#define TR_VFORMULAS "Add\0 ""Average\0""Min\0 ""Max\0 ""Multiply""Totalize""Cell\0 ""Consumpt""Distance"
|
||||
|
||||
#define LEN_VPREC "\005"
|
||||
#define TR_VPREC "PREC0""PREC1""PREC2"
|
||||
|
||||
#define LEN_VCELLINDEX "\007"
|
||||
#define TR_VCELLINDEX "Lowest\0""1\0 ""2\0 ""3\0 ""4\0 ""5\0 ""6\0 ""Highest""Delta\0"
|
||||
|
||||
// ZERO TERMINATED STRINGS
|
||||
#define INDENT "\001"
|
||||
#define LEN_INDENT 1
|
||||
@@ -548,9 +573,9 @@
|
||||
#define TR_CHECKTRIMS CENTER "\006Check\012Trims"
|
||||
#define OFS_CHECKTRIMS CENTER_OFS+(9*FW)
|
||||
#define TR_SWASHTYPE "Swash Type"
|
||||
#define TR_COLLECTIVE TR("Collective","Collective source")
|
||||
#define TR_AILERON "Aileron Source"
|
||||
#define TR_ELEVATOR "Elevator Source"
|
||||
#define TR_COLLECTIVE TR("Collective", "Coll. pitch source")
|
||||
#define TR_AILERON "Lateral cyc. source"
|
||||
#define TR_ELEVATOR "Long. cyc. source"
|
||||
#define TR_SWASHRING "Swash Ring"
|
||||
#define TR_ELEDIRECTION TR("ELE Direction","Long. cyc. direction")
|
||||
#define TR_AILDIRECTION TR("AIL Direction","Lateral cyc. direction")
|
||||
@@ -618,6 +643,8 @@
|
||||
#define TR_SWITCHWARNING TR("S-Warning", INDENT "Switch Warning")
|
||||
#define TR_POTWARNING TR("Pot Warn.", INDENT "Pot Warning")
|
||||
#define TR_TIMEZONE TR("Time Zone","GPS Time zone")
|
||||
#define TR_ADJUST_RTC INDENT "Adjust RTC"
|
||||
#define TR_GPS "GPS"
|
||||
#define TR_RXCHANNELORD TR("Rx Channel Ord","Default channel order")
|
||||
#define TR_STICKS "Sticks"
|
||||
#define TR_POTS "Pots"
|
||||
@@ -714,6 +741,7 @@
|
||||
#define TR_PITCH_AT_ZERO INDENT "Pitch at Zero"
|
||||
#define TR_PITCH_AT_MAX INDENT "Pitch at Max"
|
||||
#define TR_REPEAT_AT_ZERO INDENT "Repeat at Zero"
|
||||
#define TR_POWEROFF "\027Power OFF..."
|
||||
#define TR_SHUTDOWN "SHUTTING DOWN"
|
||||
#define TR_SAVEMODEL "Saving model settings"
|
||||
#define TR_BATT_CALIB "Battery Calib"
|
||||
@@ -780,7 +808,7 @@
|
||||
#define TR_SD_SPEED "Speed:"
|
||||
#define TR_SD_SECTORS "Sectors:"
|
||||
#define TR_SD_SIZE "Size:"
|
||||
#define TR_TYPE "Type"
|
||||
#define TR_TYPE INDENT "Type"
|
||||
#define TR_GLOBAL_VARS "Global Variables"
|
||||
#define TR_GLOBAL_V "GLOBAL V."
|
||||
#define TR_GLOBAL_VAR "Global Variable"
|
||||
@@ -834,6 +862,9 @@
|
||||
#define TR_MODULE INDENT "Module"
|
||||
#define TR_TELEMETRY_TYPE TR("Type", "Telemetry Type")
|
||||
#define TR_TELEMETRY_SENSORS "Sensors"
|
||||
#define TR_VALUE "Value"
|
||||
#define TR_TOPLCDTIMER "Top LCD Timer"
|
||||
#define TR_UNIT "Unit"
|
||||
#define TR_TELEMETRY_NEWSENSOR INDENT "Add a new sensor..."
|
||||
#define TR_CHANNELRANGE INDENT "Channel Range"
|
||||
#define TR_LOWALARM INDENT "Low Alarm"
|
||||
@@ -861,6 +892,8 @@
|
||||
#define TR_INPUTS "Inputs"
|
||||
#define TR_OUTPUTS "Outputs"
|
||||
#define TR_EEBACKUP "\004[ENTER Long] to backup the EEPROM"
|
||||
#define TR_FACTORYRESET "\012[MENU Long]: Factory reset"
|
||||
#define TR_CONFIRMRESET "Erase ALL models and settings?"
|
||||
#define TR_TO_MANY_LUA_SCRIPTS "Too many Lua scripts!"
|
||||
|
||||
#if defined(MAVLINK)
|
||||
@@ -966,3 +999,54 @@
|
||||
#define TR_UNLOCKED "Avattu"
|
||||
#define TR_ID "ID"
|
||||
#define TR_PRECISION "Precision"
|
||||
#define TR_RATIO "Ratio"
|
||||
#define TR_FORMULA "Formula"
|
||||
#define TR_CELLINDEX "Cell index"
|
||||
#define TR_LOGS "Logs"
|
||||
#define TR_OPTIONS "Options"
|
||||
|
||||
#define TR_ALTSENSOR "Alt sensor"
|
||||
#define TR_CELLSENSOR "Cell sensor"
|
||||
#define TR_GPSSENSOR "GPS sensor"
|
||||
#define TR_CURRENTSENSOR "Current sensor"
|
||||
#define TR_AUTOOFFSET "Auto Offset"
|
||||
#define TR_FILTER "Filter"
|
||||
#define TR_TELEMETRYFULL "All telemetry slots full!"
|
||||
|
||||
#define TR_MENU_INPUTS "\314Inputs"
|
||||
#define TR_MENU_LUA "\322Lua scripts"
|
||||
#define TR_MENU_STICKS "\307Sticks"
|
||||
#define TR_MENU_POTS "\310Pots"
|
||||
#define TR_MENU_MAX "\315MAX"
|
||||
#define TR_MENU_HELI "\316Cyclic"
|
||||
#define TR_MENU_TRIMS "\313Trims"
|
||||
#define TR_MENU_SWITCHES "\312Switches"
|
||||
#define TR_MENU_TRAINER "\317Trainer"
|
||||
#define TR_MENU_CHANNELS "\320Channels"
|
||||
#define TR_MENU_GVARS "\311GVars"
|
||||
#define TR_MENU_TELEMETRY "\321Telemetry"
|
||||
|
||||
#define ZSTR_RSSI "RSSI"
|
||||
#define ZSTR_SWR "SWR"
|
||||
#define ZSTR_A1 "A1"
|
||||
#define ZSTR_A2 "A2"
|
||||
#define ZSTR_A3 "A3"
|
||||
#define ZSTR_A4 "A4"
|
||||
#define ZSTR_BATT "RxBt"
|
||||
#define ZSTR_ALT "Alt"
|
||||
#define ZSTR_TEMP "Temp"
|
||||
#define ZSTR_RPM "RPM"
|
||||
#define ZSTR_FUEL "Fuel"
|
||||
#define ZSTR_VSPD "VSpd"
|
||||
#define ZSTR_ACCX "AccX"
|
||||
#define ZSTR_ACCY "AccY"
|
||||
#define ZSTR_ACCZ "AccZ"
|
||||
#define ZSTR_CURR "Curr"
|
||||
#define ZSTR_VFAS "VFAS"
|
||||
#define ZSTR_ASPD "ASpd"
|
||||
#define ZSTR_GSPD "GSpd"
|
||||
#define ZSTR_HDG "Hdg"
|
||||
#define ZSTR_CELLS "Cels"
|
||||
#define ZSTR_GPSALT "GAlt"
|
||||
#define ZSTR_GPSDATETIME "Date"
|
||||
#define ZSTR_GPS "GPS"
|
||||
|
||||
@@ -83,11 +83,7 @@
|
||||
#define TR_UART3MODES "OFF\0 ""Recopie S-Port""Télémétrie\0 ""Ecolage SBUS\0 ""Debug\0"
|
||||
|
||||
#define LEN_SWTYPES "\006"
|
||||
#if defined(REV9E)
|
||||
#define TR_SWTYPES "Rien\0 ""Défaut""Levier""2-POS\0""3-POS\0"
|
||||
#else
|
||||
#define TR_SWTYPES "Défaut""Levier""2-POS\0""3-POS\0"
|
||||
#endif
|
||||
#define TR_SWTYPES "Rien\0 ""Levier""2-POS\0""3-POS\0"
|
||||
|
||||
#define LEN_POTTYPES "\017"
|
||||
#define TR_POTTYPES "Rien\0 ""Pot avec centre""Inter multi-pos""Potentiomètre\0"
|
||||
@@ -319,7 +315,7 @@
|
||||
#define TR_FSW_RESET_ROTENC
|
||||
#endif
|
||||
|
||||
#if LCD >= 212
|
||||
#if LCD_W >= 212
|
||||
#define TR_FSW_RESET_TIMERS "Chrono 1\0 ""Chrono 2\0 ""Chrono 3\0 "
|
||||
#elif defined(CPUARM)
|
||||
#define TR_FSW_RESET_TIMERS "Chr1""Chr2""Chr3"
|
||||
@@ -379,7 +375,7 @@
|
||||
#define LEN_VUNITSSYSTEM TR("\006", "\012")
|
||||
#define TR_VUNITSSYSTEM TR("Métr.\0""Impér.", "Métriques\0""Impériales")
|
||||
#define LEN_VTELEMUNIT "\003"
|
||||
#define TR_VTELEMUNIT "-\0 ""v\0 ""A\0 ""mA\0""kts""m/s""kmh""mph""m\0 ""ft\0""@C\0""@F\0""%\0 ""mAh""W\0 ""dBm""rpm""g\0 ""@\0"
|
||||
#define TR_VTELEMUNIT "-\0 ""v\0 ""A\0 ""mA\0""kts""m/s""kmh""mph""m\0 ""ft\0""@C\0""@F\0""%\0 ""mAh""W\0 ""dBm""rpm""g\0 ""@\0 ""ml\0""fOz"
|
||||
#else
|
||||
#if defined(IMPERIAL_UNITS)
|
||||
#define LENGTH_UNIT LENGTH_UNIT_IMP
|
||||
@@ -469,7 +465,7 @@
|
||||
#define TR_LOGICALSW "L1\0""L2\0""L3\0""L4\0""L5\0""L6\0""L7\0""L8\0""L9\0""L10""L11""L12"
|
||||
#endif
|
||||
|
||||
#define TR_TRIMS_SWITCHES "\313Dg""\313Dd""\313Pb""\313Ph""\313Gb""\313Gh""\313Ag""\313Ad"
|
||||
#define TR_TRIMS_SWITCHES TR("tDg""tDd""tPb""tPh""tGb""tGh""tAg""tAd", "\313Dg""\313Dd""\313Pb""\313Ph""\313Gb""\313Gh""\313Ag""\313Ad")
|
||||
|
||||
#if defined(PCBSKY9X)
|
||||
#define TR_ROTARY_ENCODERS "REa\0"
|
||||
@@ -485,7 +481,7 @@
|
||||
#if defined(PCBTARANIS) && defined(REV9E)
|
||||
#define TR_PHYS_SWITCHES "SA\300""SA-""SA\301""SB\300""SB-""SB\301""SC\300""SC-""SC\301""SD\300""SD-""SD\301""SE\300""SE-""SE\301""SF\300""SF-""SF\301""SG\300""SG-""SG\301""SH\300""SH-""SH\301""SI\300""SI-""SI\301""SJ\300""SJ-""SJ\301""SK\300""SK-""SK\301""SL\300""SL-""SL\301""SM\300""SM-""SM\301""SN\300""SN-""SN\301""SO\300""SO-""SO\301""SP\300""SP-""SP\301""SQ\300""SQ-""SQ\301""SR\300""SR-""SR\301"
|
||||
#elif defined(PCBTARANIS)
|
||||
#define TR_PHYS_SWITCHES "SA\300""SA-""SA\301""SB\300""SB-""SB\301""SC\300""SC-""SC\301""SD\300""SD-""SD\301""SE\300""SE-""SE\301""SF\300""SF\301""SG\300""SG-""SG\301""SH\300""SH\301"
|
||||
#define TR_PHYS_SWITCHES "SA\300""SA-""SA\301""SB\300""SB-""SB\301""SC\300""SC-""SC\301""SD\300""SD-""SD\301""SE\300""SE-""SE\301""SF\300""SF-""SF\301""SG\300""SG-""SG\301""SH\300""SH-""SH\301"
|
||||
#else
|
||||
#define TR_PHYS_SWITCHES "THR""RUD""ELE""AIL""GEA""TRN"
|
||||
#endif
|
||||
@@ -534,6 +530,18 @@
|
||||
#define TR_MAVLINK_AP_MODES "Manual ""Circle ""Stabilize ""Training ""Fly by Wire A""Fly by Wire A""Auto ""RTL ""Loiter ""Guided ""Initialising ""INVALID "
|
||||
#endif
|
||||
|
||||
#define LEN_VSENSORTYPES "\012"
|
||||
#define TR_VSENSORTYPES "Perso\0 ""Calculé\0 "
|
||||
|
||||
#define LEN_VFORMULAS "\010"
|
||||
#define TR_VFORMULAS "Addition""Moyenne\0""Min\0 ""Max\0 ""Multipl.""Totalise""Elément\0""Consomm.""Distance"
|
||||
|
||||
#define LEN_VPREC "\005"
|
||||
#define TR_VPREC "PREC0""PREC1""PREC2"
|
||||
|
||||
#define LEN_VCELLINDEX "\007"
|
||||
#define TR_VCELLINDEX "Mini.\0 ""1\0 ""2\0 ""3\0 ""4\0 ""5\0 ""6\0 ""Maxi.\0 ""Diff.\0 "
|
||||
|
||||
// ZERO TERMINATED STRINGS
|
||||
#if defined(COLORLCD)
|
||||
#define INDENT "\007"
|
||||
@@ -603,9 +611,9 @@
|
||||
#define TR_CHECKTRIMS "\006Vérif\012Trims"
|
||||
#define OFS_CHECKTRIMS (9*FW)
|
||||
#define TR_SWASHTYPE TR("Type de Plat.", "Type de plateau")
|
||||
#define TR_COLLECTIVE TR("Collectif", "Voie du pas collectif")
|
||||
#define TR_AILERON "Aileron Source"
|
||||
#define TR_ELEVATOR "Elevator Source"
|
||||
#define TR_COLLECTIVE TR("Collectif", "Source collectif")
|
||||
#define TR_AILERON "Source cyc. lat."
|
||||
#define TR_ELEVATOR "Source cyc. lon."
|
||||
#define TR_SWASHRING TR("Limite Cycl.", "Limite du cyclique")
|
||||
#define TR_ELEDIRECTION TR("Inv. longitud.", "Inversion longitudinal")
|
||||
#define TR_AILDIRECTION TR("Inv. latéral", "Inversion latéral")
|
||||
@@ -673,6 +681,8 @@
|
||||
#define TR_SWITCHWARNING TR(IF_CPUARM(INDENT) "Alerte int", INDENT "Pos. interrupteurs")
|
||||
#define TR_POTWARNING TR(IF_CPUARM(INDENT) "Alerte pot", INDENT "Pos. potentios")
|
||||
#define TR_TIMEZONE "Fuseau horaire"
|
||||
#define TR_ADJUST_RTC INDENT "Adjust RTC"
|
||||
#define TR_GPS "GPS"
|
||||
#define TR_RXCHANNELORD TR("Ordre voies RX","Ordre des voies préféré")
|
||||
#define TR_STICKS "Manches"
|
||||
#define TR_POTS "Potentios"
|
||||
@@ -772,8 +782,9 @@
|
||||
#define TR_PITCH_AT_ZERO INDENT "Tonalité au zéro"
|
||||
#define TR_PITCH_AT_MAX INDENT "Tonalité au max"
|
||||
#define TR_REPEAT_AT_ZERO INDENT "Intervalle au zéro"
|
||||
#define TR_POWEROFF "\037\120ARRET..."
|
||||
#define TR_SHUTDOWN "ARRET EN COURS"
|
||||
#define TR_SAVEMODEL "Saving model settings"
|
||||
#define TR_SAVEMODEL "Sauvegarde modèle..."
|
||||
#define TR_BATT_CALIB "Calib. Batterie"
|
||||
#define TR_CURRENT_CALIB "Calib. Courant"
|
||||
#define TR_VOLTAGE TR(INDENT "Tension",INDENT "Source Tension")
|
||||
@@ -838,7 +849,7 @@
|
||||
#define TR_SD_SPEED "Vitesse:"
|
||||
#define TR_SD_SECTORS "Secteurs:"
|
||||
#define TR_SD_SIZE "Taille:"
|
||||
#define TR_TYPE "Type"
|
||||
#define TR_TYPE INDENT "Type"
|
||||
#define TR_GLOBAL_VARS "Variables Globales"
|
||||
#define TR_GLOBAL_V "V. GLOBALES"
|
||||
#define TR_GLOBAL_VAR "Variable globale"
|
||||
@@ -851,15 +862,15 @@
|
||||
#define TR_PATH_TOO_LONG "Chemin trop long"
|
||||
#define TR_VIEW_TEXT "Voir texte"
|
||||
#define TR_FLASH_BOOTLOADER "Flasher BootLoader"
|
||||
#define TR_FLASH_EXTERNAL_DEVICE "Flash External Device"
|
||||
#define TR_FLASH_INTERNAL_MODULE "Flash Module Interne"
|
||||
#define TR_FLASH_EXTERNAL_DEVICE "Flasher module externe"
|
||||
#define TR_FLASH_INTERNAL_MODULE "Flasher module interne"
|
||||
#define TR_WRITING "\032Ecriture..."
|
||||
#define TR_CONFIRM_FORMAT "Confirmer Formatage?"
|
||||
#define TR_INTERNALRF "HF interne"
|
||||
#define TR_EXTERNALRF "HF externe"
|
||||
#define TR_FAILSAFE TR(INDENT "Failsafe", INDENT "Type failsafe")
|
||||
#define TR_FAILSAFESET "REGLAGES FAILSAFE"
|
||||
#define TR_MENUSENSOR "SENSOR"
|
||||
#define TR_MENUSENSOR "CAPTEUR"
|
||||
#define TR_COUNTRYCODE TR("Zone géo.","Zone géographique")
|
||||
#define TR_VOICELANG TR("Langue voix", "Langue annonces vocales")
|
||||
#define TR_UNITSSYSTEM "Unités"
|
||||
@@ -894,6 +905,9 @@
|
||||
#define TR_MODULE INDENT "Type de module"
|
||||
#define TR_TELEMETRY_TYPE "Type télémesure"
|
||||
#define TR_TELEMETRY_SENSORS "Capteurs"
|
||||
#define TR_VALUE "Valeur"
|
||||
#define TR_TOPLCDTIMER "Timer LCD haut"
|
||||
#define TR_UNIT "Unité"
|
||||
#define TR_TELEMETRY_NEWSENSOR INDENT "Ajout d'un nouveau capteur..."
|
||||
#define TR_CHANNELRANGE TR(INDENT "Canaux", INDENT "Plage de canaux")
|
||||
#define TR_LOWALARM INDENT "Alarme basse"
|
||||
@@ -921,6 +935,8 @@
|
||||
#define TR_INPUTS "Entrées"
|
||||
#define TR_OUTPUTS "Sorties"
|
||||
#define TR_EEBACKUP "\004[ENTER Long]: Sauvegarder l'EEPROM"
|
||||
#define TR_FACTORYRESET "\016[MENU Long]: RAZ d'usine"
|
||||
#define TR_CONFIRMRESET "Effacer TOUS modèles/réglages?"
|
||||
#define TR_TO_MANY_LUA_SCRIPTS "Too many Lua scripts!"
|
||||
|
||||
#if defined(MAVLINK)
|
||||
@@ -1025,12 +1041,41 @@
|
||||
#define TR_MODS_FORBIDDEN "Modifications désactivées!"
|
||||
#define TR_UNLOCKED "Déverrouillé"
|
||||
#define TR_ID "ID"
|
||||
#define TR_PRECISION "Precision"
|
||||
#define TR_PRECISION "Précision"
|
||||
#define TR_RATIO "Ratio"
|
||||
#define TR_FORMULA "Formule"
|
||||
#define TR_CELLINDEX "Index élem."
|
||||
#define TR_LOGS "Logs"
|
||||
#define TR_OPTIONS "Options"
|
||||
|
||||
#define TR_ALTSENSOR "Capteur Alt"
|
||||
#define TR_CELLSENSOR "Capteur Elém"
|
||||
#define TR_GPSSENSOR "Capteur GPS"
|
||||
#define TR_CURRENTSENSOR "Capt courant"
|
||||
#define TR_AUTOOFFSET "Offset auto"
|
||||
#define TR_FILTER "Filtrage"
|
||||
#define TR_TELEMETRYFULL "Plus de capteurs libres!"
|
||||
|
||||
#define TR_MENU_INPUTS "\314Entrées"
|
||||
#define TR_MENU_LUA "\322Scripts Lua"
|
||||
#define TR_MENU_STICKS "\307Manches"
|
||||
#define TR_MENU_POTS "\310Pots"
|
||||
#define TR_MENU_MAX "\315MAX"
|
||||
#define TR_MENU_HELI "\316Cyclique"
|
||||
#define TR_MENU_TRIMS "\313Trims"
|
||||
#define TR_MENU_SWITCHES "\312Inters"
|
||||
#define TR_MENU_TRAINER "\317Ecolage"
|
||||
#define TR_MENU_CHANNELS "\320Canaux"
|
||||
#define TR_MENU_GVARS "\311Vars. glob."
|
||||
#define TR_MENU_TELEMETRY "\321Télémesure"
|
||||
|
||||
#define ZSTR_RSSI "RSSI"
|
||||
#define ZSTR_SWR "SWR"
|
||||
#define ZSTR_A1 "A1"
|
||||
#define ZSTR_A2 "A2"
|
||||
#define ZSTR_BATT "Batt"
|
||||
#define ZSTR_A3 "A3"
|
||||
#define ZSTR_A4 "A4"
|
||||
#define ZSTR_BATT "BtRx"
|
||||
#define ZSTR_ALT "Alt"
|
||||
#define ZSTR_TEMP "Temp"
|
||||
#define ZSTR_RPM "RPM"
|
||||
|
||||
@@ -82,6 +82,9 @@
|
||||
#define LEN_UART3MODES "\016"
|
||||
#define TR_UART3MODES "OFF\0 ""Replica S-Port""Telemetria\0 ""SBUS Trainer\0 ""Debug\0"
|
||||
|
||||
#define LEN_SWTYPES "\006"
|
||||
#define TR_SWTYPES "None\0 ""Toggle""2POS\0 ""3POS\0"
|
||||
|
||||
#define LEN_POTTYPES "\017"
|
||||
#define TR_POTTYPES "None\0 ""Pot. con centro""Inter. Multipos""Potenziometro\0 "
|
||||
|
||||
@@ -443,7 +446,7 @@
|
||||
#define TR_LOGICALSW "L1\0""L2\0""L3\0""L4\0""L5\0""L6\0""L7\0""L8\0""L9\0""L10""L11""L12"
|
||||
#endif
|
||||
|
||||
#define TR_TRIMS_SWITCHES "tRl""tRr""tEd""tEu""tTd""tTu""tAl""tAr"
|
||||
#define TR_TRIMS_SWITCHES TR("tRl""tRr""tEd""tEu""tTd""tTu""tAl""tAr", "\313Rl""\313Rr""\313Ed""\313Eu""\313\313d""\313\313u""\313Al""\313Ar")
|
||||
|
||||
#if defined(PCBSKY9X)
|
||||
#define TR_ROTARY_ENCODERS "REa\0"
|
||||
@@ -456,13 +459,23 @@
|
||||
#define TR_ROTENC_SWITCHES
|
||||
#endif
|
||||
|
||||
#if defined(PCBTARANIS)
|
||||
#define TR_6POS_POTS "S11""S12""S13""S14""S15""S16""S21""S22""S23""S24""S25""S26""S31""S32""S33""S34""S35""S36"
|
||||
#define TR_VSWITCHES "---""SA\300""SA-""SA\301""SB\300""SB-""SB\301""SC\300""SC-""SC\301""SD\300""SD-""SD\301""SE\300""SE-""SE\301""SF\300""SF\301""SG\300""SG-""SG\301""SH\300""SH\301" TR_6POS_POTS TR_TRIMS_SWITCHES TR_ROTENC_SWITCHES TR_LOGICALSW "ON\0""One"
|
||||
#elif defined(CPUARM)
|
||||
#define TR_VSWITCHES "---" TR_9X_3POS_SWITCHES "THR""RUD""ELE""AIL""GEA""TRN" TR_TRIMS_SWITCHES TR_ROTENC_SWITCHES TR_LOGICALSW "ON\0""One"
|
||||
#if defined(PCBTARANIS) && defined(REV9E)
|
||||
#define TR_PHYS_SWITCHES "SA\300""SA-""SA\301""SB\300""SB-""SB\301""SC\300""SC-""SC\301""SD\300""SD-""SD\301""SE\300""SE-""SE\301""SF\300""SF-""SF\301""SG\300""SG-""SG\301""SH\300""SH-""SH\301""SI\300""SI-""SI\301""SJ\300""SJ-""SJ\301""SK\300""SK-""SK\301""SL\300""SL-""SL\301""SM\300""SM-""SM\301""SN\300""SN-""SN\301""SO\300""SO-""SO\301""SP\300""SP-""SP\301""SQ\300""SQ-""SQ\301""SR\300""SR-""SR\301"
|
||||
#elif defined(PCBTARANIS)
|
||||
#define TR_PHYS_SWITCHES "SA\300""SA-""SA\301""SB\300""SB-""SB\301""SC\300""SC-""SC\301""SD\300""SD-""SD\301""SE\300""SE-""SE\301""SF\300""SF-""SF\301""SG\300""SG-""SG\301""SH\300""SH-""SH\301"
|
||||
#else
|
||||
#define TR_VSWITCHES "---" TR_9X_3POS_SWITCHES "THR""RUD""ELE""AIL""GEA""TRN" TR_TRIMS_SWITCHES TR_ROTENC_SWITCHES TR_LOGICALSW "ON\0""One"
|
||||
#define TR_PHYS_SWITCHES "THR""RUD""ELE""AIL""GEA""TRN"
|
||||
#endif
|
||||
|
||||
#if defined(PCBTARANIS)
|
||||
#if defined(REV9E)
|
||||
#define TR_6POS_POTS "S11""S12""S13""S14""S15""S16""S21""S22""S23""S24""S25""S26""S31""S32""S33""S34""S35""S36""S41""S42""S43""S44""S45""S46"
|
||||
#else
|
||||
#define TR_6POS_POTS "S11""S12""S13""S14""S15""S16""S21""S22""S23""S24""S25""S26""S31""S32""S33""S34""S35""S36"
|
||||
#endif
|
||||
#define TR_VSWITCHES "---" TR_PHYS_SWITCHES TR_6POS_POTS TR_TRIMS_SWITCHES TR_ROTENC_SWITCHES TR_LOGICALSW "ON\0""One"
|
||||
#else
|
||||
#define TR_VSWITCHES "---" TR_9X_3POS_SWITCHES TR_PHYS_SWITCHES TR_TRIMS_SWITCHES TR_ROTENC_SWITCHES TR_LOGICALSW "ON\0""One"
|
||||
#endif
|
||||
|
||||
#if defined(HELI)
|
||||
@@ -491,6 +504,18 @@
|
||||
#define TR_MAVLINK_AP_MODES "Manual ""Circle ""Stabilize ""Training ""Fly by Wire A""Fly by Wire A""Auto ""RTL ""Loiter ""Guided ""Inizializza ""INVALID "
|
||||
#endif
|
||||
|
||||
#define LEN_VSENSORTYPES "\012"
|
||||
#define TR_VSENSORTYPES "Custom\0 ""Calculated"
|
||||
|
||||
#define LEN_VFORMULAS "\010"
|
||||
#define TR_VFORMULAS "Add\0 ""Average\0""Min\0 ""Max\0 ""Multiply""Totalize""Cell\0 ""Consumpt""Distance"
|
||||
|
||||
#define LEN_VPREC "\005"
|
||||
#define TR_VPREC "PREC0""PREC1""PREC2"
|
||||
|
||||
#define LEN_VCELLINDEX "\007"
|
||||
#define TR_VCELLINDEX "Lowest\0""1\0 ""2\0 ""3\0 ""4\0 ""5\0 ""6\0 ""Highest""Delta\0"
|
||||
|
||||
// ZERO TERMINATED STRINGS
|
||||
#define INDENT "\001"
|
||||
#define LEN_INDENT 1
|
||||
@@ -532,11 +557,11 @@
|
||||
#define TR_ELIMITS TR("Limiti.E","Limiti Estesi")
|
||||
#define TR_ETRIMS TR("Trim Ext","Trim Estesi")
|
||||
#define TR_TRIMINC "Passo Trim"
|
||||
#define TR_DISPLAY_TRIMS "Display Trims"
|
||||
#define TR_DISPLAY_TRIMS "Display Trims"
|
||||
#define TR_TTRACE TR("T-Source", INDENT "Sorgente Motore")
|
||||
#define TR_TTRIM TR("T-Trim", INDENT "Trim Motore")
|
||||
#define TR_BEEPCTR TR("Ctr Beep","Beep al centro")
|
||||
#define TR_USE_GLOBAL_FUNCS "Use Global Funcs"
|
||||
#define TR_USE_GLOBAL_FUNCS "Use Global Funcs"
|
||||
#define TR_PROTO TR(INDENT "Proto", INDENT "Protocollo")
|
||||
#define TR_PPMFRAME TR("PPM frame", INDENT "PPM frame")
|
||||
#define TR_MS "ms"
|
||||
@@ -549,8 +574,8 @@
|
||||
#define OFS_CHECKTRIMS (9*FW)
|
||||
#define TR_SWASHTYPE "Tipo Ciclico"
|
||||
#define TR_COLLECTIVE TR("Collettivo","Origine Collettivo")
|
||||
#define TR_AILERON "Aileron Source"
|
||||
#define TR_ELEVATOR "Elevator Source"
|
||||
#define TR_AILERON "Lateral cyc. source"
|
||||
#define TR_ELEVATOR "Long. cyc. source"
|
||||
#define TR_SWASHRING "Anello Ciclico"
|
||||
#define TR_ELEDIRECTION TR("Direzione ELE","Direzione Long. cyc.")
|
||||
#define TR_AILDIRECTION TR("Direzione AIL","Direzione Lateral cyc.")
|
||||
@@ -618,10 +643,12 @@
|
||||
#define TR_SWITCHWARNING TR("Avv. Int.", INDENT "Avviso Interr.")
|
||||
#define TR_POTWARNING TR("Avv. Pot.", INDENT "Avviso Pot.")
|
||||
#define TR_TIMEZONE "Ora locale"
|
||||
#define TR_ADJUST_RTC INDENT "Adjust RTC"
|
||||
#define TR_GPS "GPS"
|
||||
#define TR_RXCHANNELORD "Ordine ch RX"
|
||||
#define TR_STICKS "Sticks"
|
||||
#define TR_POTS "Pots"
|
||||
#define TR_SWITCHES "Switches"
|
||||
#define TR_STICKS "Sticks"
|
||||
#define TR_POTS "Pots"
|
||||
#define TR_SWITCHES "Switches"
|
||||
#define TR_SWITCHES_DELAY "Ritardo voce FV"
|
||||
#define TR_SLAVE "Allievo"
|
||||
#define TR_MODESRC "Modo\006% Origine"
|
||||
@@ -714,6 +741,7 @@
|
||||
#define TR_PITCH_AT_ZERO INDENT "Tono a Zero"
|
||||
#define TR_PITCH_AT_MAX INDENT "Tono al Max"
|
||||
#define TR_REPEAT_AT_ZERO INDENT "Ripeti a Zero"
|
||||
#define TR_POWEROFF "\027Power OFF..."
|
||||
#define TR_SHUTDOWN "ARRESTO.."
|
||||
#define TR_SAVEMODEL "Saving model settings"
|
||||
#define TR_BATT_CALIB "Calibra batt."
|
||||
@@ -780,7 +808,7 @@
|
||||
#define TR_SD_SPEED "Veloc.:"
|
||||
#define TR_SD_SECTORS "Settori:"
|
||||
#define TR_SD_SIZE "Dimens:"
|
||||
#define TR_TYPE "Tipo"
|
||||
#define TR_TYPE INDENT "Tipo"
|
||||
#define TR_GLOBAL_VARS "Variabili Globali"
|
||||
#define TR_GLOBAL_V "V.GLOBALI"
|
||||
#define TR_GLOBAL_VAR "Variabile globale"
|
||||
@@ -834,6 +862,9 @@
|
||||
#define TR_MODULE INDENT "Modulo"
|
||||
#define TR_TELEMETRY_TYPE "Tipo Telemetria"
|
||||
#define TR_TELEMETRY_SENSORS "Sensors"
|
||||
#define TR_VALUE "Value"
|
||||
#define TR_TOPLCDTIMER "Top LCD Timer"
|
||||
#define TR_UNIT "Unit"
|
||||
#define TR_TELEMETRY_NEWSENSOR INDENT "Add a new sensor..."
|
||||
#define TR_CHANNELRANGE INDENT "Numero Canali"
|
||||
#define TR_LOWALARM INDENT "Allarme Basso"
|
||||
@@ -861,6 +892,8 @@
|
||||
#define TR_INPUTS "Ingresso"
|
||||
#define TR_OUTPUTS "Uscita"
|
||||
#define TR_EEBACKUP "\004[ENTER Lungo] per copiare la EEPROM"
|
||||
#define TR_FACTORYRESET "\012[MENU Long]: Factory reset"
|
||||
#define TR_CONFIRMRESET "Erase ALL models and settings?"
|
||||
#define TR_TO_MANY_LUA_SCRIPTS "Troppi Scripts Lua!"
|
||||
|
||||
#if defined(MAVLINK)
|
||||
@@ -966,3 +999,54 @@
|
||||
#define TR_UNLOCKED "Sbloccato"
|
||||
#define TR_ID "ID"
|
||||
#define TR_PRECISION "Precision"
|
||||
#define TR_RATIO "Ratio"
|
||||
#define TR_FORMULA "Formula"
|
||||
#define TR_CELLINDEX "Cell index"
|
||||
#define TR_LOGS "Logs"
|
||||
#define TR_OPTIONS "Options"
|
||||
|
||||
#define TR_ALTSENSOR "Alt sensor"
|
||||
#define TR_CELLSENSOR "Cell sensor"
|
||||
#define TR_GPSSENSOR "GPS sensor"
|
||||
#define TR_CURRENTSENSOR "Current sensor"
|
||||
#define TR_AUTOOFFSET "Auto Offset"
|
||||
#define TR_FILTER "Filter"
|
||||
#define TR_TELEMETRYFULL "All telemetry slots full!"
|
||||
|
||||
#define TR_MENU_INPUTS "\314Inputs"
|
||||
#define TR_MENU_LUA "\322Lua scripts"
|
||||
#define TR_MENU_STICKS "\307Sticks"
|
||||
#define TR_MENU_POTS "\310Pots"
|
||||
#define TR_MENU_MAX "\315MAX"
|
||||
#define TR_MENU_HELI "\316Cyclic"
|
||||
#define TR_MENU_TRIMS "\313Trims"
|
||||
#define TR_MENU_SWITCHES "\312Switches"
|
||||
#define TR_MENU_TRAINER "\317Trainer"
|
||||
#define TR_MENU_CHANNELS "\320Channels"
|
||||
#define TR_MENU_GVARS "\311GVars"
|
||||
#define TR_MENU_TELEMETRY "\321Telemetry"
|
||||
|
||||
#define ZSTR_RSSI "RSSI"
|
||||
#define ZSTR_SWR "SWR"
|
||||
#define ZSTR_A1 "A1"
|
||||
#define ZSTR_A2 "A2"
|
||||
#define ZSTR_A3 "A3"
|
||||
#define ZSTR_A4 "A4"
|
||||
#define ZSTR_BATT "RxBt"
|
||||
#define ZSTR_ALT "Alt"
|
||||
#define ZSTR_TEMP "Temp"
|
||||
#define ZSTR_RPM "RPM"
|
||||
#define ZSTR_FUEL "Fuel"
|
||||
#define ZSTR_VSPD "VSpd"
|
||||
#define ZSTR_ACCX "AccX"
|
||||
#define ZSTR_ACCY "AccY"
|
||||
#define ZSTR_ACCZ "AccZ"
|
||||
#define ZSTR_CURR "Curr"
|
||||
#define ZSTR_VFAS "VFAS"
|
||||
#define ZSTR_ASPD "ASpd"
|
||||
#define ZSTR_GSPD "GSpd"
|
||||
#define ZSTR_HDG "Hdg"
|
||||
#define ZSTR_CELLS "Cels"
|
||||
#define ZSTR_GPSALT "GAlt"
|
||||
#define ZSTR_GPSDATETIME "Date"
|
||||
#define ZSTR_GPS "GPS"
|
||||
|
||||
@@ -82,6 +82,9 @@
|
||||
#define LEN_UART3MODES "\017"
|
||||
#define TR_UART3MODES "Wyłącz\0 ""S-Port Mirror\0 ""Telemetry\0 ""SBUS Trainer\0 ""Debug\0"
|
||||
|
||||
#define LEN_SWTYPES "\006"
|
||||
#define TR_SWTYPES "None\0 ""Toggle""2POS\0 ""3POS\0"
|
||||
|
||||
#define LEN_POTTYPES "\017"
|
||||
#define TR_POTTYPES "Brak\0 ""Poten z zapadką""Przeł.Wielopoz.""Potencjometr\0"
|
||||
|
||||
@@ -362,7 +365,7 @@
|
||||
#define LEN_VUNITSSYSTEM TR("\006", "\010")
|
||||
#define TR_VUNITSSYSTEM TR("Metr. ""Imper.", "Metryczn""Imperial")
|
||||
#define LEN_VTELEMUNIT "\003"
|
||||
#define TR_VTELEMUNIT "-\0 ""v\0 ""A\0 ""mA\0""kts""m/s""kmh""mph""m\0 ""ft\0""@C\0""@F\0""%\0 ""mAh""W\0 ""dBm""rpm""g\0 ""@\0"
|
||||
#define TR_VTELEMUNIT "-\0 ""v\0 ""A\0 ""mA\0""kts""m/s""kmh""mph""m\0 ""ft\0""@C\0""@F\0""%\0 ""mAh""W\0 ""dBm""rpm""g\0 ""@\0 ""ml\0""fOz"
|
||||
#else
|
||||
#if defined(IMPERIAL_UNITS)
|
||||
#define LENGTH_UNIT LENGTH_UNIT_IMP
|
||||
@@ -441,7 +444,7 @@
|
||||
#define TR_LOGICALSW "L1\0""L2\0""L3\0""L4\0""L5\0""L6\0""L7\0""L8\0""L9\0""L10""L11""L12"
|
||||
#endif
|
||||
|
||||
#define TR_TRIMS_SWITCHES "tRl""tRr""tEd""tEu""tTd""tTu""tAl""tAr"
|
||||
#define TR_TRIMS_SWITCHES TR("tRl""tRr""tEd""tEu""tTd""tTu""tAl""tAr", "\313Rl""\313Rr""\313Ed""\313Eu""\313Td""\313Tu""\313Al""\313Ar")
|
||||
|
||||
#if defined(PCBSKY9X)
|
||||
#define TR_ROTARY_ENCODERS "REa\0"
|
||||
@@ -454,13 +457,23 @@
|
||||
#define TR_ROTENC_SWITCHES
|
||||
#endif
|
||||
|
||||
#if defined(PCBTARANIS)
|
||||
#define TR_6POS_POTS "S11""S12""S13""S14""S15""S16""S21""S22""S23""S24""S25""S26""S31""S32""S33""S34""S35""S36"
|
||||
#define TR_VSWITCHES "---""SA\300""SA-""SA\301""SB\300""SB-""SB\301""SC\300""SC-""SC\301""SD\300""SD-""SD\301""SE\300""SE-""SE\301""SF\300""SF\301""SG\300""SG-""SG\301""SH\300""SH\301" TR_6POS_POTS TR_TRIMS_SWITCHES TR_ROTENC_SWITCHES TR_LOGICALSW "ON\0""One"
|
||||
#elif defined(CPUARM)
|
||||
#define TR_VSWITCHES "---" TR_9X_3POS_SWITCHES "GAZ""SK ""SW ""LOT""GEA""TRN" TR_TRIMS_SWITCHES TR_ROTENC_SWITCHES TR_LOGICALSW "ON\0""One"
|
||||
#if defined(PCBTARANIS) && defined(REV9E)
|
||||
#define TR_PHYS_SWITCHES "SA\300""SA-""SA\301""SB\300""SB-""SB\301""SC\300""SC-""SC\301""SD\300""SD-""SD\301""SE\300""SE-""SE\301""SF\300""SF-""SF\301""SG\300""SG-""SG\301""SH\300""SH-""SH\301""SI\300""SI-""SI\301""SJ\300""SJ-""SJ\301""SK\300""SK-""SK\301""SL\300""SL-""SL\301""SM\300""SM-""SM\301""SN\300""SN-""SN\301""SO\300""SO-""SO\301""SP\300""SP-""SP\301""SQ\300""SQ-""SQ\301""SR\300""SR-""SR\301"
|
||||
#elif defined(PCBTARANIS)
|
||||
#define TR_PHYS_SWITCHES "SA\300""SA-""SA\301""SB\300""SB-""SB\301""SC\300""SC-""SC\301""SD\300""SD-""SD\301""SE\300""SE-""SE\301""SF\300""SF-""SF\301""SG\300""SG-""SG\301""SH\300""SH-""SH\301"
|
||||
#else
|
||||
#define TR_VSWITCHES "---" TR_9X_3POS_SWITCHES "GAZ""SK ""SW ""LOT""GEA""TRN" TR_TRIMS_SWITCHES TR_ROTENC_SWITCHES TR_LOGICALSW "ON\0""One"
|
||||
#define TR_PHYS_SWITCHES "THR""RUD""ELE""AIL""GEA""TRN"
|
||||
#endif
|
||||
|
||||
#if defined(PCBTARANIS)
|
||||
#if defined(REV9E)
|
||||
#define TR_6POS_POTS "S11""S12""S13""S14""S15""S16""S21""S22""S23""S24""S25""S26""S31""S32""S33""S34""S35""S36""S41""S42""S43""S44""S45""S46"
|
||||
#else
|
||||
#define TR_6POS_POTS "S11""S12""S13""S14""S15""S16""S21""S22""S23""S24""S25""S26""S31""S32""S33""S34""S35""S36"
|
||||
#endif
|
||||
#define TR_VSWITCHES "---" TR_PHYS_SWITCHES TR_6POS_POTS TR_TRIMS_SWITCHES TR_ROTENC_SWITCHES TR_LOGICALSW "ON\0""One"
|
||||
#else
|
||||
#define TR_VSWITCHES "---" TR_9X_3POS_SWITCHES TR_PHYS_SWITCHES TR_TRIMS_SWITCHES TR_ROTENC_SWITCHES TR_LOGICALSW "ON\0""One"
|
||||
#endif
|
||||
|
||||
#if defined(HELI)
|
||||
@@ -489,6 +502,18 @@
|
||||
#define TR_MAVLINK_AP_MODES "Ręczny ""Koło ""Stabilizacja ""Trening ""Fly by Wire A""Fly by Wire A""Auto ""RTL ""Loiter ""Sterowany ""Inicjalizacja""BŁĘDNY "
|
||||
#endif
|
||||
|
||||
#define LEN_VSENSORTYPES "\012"
|
||||
#define TR_VSENSORTYPES "Custom\0 ""Calculated"
|
||||
|
||||
#define LEN_VFORMULAS "\010"
|
||||
#define TR_VFORMULAS "Add\0 ""Average\0""Min\0 ""Max\0 ""Multiply""Totalize""Cell\0 ""Consumpt""Distance"
|
||||
|
||||
#define LEN_VPREC "\005"
|
||||
#define TR_VPREC "PREC0""PREC1""PREC2"
|
||||
|
||||
#define LEN_VCELLINDEX "\007"
|
||||
#define TR_VCELLINDEX "Lowest\0""1\0 ""2\0 ""3\0 ""4\0 ""5\0 ""6\0 ""Highest""Delta\0"
|
||||
|
||||
// ZERO TERMINATED STRINGS
|
||||
#define INDENT "\001"
|
||||
#define LEN_INDENT 1
|
||||
@@ -547,8 +572,8 @@
|
||||
#define OFS_CHECKTRIMS CENTER_OFS+(9*FW)
|
||||
#define TR_SWASHTYPE "Typ tarczy"
|
||||
#define TR_COLLECTIVE TR("Kolektyw", "Źródło Kolektywu")
|
||||
#define TR_AILERON "Aileron Source"
|
||||
#define TR_ELEVATOR "Elevator Source"
|
||||
#define TR_AILERON "Lateral cyc. source"
|
||||
#define TR_ELEVATOR "Long. cyc. source"
|
||||
#define TR_SWASHRING "Tarcza "
|
||||
#define TR_ELEDIRECTION TR("Ster Wysokośc","Dług. Kierunku cyklu")
|
||||
#define TR_AILDIRECTION TR("Kierunek Lotk","Lateral cyc. direction")
|
||||
@@ -616,6 +641,8 @@
|
||||
#define TR_SWITCHWARNING TR(IF_CPUARM(INDENT) "OstrzPrzeł", INDENT "PozycjaPrzeł")
|
||||
#define TR_POTWARNING TR(IF_CPUARM(INDENT) "Ostrz.Poten.", INDENT "PozycjaPotencj.")
|
||||
#define TR_TIMEZONE TR("Strefa czasowa" ,"Strefa czasowa GPS")
|
||||
#define TR_ADJUST_RTC INDENT "Adjust RTC"
|
||||
#define TR_GPS "GPS"
|
||||
#define TR_RXCHANNELORD TR("KolejnKan.RX", "Bazowa kolejność kanałów")
|
||||
#define TR_STICKS "Sticks"
|
||||
#define TR_POTS "Pots"
|
||||
@@ -712,6 +739,7 @@
|
||||
#define TR_PITCH_AT_ZERO INDENT "Ton przy Zerze"
|
||||
#define TR_PITCH_AT_MAX INDENT "Ton przy Max"
|
||||
#define TR_REPEAT_AT_ZERO INDENT "Powtórz przy Zerze"
|
||||
#define TR_POWEROFF "\027Power OFF..."
|
||||
#define TR_SHUTDOWN "Wyłączanie.."
|
||||
#define TR_SAVEMODEL "Zapisz ustwienia modelu"
|
||||
#define TR_BATT_CALIB "Kalib:Baterii"
|
||||
@@ -778,7 +806,7 @@
|
||||
#define TR_SD_SPEED "Prędkość:"
|
||||
#define TR_SD_SECTORS "Sektory :"
|
||||
#define TR_SD_SIZE "Wielkość:"
|
||||
#define TR_TYPE TR_SD_TYPE
|
||||
#define TR_TYPE INDENT TR_SD_TYPE
|
||||
#define TR_GLOBAL_VARS "Zmienne Globalne"
|
||||
#define TR_GLOBAL_V "Zmien.Glob."
|
||||
#define TR_GLOBAL_VAR "Zmienna Globalna"
|
||||
@@ -832,6 +860,9 @@
|
||||
#define TR_MODULE INDENT "Moduł"
|
||||
#define TR_TELEMETRY_TYPE "Typ Telemetri"
|
||||
#define TR_TELEMETRY_SENSORS "Czujniki"
|
||||
#define TR_VALUE "Value"
|
||||
#define TR_TOPLCDTIMER "Top LCD Timer"
|
||||
#define TR_UNIT "Unit"
|
||||
#define TR_TELEMETRY_NEWSENSOR INDENT "Dodaj nowy czujnik..."
|
||||
#define TR_CHANNELRANGE TR(INDENT "ZakrKn",INDENT "Zakres kanału")
|
||||
#define TR_LOWALARM INDENT "Alarm niski"
|
||||
@@ -859,6 +890,8 @@
|
||||
#define TR_INPUTS "Wejścia"
|
||||
#define TR_OUTPUTS "Wyjścia"
|
||||
#define TR_EEBACKUP "\004[ENTER Długo] Backupowanie EEPROMu"
|
||||
#define TR_FACTORYRESET "\012[MENU Long]: Factory reset"
|
||||
#define TR_CONFIRMRESET "Erase ALL models and settings?"
|
||||
#define TR_TO_MANY_LUA_SCRIPTS "Za dużo skryptów Lua!"
|
||||
|
||||
#if defined(MAVLINK)
|
||||
@@ -964,25 +997,54 @@
|
||||
#define TR_UNLOCKED "Odblokowane"
|
||||
#define TR_ID "ID"
|
||||
#define TR_PRECISION "Precyzja "
|
||||
#define TR_RATIO "Ratio"
|
||||
#define TR_FORMULA "Formula"
|
||||
#define TR_CELLINDEX "Cell index"
|
||||
#define TR_LOGS "Logs"
|
||||
#define TR_OPTIONS "Options"
|
||||
|
||||
#define TR_ALTSENSOR "Alt sensor"
|
||||
#define TR_CELLSENSOR "Cell sensor"
|
||||
#define TR_GPSSENSOR "GPS sensor"
|
||||
#define TR_CURRENTSENSOR "Current sensor"
|
||||
#define TR_AUTOOFFSET "Auto Offset"
|
||||
#define TR_FILTER "Filter"
|
||||
#define TR_TELEMETRYFULL "All telemetry slots full!"
|
||||
|
||||
#define TR_MENU_INPUTS "\314Inputs"
|
||||
#define TR_MENU_LUA "\322Lua scripts"
|
||||
#define TR_MENU_STICKS "\307Sticks"
|
||||
#define TR_MENU_POTS "\310Pots"
|
||||
#define TR_MENU_MAX "\315MAX"
|
||||
#define TR_MENU_HELI "\316Cyclic"
|
||||
#define TR_MENU_TRIMS "\313Trims"
|
||||
#define TR_MENU_SWITCHES "\312Switches"
|
||||
#define TR_MENU_TRAINER "\317Trainer"
|
||||
#define TR_MENU_CHANNELS "\320Channels"
|
||||
#define TR_MENU_GVARS "\311GVars"
|
||||
#define TR_MENU_TELEMETRY "\321Telemetry"
|
||||
|
||||
#define ZSTR_RSSI "RSSI"
|
||||
#define ZSTR_SWR "SWR"
|
||||
#define ZSTR_A1 "A1"
|
||||
#define ZSTR_A2 "A2"
|
||||
#define ZSTR_BATT "Bat."
|
||||
#define ZSTR_ALT "Wysok."
|
||||
#define ZSTR_A3 "A3"
|
||||
#define ZSTR_A4 "A4"
|
||||
#define ZSTR_BATT "RxBt"
|
||||
#define ZSTR_ALT "Alt"
|
||||
#define ZSTR_TEMP "Temp"
|
||||
#define ZSTR_RPM "RPM"
|
||||
#define ZSTR_FUEL "Paliwo"
|
||||
#define ZSTR_FUEL "Fuel"
|
||||
#define ZSTR_VSPD "VSpd"
|
||||
#define ZSTR_ACCX "AccX"
|
||||
#define ZSTR_ACCY "AccY"
|
||||
#define ZSTR_ACCZ "AccZ"
|
||||
#define ZSTR_CURR "Natęż"
|
||||
#define ZSTR_CURR "Curr"
|
||||
#define ZSTR_VFAS "VFAS"
|
||||
#define ZSTR_ASPD "ASpd"
|
||||
#define ZSTR_GSPD "GSpd"
|
||||
#define ZSTR_HDG "Kurs"
|
||||
#define ZSTR_CELLS "Cele"
|
||||
#define ZSTR_HDG "Hdg"
|
||||
#define ZSTR_CELLS "Cels"
|
||||
#define ZSTR_GPSALT "GAlt"
|
||||
#define ZSTR_GPSDATETIME "Data"
|
||||
#define ZSTR_GPSDATETIME "Date"
|
||||
#define ZSTR_GPS "GPS"
|
||||
|
||||
+100
-16
@@ -82,6 +82,9 @@
|
||||
#define LEN_UART3MODES "\017"
|
||||
#define TR_UART3MODES "OFF\0 ""S-Port Mirror\0 ""Telemetry\0 ""SBUS Trainer\0 ""Debug\0"
|
||||
|
||||
#define LEN_SWTYPES "\006"
|
||||
#define TR_SWTYPES "None\0 ""Toggle""2POS\0 ""3POS\0"
|
||||
|
||||
#define LEN_POTTYPES "\017"
|
||||
#define TR_POTTYPES "None\0 ""Pot with detent""Multipos Switch""Pot\0"
|
||||
|
||||
@@ -443,7 +446,7 @@
|
||||
#define TR_LOGICALSW "L1\0""L2\0""L3\0""L4\0""L5\0""L6\0""L7\0""L8\0""L9\0""L10""L11""L12"
|
||||
#endif
|
||||
|
||||
#define TR_TRIMS_SWITCHES "tRl""tRr""tEd""tEu""tTd""tTu""tAl""tAr"
|
||||
#define TR_TRIMS_SWITCHES TR("tRl""tRr""tEd""tEu""tTd""tTu""tAl""tAr", "\313Rl""\313Rr""\313Ed""\313Eu""\313\313d""\313\313u""\313Al""\313Ar")
|
||||
|
||||
#if defined(PCBSKY9X)
|
||||
#define TR_ROTARY_ENCODERS "REa\0"
|
||||
@@ -456,13 +459,23 @@
|
||||
#define TR_ROTENC_SWITCHES
|
||||
#endif
|
||||
|
||||
#if defined(PCBTARANIS)
|
||||
#define TR_6POS_POTS "S11""S12""S13""S14""S15""S16""S21""S22""S23""S24""S25""S26""S31""S32""S33""S34""S35""S36"
|
||||
#define TR_VSWITCHES "---""SA\300""SA-""SA\301""SB\300""SB-""SB\301""SC\300""SC-""SC\301""SD\300""SD-""SD\301""SE\300""SE-""SE\301""SF\300""SF\301""SG\300""SG-""SG\301""SH\300""SH\301" TR_6POS_POTS TR_TRIMS_SWITCHES TR_ROTENC_SWITCHES TR_LOGICALSW "ON\0""One"
|
||||
#elif defined(CPUARM)
|
||||
#define TR_VSWITCHES "---" TR_9X_3POS_SWITCHES "THR""RUD""ELE""AIL""GEA""TRN" TR_TRIMS_SWITCHES TR_ROTENC_SWITCHES TR_LOGICALSW "ON\0""One"
|
||||
#if defined(PCBTARANIS) && defined(REV9E)
|
||||
#define TR_PHYS_SWITCHES "SA\300""SA-""SA\301""SB\300""SB-""SB\301""SC\300""SC-""SC\301""SD\300""SD-""SD\301""SE\300""SE-""SE\301""SF\300""SF-""SF\301""SG\300""SG-""SG\301""SH\300""SH-""SH\301""SI\300""SI-""SI\301""SJ\300""SJ-""SJ\301""SK\300""SK-""SK\301""SL\300""SL-""SL\301""SM\300""SM-""SM\301""SN\300""SN-""SN\301""SO\300""SO-""SO\301""SP\300""SP-""SP\301""SQ\300""SQ-""SQ\301""SR\300""SR-""SR\301"
|
||||
#elif defined(PCBTARANIS)
|
||||
#define TR_PHYS_SWITCHES "SA\300""SA-""SA\301""SB\300""SB-""SB\301""SC\300""SC-""SC\301""SD\300""SD-""SD\301""SE\300""SE-""SE\301""SF\300""SF-""SF\301""SG\300""SG-""SG\301""SH\300""SH-""SH\301"
|
||||
#else
|
||||
#define TR_VSWITCHES "---" TR_9X_3POS_SWITCHES "THR""RUD""ELE""AIL""GEA""TRN" TR_TRIMS_SWITCHES TR_ROTENC_SWITCHES TR_LOGICALSW "ON\0""One"
|
||||
#define TR_PHYS_SWITCHES "THR""RUD""ELE""AIL""GEA""TRN"
|
||||
#endif
|
||||
|
||||
#if defined(PCBTARANIS)
|
||||
#if defined(REV9E)
|
||||
#define TR_6POS_POTS "S11""S12""S13""S14""S15""S16""S21""S22""S23""S24""S25""S26""S31""S32""S33""S34""S35""S36""S41""S42""S43""S44""S45""S46"
|
||||
#else
|
||||
#define TR_6POS_POTS "S11""S12""S13""S14""S15""S16""S21""S22""S23""S24""S25""S26""S31""S32""S33""S34""S35""S36"
|
||||
#endif
|
||||
#define TR_VSWITCHES "---" TR_PHYS_SWITCHES TR_6POS_POTS TR_TRIMS_SWITCHES TR_ROTENC_SWITCHES TR_LOGICALSW "ON\0""One"
|
||||
#else
|
||||
#define TR_VSWITCHES "---" TR_9X_3POS_SWITCHES TR_PHYS_SWITCHES TR_TRIMS_SWITCHES TR_ROTENC_SWITCHES TR_LOGICALSW "ON\0""One"
|
||||
#endif
|
||||
|
||||
#if defined(HELI)
|
||||
@@ -491,6 +504,18 @@
|
||||
#define TR_MAVLINK_AP_MODES "Manual ""Circle ""Stabilize ""Training ""Fly by Wire A""Fly by Wire A""Auto ""RTL ""Loiter ""Guided ""Initialising ""INVALID "
|
||||
#endif
|
||||
|
||||
#define LEN_VSENSORTYPES "\012"
|
||||
#define TR_VSENSORTYPES "Custom\0 ""Calculated"
|
||||
|
||||
#define LEN_VFORMULAS "\010"
|
||||
#define TR_VFORMULAS "Add\0 ""Average\0""Min\0 ""Max\0 ""Multiply""Totalize""Cell\0 ""Consumpt""Distance"
|
||||
|
||||
#define LEN_VPREC "\005"
|
||||
#define TR_VPREC "PREC0""PREC1""PREC2"
|
||||
|
||||
#define LEN_VCELLINDEX "\007"
|
||||
#define TR_VCELLINDEX "Lowest\0""1\0 ""2\0 ""3\0 ""4\0 ""5\0 ""6\0 ""Highest""Delta\0"
|
||||
|
||||
// ZERO TERMINATED STRINGS
|
||||
#define INDENT "\001"
|
||||
#define LEN_INDENT 1
|
||||
@@ -532,11 +557,11 @@
|
||||
#define TR_ELIMITS "E.Limits"
|
||||
#define TR_ETRIMS "E.Trims"
|
||||
#define TR_TRIMINC "Trim Step"
|
||||
#define TR_DISPLAY_TRIMS "Display Trims"
|
||||
#define TR_DISPLAY_TRIMS "Display Trims"
|
||||
#define TR_TTRACE TR("T-Trace", INDENT "T-Trace")
|
||||
#define TR_TTRIM TR("T-Trim", INDENT "T-Trim")
|
||||
#define TR_BEEPCTR "Ctr Beep"
|
||||
#define TR_USE_GLOBAL_FUNCS "Use Global Funcs"
|
||||
#define TR_USE_GLOBAL_FUNCS "Use Global Funcs"
|
||||
#define TR_PROTO INDENT"Proto"
|
||||
#define TR_PPMFRAME "PPM frame"
|
||||
#define TR_MS "ms"
|
||||
@@ -548,9 +573,9 @@
|
||||
#define TR_CHECKTRIMS "\006Check\012Trims"
|
||||
#define OFS_CHECKTRIMS (9*FW)
|
||||
#define TR_SWASHTYPE "Ciclico Tipo"
|
||||
#define TR_COLLECTIVE "Coletivo"
|
||||
#define TR_AILERON "Aileron Source"
|
||||
#define TR_ELEVATOR "Elevator Source"
|
||||
#define TR_COLLECTIVE "Coletivo"
|
||||
#define TR_AILERON "Lateral cyc. source"
|
||||
#define TR_ELEVATOR "Long. cyc. source"
|
||||
#define TR_SWASHRING "Anel Coletivo"
|
||||
#define TR_ELEDIRECTION "PFD Sentido"
|
||||
#define TR_AILDIRECTION "AIL Sentido"
|
||||
@@ -618,10 +643,12 @@
|
||||
#define TR_SWITCHWARNING TR("Avisa Chav", INDENT "Avisa Chav")
|
||||
#define TR_POTWARNING TR("Pot Warn.", INDENT "Pot Warning")
|
||||
#define TR_TIMEZONE "Time Zone"
|
||||
#define TR_ADJUST_RTC INDENT "Adjust RTC"
|
||||
#define TR_GPS "GPS"
|
||||
#define TR_RXCHANNELORD "Ordem Canal RX"
|
||||
#define TR_STICKS "Sticks"
|
||||
#define TR_POTS "Pots"
|
||||
#define TR_SWITCHES "Switches"
|
||||
#define TR_STICKS "Sticks"
|
||||
#define TR_POTS "Pots"
|
||||
#define TR_SWITCHES "Switches"
|
||||
#define TR_SWITCHES_DELAY "Switches Delay"
|
||||
#define TR_SLAVE "Escravo"
|
||||
#define TR_MODESRC "Modo\006% Fonte"
|
||||
@@ -714,6 +741,7 @@
|
||||
#define TR_PITCH_AT_ZERO INDENT "Pitch at Zero"
|
||||
#define TR_PITCH_AT_MAX INDENT "Pitch at Max"
|
||||
#define TR_REPEAT_AT_ZERO INDENT "Repeat at Zero"
|
||||
#define TR_POWEROFF "\027Power OFF..."
|
||||
#define TR_SHUTDOWN "DESLIGANDOo"
|
||||
#define TR_SAVEMODEL "Saving model settings"
|
||||
#define TR_BATT_CALIB "CALIBRAR BATT"
|
||||
@@ -780,7 +808,7 @@
|
||||
#define TR_SD_SPEED "Velocidade"
|
||||
#define TR_SD_SECTORS "Sectores"
|
||||
#define TR_SD_SIZE "Tamanho"
|
||||
#define TR_TYPE "Tipe"
|
||||
#define TR_TYPE INDENT "Tipe"
|
||||
#define TR_GLOBAL_VARS "Variaveis"
|
||||
#define TR_GLOBAL_V "GLOBAL V."
|
||||
#define TR_GLOBAL_VAR "Global Variable"
|
||||
@@ -834,6 +862,9 @@
|
||||
#define TR_MODULE INDENT "Module"
|
||||
#define TR_TELEMETRY_TYPE TR("Type", "Telemetry Type")
|
||||
#define TR_TELEMETRY_SENSORS "Sensors"
|
||||
#define TR_VALUE "Value"
|
||||
#define TR_TOPLCDTIMER "Top LCD Timer"
|
||||
#define TR_UNIT "Unit"
|
||||
#define TR_TELEMETRY_NEWSENSOR INDENT "Add a new sensor..."
|
||||
#define TR_CHANNELRANGE INDENT "Channel Range"
|
||||
#define TR_LOWALARM INDENT "Low Alarm"
|
||||
@@ -861,6 +892,8 @@
|
||||
#define TR_INPUTS "Inputs"
|
||||
#define TR_OUTPUTS "Outputs"
|
||||
#define TR_EEBACKUP "\004[ENTER Long] to backup the EEPROM"
|
||||
#define TR_FACTORYRESET "\012[MENU Long]: Factory reset"
|
||||
#define TR_CONFIRMRESET "Erase ALL models and settings?"
|
||||
#define TR_TO_MANY_LUA_SCRIPTS "Too many Lua scripts!"
|
||||
|
||||
#if defined(MAVLINK)
|
||||
@@ -966,3 +999,54 @@
|
||||
#define TR_UNLOCKED "Unlocked"
|
||||
#define TR_ID "ID"
|
||||
#define TR_PRECISION "Precision"
|
||||
#define TR_RATIO "Ratio"
|
||||
#define TR_FORMULA "Formula"
|
||||
#define TR_CELLINDEX "Cell index"
|
||||
#define TR_LOGS "Logs"
|
||||
#define TR_OPTIONS "Options"
|
||||
|
||||
#define TR_ALTSENSOR "Alt sensor"
|
||||
#define TR_CELLSENSOR "Cell sensor"
|
||||
#define TR_GPSSENSOR "GPS sensor"
|
||||
#define TR_CURRENTSENSOR "Current sensor"
|
||||
#define TR_AUTOOFFSET "Auto Offset"
|
||||
#define TR_FILTER "Filter"
|
||||
#define TR_TELEMETRYFULL "All telemetry slots full!"
|
||||
|
||||
#define TR_MENU_INPUTS "\314Inputs"
|
||||
#define TR_MENU_LUA "\322Lua scripts"
|
||||
#define TR_MENU_STICKS "\307Sticks"
|
||||
#define TR_MENU_POTS "\310Pots"
|
||||
#define TR_MENU_MAX "\315MAX"
|
||||
#define TR_MENU_HELI "\316Cyclic"
|
||||
#define TR_MENU_TRIMS "\313Trims"
|
||||
#define TR_MENU_SWITCHES "\312Switches"
|
||||
#define TR_MENU_TRAINER "\317Trainer"
|
||||
#define TR_MENU_CHANNELS "\320Channels"
|
||||
#define TR_MENU_GVARS "\311GVars"
|
||||
#define TR_MENU_TELEMETRY "\321Telemetry"
|
||||
|
||||
#define ZSTR_RSSI "RSSI"
|
||||
#define ZSTR_SWR "SWR"
|
||||
#define ZSTR_A1 "A1"
|
||||
#define ZSTR_A2 "A2"
|
||||
#define ZSTR_A3 "A3"
|
||||
#define ZSTR_A4 "A4"
|
||||
#define ZSTR_BATT "RxBt"
|
||||
#define ZSTR_ALT "Alt"
|
||||
#define ZSTR_TEMP "Temp"
|
||||
#define ZSTR_RPM "RPM"
|
||||
#define ZSTR_FUEL "Fuel"
|
||||
#define ZSTR_VSPD "VSpd"
|
||||
#define ZSTR_ACCX "AccX"
|
||||
#define ZSTR_ACCY "AccY"
|
||||
#define ZSTR_ACCZ "AccZ"
|
||||
#define ZSTR_CURR "Curr"
|
||||
#define ZSTR_VFAS "VFAS"
|
||||
#define ZSTR_ASPD "ASpd"
|
||||
#define ZSTR_GSPD "GSpd"
|
||||
#define ZSTR_HDG "Hdg"
|
||||
#define ZSTR_CELLS "Cels"
|
||||
#define ZSTR_GPSALT "GAlt"
|
||||
#define ZSTR_GPSDATETIME "Date"
|
||||
#define ZSTR_GPS "GPS"
|
||||
|
||||
@@ -82,6 +82,9 @@
|
||||
#define LEN_UART3MODES "\022"
|
||||
#define TR_UART3MODES "Av\0 ""Spegling av S-Port""Telemetri\0 ""SBUS Trainer\0 ""Debug\0"
|
||||
|
||||
#define LEN_SWTYPES "\006"
|
||||
#define TR_SWTYPES "None\0 ""Toggle""2POS\0 ""3POS\0"
|
||||
|
||||
#define LEN_POTTYPES "\020"
|
||||
#define TR_POTTYPES "Ingen\0 ""Mittläges-pot\0 ""Flerlägesväljare""Potentiometer\0"
|
||||
|
||||
@@ -443,7 +446,7 @@
|
||||
#define TR_LOGICALSW "L1\0""L2\0""L3\0""L4\0""L5\0""L6\0""L7\0""L8\0""L9\0""L10""L11""L12"
|
||||
#endif
|
||||
|
||||
#define TR_TRIMS_SWITCHES "tRl""tRr""tEd""tEu""tTd""tTu""tAl""tAr"
|
||||
#define TR_TRIMS_SWITCHES TR("tRl""tRr""tEd""tEu""tTd""tTu""tAl""tAr", "\313Rl""\313Rr""\313Ed""\313Eu""\313Td""\313Tu""\313Al""\313Ar")
|
||||
|
||||
#if defined(PCBSKY9X)
|
||||
#define TR_ROTARY_ENCODERS "REa\0"
|
||||
@@ -456,13 +459,23 @@
|
||||
#define TR_ROTENC_SWITCHES
|
||||
#endif
|
||||
|
||||
#if defined(PCBTARANIS)
|
||||
#define TR_6POS_POTS "S11""S12""S13""S14""S15""S16""S21""S22""S23""S24""S25""S26""S31""S32""S33""S34""S35""S36"
|
||||
#define TR_VSWITCHES "---""SA\300""SA-""SA\301""SB\300""SB-""SB\301""SC\300""SC-""SC\301""SD\300""SD-""SD\301""SE\300""SE-""SE\301""SF\300""SF\301""SG\300""SG-""SG\301""SH\300""SH\301" TR_6POS_POTS TR_TRIMS_SWITCHES TR_ROTENC_SWITCHES TR_LOGICALSW "PÅ\0""En\0"
|
||||
#elif defined(CPUARM)
|
||||
#define TR_VSWITCHES "---" TR_9X_3POS_SWITCHES "THR""RUD""ELE""AIL""GEA""TRN" TR_TRIMS_SWITCHES TR_ROTENC_SWITCHES TR_LOGICALSW "PÅ\0""En\0"
|
||||
#if defined(PCBTARANIS) && defined(REV9E)
|
||||
#define TR_PHYS_SWITCHES "SA\300""SA-""SA\301""SB\300""SB-""SB\301""SC\300""SC-""SC\301""SD\300""SD-""SD\301""SE\300""SE-""SE\301""SF\300""SF-""SF\301""SG\300""SG-""SG\301""SH\300""SH-""SH\301""SI\300""SI-""SI\301""SJ\300""SJ-""SJ\301""SK\300""SK-""SK\301""SL\300""SL-""SL\301""SM\300""SM-""SM\301""SN\300""SN-""SN\301""SO\300""SO-""SO\301""SP\300""SP-""SP\301""SQ\300""SQ-""SQ\301""SR\300""SR-""SR\301"
|
||||
#elif defined(PCBTARANIS)
|
||||
#define TR_PHYS_SWITCHES "SA\300""SA-""SA\301""SB\300""SB-""SB\301""SC\300""SC-""SC\301""SD\300""SD-""SD\301""SE\300""SE-""SE\301""SF\300""SF-""SF\301""SG\300""SG-""SG\301""SH\300""SH-""SH\301"
|
||||
#else
|
||||
#define TR_VSWITCHES "---" TR_9X_3POS_SWITCHES "THR""RUD""ELE""AIL""GEA""TRN" TR_TRIMS_SWITCHES TR_ROTENC_SWITCHES TR_LOGICALSW "PÅ\0""En\0"
|
||||
#define TR_PHYS_SWITCHES "THR""RUD""ELE""AIL""GEA""TRN"
|
||||
#endif
|
||||
|
||||
#if defined(PCBTARANIS)
|
||||
#if defined(REV9E)
|
||||
#define TR_6POS_POTS "S11""S12""S13""S14""S15""S16""S21""S22""S23""S24""S25""S26""S31""S32""S33""S34""S35""S36""S41""S42""S43""S44""S45""S46"
|
||||
#else
|
||||
#define TR_6POS_POTS "S11""S12""S13""S14""S15""S16""S21""S22""S23""S24""S25""S26""S31""S32""S33""S34""S35""S36"
|
||||
#endif
|
||||
#define TR_VSWITCHES "---" TR_PHYS_SWITCHES TR_6POS_POTS TR_TRIMS_SWITCHES TR_ROTENC_SWITCHES TR_LOGICALSW "ON\0""One"
|
||||
#else
|
||||
#define TR_VSWITCHES "---" TR_9X_3POS_SWITCHES TR_PHYS_SWITCHES TR_TRIMS_SWITCHES TR_ROTENC_SWITCHES TR_LOGICALSW "ON\0""One"
|
||||
#endif
|
||||
|
||||
#if defined(HELI)
|
||||
@@ -491,6 +504,18 @@
|
||||
#define TR_MAVLINK_AP_MODES "Manuell ""Cirkla ""Stabilisera ""Övning ""Fly by Wire A""Fly by Wire A""Automatisk ""Flyg Hem ""Hovra ""Guidad ""Initialiserar""OGILTIG "
|
||||
#endif
|
||||
|
||||
#define LEN_VSENSORTYPES "\012"
|
||||
#define TR_VSENSORTYPES "Custom\0 ""Calculated"
|
||||
|
||||
#define LEN_VFORMULAS "\010"
|
||||
#define TR_VFORMULAS "Add\0 ""Average\0""Min\0 ""Max\0 ""Multiply""Totalize""Cell\0 ""Consumpt""Distance"
|
||||
|
||||
#define LEN_VPREC "\005"
|
||||
#define TR_VPREC "PREC0""PREC1""PREC2"
|
||||
|
||||
#define LEN_VCELLINDEX "\007"
|
||||
#define TR_VCELLINDEX "Lowest\0""1\0 ""2\0 ""3\0 ""4\0 ""5\0 ""6\0 ""Highest""Delta\0"
|
||||
|
||||
// ZERO TERMINATED STRINGS
|
||||
#define INDENT "\001"
|
||||
#define LEN_INDENT 1
|
||||
@@ -532,11 +557,11 @@
|
||||
#define TR_ELIMITS TR("Gränser++","Utökade Gränser")
|
||||
#define TR_ETRIMS TR("Trimmar++","Utökade Trimmar")
|
||||
#define TR_TRIMINC TR("Trimning","Trimökning")
|
||||
#define TR_DISPLAY_TRIMS "Display Trims"
|
||||
#define TR_DISPLAY_TRIMS "Display Trims"
|
||||
#define TR_TTRACE TR("Följ Gas", INDENT "Följ Gas")
|
||||
#define TR_TTRIM TR("Gastrim", INDENT "Gastrim")
|
||||
#define TR_BEEPCTR TR("Cent.pip", "Centerpip")
|
||||
#define TR_USE_GLOBAL_FUNCS "Use Global Funcs"
|
||||
#define TR_USE_GLOBAL_FUNCS "Use Global Funcs"
|
||||
#define TR_PROTO TR(INDENT "Proto", INDENT "Protokoll")
|
||||
#define TR_PPMFRAME TR(INDENT "PPM-paket", INDENT "PPM-paket")
|
||||
#define TR_MS "ms"
|
||||
@@ -618,10 +643,12 @@
|
||||
#define TR_SWITCHWARNING TR("Bryt.varn.", INDENT "Brytarvarning")
|
||||
#define TR_POTWARNING TR("Rattvarn.", INDENT "Rattvarning")
|
||||
#define TR_TIMEZONE TR("Tidszon", "GPS Tidszon")
|
||||
#define TR_ADJUST_RTC INDENT "Adjust RTC"
|
||||
#define TR_GPS "GPS"
|
||||
#define TR_RXCHANNELORD "Kanaler i RX"
|
||||
#define TR_STICKS "Sticks"
|
||||
#define TR_POTS "Pots"
|
||||
#define TR_SWITCHES "Switches"
|
||||
#define TR_STICKS "Sticks"
|
||||
#define TR_POTS "Pots"
|
||||
#define TR_SWITCHES "Switches"
|
||||
#define TR_SWITCHES_DELAY "Brytarfördröjning"
|
||||
#define TR_SLAVE "Elev"
|
||||
#define TR_MODESRC " Läge\004% Källa"
|
||||
@@ -714,6 +741,7 @@
|
||||
#define TR_PITCH_AT_ZERO INDENT "Ton vid Noll"
|
||||
#define TR_PITCH_AT_MAX INDENT "Ton vid Max"
|
||||
#define TR_REPEAT_AT_ZERO INDENT "Repetera vid Noll"
|
||||
#define TR_POWEROFF "\027Power OFF..."
|
||||
#define TR_SHUTDOWN "STÄNGER AV"
|
||||
#define TR_SAVEMODEL "Spara modellinställn."
|
||||
#define TR_BATT_CALIB "Kalib. Batteri"
|
||||
@@ -780,7 +808,7 @@
|
||||
#define TR_SD_SPEED "Hastighet:"
|
||||
#define TR_SD_SECTORS "Sektorer:"
|
||||
#define TR_SD_SIZE "Strl:"
|
||||
#define TR_TYPE "Typ "
|
||||
#define TR_TYPE INDENT "Typ "
|
||||
#define TR_GLOBAL_VARS "Globala Variabler"
|
||||
#define TR_GLOBAL_V "GLOBAL V."
|
||||
#define TR_GLOBAL_VAR "Global Variabel"
|
||||
@@ -834,6 +862,9 @@
|
||||
#define TR_MODULE INDENT "Modul"
|
||||
#define TR_TELEMETRY_TYPE "Telemetrityp"
|
||||
#define TR_TELEMETRY_SENSORS "Sensorer"
|
||||
#define TR_VALUE "Value"
|
||||
#define TR_TOPLCDTIMER "Top LCD Timer"
|
||||
#define TR_UNIT "Unit"
|
||||
#define TR_TELEMETRY_NEWSENSOR INDENT "Lägg till sensor..."
|
||||
#define TR_CHANNELRANGE INDENT "Kanalområde"
|
||||
#define TR_LOWALARM INDENT "Låg-alarm"
|
||||
@@ -861,6 +892,8 @@
|
||||
#define TR_INPUTS "Input"
|
||||
#define TR_OUTPUTS "Outputs"
|
||||
#define TR_EEBACKUP "\004[ENTER Lång] säkerhetskopiera EEPROM"
|
||||
#define TR_FACTORYRESET "\012[MENU Long]: Factory reset"
|
||||
#define TR_CONFIRMRESET "Erase ALL models and settings?"
|
||||
#define TR_TO_MANY_LUA_SCRIPTS "För många Lua-scripts!"
|
||||
|
||||
#if defined(MAVLINK)
|
||||
@@ -966,3 +999,54 @@
|
||||
#define TR_UNLOCKED "Olåst"
|
||||
#define TR_ID "ID"
|
||||
#define TR_PRECISION "Precision"
|
||||
#define TR_RATIO "Ratio"
|
||||
#define TR_FORMULA "Formula"
|
||||
#define TR_CELLINDEX "Cell index"
|
||||
#define TR_LOGS "Logs"
|
||||
#define TR_OPTIONS "Options"
|
||||
|
||||
#define TR_ALTSENSOR "Alt sensor"
|
||||
#define TR_CELLSENSOR "Cell sensor"
|
||||
#define TR_GPSSENSOR "GPS sensor"
|
||||
#define TR_CURRENTSENSOR "Current sensor"
|
||||
#define TR_AUTOOFFSET "Auto Offset"
|
||||
#define TR_FILTER "Filter"
|
||||
#define TR_TELEMETRYFULL "All telemetry slots full!"
|
||||
|
||||
#define TR_MENU_INPUTS "\314Inputs"
|
||||
#define TR_MENU_LUA "\322Lua scripts"
|
||||
#define TR_MENU_STICKS "\307Sticks"
|
||||
#define TR_MENU_POTS "\310Pots"
|
||||
#define TR_MENU_MAX "\315MAX"
|
||||
#define TR_MENU_HELI "\316Cyclic"
|
||||
#define TR_MENU_TRIMS "\313Trims"
|
||||
#define TR_MENU_SWITCHES "\312Switches"
|
||||
#define TR_MENU_TRAINER "\317Trainer"
|
||||
#define TR_MENU_CHANNELS "\320Channels"
|
||||
#define TR_MENU_GVARS "\311GVars"
|
||||
#define TR_MENU_TELEMETRY "\321Telemetry"
|
||||
|
||||
#define ZSTR_RSSI "RSSI"
|
||||
#define ZSTR_SWR "SWR"
|
||||
#define ZSTR_A1 "A1"
|
||||
#define ZSTR_A2 "A2"
|
||||
#define ZSTR_A3 "A3"
|
||||
#define ZSTR_A4 "A4"
|
||||
#define ZSTR_BATT "RxBt"
|
||||
#define ZSTR_ALT "Alt"
|
||||
#define ZSTR_TEMP "Temp"
|
||||
#define ZSTR_RPM "RPM"
|
||||
#define ZSTR_FUEL "Fuel"
|
||||
#define ZSTR_VSPD "VSpd"
|
||||
#define ZSTR_ACCX "AccX"
|
||||
#define ZSTR_ACCY "AccY"
|
||||
#define ZSTR_ACCZ "AccZ"
|
||||
#define ZSTR_CURR "Curr"
|
||||
#define ZSTR_VFAS "VFAS"
|
||||
#define ZSTR_ASPD "ASpd"
|
||||
#define ZSTR_GSPD "GSpd"
|
||||
#define ZSTR_HDG "Hdg"
|
||||
#define ZSTR_CELLS "Cels"
|
||||
#define ZSTR_GPSALT "GAlt"
|
||||
#define ZSTR_GPSDATETIME "Date"
|
||||
#define ZSTR_GPS "GPS"
|
||||
|
||||
@@ -56,6 +56,10 @@ enum CzechPrompts {
|
||||
CZ_PROMPT_SECONDS = CZ_PROMPT_UNITS_BASE+(UNIT_SECONDS*4),
|
||||
CZ_PROMPT_RPMS = CZ_PROMPT_UNITS_BASE+(UNIT_RPMS*4),
|
||||
CZ_PROMPT_G = CZ_PROMPT_UNITS_BASE+(UNIT_G*4),
|
||||
#if defined(CPUARM)
|
||||
CZ_PROMPT_MILLILITERS = CZ_PROMPT_UNITS_BASE+(UNIT_MILLILITERS*4),
|
||||
CZ_PROMPT_FLOZ = CZ_PROMPT_UNITS_BASE+(UNIT_FLOZ*4),
|
||||
#endif
|
||||
|
||||
};
|
||||
|
||||
|
||||
@@ -56,7 +56,11 @@ enum GermanPrompts {
|
||||
DE_PROMPT_MINUTES = DE_PROMPT_UNITS_BASE+UNIT_MINUTES,
|
||||
DE_PROMPT_SECONDS = DE_PROMPT_UNITS_BASE+UNIT_SECONDS,
|
||||
DE_PROMPT_RPMS = DE_PROMPT_UNITS_BASE+UNIT_RPMS,
|
||||
DE_PROMPT_G= DE_PROMPT_UNITS_BASE+UNIT_G,
|
||||
DE_PROMPT_G = DE_PROMPT_UNITS_BASE+UNIT_G,
|
||||
#if defined(CPUARM)
|
||||
DE_PROMPT_MILLILITERS = DE_PROMPT_UNITS_BASE+UNIT_MILLILITERS,
|
||||
DE_PROMPT_FLOZ = DE_PROMPT_UNITS_BASE+UNIT_FLOZ,
|
||||
#endif
|
||||
|
||||
};
|
||||
|
||||
|
||||
@@ -65,6 +65,10 @@ enum EnglishPrompts {
|
||||
EN_PROMPT_SECONDS = EN_PROMPT_UNITS_BASE+(UNIT_SECONDS*2),
|
||||
EN_PROMPT_RPMS = EN_PROMPT_UNITS_BASE+(UNIT_RPMS*2),
|
||||
EN_PROMPT_G = EN_PROMPT_UNITS_BASE+(UNIT_G*2),
|
||||
#if defined(CPUARM)
|
||||
EN_PROMPT_MILLILITERS = EN_PROMPT_UNITS_BASE+(UNIT_MILLILITERS*2),
|
||||
EN_PROMPT_FLOZ = EN_PROMPT_UNITS_BASE+(UNIT_FLOZ*2),
|
||||
#endif
|
||||
|
||||
EN_PROMPT_POINT_BASE = 160, //.0 - .9
|
||||
|
||||
|
||||
@@ -80,7 +80,11 @@ enum SpanishPrompts {
|
||||
ES_PROMPT_MINUTES = ES_PROMPT_UNITS_BASE+UNIT_MINUTES,
|
||||
ES_PROMPT_SECONDS = ES_PROMPT_UNITS_BASE+UNIT_SECONDS,
|
||||
ES_PROMPT_RPMS = ES_PROMPT_UNITS_BASE+UNIT_RPMS,
|
||||
ES_PROMPT_G= ES_PROMPT_UNITS_BASE+UNIT_G,
|
||||
ES_PROMPT_G = ES_PROMPT_UNITS_BASE+UNIT_G,
|
||||
#if defined(CPUARM)
|
||||
ES_PROMPT_MILLILITERS = ES_PROMPT_UNITS_BASE+UNIT_MILLILITERS,
|
||||
ES_PROMPT_FLOZ = ES_PROMPT_UNITS_BASE+UNIT_FLOZ,
|
||||
#endif
|
||||
|
||||
};
|
||||
|
||||
|
||||
@@ -62,6 +62,12 @@ enum FrenchPrompts {
|
||||
FR_PROMPT_HEURE = FR_PROMPT_UNITS_BASE+UNIT_HOURS,
|
||||
FR_PROMPT_MINUTE = FR_PROMPT_UNITS_BASE+UNIT_MINUTES,
|
||||
FR_PROMPT_SECONDE = FR_PROMPT_UNITS_BASE+UNIT_SECONDS,
|
||||
FR_PROMPT_RPMS = FR_PROMPT_UNITS_BASE+UNIT_RPMS,
|
||||
FR_PROMPT_G = FR_PROMPT_UNITS_BASE+UNIT_G,
|
||||
#if defined(CPUARM)
|
||||
FR_PROMPT_MILLILITERS = FR_PROMPT_UNITS_BASE+UNIT_MILLILITERS,
|
||||
FR_PROMPT_FLOZ = FR_PROMPT_UNITS_BASE+UNIT_FLOZ,
|
||||
#endif
|
||||
|
||||
FR_PROMPT_VIRGULE_BASE = 180, //,0 - ,9
|
||||
};
|
||||
|
||||
@@ -65,6 +65,10 @@ enum HungarianPrompts {
|
||||
HU_PROMPT_SECONDS = HU_PROMPT_UNITS_BASE+(UNIT_SECONDS*2),
|
||||
HU_PROMPT_RPMS = HU_PROMPT_UNITS_BASE+(UNIT_RPMS*2),
|
||||
HU_PROMPT_G = HU_PROMPT_UNITS_BASE+(UNIT_G*2),
|
||||
#if defined(CPUARM)
|
||||
HU_PROMPT_MILLILITERS = HU_PROMPT_UNITS_BASE+(UNIT_MILLILITERS*2),
|
||||
HU_PROMPT_FLOZ = HU_PROMPT_UNITS_BASE+(UNIT_FLOZ*2),
|
||||
#endif
|
||||
|
||||
HU_PROMPT_POINT_BASE = 160, //.0 - .9
|
||||
|
||||
|
||||
@@ -53,6 +53,10 @@ enum ItalianPrompts {
|
||||
IT_PROMPT_WATTS = IT_PROMPT_UNITS_BASE+UNIT_WATTS,
|
||||
IT_PROMPT_FEET = IT_PROMPT_UNITS_BASE+UNIT_FEET,
|
||||
IT_PROMPT_KTS = IT_PROMPT_UNITS_BASE+UNIT_KTS,
|
||||
#if defined(CPUARM)
|
||||
IT_PROMPT_MILLILITERS = IT_PROMPT_UNITS_BASE+UNIT_MILLILITERS,
|
||||
IT_PROMPT_FLOZ = IT_PROMPT_UNITS_BASE+UNIT_FLOZ,
|
||||
#endif
|
||||
|
||||
};
|
||||
|
||||
|
||||
@@ -58,6 +58,10 @@ enum PolishPrompts {
|
||||
PL_PROMPT_SECONDS = PL_PROMPT_UNITS_BASE+(UNIT_SECONDS*4),
|
||||
PL_PROMPT_RPMS = PL_PROMPT_UNITS_BASE+(UNIT_RPMS*4),
|
||||
PL_PROMPT_G = PL_PROMPT_UNITS_BASE+(UNIT_G*4),
|
||||
#if defined(CPUARM)
|
||||
PL_PROMPT_MILLILITERS = PL_PROMPT_UNITS_BASE+(UNIT_MILLILITERS*4),
|
||||
PL_PROMPT_FLOZ = PL_PROMPT_UNITS_BASE+(UNIT_FLOZ*4),
|
||||
#endif
|
||||
};
|
||||
|
||||
#if defined(VOICE)
|
||||
|
||||
@@ -76,6 +76,10 @@ enum PortuguesePrompts {
|
||||
PT_PROMPT_WATTS = PT_PROMPT_UNITS_BASE+UNIT_WATTS,
|
||||
PT_PROMPT_FEET = PT_PROMPT_UNITS_BASE+UNIT_FEET,
|
||||
PT_PROMPT_KTS = PT_PROMPT_UNITS_BASE+UNIT_KTS,
|
||||
#if defined(CPUARM)
|
||||
PT_PROMPT_MILLILITERS = PT_PROMPT_UNITS_BASE+UNIT_MILLILITERS,
|
||||
PT_PROMPT_FLOZ = PT_PROMPT_UNITS_BASE+UNIT_FLOZ,
|
||||
#endif
|
||||
};
|
||||
|
||||
#if defined(VOICE)
|
||||
|
||||
@@ -66,6 +66,10 @@ enum SwedishPrompts {
|
||||
SE_PROMPT_SECONDS = SE_PROMPT_UNITS_BASE+(UNIT_SECONDS*2),
|
||||
SE_PROMPT_RPMS = SE_PROMPT_UNITS_BASE+(UNIT_RPMS*2),
|
||||
SE_PROMPT_G = SE_PROMPT_UNITS_BASE+(UNIT_G*2),
|
||||
#if defined(CPUARM)
|
||||
SE_PROMPT_MILLILITERS = SE_PROMPT_UNITS_BASE+(UNIT_MILLILITERS*2),
|
||||
SE_PROMPT_FLOZ = SE_PROMPT_UNITS_BASE+(UNIT_FLOZ*2),
|
||||
#endif
|
||||
|
||||
SE_PROMPT_POINT_BASE = 160, //.0 - .9
|
||||
|
||||
|
||||
@@ -71,6 +71,10 @@ enum SlovakPrompts {
|
||||
SK_PROMPT_SECONDS = SK_PROMPT_UNITS_BASE+(UNIT_SECONDS*4),
|
||||
SK_PROMPT_RPMS = SK_PROMPT_UNITS_BASE+(UNIT_RPMS*4),
|
||||
SK_PROMPT_G = SK_PROMPT_UNITS_BASE+(UNIT_G*4),
|
||||
#if defined(CPUARM)
|
||||
SK_PROMPT_MILLILITERS = SK_PROMPT_UNITS_BASE+(UNIT_MILLILITERS*4),
|
||||
SK_PROMPT_FLOZ = SK_PROMPT_UNITS_BASE+(UNIT_FLOZ*4),
|
||||
#endif
|
||||
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user