[ersky9x] Inflight Parameters Modification with Rotary Encoder

TTS script for SAPI voice engine
This commit is contained in:
bsongis
2012-07-12 14:22:49 +00:00
parent 228d934b88
commit 0ac6582225
9 changed files with 60 additions and 15 deletions
+9 -4
View File
@@ -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
+4
View File
@@ -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
View File
@@ -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
View File
@@ -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)
+5
View File
@@ -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
View File
@@ -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];
-6
View File
@@ -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)