[Taranis] New board revision. Betas are PCBREV=REV4a, production are PCB=REV4

[Taranis] FrSky module alarms removed
[Taranis/sky9x] Multilanguages (only en, fr, it)
[sky9x] Compilation error fixed
This commit is contained in:
bsongis@gmail.com
2013-05-10 20:24:25 +00:00
parent 4b7c16fc9f
commit 6217e1331a
18 changed files with 331 additions and 223 deletions
+8 -3
View File
@@ -55,7 +55,6 @@ DELAY = 5
PCB = 9X
# PCB revision
# Values: REVA, REVB
PCBREV =
# Enable JETI-Telemetry or FrSky Telemetry reception on UART0
@@ -557,6 +556,8 @@ ifeq ($(PCB), TARANIS)
ARCH = ARM
ifeq ($(PCBREV), REV3)
CPPDEFS = -DREV3
else ifeq ($(PCBREV), REV4a)
CPPDEFS = -DREV4a
else
CPPDEFS = -DREV4
endif
@@ -650,8 +651,12 @@ FORMAT = ihex
TARGET = opentx
# List C++ source files here. (C dependencies are automatically generated.)
STD_TTS_SRC = translations/tts_$(shell sh -c "echo $(TTS) | tr '[:upper:]' '[:lower:]'").cpp
TTS_SRC = $(shell sh -c "if test -f $(STD_TTS_SRC); then echo $(STD_TTS_SRC); else echo translations/tts_en.cpp; fi")
ifeq ($(PCB), $(filter $(PCB), SKY9X TARANIS))
TTS_SRC = translations/tts_en.cpp translations/tts_fr.cpp translations/tts_it.cpp
else
STD_TTS_SRC = translations/tts_$(shell sh -c "echo $(TTS) | tr '[:upper:]' '[:lower:]'").cpp
TTS_SRC = $(shell sh -c "if test -f $(STD_TTS_SRC); then echo $(STD_TTS_SRC); else echo translations/tts_en.cpp; fi")
endif
CPPSRC += opentx.cpp $(PULSESSRC) stamp.cpp gui/menus.cpp gui/menu_model.cpp gui/menu_general.cpp gui/view_main.cpp gui/view_statistics.cpp $(EEPROMSRC) lcd.cpp keys.cpp maths.cpp translations.cpp $(TTS_SRC)
+11 -8
View File
@@ -97,7 +97,8 @@ void refreshSystemAudioFiles()
info.lfsize = sizeof(lfn);
#endif
char filename[32] = SYSTEM_SOUNDS_PATH "/";
char filename[32] = SYSTEM_SOUNDS_PATH "/en/";
strncpy(filename+sizeof(SYSTEM_SOUNDS_PATH), currentLanguagePack->id, 2);
assert(sizeof(audioFilenames)==AU_FRSKY_FIRST*sizeof(char *));
assert(sizeof(sdAvailableSystemAudioFiles)*8 > AU_FRSKY_FIRST);
@@ -105,8 +106,8 @@ void refreshSystemAudioFiles()
uint32_t availableAudioFiles = 0;
for (uint32_t i=0; i<AU_FRSKY_FIRST; i++) {
strcpy(filename+sizeof(SYSTEM_SOUNDS_PATH), audioFilenames[i]);
strcat(filename+sizeof(SYSTEM_SOUNDS_PATH), SOUNDS_EXT);
strcpy(filename+sizeof(SYSTEM_SOUNDS_PATH)+3, audioFilenames[i]);
strcat(filename+sizeof(SYSTEM_SOUNDS_PATH)+3, SOUNDS_EXT);
if (f_stat(filename, &info) == FR_OK)
availableAudioFiles |= ((uint32_t)1 << i);
}
@@ -169,9 +170,10 @@ bool isAudioFileAvailable(uint32_t i, char * filename)
if (category == SYSTEM_AUDIO_CATEGORY) {
if (sdAvailableSystemAudioFiles & ((uint32_t)1 << event)) {
strcpy(filename, SYSTEM_SOUNDS_PATH "/");
strcpy(filename+sizeof(SYSTEM_SOUNDS_PATH), audioFilenames[i]);
strcat(filename+sizeof(SYSTEM_SOUNDS_PATH), SOUNDS_EXT);
strcpy(filename, SYSTEM_SOUNDS_PATH "/en/");
strncpy(filename+sizeof(SYSTEM_SOUNDS_PATH), currentLanguagePack->id, 2);
strcpy(filename+sizeof(SYSTEM_SOUNDS_PATH)+3, audioFilenames[i]);
strcat(filename+sizeof(SYSTEM_SOUNDS_PATH)+3, SOUNDS_EXT);
return true;
}
}
@@ -914,10 +916,11 @@ void pushPrompt(uint16_t prompt, uint8_t id)
{
#if defined(SDCARD)
char filename[] = SYSTEM_SOUNDS_PATH "/0000" SOUNDS_EXT;
char filename[] = SYSTEM_SOUNDS_PATH "/en/0000" SOUNDS_EXT;
strncpy(filename+sizeof(SYSTEM_SOUNDS_PATH), currentLanguagePack->id, 2);
for (int8_t i=3; i>=0; i--) {
filename[sizeof(SYSTEM_SOUNDS_PATH)+i] = '0' + (prompt%10);
filename[sizeof(SYSTEM_SOUNDS_PATH)+3+i] = '0' + (prompt%10);
prompt /= 10;
}
+1
View File
@@ -205,6 +205,7 @@ void audioStart();
extern void pushPrompt(uint16_t prompt, uint8_t id=0);
#define I18N_PLAY_FUNCTION(lng, x, ...) void lng ## _ ## x(__VA_ARGS__, uint8_t id)
#define PLAY_FUNCTION(x, ...) void x(__VA_ARGS__, uint8_t id)
#define PUSH_NUMBER_PROMPT(p) pushPrompt((p), id)
#define PLAY_NUMBER(n, u, a) playNumber((n), (u), (a), id)
+2 -2
View File
@@ -38,8 +38,8 @@
#define audio_h
#if defined(PCBSTD)
#define SPEAKER_ON BUZZER_ON
#define SPEAKER_OFF toneFreq=0; BUZZER_OFF
#define SPEAKER_ON BUZZER_ON
#define SPEAKER_OFF toneFreq=0; BUZZER_OFF
#endif
//audio
+11 -1
View File
@@ -477,7 +477,17 @@ void eeReadAll()
eeLoadModelHeaders() ;
}
stickMode = g_eeGeneral.stickMode; // TODO common!
// TODO common!
stickMode = g_eeGeneral.stickMode;
#if defined(CPUARM)
for (uint8_t i=0; languagePacks[i]!=NULL; i++) {
if (!strncmp(g_eeGeneral.ttsLanguage, languagePacks[i]->id, 2)) {
currentLanguagePackIdx = i;
currentLanguagePack = languagePacks[i];
}
}
#endif
}
void eeWaitFinished()
+10
View File
@@ -1003,6 +1003,16 @@ void eeReadAll()
}
stickMode = g_eeGeneral.stickMode;
#if defined(CPUARM)
for (uint8_t i=0; languagePacks[i]!=NULL; i++) {
if (!strncmp(g_eeGeneral.ttsLanguage, languagePacks[i]->id, 2)) {
currentLanguagePackIdx = i;
currentLanguagePack = languagePacks[i];
}
}
#endif
#if !defined(CPUARM)
eeLoadModel(g_eeGeneral.currModel);
#endif
+3 -3
View File
@@ -41,10 +41,10 @@
#if defined(PCBTARANIS)
#define blkid_t uint16_t
#if defined(REV3)
#define EESIZE (32*1024)
#else
#if defined(REV4a)
#define EESIZE (64*1024)
#else
#define EESIZE (32*1024)
#endif
#define EEFS_VERS 5
#define MAXFILES 62
+27 -1
View File
@@ -40,6 +40,19 @@ const pm_uchar sticks[] PROGMEM = {
#include "../bitmaps/sticks.lbm"
};
#if defined(CPUARM)
extern LanguagePack enLanguagePack;
extern LanguagePack frLanguagePack;
extern LanguagePack itLanguagePack;
LanguagePack * languagePacks[] = {
// alphabetical order
&enLanguagePack,
&frLanguagePack,
&itLanguagePack,
NULL
};
#endif
enum EnumTabDiag {
e_Setup,
IF_SDCARD(e_Sd)
@@ -147,6 +160,7 @@ enum menuGeneralSetupItems {
IF_FRSKY(ITEM_SETUP_TIMEZONE)
IF_FRSKY(ITEM_SETUP_GPSFORMAT)
IF_PXX(ITEM_SETUP_COUNTRYCODE)
IF_CPUARM(ITEM_SETUP_LANGUAGE)
IF_CPUARM(ITEM_SETUP_IMPERIAL)
ITEM_SETUP_RX_CHANNEL_ORD,
ITEM_SETUP_STICK_MODE_LABELS,
@@ -166,7 +180,7 @@ void menuGeneralSetup(uint8_t event)
}
#endif
MENU(STR_MENURADIOSETUP, menuTabDiag, e_Setup, ITEM_SETUP_MAX+1, {0, IF_RTCLOCK(2) IF_RTCLOCK(2) IF_BATTGRAPH(1) LABEL(SOUND), IF_AUDIO(0) IF_BUZZER(0) 0, IF_AUDIO(0) IF_VOICE(0) IF_HAPTIC(LABEL(HAPTIC)) IF_HAPTIC(0) IF_HAPTIC(0) IF_HAPTIC(0) IF_PCBSKY9X(0) IF_9X(0) LABEL(ALARMS), 0, IF_PCBSKY9X(0) IF_PCBSKY9X(0) 0, 0, 0, IF_ROTARY_ENCODERS(0) LABEL(BACKLIGHT), 0, 0, CASE_PWM_BACKLIGHT(0) CASE_PWM_BACKLIGHT(0) 0, IF_SPLASH(0) IF_FRSKY(0) IF_FRSKY(0) IF_PXX(0) IF_CPUARM(0) 0, LABEL(TX_MODE), CASE_PCBTARANIS(0) 1/*to force edit mode*/});
MENU(STR_MENURADIOSETUP, menuTabDiag, e_Setup, ITEM_SETUP_MAX+1, {0, IF_RTCLOCK(2) IF_RTCLOCK(2) IF_BATTGRAPH(1) LABEL(SOUND), IF_AUDIO(0) IF_BUZZER(0) 0, IF_AUDIO(0) IF_VOICE(0) IF_HAPTIC(LABEL(HAPTIC)) IF_HAPTIC(0) IF_HAPTIC(0) IF_HAPTIC(0) IF_PCBSKY9X(0) IF_9X(0) LABEL(ALARMS), 0, IF_PCBSKY9X(0) IF_PCBSKY9X(0) 0, 0, 0, IF_ROTARY_ENCODERS(0) LABEL(BACKLIGHT), 0, 0, CASE_PWM_BACKLIGHT(0) CASE_PWM_BACKLIGHT(0) 0, IF_SPLASH(0) IF_FRSKY(0) IF_FRSKY(0) IF_PXX(0) IF_CPUARM(0) IF_CPUARM(0) 0, LABEL(TX_MODE), CASE_PCBTARANIS(0) 1/*to force edit mode*/});
uint8_t sub = m_posVert - 1;
@@ -481,6 +495,18 @@ void menuGeneralSetup(uint8_t event)
#endif
#if defined(CPUARM)
case ITEM_SETUP_LANGUAGE:
lcd_putsLeft(y, PSTR("Language"));
lcd_putsAtt(RADIO_SETUP_2ND_COLUMN, y, currentLanguagePack->name, attr);
if (attr) {
currentLanguagePackIdx = checkIncDec(event, currentLanguagePackIdx, 0, DIM(languagePacks)-2, EE_GENERAL);
if (checkIncDec_Ret) {
currentLanguagePack = languagePacks[currentLanguagePackIdx];
strncpy(g_eeGeneral.ttsLanguage, currentLanguagePack->id, 2);
}
}
break;
case ITEM_SETUP_IMPERIAL:
g_eeGeneral.imperial = selectMenuItem(RADIO_SETUP_2ND_COLUMN, y, STR_UNITSSYSTEM, STR_VUNITSSYSTEM, g_eeGeneral.imperial, 0, 1, attr, event);
break;
+22 -4
View File
@@ -4039,7 +4039,9 @@ void onCustomFunctionsMenu(const char *result)
int8_t sub = m_posVert - 1;
if (result == STR_UPDATE_LIST) {
if (!listSdFiles(SOUNDS_PATH, SOUNDS_EXT, sizeof(g_model.funcSw[sub].param), NULL)) {
char directory[] = SOUNDS_PATH "/en";
strncpy(directory+sizeof(SOUNDS_PATH), currentLanguagePack->id, 2);
if (!listSdFiles(directory, SOUNDS_EXT, sizeof(g_model.funcSw[sub].param), NULL)) {
POPUP_WARNING(STR_NO_SOUNDS_ON_SD);
s_menu_flags = 0;
}
@@ -4163,7 +4165,9 @@ void menuModelCustomFunctions(uint8_t event)
lcd_putsiAtt(x, y, STR_VCSWFUNC, 0, attr);
if (active && event==EVT_KEY_BREAK(KEY_ENTER)) {
s_editMode = 0;
if (listSdFiles(SOUNDS_PATH, SOUNDS_EXT, sizeof(sd->param.name), sd->param.name)) {
char directory[] = SOUNDS_PATH "/en";
strncpy(directory+sizeof(SOUNDS_PATH), currentLanguagePack->id, 2);
if (listSdFiles(directory, SOUNDS_EXT, sizeof(sd->param.name), sd->param.name)) {
menuHandler = onCustomFunctionsMenu;
}
else {
@@ -4324,16 +4328,20 @@ enum menuModelTelemetryItems {
ITEM_TELEMETRY_A1_LABEL,
ITEM_TELEMETRY_A1_RANGE,
ITEM_TELEMETRY_A1_OFFSET,
#if !defined(PCBTARANIS)
ITEM_TELEMETRY_A1_ALARM1,
ITEM_TELEMETRY_A1_ALARM2,
#endif
ITEM_TELEMETRY_A2_LABEL,
ITEM_TELEMETRY_A2_RANGE,
ITEM_TELEMETRY_A2_OFFSET,
#if !defined(PCBTARANIS)
ITEM_TELEMETRY_A2_ALARM1,
ITEM_TELEMETRY_A2_ALARM2,
ITEM_TELEMETRY_RSSI_LABEL,
ITEM_TELEMETRY_RSSI_ALARM1,
ITEM_TELEMETRY_RSSI_ALARM2,
#endif
#if defined(FRSKY_HUB) || defined(WS_HOW_HIGH)
ITEM_TELEMETRY_USR_LABEL,
#if !defined(PCBTARANIS)
@@ -4392,9 +4400,17 @@ enum menuModelTelemetryItems {
#define TELEM_BARS_COLMAX (14*FW-3)
#endif
#if defined(PCBTARANIS)
#define CHANNEL_ROWS (uint8_t)-1, 1, 0,
#define RSSI_ROWS
#else
#define CHANNEL_ROWS (uint8_t)-1, 1, 0, 2, 2,
#define RSSI_ROWS (uint8_t)-1, 1, 1,
#endif
void menuModelTelemetry(uint8_t event)
{
MENU(STR_MENUTELEMETRY, menuTabModel, e_Telemetry, ITEM_TELEMETRY_MAX+1, {0, (uint8_t)-1, 1, 0, 2, 2, (uint8_t)-1, 1, 0, 2, 2, (uint8_t)-1, 1, 1, USRDATA_LINES 0, 0, IF_VARIO((uint8_t)-1) IF_VARIO(0) IF_VARIO(3) 0, 2, 2, 2, 2, 0, 2, 2, 2, IF_CPUARM(2) IF_CPUARM(0) IF_CPUARM(2) IF_CPUARM(2) IF_CPUARM(2) 2 });
MENU(STR_MENUTELEMETRY, menuTabModel, e_Telemetry, ITEM_TELEMETRY_MAX+1, {0, CHANNEL_ROWS CHANNEL_ROWS RSSI_ROWS USRDATA_LINES 0, 0, IF_VARIO((uint8_t)-1) IF_VARIO(0) IF_VARIO(3) 0, 2, 2, 2, 2, 0, 2, 2, 2, IF_CPUARM(2) IF_CPUARM(0) IF_CPUARM(2) IF_CPUARM(2) IF_CPUARM(2) 2 });
uint8_t sub = m_posVert - 1;
@@ -4404,9 +4420,9 @@ void menuModelTelemetry(uint8_t event)
#if !defined(PCBTARANIS)
case EVT_KEY_BREAK(KEY_LEFT):
case EVT_KEY_BREAK(KEY_RIGHT):
#endif
if (s_editMode>0 && sub<=ITEM_TELEMETRY_RSSI_ALARM2)
frskySendAlarms(); // update FrSky module when edit mode exited
#endif
break;
}
@@ -4459,6 +4475,7 @@ void menuModelTelemetry(uint8_t event)
if (attr) channel.offset = checkIncDec(event, channel.offset, -256, 256, EE_MODEL);
break;
#if !defined(PCBTARANIS)
case ITEM_TELEMETRY_A1_ALARM1:
case ITEM_TELEMETRY_A1_ALARM2:
case ITEM_TELEMETRY_A2_ALARM1:
@@ -4516,6 +4533,7 @@ void menuModelTelemetry(uint8_t event)
}
break;
}
#endif
#if defined(FRSKY_HUB) || defined(WS_HOW_HIGH)
case ITEM_TELEMETRY_USR_LABEL:
+2 -1
View File
@@ -209,7 +209,8 @@ enum BeeperMode {
uint8_t sticksGain; \
uint8_t rotarySteps; \
uint8_t countryCode; \
uint8_t imperial;
uint8_t imperial; \
char ttsLanguage[2];
#elif defined(PXX)
#define EXTRA_GENERAL_FIELDS uint8_t countryCode;
#else
+6 -5
View File
@@ -2422,11 +2422,12 @@ uint8_t fnSwitchDuration[NUM_CFN] = { 0 };
inline void playCustomFunctionFile(CustomFnData *sd, uint8_t id)
{
char lfn[] = SOUNDS_PATH "/xxxxxx.wav";
strncpy(lfn+sizeof(SOUNDS_PATH), sd->param.name, sizeof(sd->param.name));
lfn[sizeof(SOUNDS_PATH)+sizeof(sd->param.name)] = '\0';
strcat(lfn+sizeof(SOUNDS_PATH), SOUNDS_EXT);
PLAY_FILE(lfn, sd->func==FUNC_BACKGND_MUSIC ? PLAY_BACKGROUND : 0, id);
char filename[] = SOUNDS_PATH "/en/xxxxxx.wav";
strncpy(filename+sizeof(SOUNDS_PATH), currentLanguagePack->id, 2);
strncpy(filename+sizeof(SOUNDS_PATH)+3, sd->param.name, sizeof(sd->param.name));
filename[sizeof(SOUNDS_PATH)+3+sizeof(sd->param.name)] = '\0';
strcat(filename+sizeof(SOUNDS_PATH)+3, SOUNDS_EXT);
PLAY_FILE(filename, sd->func==FUNC_BACKGND_MUSIC ? PLAY_BACKGROUND : 0, id);
}
#endif
+1
View File
@@ -41,6 +41,7 @@
extern void pushPrompt(uint16_t prompt);
extern bool isPlaying();
#define I18N_PLAY_FUNCTION(lng, x, ...) void x(__VA_ARGS__)
#define PLAY_FUNCTION(x, ...) void x(__VA_ARGS__)
#define PUSH_CUSTOM_PROMPT(p, id) pushPrompt(PROMPT_CUSTOM_BASE+(p))
#define PUSH_NUMBER_PROMPT(p) pushPrompt(PROMPT_I18N_BASE+(p))
+6
View File
@@ -36,7 +36,13 @@
#include "../../opentx.h"
extern uint16_t ppmStream[NUM_MODULES][20];
volatile uint32_t ppmStreamIndex[NUM_MODULES] = { MODULES_INIT(0) }; // Modified in interrupt routine
extern uint16_t pxxStream[NUM_MODULES][400]; // Transitions
extern uint16_t *pxxStreamPtr[NUM_MODULES];
extern uint8_t Bit_pulses[64] ; // Likely more than we need
extern uint8_t Serial_byte_count ;
void init_main_ppm( uint32_t period, uint32_t out_enable )
{
+1
View File
@@ -128,6 +128,7 @@ inline bool isPlaying()
} \
}
#define I18N_PLAY_FUNCTION(lng, x, ...) void x(__VA_ARGS__)
#define PLAY_FUNCTION(x, ...) void x(__VA_ARGS__)
#define PUSH_CUSTOM_PROMPT(p, ...) pushCustomPrompt((p))
#define PUSH_NUMBER_PROMPT(p) pushNumberPrompt((p))
+20 -1
View File
@@ -553,9 +553,28 @@ extern const pm_char STR_ROTARY_ENCODER[];
extern const pm_char STR_DATE[];
extern const pm_char STR_CHANNELS_MONITOR[];
#if defined(VOICE)
#if defined(VOICE) && defined(CPUARM)
struct LanguagePack {
const char *id;
const char *name;
void (*playNumber)(getvalue_t number, uint8_t unit, uint8_t att, uint8_t id);
void (*playDuration)(int16_t seconds, uint8_t id);
};
extern LanguagePack * languagePacks[];
extern LanguagePack * currentLanguagePack;
extern uint8_t currentLanguagePackIdx;
#define LANGUAGE_PACK_DECLARE(lng, name) LanguagePack lng ## LanguagePack = { #lng, name, lng ## _ ## playNumber, lng ## _ ## playDuration }
#define LANGUAGE_PACK_DECLARE_DEFAULT(lng, name) LANGUAGE_PACK_DECLARE(lng, name); LanguagePack * currentLanguagePack = & lng ## LanguagePack; uint8_t currentLanguagePackIdx
inline PLAY_FUNCTION(playNumber, getvalue_t number, uint8_t unit, uint8_t att) { currentLanguagePack->playNumber(number, unit, att, id); }
inline PLAY_FUNCTION(playDuration, int16_t seconds) { currentLanguagePack->playDuration(seconds, id); }
#elif defined(VOICE)
PLAY_FUNCTION(playNumber, getvalue_t number, uint8_t unit, uint8_t att);
PLAY_FUNCTION(playDuration, int16_t seconds);
#define LANGUAGE_PACK_DECLARE(lng, name)
#define LANGUAGE_PACK_DECLARE_DEFAULT(lng, name)
#else
#define LANGUAGE_PACK_DECLARE(lng, name)
#define LANGUAGE_PACK_DECLARE_DEFAULT(lng, name)
#endif
#if LCD_W >= 212
+43 -41
View File
@@ -37,45 +37,45 @@
#include "../opentx.h"
enum EnglishPrompts {
PROMPT_NUMBERS_BASE = 0,
PROMPT_ZERO = PROMPT_NUMBERS_BASE+0, //02-99
PROMPT_HUNDRED = PROMPT_NUMBERS_BASE+100, //100,200 .. 900
PROMPT_THOUSAND = PROMPT_NUMBERS_BASE+109, //1000
PROMPT_AND = PROMPT_NUMBERS_BASE+110,
PROMPT_MINUS = PROMPT_NUMBERS_BASE+111,
PROMPT_POINT = PROMPT_NUMBERS_BASE+112,
EN_PROMPT_NUMBERS_BASE = 0,
EN_PROMPT_ZERO = EN_PROMPT_NUMBERS_BASE+0, //02-99
EN_PROMPT_HUNDRED = EN_PROMPT_NUMBERS_BASE+100, //100,200 .. 900
EN_PROMPT_THOUSAND = EN_PROMPT_NUMBERS_BASE+109, //1000
EN_PROMPT_AND = EN_PROMPT_NUMBERS_BASE+110,
EN_PROMPT_MINUS = EN_PROMPT_NUMBERS_BASE+111,
EN_PROMPT_POINT = EN_PROMPT_NUMBERS_BASE+112,
PROMPT_UNITS_BASE = 115,
PROMPT_VOLTS = PROMPT_UNITS_BASE+UNIT_VOLTS, //(one)volt,(two)volts
PROMPT_AMPS = PROMPT_UNITS_BASE+(UNIT_AMPS*2),
PROMPT_METERS_PER_SECOND = PROMPT_UNITS_BASE+(UNIT_METERS_PER_SECOND*2),
PROMPT_SPARE1 = PROMPT_UNITS_BASE+(UNIT_RAW*2),
PROMPT_KMH = PROMPT_UNITS_BASE+(UNIT_KMH*2),
PROMPT_METERS = PROMPT_UNITS_BASE+(UNIT_METERS*2),
PROMPT_DEGREES = PROMPT_UNITS_BASE+(UNIT_DEGREES*2),
PROMPT_PERCENT = PROMPT_UNITS_BASE+(UNIT_PERCENT*2),
PROMPT_MILLIAMPS = PROMPT_UNITS_BASE+(UNIT_MILLIAMPS*2),
PROMPT_MAH = PROMPT_UNITS_BASE+(UNIT_MAH*2),
PROMPT_WATTS = PROMPT_UNITS_BASE+(UNIT_WATTS*2),
PROMPT_DB = PROMPT_UNITS_BASE+(UNIT_DBM*2),
PROMPT_FEET = PROMPT_UNITS_BASE+(UNIT_FEET*2),
PROMPT_KTS = PROMPT_UNITS_BASE+(UNIT_KTS*2),
PROMPT_HOURS = PROMPT_UNITS_BASE+(UNIT_HOURS*2),
PROMPT_MINUTES = PROMPT_UNITS_BASE+(UNIT_MINUTES*2),
PROMPT_SECONDS = PROMPT_UNITS_BASE+(UNIT_SECONDS*2),
PROMPT_RPMS = PROMPT_UNITS_BASE+(UNIT_RPMS*2),
PROMPT_G = PROMPT_UNITS_BASE+(UNIT_G*2),
PROMPT_POINT_BASE = 160, //.0 - .9
EN_PROMPT_UNITS_BASE = 115,
EN_PROMPT_VOLTS = EN_PROMPT_UNITS_BASE+UNIT_VOLTS, //(one)volt,(two)volts
EN_PROMPT_AMPS = EN_PROMPT_UNITS_BASE+(UNIT_AMPS*2),
EN_PROMPT_METERS_PER_SECOND = EN_PROMPT_UNITS_BASE+(UNIT_METERS_PER_SECOND*2),
EN_PROMPT_SPARE1 = EN_PROMPT_UNITS_BASE+(UNIT_RAW*2),
EN_PROMPT_KMH = EN_PROMPT_UNITS_BASE+(UNIT_KMH*2),
EN_PROMPT_METERS = EN_PROMPT_UNITS_BASE+(UNIT_METERS*2),
EN_PROMPT_DEGREES = EN_PROMPT_UNITS_BASE+(UNIT_DEGREES*2),
EN_PROMPT_PERCENT = EN_PROMPT_UNITS_BASE+(UNIT_PERCENT*2),
EN_PROMPT_MILLIAMPS = EN_PROMPT_UNITS_BASE+(UNIT_MILLIAMPS*2),
EN_PROMPT_MAH = EN_PROMPT_UNITS_BASE+(UNIT_MAH*2),
EN_PROMPT_WATTS = EN_PROMPT_UNITS_BASE+(UNIT_WATTS*2),
EN_PROMPT_DB = EN_PROMPT_UNITS_BASE+(UNIT_DBM*2),
EN_PROMPT_FEET = EN_PROMPT_UNITS_BASE+(UNIT_FEET*2),
EN_PROMPT_KTS = EN_PROMPT_UNITS_BASE+(UNIT_KTS*2),
EN_PROMPT_HOURS = EN_PROMPT_UNITS_BASE+(UNIT_HOURS*2),
EN_PROMPT_MINUTES = EN_PROMPT_UNITS_BASE+(UNIT_MINUTES*2),
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),
EN_PROMPT_POINT_BASE = 160, //.0 - .9
};
#if defined(VOICE)
#if defined(CPUARM)
#define PUSH_UNIT_PROMPT(p, u) pushUnitPrompt((p), (u), id)
#define PUSH_UNIT_PROMPT(p, u) pushUnitPrompt((p), (u), id)
#else
#define PUSH_UNIT_PROMPT(p, u) pushUnitPrompt((p), (u))
#define PUSH_UNIT_PROMPT(p, u) pushUnitPrompt((p), (u))
#endif
PLAY_FUNCTION(pushUnitPrompt, int16_t number, uint8_t unitprompt)
@@ -86,10 +86,10 @@ PLAY_FUNCTION(pushUnitPrompt, int16_t number, uint8_t unitprompt)
PUSH_NUMBER_PROMPT(unitprompt+1);
}
PLAY_FUNCTION(playNumber, getvalue_t number, uint8_t unit, uint8_t att)
I18N_PLAY_FUNCTION(en, playNumber, getvalue_t number, uint8_t unit, uint8_t att)
{
if (number < 0) {
PUSH_NUMBER_PROMPT(PROMPT_MINUS);
PUSH_NUMBER_PROMPT(EN_PROMPT_MINUS);
number = -number;
}
@@ -110,7 +110,7 @@ PLAY_FUNCTION(playNumber, getvalue_t number, uint8_t unit, uint8_t att)
div_t qr = div(number, 10);
if (qr.rem) {
PLAY_NUMBER(qr.quot, 0, 0);
PUSH_NUMBER_PROMPT(PROMPT_POINT_BASE + qr.rem);
PUSH_NUMBER_PROMPT(EN_PROMPT_POINT_BASE + qr.rem);
number = -1;
}
else {
@@ -122,30 +122,30 @@ PLAY_FUNCTION(playNumber, getvalue_t number, uint8_t unit, uint8_t att)
if (number >= 1000) {
PLAY_NUMBER(number / 1000, 0, 0);
PUSH_NUMBER_PROMPT(PROMPT_THOUSAND);
PUSH_NUMBER_PROMPT(EN_PROMPT_THOUSAND);
number %= 1000;
if (number == 0)
number = -1;
}
if (number >= 100) {
PUSH_NUMBER_PROMPT(PROMPT_HUNDRED + (number/100)-1);
PUSH_NUMBER_PROMPT(EN_PROMPT_HUNDRED + (number/100)-1);
number %= 100;
if (number == 0)
number = -1;
}
if (number >= 0) {
PUSH_NUMBER_PROMPT(PROMPT_ZERO + number);
PUSH_NUMBER_PROMPT(EN_PROMPT_ZERO + number);
}
if (unit) {
PUSH_UNIT_PROMPT(tmp, (PROMPT_UNITS_BASE+((unit-1)*2)));
PUSH_UNIT_PROMPT(tmp, (+((unit-1)*2)));
}
}
PLAY_FUNCTION(playDuration, int16_t seconds)
I18N_PLAY_FUNCTION(en, playDuration, int16_t seconds)
{
if (seconds < 0) {
PUSH_NUMBER_PROMPT(PROMPT_MINUS);
PUSH_NUMBER_PROMPT(EN_PROMPT_MINUS);
seconds = -seconds;
}
@@ -160,7 +160,7 @@ PLAY_FUNCTION(playDuration, int16_t seconds)
if (tmp > 0) {
PLAY_NUMBER(tmp, UNIT_MINUTES+1 , 0);
if (seconds > 0)
PUSH_NUMBER_PROMPT(PROMPT_AND);
PUSH_NUMBER_PROMPT(EN_PROMPT_AND);
}
if (seconds > 0) {
@@ -168,4 +168,6 @@ PLAY_FUNCTION(playDuration, int16_t seconds)
}
}
LANGUAGE_PACK_DECLARE_DEFAULT(en, "english");
#endif
+78 -76
View File
@@ -23,79 +23,79 @@
#include "../opentx.h"
enum FrenchPrompts {
PROMPT_NUMBERS_BASE = 0,
PROMPT_ZERO = PROMPT_NUMBERS_BASE+0,
PROMPT_CENT = PROMPT_NUMBERS_BASE+100,
PROMPT_DEUX_CENT = PROMPT_CENT+1,
PROMPT_MILLE = PROMPT_CENT+9,
FR_PROMPT_NUMBERS_BASE = 0,
FR_PROMPT_ZERO = FR_PROMPT_NUMBERS_BASE+0,
FR_PROMPT_CENT = FR_PROMPT_NUMBERS_BASE+100,
FR_PROMPT_DEUX_CENT = FR_PROMPT_CENT+1,
FR_PROMPT_MILLE = FR_PROMPT_CENT+9,
PROMPT_UNE = 110,
PROMPT_ONZE,
PROMPT_VINGT_ET_UNE,
PROMPT_TRENTE_ET_UNE,
PROMPT_QUARANTE_ET_UNE,
PROMPT_CINQUANTE_ET_UNE,
PROMPT_SOIXANTE_ET_UNE,
PROMPT_SOIXANTE_ET_ONZE,
PROMPT_QUATRE_VINGT_UNE,
FR_PROMPT_UNE = 110,
FR_PROMPT_ONZE,
FR_PROMPT_VINGT_ET_UNE,
FR_PROMPT_TRENTE_ET_UNE,
FR_PROMPT_QUARANTE_ET_UNE,
FR_PROMPT_CINQUANTE_ET_UNE,
FR_PROMPT_SOIXANTE_ET_UNE,
FR_PROMPT_SOIXANTE_ET_ONZE,
FR_PROMPT_QUATRE_VINGT_UNE,
PROMPT_VIRGULE = 119,
PROMPT_ET = 120,
PROMPT_MOINS = 121,
FR_PROMPT_VIRGULE = 119,
FR_PROMPT_ET = 120,
FR_PROMPT_MOINS = 121,
PROMPT_UNITS_BASE = 125,
PROMPT_VOLTS = PROMPT_UNITS_BASE+UNIT_VOLTS,
PROMPT_AMPS = PROMPT_UNITS_BASE+UNIT_AMPS,
PROMPT_METERS_PER_SECOND = PROMPT_UNITS_BASE+UNIT_METERS_PER_SECOND,
PROMPT_SPARE1 = PROMPT_UNITS_BASE+UNIT_RAW,
PROMPT_KMH = PROMPT_UNITS_BASE+UNIT_KMH,
PROMPT_METERS = PROMPT_UNITS_BASE+UNIT_METERS,
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_HEURE = PROMPT_UNITS_BASE+UNIT_HOURS,
PROMPT_MINUTE = PROMPT_UNITS_BASE+UNIT_MINUTES,
PROMPT_SECONDE = PROMPT_UNITS_BASE+UNIT_SECONDS,
FR_PROMPT_UNITS_BASE = 125,
FR_PROMPT_VOLTS = FR_PROMPT_UNITS_BASE+UNIT_VOLTS,
FR_PROMPT_AMPS = FR_PROMPT_UNITS_BASE+UNIT_AMPS,
FR_PROMPT_METERS_PER_SECOND = FR_PROMPT_UNITS_BASE+UNIT_METERS_PER_SECOND,
FR_PROMPT_SPARE1 = FR_PROMPT_UNITS_BASE+UNIT_RAW,
FR_PROMPT_KMH = FR_PROMPT_UNITS_BASE+UNIT_KMH,
FR_PROMPT_METERS = FR_PROMPT_UNITS_BASE+UNIT_METERS,
FR_PROMPT_DEGREES = FR_PROMPT_UNITS_BASE+UNIT_DEGREES,
FR_PROMPT_PERCENT = FR_PROMPT_UNITS_BASE+UNIT_PERCENT,
FR_PROMPT_MILLIAMPS = FR_PROMPT_UNITS_BASE+UNIT_MILLIAMPS,
FR_PROMPT_MAH = FR_PROMPT_UNITS_BASE+UNIT_MAH,
FR_PROMPT_WATTS = FR_PROMPT_UNITS_BASE+UNIT_WATTS,
FR_PROMPT_FEET = FR_PROMPT_UNITS_BASE+UNIT_FEET,
FR_PROMPT_KTS = FR_PROMPT_UNITS_BASE+UNIT_KTS,
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,
PROMPT_LABELS_BASE = 145,
PROMPT_TIMER1 = PROMPT_LABELS_BASE+TELEM_TM1,
PROMPT_TIMER2 = PROMPT_LABELS_BASE+TELEM_TM2,
PROMPT_RSSI_TX = PROMPT_LABELS_BASE+TELEM_RSSI_TX,
PROMPT_RSSI_RX = PROMPT_LABELS_BASE+TELEM_RSSI_RX,
PROMPT_A1 = PROMPT_LABELS_BASE+TELEM_A1,
PROMPT_A2 = PROMPT_LABELS_BASE+TELEM_A2,
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,
FR_PROMPT_LABELS_BASE = 145,
FR_PROMPT_TIMER1 = FR_PROMPT_LABELS_BASE+TELEM_TM1,
FR_PROMPT_TIMER2 = FR_PROMPT_LABELS_BASE+TELEM_TM2,
FR_PROMPT_RSSI_TX = FR_PROMPT_LABELS_BASE+TELEM_RSSI_TX,
FR_PROMPT_RSSI_RX = FR_PROMPT_LABELS_BASE+TELEM_RSSI_RX,
FR_PROMPT_A1 = FR_PROMPT_LABELS_BASE+TELEM_A1,
FR_PROMPT_A2 = FR_PROMPT_LABELS_BASE+TELEM_A2,
FR_PROMPT_ALTITUDE = FR_PROMPT_LABELS_BASE+TELEM_ALT,
FR_PROMPT_RPM = FR_PROMPT_LABELS_BASE+TELEM_RPM,
FR_PROMPT_ESSENCE = FR_PROMPT_LABELS_BASE+TELEM_FUEL,
FR_PROMPT_T1 = FR_PROMPT_LABELS_BASE+TELEM_T1,
FR_PROMPT_T2 = FR_PROMPT_LABELS_BASE+TELEM_T2,
FR_PROMPT_VITESSE = FR_PROMPT_LABELS_BASE+TELEM_SPEED,
FR_PROMPT_DISTANCE = FR_PROMPT_LABELS_BASE+TELEM_DIST,
FR_PROMPT_GPSALTITUDE = FR_PROMPT_LABELS_BASE+TELEM_GPSALT,
FR_PROMPT_ELEMENTS_LIPO = FR_PROMPT_LABELS_BASE+TELEM_CELL,
FR_PROMPT_TOTAL_LIPO = FR_PROMPT_LABELS_BASE+TELEM_CELLS_SUM,
FR_PROMPT_VFAS = FR_PROMPT_LABELS_BASE+TELEM_VFAS,
FR_PROMPT_COURANT = FR_PROMPT_LABELS_BASE+TELEM_CURRENT,
FR_PROMPT_CONSOMMATION = FR_PROMPT_LABELS_BASE+TELEM_CONSUMPTION,
FR_PROMPT_PUISSANCE = FR_PROMPT_LABELS_BASE+TELEM_POWER,
FR_PROMPT_ACCELx = FR_PROMPT_LABELS_BASE+TELEM_ACCx,
FR_PROMPT_ACCELy = FR_PROMPT_LABELS_BASE+TELEM_ACCy,
FR_PROMPT_ACCELz = FR_PROMPT_LABELS_BASE+TELEM_ACCz,
FR_PROMPT_HDG = FR_PROMPT_LABELS_BASE+TELEM_HDG,
FR_PROMPT_VARIO = FR_PROMPT_LABELS_BASE+TELEM_VSPD,
PROMPT_VIRGULE_BASE = 180, //,0 - ,9
FR_PROMPT_VIRGULE_BASE = 180, //,0 - ,9
};
#if defined(VOICE)
#define FEMININ 0x80
PLAY_FUNCTION(playNumber, getvalue_t number, uint8_t unit, uint8_t att)
I18N_PLAY_FUNCTION(fr, playNumber, getvalue_t number, uint8_t unit, uint8_t att)
{
/* if digit >= 1000000000:
temp_digit, digit = divmod(digit, 1000000000)
@@ -108,7 +108,7 @@ PLAY_FUNCTION(playNumber, getvalue_t number, uint8_t unit, uint8_t att)
*/
if (number < 0) {
PUSH_NUMBER_PROMPT(PROMPT_MOINS);
PUSH_NUMBER_PROMPT(FR_PROMPT_MOINS);
number = -number;
}
@@ -129,7 +129,7 @@ PLAY_FUNCTION(playNumber, getvalue_t number, uint8_t unit, uint8_t att)
div_t qr = div(number, 10);
if (qr.rem) {
PLAY_NUMBER(qr.quot, 0, 0);
PUSH_NUMBER_PROMPT(PROMPT_VIRGULE_BASE + qr.rem);
PUSH_NUMBER_PROMPT(FR_PROMPT_VIRGULE_BASE + qr.rem);
number = -1;
}
else {
@@ -140,35 +140,35 @@ PLAY_FUNCTION(playNumber, getvalue_t number, uint8_t unit, uint8_t att)
if (number >= 1000) {
if (number >= 2000)
PLAY_NUMBER(number / 1000, 0, 0);
PUSH_NUMBER_PROMPT(PROMPT_MILLE);
PUSH_NUMBER_PROMPT(FR_PROMPT_MILLE);
number %= 1000;
if (number == 0)
number = -1;
}
if (number >= 100) {
if (number >= 200)
PUSH_NUMBER_PROMPT(PROMPT_ZERO + number/100);
PUSH_NUMBER_PROMPT(PROMPT_CENT);
PUSH_NUMBER_PROMPT(FR_PROMPT_ZERO + number/100);
PUSH_NUMBER_PROMPT(FR_PROMPT_CENT);
number %= 100;
if (number == 0)
number = -1;
}
if (((number % 10) == 1) && number < 90 && (att & FEMININ)) {
PUSH_NUMBER_PROMPT(PROMPT_UNE+(number/10));
PUSH_NUMBER_PROMPT(FR_PROMPT_UNE+(number/10));
}
else if (number >= 0) {
PUSH_NUMBER_PROMPT(PROMPT_ZERO+number);
PUSH_NUMBER_PROMPT(FR_PROMPT_ZERO+number);
}
if (unit) {
PUSH_NUMBER_PROMPT(PROMPT_UNITS_BASE+unit-1);
PUSH_NUMBER_PROMPT(FR_PROMPT_UNITS_BASE+unit-1);
}
}
PLAY_FUNCTION(playDuration, int16_t seconds)
I18N_PLAY_FUNCTION(fr, playDuration, int16_t seconds)
{
if (seconds < 0) {
PUSH_NUMBER_PROMPT(PROMPT_MOINS);
PUSH_NUMBER_PROMPT(FR_PROMPT_MOINS);
seconds = -seconds;
}
@@ -176,22 +176,24 @@ PLAY_FUNCTION(playDuration, int16_t seconds)
seconds %= 3600;
if (tmp > 0) {
PLAY_NUMBER(tmp, 0, FEMININ);
PUSH_NUMBER_PROMPT(PROMPT_HEURE);
PUSH_NUMBER_PROMPT(FR_PROMPT_HEURE);
}
tmp = seconds / 60;
seconds %= 60;
if (tmp > 0) {
PLAY_NUMBER(tmp, 0, FEMININ);
PUSH_NUMBER_PROMPT(PROMPT_MINUTE);
PUSH_NUMBER_PROMPT(FR_PROMPT_MINUTE);
if (seconds > 0)
PUSH_NUMBER_PROMPT(PROMPT_ET);
PUSH_NUMBER_PROMPT(FR_PROMPT_ET);
}
if (seconds > 0) {
PLAY_NUMBER(seconds, 0, FEMININ);
PUSH_NUMBER_PROMPT(PROMPT_SECONDE);
PUSH_NUMBER_PROMPT(FR_PROMPT_SECONDE);
}
}
LANGUAGE_PACK_DECLARE(fr, "french");
#endif
+79 -77
View File
@@ -23,69 +23,69 @@
#include "../opentx.h"
enum ItalianPrompts {
PROMPT_NUMBERS_BASE = 0,
PROMPT_ZERO = PROMPT_NUMBERS_BASE+0,
PROMPT_CENT = PROMPT_NUMBERS_BASE+100,
PROMPT_MILA = PROMPT_NUMBERS_BASE+101,
PROMPT_MILLE = PROMPT_NUMBERS_BASE+102,
PROMPT_VIRGOLA = 103,
PROMPT_UN,
PROMPT_E,
PROMPT_MENO,
PROMPT_ORA,
PROMPT_ORE,
PROMPT_MINUTO,
PROMPT_MINUTI,
PROMPT_SECONDO,
PROMPT_SECONDI,
IT_PROMPT_NUMBERS_BASE = 0,
IT_PROMPT_ZERO = IT_PROMPT_NUMBERS_BASE+0,
IT_PROMPT_CENT = IT_PROMPT_NUMBERS_BASE+100,
IT_PROMPT_MILA = IT_PROMPT_NUMBERS_BASE+101,
IT_PROMPT_MILLE = IT_PROMPT_NUMBERS_BASE+102,
IT_PROMPT_VIRGOLA = 103,
IT_PROMPT_UN,
IT_PROMPT_E,
IT_PROMPT_MENO,
IT_PROMPT_ORA,
IT_PROMPT_ORE,
IT_PROMPT_MINUTO,
IT_PROMPT_MINUTI,
IT_PROMPT_SECONDO,
IT_PROMPT_SECONDI,
PROMPT_UNITS_BASE = 113,
PROMPT_VOLTS = PROMPT_UNITS_BASE+UNIT_VOLTS,
PROMPT_AMPS = PROMPT_UNITS_BASE+UNIT_AMPS,
PROMPT_METERS_PER_SECOND = PROMPT_UNITS_BASE+UNIT_METERS_PER_SECOND,
PROMPT_SPARE1 = PROMPT_UNITS_BASE+UNIT_RAW,
PROMPT_KMH = PROMPT_UNITS_BASE+UNIT_KMH,
PROMPT_METERS = PROMPT_UNITS_BASE+UNIT_METERS,
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,
IT_PROMPT_UNITS_BASE = 113,
IT_PROMPT_VOLTS = IT_PROMPT_UNITS_BASE+UNIT_VOLTS,
IT_PROMPT_AMPS = IT_PROMPT_UNITS_BASE+UNIT_AMPS,
IT_PROMPT_METERS_PER_SECOND = IT_PROMPT_UNITS_BASE+UNIT_METERS_PER_SECOND,
IT_PROMPT_SPARE1 = IT_PROMPT_UNITS_BASE+UNIT_RAW,
IT_PROMPT_KMH = IT_PROMPT_UNITS_BASE+UNIT_KMH,
IT_PROMPT_METERS = IT_PROMPT_UNITS_BASE+UNIT_METERS,
IT_PROMPT_DEGREES = IT_PROMPT_UNITS_BASE+UNIT_DEGREES,
IT_PROMPT_PERCENT = IT_PROMPT_UNITS_BASE+UNIT_PERCENT,
IT_PROMPT_MILLIAMPS = IT_PROMPT_UNITS_BASE+UNIT_MILLIAMPS,
IT_PROMPT_MAH = IT_PROMPT_UNITS_BASE+UNIT_MAH,
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,
PROMPT_LABELS_BASE = 131,
PROMPT_TIMER1 = PROMPT_LABELS_BASE+TELEM_TM1,
PROMPT_TIMER2 = PROMPT_LABELS_BASE+TELEM_TM2,
PROMPT_RSSI_TX = PROMPT_LABELS_BASE+TELEM_RSSI_TX,
PROMPT_RSSI_RX = PROMPT_LABELS_BASE+TELEM_RSSI_RX,
PROMPT_A1 = PROMPT_LABELS_BASE+TELEM_A1,
PROMPT_A2 = PROMPT_LABELS_BASE+TELEM_A2,
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,
IT_PROMPT_LABELS_BASE = 131,
IT_PROMPT_TIMER1 = IT_PROMPT_LABELS_BASE+TELEM_TM1,
IT_PROMPT_TIMER2 = IT_PROMPT_LABELS_BASE+TELEM_TM2,
IT_PROMPT_RSSI_TX = IT_PROMPT_LABELS_BASE+TELEM_RSSI_TX,
IT_PROMPT_RSSI_RX = IT_PROMPT_LABELS_BASE+TELEM_RSSI_RX,
IT_PROMPT_A1 = IT_PROMPT_LABELS_BASE+TELEM_A1,
IT_PROMPT_A2 = IT_PROMPT_LABELS_BASE+TELEM_A2,
IT_PROMPT_ALTITUDE = IT_PROMPT_LABELS_BASE+TELEM_ALT,
IT_PROMPT_RPM = IT_PROMPT_LABELS_BASE+TELEM_RPM,
IT_PROMPT_ESSENCE = IT_PROMPT_LABELS_BASE+TELEM_FUEL,
IT_PROMPT_T1 = IT_PROMPT_LABELS_BASE+TELEM_T1,
IT_PROMPT_T2 = IT_PROMPT_LABELS_BASE+TELEM_T2,
IT_PROMPT_VITESSE = IT_PROMPT_LABELS_BASE+TELEM_SPEED,
IT_PROMPT_DISTANCE = IT_PROMPT_LABELS_BASE+TELEM_DIST,
IT_PROMPT_GPSALTITUDE = IT_PROMPT_LABELS_BASE+TELEM_GPSALT,
IT_PROMPT_ELEMENTS_LIPO = IT_PROMPT_LABELS_BASE+TELEM_CELL,
IT_PROMPT_TOTAL_LIPO = IT_PROMPT_LABELS_BASE+TELEM_CELLS_SUM,
IT_PROMPT_VFAS = IT_PROMPT_LABELS_BASE+TELEM_VFAS,
IT_PROMPT_COURANT = IT_PROMPT_LABELS_BASE+TELEM_CURRENT,
IT_PROMPT_CONSOMMATION = IT_PROMPT_LABELS_BASE+TELEM_CONSUMPTION,
IT_PROMPT_PUISSANCE = IT_PROMPT_LABELS_BASE+TELEM_POWER,
IT_PROMPT_ACCELx = IT_PROMPT_LABELS_BASE+TELEM_ACCx,
IT_PROMPT_ACCELy = IT_PROMPT_LABELS_BASE+TELEM_ACCy,
IT_PROMPT_ACCELz = IT_PROMPT_LABELS_BASE+TELEM_ACCz,
IT_PROMPT_HDG = IT_PROMPT_LABELS_BASE+TELEM_HDG,
IT_PROMPT_VARIO = IT_PROMPT_LABELS_BASE+TELEM_VSPD,
};
#if defined(VOICE)
PLAY_FUNCTION(playNumber, getvalue_t number, uint8_t unit, uint8_t att)
I18N_PLAY_FUNCTION(it, playNumber, getvalue_t number, uint8_t unit, uint8_t att)
{
/* if digit >= 1000000000:
temp_digit, digit = divmod(digit, 1000000000)
@@ -98,7 +98,7 @@ PLAY_FUNCTION(playNumber, getvalue_t number, uint8_t unit, uint8_t att)
*/
if (number < 0) {
PUSH_NUMBER_PROMPT(PROMPT_MENO);
PUSH_NUMBER_PROMPT(IT_PROMPT_MENO);
number = -number;
}
@@ -118,9 +118,9 @@ PLAY_FUNCTION(playNumber, getvalue_t number, uint8_t unit, uint8_t att)
div_t qr = div(number, (mode == 1 ? 10 : 100));
if (qr.rem > 0) {
PLAY_NUMBER(qr.quot, 0, 0);
PUSH_NUMBER_PROMPT(PROMPT_VIRGOLA);
PUSH_NUMBER_PROMPT(IT_PROMPT_VIRGOLA);
if (mode==2 && qr.rem < 10)
PUSH_NUMBER_PROMPT(PROMPT_ZERO);
PUSH_NUMBER_PROMPT(IT_PROMPT_ZERO);
PLAY_NUMBER(qr.rem, unit, 0);
}
else {
@@ -132,9 +132,9 @@ PLAY_FUNCTION(playNumber, getvalue_t number, uint8_t unit, uint8_t att)
if (number >= 1000) {
if (number >= 2000) {
PLAY_NUMBER(number / 1000, 0, 0);
PUSH_NUMBER_PROMPT(PROMPT_MILA);
PUSH_NUMBER_PROMPT(IT_PROMPT_MILA);
} else {
PUSH_NUMBER_PROMPT(PROMPT_MILLE);
PUSH_NUMBER_PROMPT(IT_PROMPT_MILLE);
}
number %= 1000;
if (number == 0)
@@ -142,23 +142,23 @@ PLAY_FUNCTION(playNumber, getvalue_t number, uint8_t unit, uint8_t att)
}
if (number >= 100) {
if (number >= 200)
PUSH_NUMBER_PROMPT(PROMPT_ZERO + number/100);
PUSH_NUMBER_PROMPT(PROMPT_CENT);
PUSH_NUMBER_PROMPT(IT_PROMPT_ZERO + number/100);
PUSH_NUMBER_PROMPT(IT_PROMPT_CENT);
number %= 100;
if (number == 0)
number = -1;
}
PUSH_NUMBER_PROMPT(PROMPT_ZERO+number);
PUSH_NUMBER_PROMPT(IT_PROMPT_ZERO+number);
if (unit) {
PUSH_NUMBER_PROMPT(PROMPT_UNITS_BASE+unit-1);
PUSH_NUMBER_PROMPT(IT_PROMPT_UNITS_BASE+unit-1);
}
}
PLAY_FUNCTION(playDuration, int16_t seconds)
I18N_PLAY_FUNCTION(it, playDuration, int16_t seconds)
{
if (seconds < 0) {
PUSH_NUMBER_PROMPT(PROMPT_MENO);
PUSH_NUMBER_PROMPT(IT_PROMPT_MENO);
seconds = -seconds;
}
@@ -169,10 +169,10 @@ PLAY_FUNCTION(playDuration, int16_t seconds)
ore=tmp;
if (tmp > 1) {
PLAY_NUMBER(tmp, 0, 0);
PUSH_NUMBER_PROMPT(PROMPT_ORE);
PUSH_NUMBER_PROMPT(IT_PROMPT_ORE);
} else {
PUSH_NUMBER_PROMPT(PROMPT_UN);
PUSH_NUMBER_PROMPT(PROMPT_ORA);
PUSH_NUMBER_PROMPT(IT_PROMPT_UN);
PUSH_NUMBER_PROMPT(IT_PROMPT_ORA);
}
}
@@ -181,21 +181,23 @@ PLAY_FUNCTION(playDuration, int16_t seconds)
if (tmp > 0 || ore >0) {
if (tmp != 1) {
PLAY_NUMBER(tmp, 0, 0);
PUSH_NUMBER_PROMPT(PROMPT_MINUTI);
PUSH_NUMBER_PROMPT(IT_PROMPT_MINUTI);
} else {
PUSH_NUMBER_PROMPT(PROMPT_UN);
PUSH_NUMBER_PROMPT(PROMPT_MINUTO);
PUSH_NUMBER_PROMPT(IT_PROMPT_UN);
PUSH_NUMBER_PROMPT(IT_PROMPT_MINUTO);
}
PUSH_NUMBER_PROMPT(PROMPT_E);
PUSH_NUMBER_PROMPT(IT_PROMPT_E);
}
if (seconds != 1) {
PLAY_NUMBER(seconds, 0, 0);
PUSH_NUMBER_PROMPT(PROMPT_SECONDI);
PUSH_NUMBER_PROMPT(IT_PROMPT_SECONDI);
} else {
PUSH_NUMBER_PROMPT(PROMPT_UN);
PUSH_NUMBER_PROMPT(PROMPT_SECONDO);
PUSH_NUMBER_PROMPT(IT_PROMPT_UN);
PUSH_NUMBER_PROMPT(IT_PROMPT_SECONDO);
}
}
LANGUAGE_PACK_DECLARE(it, "italian");
#endif