[ersky9x] Inflight Parameters Modification with Rotary Encoder
TTS script for SAPI voice engine
This commit is contained in:
+9
-4
@@ -114,9 +114,13 @@ IRPROTOS = NO
|
||||
SOMO = NO
|
||||
|
||||
# TRANSLATIONS
|
||||
# Values = en, fr, se
|
||||
# Values = cz, de, en, fr, it, se
|
||||
TRANSLATIONS = EN
|
||||
|
||||
# TTS
|
||||
# Values = en, fr
|
||||
TTS = $(TRANSLATIONS)
|
||||
|
||||
# UNITS
|
||||
# Values = imperial, metric
|
||||
UNITS = METRIC
|
||||
@@ -196,8 +200,9 @@ FORMAT = ihex
|
||||
TARGET = open9x
|
||||
|
||||
# List C++ source files here. (C dependencies are automatically generated.)
|
||||
SRC =
|
||||
CPPSRC = open9x.cpp $(PULSESSRC) stamp.cpp menus.cpp model_menus.cpp general_menus.cpp main_views.cpp statistics_views.cpp $(EEPROMSRC) lcd.cpp drivers.cpp translations.cpp
|
||||
SRC =
|
||||
TTS_SRC = translations/tts_$(shell sh -c "echo $(TTS) | tr '[:upper:]' '[:lower:]'").cpp
|
||||
CPPSRC = open9x.cpp $(PULSESSRC) stamp.cpp menus.cpp model_menus.cpp general_menus.cpp main_views.cpp statistics_views.cpp $(EEPROMSRC) lcd.cpp drivers.cpp translations.cpp $(TTS_SRC)
|
||||
|
||||
ifeq ($(EXT), JETI)
|
||||
CPPSRC += jeti.cpp
|
||||
@@ -226,7 +231,7 @@ EXTRAINCDIRS = . translations
|
||||
# NOTE: PCB version now overrides all the earlier individual settings
|
||||
# These individual settings work only for PCB=STD
|
||||
|
||||
CPPDEFS += -DTRANSLATIONS_$(TRANSLATIONS)
|
||||
CPPDEFS += -DTRANSLATIONS_$(TRANSLATIONS) -DTTS_$(TTS)
|
||||
|
||||
ifeq ($(UNITS), IMPERIAL)
|
||||
CPPDEFS += -DIMPERIAL_UNITS
|
||||
|
||||
@@ -265,7 +265,11 @@ void parseTelemHubByte(uint8_t byte)
|
||||
break;
|
||||
|
||||
case offsetof(FrskyHubData, volts_ap):
|
||||
#if defined(OLDVFAS)
|
||||
frskyData.hub.vfas = ((frskyData.hub.volts_bp * 100 + frskyData.hub.volts_ap * 10) * 21) / 110;
|
||||
#else
|
||||
frskyData.hub.vfas = (frskyData.hub.volts_bp * 10 + frskyData.hub.volts_ap);
|
||||
#endif
|
||||
/* TODO later if (!frskyData.hub.minVfas || frskyData.hub.minVfas > frskyData.hub.vfas)
|
||||
frskyData.hub.minVfas = frskyData.hub.vfas; */
|
||||
break;
|
||||
|
||||
+2
-2
@@ -501,7 +501,7 @@ void popMenu()
|
||||
|
||||
void chainMenu(MenuFuncP newMenu)
|
||||
{
|
||||
#if defined(ROTARY_ENCODERS) && defined(PCBV4)
|
||||
#if defined(ROTARY_ENCODERS)
|
||||
s_inflight_enable = false;
|
||||
#endif
|
||||
g_menuStack[g_menuStackPtr] = newMenu;
|
||||
@@ -511,7 +511,7 @@ void chainMenu(MenuFuncP newMenu)
|
||||
|
||||
void pushMenu(MenuFuncP newMenu)
|
||||
{
|
||||
#if defined(ROTARY_ENCODERS) && defined(PCBV4)
|
||||
#if defined(ROTARY_ENCODERS)
|
||||
s_inflight_enable = false;
|
||||
#endif
|
||||
|
||||
|
||||
+5
-1
@@ -119,7 +119,7 @@ int8_t checkIncDecGen(uint8_t event, int8_t i_val, int8_t i_min, int8_t i_max);
|
||||
#define CHECK_INCDEC_GENVAR(event, var, min, max) \
|
||||
var = checkIncDecGen(event,var,min,max)
|
||||
|
||||
#if defined(PCBV4) && defined(ROTARY_ENCODERS)
|
||||
#if defined(ROTARY_ENCODERS)
|
||||
extern bool s_inflight_enable;
|
||||
extern int8_t *s_inflight_value;
|
||||
extern const pm_char *s_inflight_label;
|
||||
@@ -127,13 +127,17 @@ extern int8_t s_inflight_min;
|
||||
extern int8_t s_inflight_max;
|
||||
extern int8_t s_inflight_shift;
|
||||
extern uint8_t s_inflight_bitshift;
|
||||
#if defined(PCBV4)
|
||||
#define PREPARE_INFLIGHT_BITFIELD(a) int8_t *bitfield = (a)
|
||||
#endif
|
||||
#define INFLIGHT(val) (s_inflight_value==&val ? SURROUNDED : 0)
|
||||
void checkInFlightIncDecModel(uint8_t event, int8_t *value, int8_t i_min, int8_t i_max, int8_t i_shift, const pm_char *label, uint8_t bitshift=0);
|
||||
#define CHECK_INFLIGHT_INCDEC_MODELVAR(event, var, imin, imax, ishift, label) \
|
||||
checkInFlightIncDecModel(event, &var, imin, imax, ishift, label)
|
||||
#if defined(PCBV4)
|
||||
#define CHECK_INFLIGHT_INCDEC_MODELVAR_BITFIELD(event, var, imin, imax, ishift, label, bitshift) \
|
||||
checkInFlightIncDecModel(event, bitfield, imin, imax, ishift, label, bitshift);
|
||||
#endif
|
||||
void check_rotary_encoder();
|
||||
#else
|
||||
#define PREPARE_INFLIGHT_BITFIELD(a)
|
||||
|
||||
@@ -1429,9 +1429,14 @@ void menuProcExpoOne(uint8_t event)
|
||||
|
||||
case EXPO_FIELD_WIDTH:
|
||||
{
|
||||
#if defined(PCBARM)
|
||||
lcd_outdezAtt(9*FW+5, y, ed->weight, attr|INFLIGHT(ed->weight));
|
||||
if (attr) CHECK_INFLIGHT_INCDEC_MODELVAR(event, ed->weight, 0, 100, 0, STR_DRWEIGHT);
|
||||
#else
|
||||
PREPARE_INFLIGHT_BITFIELD(&ed->expo - 1);
|
||||
lcd_outdezAtt(9*FW+5, y, ed->weight, attr|INFLIGHT(*bitfield));
|
||||
if (attr) CHECK_INFLIGHT_INCDEC_MODELVAR_BITFIELD(event, ed->weight, 0, 100, 0, STR_DRWEIGHT, 1);
|
||||
#endif
|
||||
}
|
||||
break;
|
||||
case EXPO_FIELD_EXPO:
|
||||
|
||||
+4
-2
@@ -150,6 +150,8 @@ PACK(typedef struct t_EEGeneral {
|
||||
|
||||
EXTRA_ARM_FIELDS
|
||||
|
||||
uint8_t lightOnStickMove;
|
||||
|
||||
}) EEGeneral;
|
||||
|
||||
// eeprom modelspec
|
||||
@@ -160,8 +162,8 @@ PACK(typedef struct t_ExpoData {
|
||||
uint8_t chn;
|
||||
int8_t curve; // 0=no curve, 1-6=std curves, 7-10=CV1-CV4, 11-15=CV9-CV13
|
||||
int8_t swtch;
|
||||
int8_t phase; // if negPhase is 0: 0=normal, 5=FP4 if negPhase is 1: 5=!FP4
|
||||
uint8_t weight;
|
||||
int8_t phase;
|
||||
int8_t weight;
|
||||
int8_t expo;
|
||||
char name[6];
|
||||
uint8_t spare[4];
|
||||
|
||||
@@ -360,9 +360,3 @@ const pm_uchar font_dblsize[] PROGMEM = {
|
||||
#include "font_dblsize_fr.lbm"
|
||||
#endif
|
||||
};
|
||||
|
||||
#if defined(TRANSLATIONS_FR)
|
||||
#include "translations/fr.cpp"
|
||||
#else
|
||||
#include "translations/en.cpp"
|
||||
#endif
|
||||
|
||||
@@ -61,6 +61,37 @@ enum FrenchPrompts {
|
||||
PROMPT_DEGREES = PROMPT_UNITS_BASE+UNIT_DEGREES,
|
||||
PROMPT_PERCENT = PROMPT_UNITS_BASE+UNIT_PERCENT,
|
||||
PROMPT_MILLIAMPS = PROMPT_UNITS_BASE+UNIT_MILLIAMPS,
|
||||
PROMPT_MAH = PROMPT_UNITS_BASE+UNIT_MAH,
|
||||
PROMPT_WATTS = PROMPT_UNITS_BASE+UNIT_WATTS,
|
||||
PROMPT_FEET = PROMPT_UNITS_BASE+UNIT_FEET,
|
||||
PROMPT_KTS = PROMPT_UNITS_BASE+UNIT_KTS,
|
||||
|
||||
PROMPT_LABELS_BASE = 100,
|
||||
PROMPT_TIMER1 = PROMPT_LABELS_BASE+TELEM_TM1,
|
||||
PROMPT_TIMER2 = PROMPT_LABELS_BASE+TELEM_TM2,
|
||||
PROMPT_A1 = PROMPT_LABELS_BASE+TELEM_A1,
|
||||
PROMPT_A2 = PROMPT_LABELS_BASE+TELEM_A2,
|
||||
PROMPT_RSSI_TX = PROMPT_LABELS_BASE+TELEM_RSSI_TX,
|
||||
PROMPT_RSSI_RX = PROMPT_LABELS_BASE+TELEM_RSSI_RX,
|
||||
PROMPT_ALTITUDE = PROMPT_LABELS_BASE+TELEM_ALT,
|
||||
PROMPT_RPM = PROMPT_LABELS_BASE+TELEM_RPM,
|
||||
PROMPT_ESSENCE = PROMPT_LABELS_BASE+TELEM_FUEL,
|
||||
PROMPT_T1 = PROMPT_LABELS_BASE+TELEM_T1,
|
||||
PROMPT_T2 = PROMPT_LABELS_BASE+TELEM_T2,
|
||||
PROMPT_VITESSE = PROMPT_LABELS_BASE+TELEM_SPEED,
|
||||
PROMPT_DISTANCE = PROMPT_LABELS_BASE+TELEM_DIST,
|
||||
PROMPT_GPSALTITUDE = PROMPT_LABELS_BASE+TELEM_GPSALT,
|
||||
PROMPT_ELEMENTS_LIPO = PROMPT_LABELS_BASE+TELEM_CELL,
|
||||
PROMPT_TOTAL_LIPO = PROMPT_LABELS_BASE+TELEM_CELLS_SUM,
|
||||
PROMPT_VFAS = PROMPT_LABELS_BASE+TELEM_VFAS,
|
||||
PROMPT_COURANT = PROMPT_LABELS_BASE+TELEM_CURRENT,
|
||||
PROMPT_CONSOMMATION = PROMPT_LABELS_BASE+TELEM_CONSUMPTION,
|
||||
PROMPT_PUISSANCE = PROMPT_LABELS_BASE+TELEM_POWER,
|
||||
PROMPT_ACCELx = PROMPT_LABELS_BASE+TELEM_ACCx,
|
||||
PROMPT_ACCELy = PROMPT_LABELS_BASE+TELEM_ACCy,
|
||||
PROMPT_ACCELz = PROMPT_LABELS_BASE+TELEM_ACCz,
|
||||
PROMPT_HDG = PROMPT_LABELS_BASE+TELEM_HDG,
|
||||
PROMPT_VARIO = PROMPT_LABELS_BASE+TELEM_VSPD,
|
||||
};
|
||||
|
||||
#if defined(SOMO) || defined(PCBARM)
|
||||
Reference in New Issue
Block a user