Different numbers for Voice Prompts
Diff functions in Custom Switches
This commit is contained in:
@@ -31,9 +31,10 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#define PROMPT_SYSTEM_BASE 170
|
||||
#define PROMPT_CUSTOM_BASE 200
|
||||
#define PROMPT_SYSTEM_BASE 230
|
||||
#define PROMPT_CUSTOM_BASE 256
|
||||
|
||||
#define pushCustomPrompt(p) pushPrompt(PROMPT_CUSTOM_BASE+v)
|
||||
extern void pushPrompt(uint16_t prompt);
|
||||
extern bool isPlaying();
|
||||
|
||||
|
||||
+2
-1
@@ -403,7 +403,8 @@ bool check(uint8_t event, uint8_t curr, const MenuFuncP *menuTab, uint8_t menuTa
|
||||
break;
|
||||
}
|
||||
if (m_posVert==0 || !menuTab) {
|
||||
popMenu(); //beeps itself
|
||||
popMenu(); // beeps itself
|
||||
return false;
|
||||
}
|
||||
else {
|
||||
AUDIO_MENUS();
|
||||
|
||||
+68
-62
@@ -2278,11 +2278,22 @@ void menuProcCustomSwitchOne(uint8_t event)
|
||||
putsSwitches(CSW_2ND_COLUMN, y, cs->v2, attr);
|
||||
v2_min = SWITCH_OFF; v2_max = SWITCH_ON;
|
||||
}
|
||||
else if (cstate == CS_VOFS) {
|
||||
else if (cstate == CS_VCOMP) {
|
||||
putsChnRaw(CSW_2ND_COLUMN, y, cs->v2, attr);
|
||||
}
|
||||
else {
|
||||
#if defined(FRSKY)
|
||||
if (cs->v1 > NUM_XCHNCSW-NUM_TELEMETRY) {
|
||||
putsTelemetryChannel(CSW_2ND_COLUMN, y, cs->v1 - (NUM_XCHNCSW-NUM_TELEMETRY+1), convertTelemValue(cs->v1 - (NUM_XCHNCSW-NUM_TELEMETRY), 128+cs->v2), attr|LEFT);
|
||||
v2_min = -128; v2_max = maxTelemValue(cs->v1 - (NUM_XCHNCSW-NUM_TELEMETRY)) - 128;
|
||||
putsTelemetryChannel(CSW_2ND_COLUMN, y, cs->v1 - (NUM_XCHNCSW-NUM_TELEMETRY+1), cstate==CS_VOFS ? convertTelemValue(cs->v1 - (NUM_XCHNCSW-NUM_TELEMETRY), 128+cs->v2) : cs->v2, attr|LEFT);
|
||||
v2_max = maxTelemValue(cs->v1 - (NUM_XCHNCSW-NUM_TELEMETRY));
|
||||
if (cstate == CS_VOFS) {
|
||||
v2_min = -128;
|
||||
v2_max -= 128;
|
||||
}
|
||||
else {
|
||||
v2_max = min((uint8_t)127, (uint8_t)v2_max);
|
||||
v2_min = -v2_max;
|
||||
}
|
||||
if (cs->v2 > v2_max) {
|
||||
cs->v2 = v2_max;
|
||||
eeDirty(EE_MODEL);
|
||||
@@ -2295,9 +2306,7 @@ void menuProcCustomSwitchOne(uint8_t event)
|
||||
lcd_outdezAtt(CSW_2ND_COLUMN, y, cs->v2, attr|LEFT);
|
||||
}
|
||||
}
|
||||
else {
|
||||
putsChnRaw(CSW_2ND_COLUMN, y, cs->v2, attr);
|
||||
}
|
||||
|
||||
if (attr) {
|
||||
CHECK_INCDEC_MODELVAR(event, cs->v2, v2_min, v2_max);
|
||||
}
|
||||
@@ -2325,7 +2334,7 @@ void menuProcCustomSwitchOne(uint8_t event)
|
||||
|
||||
void menuProcCustomSwitches(uint8_t event)
|
||||
{
|
||||
MENU(STR_MENUCUSTOMSWITCHES, menuTabModel, e_CustomSwitches, NUM_CSW+1, {0, 2/*repeated...*/});
|
||||
SIMPLE_MENU(STR_MENUCUSTOMSWITCHES, menuTabModel, e_CustomSwitches, NUM_CSW+1);
|
||||
|
||||
uint8_t y = 0;
|
||||
uint8_t k = 0;
|
||||
@@ -2359,39 +2368,31 @@ void menuProcCustomSwitches(uint8_t event)
|
||||
|
||||
if (cs->func > 0) {
|
||||
// CSW func
|
||||
lcd_putsiAtt(4*FW - 2, y, STR_VCSWFUNC, cs->func, 0);
|
||||
lcd_putsiAtt(4*FW - 4, y, STR_VCSWFUNC, cs->func, 0);
|
||||
|
||||
// CSW params
|
||||
uint8_t cstate = CS_STATE(cs->func);
|
||||
|
||||
if (cstate == CS_VOFS)
|
||||
{
|
||||
putsChnRaw(12*FW-6, y, cs->v1, 0);
|
||||
if (cstate == CS_VBOOL) {
|
||||
putsSwitches(12*FW-4, y, cs->v1, 0);
|
||||
putsSwitches(17*FW, y, cs->v2, 0);
|
||||
}
|
||||
else if (cstate == CS_VCOMP) {
|
||||
putsChnRaw(12*FW-4, y, cs->v1, 0);
|
||||
putsChnRaw(17*FW, y, cs->v2, 0);
|
||||
}
|
||||
else {
|
||||
putsChnRaw(12*FW-4, y, cs->v1, 0);
|
||||
|
||||
#if defined(FRSKY)
|
||||
if (cs->v1 > NUM_XCHNCSW-NUM_TELEMETRY) {
|
||||
putsTelemetryChannel(19*FW, y, cs->v1 - (NUM_XCHNCSW-NUM_TELEMETRY+1), convertTelemValue(cs->v1 - (NUM_XCHNCSW-NUM_TELEMETRY), 128+cs->v2), 0);
|
||||
int8_t v2_max = maxTelemValue(cs->v1 - (NUM_XCHNCSW-NUM_TELEMETRY)) - 128;
|
||||
if (cs->v2 > v2_max) {
|
||||
cs->v2 = v2_max;
|
||||
eeDirty(EE_MODEL);
|
||||
}
|
||||
}
|
||||
else
|
||||
if (cs->v1 > NUM_XCHNCSW-NUM_TELEMETRY) {
|
||||
putsTelemetryChannel(19*FW, y, cs->v1 - (NUM_XCHNCSW-NUM_TELEMETRY+1), cstate==CS_VOFS ? convertTelemValue(cs->v1 - (NUM_XCHNCSW-NUM_TELEMETRY), 128+cs->v2) : cs->v2, 0);
|
||||
}
|
||||
else
|
||||
#endif
|
||||
{
|
||||
lcd_outdezAtt(19*FW, y, cs->v2, 0);
|
||||
}
|
||||
}
|
||||
else if (cstate == CS_VBOOL)
|
||||
{
|
||||
putsSwitches(12*FW-6, y, cs->v1, 0);
|
||||
putsSwitches(17*FW, y, cs->v2, 0);
|
||||
}
|
||||
else // cstate == CS_COMP
|
||||
{
|
||||
putsChnRaw(12*FW-6, y, cs->v1, 0);
|
||||
putsChnRaw(17*FW, y, cs->v2, 0);
|
||||
{
|
||||
lcd_outdezAtt(19*FW, y, cs->v2, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2416,49 +2417,54 @@ void menuProcCustomSwitches(uint8_t event)
|
||||
putsSwitches(0, y, sw, getSwitch(sw, 0) ? BOLD : 0);
|
||||
|
||||
// CSW func
|
||||
lcd_putsiAtt(4*FW - 2, y, STR_VCSWFUNC, cs->func, m_posHorz==0 ? attr : 0);
|
||||
lcd_putsiAtt(4*FW - 4, y, STR_VCSWFUNC, cs->func, m_posHorz==0 ? attr : 0);
|
||||
|
||||
// CSW params
|
||||
uint8_t cstate = CS_STATE(cs->func);
|
||||
int8_t v1_min=0, v1_max=NUM_XCHNCSW, v2_min=0, v2_max=NUM_XCHNCSW;
|
||||
|
||||
if (cstate == CS_VOFS)
|
||||
{
|
||||
putsChnRaw(12*FW-6, y, cs->v1, (m_posHorz==1 ? attr : 0));
|
||||
if (cstate == CS_VBOOL) {
|
||||
putsSwitches(12*FW-4, y, cs->v1, m_posHorz==1 ? attr : 0);
|
||||
putsSwitches(17*FW, y, cs->v2, m_posHorz==2 ? attr : 0);
|
||||
v1_min = SWITCH_OFF; v1_max = SWITCH_ON;
|
||||
v2_min = SWITCH_OFF; v2_max = SWITCH_ON;
|
||||
}
|
||||
else if (cstate == CS_VCOMP) {
|
||||
putsChnRaw(12*FW-4, y, cs->v1, m_posHorz==1 ? attr : 0);
|
||||
putsChnRaw(17*FW, y, cs->v2, m_posHorz==2 ? attr : 0);
|
||||
}
|
||||
else {
|
||||
putsChnRaw(12*FW-4, y, cs->v1, (m_posHorz==1 ? attr : 0));
|
||||
|
||||
#if defined(FRSKY)
|
||||
if (cs->v1 > NUM_XCHNCSW-NUM_TELEMETRY) {
|
||||
putsTelemetryChannel(19*FW, y, cs->v1 - (NUM_XCHNCSW-NUM_TELEMETRY+1), convertTelemValue(cs->v1 - (NUM_XCHNCSW-NUM_TELEMETRY), 128+cs->v2), m_posHorz==2 ? attr : 0);
|
||||
v2_min = -128; v2_max = maxTelemValue(cs->v1 - (NUM_XCHNCSW-NUM_TELEMETRY)) - 128;
|
||||
if (cs->v2 > v2_max) {
|
||||
cs->v2 = v2_max;
|
||||
eeDirty(EE_MODEL);
|
||||
}
|
||||
if (cs->v1 > NUM_XCHNCSW-NUM_TELEMETRY) {
|
||||
putsTelemetryChannel(19*FW, y, cs->v1 - (NUM_XCHNCSW-NUM_TELEMETRY+1), cstate==CS_VOFS ? convertTelemValue(cs->v1 - (NUM_XCHNCSW-NUM_TELEMETRY), 128+cs->v2) : cs->v2, m_posHorz==2 ? attr : 0);
|
||||
v2_max = maxTelemValue(cs->v1 - (NUM_XCHNCSW-NUM_TELEMETRY));
|
||||
if (cstate == CS_VOFS) {
|
||||
v2_min = -128;
|
||||
v2_max -= 128;
|
||||
}
|
||||
else
|
||||
else {
|
||||
v2_max = min((uint8_t)127, (uint8_t)v2_max);
|
||||
v2_min = -v2_max;
|
||||
}
|
||||
if (cs->v2 > v2_max) {
|
||||
cs->v2 = v2_max;
|
||||
eeDirty(EE_MODEL);
|
||||
}
|
||||
}
|
||||
else
|
||||
#endif
|
||||
{
|
||||
lcd_outdezAtt(19*FW, y, cs->v2, m_posHorz==2 ? attr : 0);
|
||||
v2_min = -125; v2_max = 125;
|
||||
}
|
||||
}
|
||||
else if (cstate == CS_VBOOL)
|
||||
{
|
||||
putsSwitches(12*FW-6, y, cs->v1, m_posHorz==1 ? attr : 0);
|
||||
putsSwitches(17*FW, y, cs->v2, m_posHorz==2 ? attr : 0);
|
||||
v1_min = SWITCH_OFF; v1_max = SWITCH_ON;
|
||||
v2_min = SWITCH_OFF; v2_max = SWITCH_ON;
|
||||
}
|
||||
else // cstate == CS_COMP
|
||||
{
|
||||
putsChnRaw(12*FW-6, y, cs->v1, m_posHorz==1 ? attr : 0);
|
||||
putsChnRaw(17*FW, y, cs->v2, m_posHorz==2 ? attr : 0);
|
||||
{
|
||||
lcd_outdezAtt(19*FW, y, cs->v2, m_posHorz==2 ? attr : 0);
|
||||
v2_min = -125; v2_max = 125;
|
||||
}
|
||||
}
|
||||
|
||||
if ((s_editMode>0 || p1valdiff) && attr) {
|
||||
switch (m_posHorz) {
|
||||
case 0:
|
||||
CHECK_INCDEC_MODELVAR(event, cs->func, 0,CS_MAXF);
|
||||
CHECK_INCDEC_MODELVAR(event, cs->func, 0, CS_MAXF);
|
||||
if (cstate != CS_STATE(cs->func)) {
|
||||
cs->v1 = 0;
|
||||
cs->v2 = 0;
|
||||
|
||||
+54
-42
@@ -590,6 +590,8 @@ uint32_t delays[NUM_CSW];
|
||||
uint32_t durations[NUM_CSW];
|
||||
#endif
|
||||
|
||||
int16_t csLastValue[NUM_CSW];
|
||||
|
||||
bool __getSwitch(int8_t swtch)
|
||||
{
|
||||
bool result;
|
||||
@@ -646,43 +648,7 @@ bool __getSwitch(int8_t swtch)
|
||||
else {
|
||||
int16_t x = getValue(cs->v1-1);
|
||||
int16_t y;
|
||||
if (s == CS_VOFS) {
|
||||
#if defined(FRSKY)
|
||||
// Telemetry
|
||||
if (cs->v1 > CSW_CHOUT_BASE+NUM_CHNOUT) {
|
||||
if (frskyStreaming <= 0 && cs->v1 > CSW_CHOUT_BASE+NUM_CHNOUT+MAX_TIMERS)
|
||||
return swtch > 0 ? false : true;
|
||||
|
||||
y = convertTelemValue(cs->v1-(CSW_CHOUT_BASE+NUM_CHNOUT), 128+cs->v2);
|
||||
uint8_t idx = cs->v1-CSW_CHOUT_BASE-NUM_CHNOUT-TELEM_ALT;
|
||||
if (idx < THLD_MAX) {
|
||||
// Fill the threshold array
|
||||
barsThresholds[idx] = 128 + cs->v2;
|
||||
}
|
||||
}
|
||||
else
|
||||
#endif
|
||||
{
|
||||
y = calc100toRESX(cs->v2);
|
||||
}
|
||||
|
||||
switch (cs->func) {
|
||||
case CS_VPOS:
|
||||
result = (x>y);
|
||||
break;
|
||||
case CS_VNEG:
|
||||
result = (x<y);
|
||||
break;
|
||||
case CS_APOS:
|
||||
result = (abs(x)>y);
|
||||
break;
|
||||
// case CS_ANEG:
|
||||
default:
|
||||
result = (abs(x)<y);
|
||||
break;
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (s == CS_VCOMP) {
|
||||
y = getValue(cs->v2-1);
|
||||
|
||||
switch (cs->func) {
|
||||
@@ -707,6 +673,56 @@ bool __getSwitch(int8_t swtch)
|
||||
break;
|
||||
}
|
||||
}
|
||||
else {
|
||||
#if defined(FRSKY)
|
||||
// Telemetry
|
||||
if (cs->v1 > CSW_CHOUT_BASE+NUM_CHNOUT) {
|
||||
if (frskyStreaming <= 0 && cs->v1 > CSW_CHOUT_BASE+NUM_CHNOUT+MAX_TIMERS)
|
||||
return swtch > 0 ? false : true;
|
||||
if (s == CS_VOFS) {
|
||||
y = convertTelemValue(cs->v1-(CSW_CHOUT_BASE+NUM_CHNOUT), 128+cs->v2);
|
||||
uint8_t idx = cs->v1-CSW_CHOUT_BASE-NUM_CHNOUT-TELEM_ALT;
|
||||
if (idx < THLD_MAX) {
|
||||
// Fill the threshold array
|
||||
barsThresholds[idx] = 128 + cs->v2;
|
||||
}
|
||||
}
|
||||
else {
|
||||
y = cs->v2;
|
||||
}
|
||||
}
|
||||
else
|
||||
#endif
|
||||
{
|
||||
y = calc100toRESX(cs->v2);
|
||||
}
|
||||
|
||||
switch (cs->func) {
|
||||
case CS_VPOS:
|
||||
result = (x>y);
|
||||
break;
|
||||
case CS_VNEG:
|
||||
result = (x<y);
|
||||
break;
|
||||
case CS_APOS:
|
||||
result = (abs(x)>y);
|
||||
break;
|
||||
case CS_ANEG:
|
||||
result = (abs(x)<y);
|
||||
break;
|
||||
default:
|
||||
{
|
||||
int16_t diff = x - csLastValue[cs_idx];
|
||||
if (cs->func == CS_DIFFEGREATER)
|
||||
result = (y >= 0 ? (diff >= y) : (diff <= y));
|
||||
else
|
||||
result = (abs(diff) >= y);
|
||||
if (result)
|
||||
csLastValue[cs_idx] = x;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#if defined(PCBARM)
|
||||
@@ -1886,11 +1902,7 @@ void evalFunctions()
|
||||
if (tmr10ms - s_last_play >= 100) {
|
||||
s_last_play = tmr10ms;
|
||||
if (sd->func == FUNC_PLAY_TRACK)
|
||||
#if defined(TTS_CZ) && defined(PCBSTD)
|
||||
putVoiceQueueUpper(PROMPT_CUSTOM_BASE+sd->param);
|
||||
#else
|
||||
pushPrompt(PROMPT_CUSTOM_BASE+sd->param);
|
||||
#endif
|
||||
pushCustomPrompt(sd->param);
|
||||
else
|
||||
playValue(sd->param);
|
||||
}
|
||||
|
||||
+21
-16
@@ -365,26 +365,31 @@ extern Key keys[NUM_KEYS];
|
||||
#define SWASH_TYPE_90 4
|
||||
#define SWASH_TYPE_NUM 4
|
||||
|
||||
#define CS_OFF 0
|
||||
#define CS_VPOS 1 //v>offset
|
||||
#define CS_VNEG 2 //v<offset
|
||||
#define CS_APOS 3 //|v|>offset
|
||||
#define CS_ANEG 4 //|v|<offset
|
||||
#define CS_AND 5
|
||||
#define CS_OR 6
|
||||
#define CS_XOR 7
|
||||
#define CS_EQUAL 8
|
||||
#define CS_NEQUAL 9
|
||||
#define CS_GREATER 10
|
||||
#define CS_LESS 11
|
||||
#define CS_EGREATER 12
|
||||
#define CS_ELESS 13
|
||||
#define CS_MAXF 13 //max function
|
||||
enum CswFunctions {
|
||||
CS_OFF,
|
||||
CS_VPOS, // v>offset
|
||||
CS_VNEG, // v<offset
|
||||
CS_APOS, // |v|>offset
|
||||
CS_ANEG, // |v|<offset
|
||||
CS_AND,
|
||||
CS_OR,
|
||||
CS_XOR,
|
||||
CS_EQUAL,
|
||||
CS_NEQUAL,
|
||||
CS_GREATER,
|
||||
CS_LESS,
|
||||
CS_EGREATER,
|
||||
CS_ELESS,
|
||||
CS_DIFFEGREATER,
|
||||
CS_ADIFFEGREATER,
|
||||
CS_MAXF = CS_ADIFFEGREATER
|
||||
};
|
||||
|
||||
#define CS_VOFS 0
|
||||
#define CS_VBOOL 1
|
||||
#define CS_VCOMP 2
|
||||
#define CS_STATE(x) ((x)<CS_AND ? CS_VOFS : ((x)<CS_EQUAL ? CS_VBOOL : CS_VCOMP))
|
||||
#define CS_VDIFF 3
|
||||
#define CS_STATE(x) ((x)<CS_AND ? CS_VOFS : ((x)<CS_EQUAL ? CS_VBOOL : ((x)<CS_DIFFEGREATER ? CS_VCOMP : CS_VDIFF)))
|
||||
|
||||
#define SW_BASE SW_ThrCt
|
||||
#define SW_BASE_DIAG SW_ThrCt
|
||||
|
||||
+17
-4
@@ -34,8 +34,8 @@
|
||||
#include "../open9x.h"
|
||||
|
||||
struct t_voice Voice ;
|
||||
static uint8_t v_ctr ;
|
||||
uint8_t v_first[8] ;
|
||||
/* TODO why? static uint8_t v_ctr ;
|
||||
uint8_t v_first[8] ; */
|
||||
|
||||
void putVoiceQueueUpper( uint8_t value )
|
||||
{
|
||||
@@ -48,7 +48,19 @@ void putVoiceQueueUpper( uint8_t value )
|
||||
}
|
||||
}
|
||||
|
||||
void pushPrompt( uint8_t value )
|
||||
void pushCustomPrompt(uint8_t value)
|
||||
{
|
||||
struct t_voice *vptr ;
|
||||
vptr = voiceaddress() ;
|
||||
|
||||
if (vptr->VoiceQueueCount < VOICE_Q_LENGTH-1)
|
||||
{
|
||||
pushPrompt( 0xFF ) ;
|
||||
pushPrompt( value ) ;
|
||||
}
|
||||
}
|
||||
|
||||
void pushPrompt(uint8_t value)
|
||||
{
|
||||
#ifdef SIMU
|
||||
printf("playFile(\"%04d.ad4\")\n", value); fflush(stdout);
|
||||
@@ -62,10 +74,11 @@ void pushPrompt( uint8_t value )
|
||||
vptr->VoiceQueueInIndex &= (VOICE_Q_LENGTH - 1);
|
||||
vptr->VoiceQueueCount += 1;
|
||||
}
|
||||
/* TODO why?
|
||||
if (v_ctr < 8) {
|
||||
v_first[v_ctr] = value;
|
||||
v_ctr += 1;
|
||||
}
|
||||
} */
|
||||
}
|
||||
|
||||
struct t_voice *voiceaddress()
|
||||
|
||||
+4
-10
@@ -48,13 +48,8 @@
|
||||
#define V_WAIT_BUSY_OFF 4
|
||||
#define V_WAIT_BUSY_DELAY 5
|
||||
|
||||
#if defined(TTS_CZ) && defined(PCBSTD)
|
||||
#define PROMPT_SYSTEM_BASE 0
|
||||
#define PROMPT_CUSTOM_BASE 40
|
||||
#else
|
||||
#define PROMPT_SYSTEM_BASE 170
|
||||
#define PROMPT_CUSTOM_BASE 200
|
||||
#endif
|
||||
#define PROMPT_SYSTEM_BASE 230
|
||||
#define PROMPT_CUSTOM_BASE 256
|
||||
|
||||
struct t_voice
|
||||
{
|
||||
@@ -72,9 +67,8 @@ struct t_voice
|
||||
|
||||
void voice_process( void ) ;
|
||||
};
|
||||
#if defined(TTS_CZ)
|
||||
extern void putVoiceQueueUpper( uint8_t value );
|
||||
#endif
|
||||
|
||||
extern void pushCustomPrompt( uint8_t value );
|
||||
extern void pushPrompt( uint8_t value );
|
||||
extern struct t_voice *voiceaddress( void ) ;
|
||||
extern struct t_voice Voice ;
|
||||
|
||||
@@ -92,8 +92,8 @@
|
||||
#define LEN_VMIXTRIMS "\004"
|
||||
#define TR_VMIXTRIMS "VYP\0""ZAP\0""Sm\203r""V\212\207k""Plyn""K\206id"
|
||||
|
||||
#define LEN_VCSWFUNC "\007"
|
||||
#define TR_VCSWFUNC "----\0 ""v>ofs ""v<ofs ""|v|>ofs""|v|<ofs""AND ""OR ""XOR ""v1==v2 ""v1!=v2 ""v1>v2 ""v1<v2 ""v1>=v2 ""v1<=v2 "
|
||||
#define LEN_VCSWFUNC "\010"
|
||||
#define TR_VCSWFUNC "---\0 ""v>ofs\0 ""v<ofs\0 ""|v|>ofs\0""|v|<ofs\0""AND\0 ""OR\0 ""XOR\0 ""v1==v2\0 ""v1!=v2\0 ""v1>v2\0 ""v1<v2\0 ""v1>=v2\0 ""v1<=v2\0 ""d>=ofs\0 ""|d|>=ofs"
|
||||
|
||||
#define LEN_VFSWFUNC "\015"
|
||||
#if defined(VARIO)
|
||||
|
||||
@@ -92,8 +92,8 @@
|
||||
#define LEN_VMIXTRIMS "\003"
|
||||
#define TR_VMIXTRIMS "AUS""AN ""Rud""Ele""Thr""Ail"
|
||||
|
||||
#define LEN_VCSWFUNC "\007"
|
||||
#define TR_VCSWFUNC "----\0 ""v>ofs ""v<ofs ""|v|>ofs""|v|<ofs""AND ""OR ""XOR ""v1==v2 ""v1!=v2 ""v1>v2 ""v1<v2 ""v1>=v2 ""v1<=v2 "
|
||||
#define LEN_VCSWFUNC "\010"
|
||||
#define TR_VCSWFUNC "---\0 ""v>ofs\0 ""v<ofs\0 ""|v|>ofs\0""|v|<ofs\0""AND\0 ""OR\0 ""XOR\0 ""v1==v2\0 ""v1!=v2\0 ""v1>v2\0 ""v1<v2\0 ""v1>=v2\0 ""v1<=v2\0 ""d>=ofs\0 ""|d|>=ofs"
|
||||
|
||||
#define LEN_VFSWFUNC "\015"
|
||||
#if defined(VARIO)
|
||||
|
||||
@@ -92,8 +92,8 @@
|
||||
#define LEN_VMIXTRIMS "\003"
|
||||
#define TR_VMIXTRIMS "OFF""ON ""Rud""Ele""Thr""Ail"
|
||||
|
||||
#define LEN_VCSWFUNC "\007"
|
||||
#define TR_VCSWFUNC "---\0 ""v>ofs\0 ""v<ofs\0 ""|v|>ofs""|v|<ofs""AND ""OR ""XOR ""v1==v2 ""v1!=v2 ""v1>v2 ""v1<v2 ""v1>=v2 ""v1<=v2 "
|
||||
#define LEN_VCSWFUNC "\010"
|
||||
#define TR_VCSWFUNC "---\0 ""v>ofs\0 ""v<ofs\0 ""|v|>ofs\0""|v|<ofs\0""AND\0 ""OR\0 ""XOR\0 ""v1==v2\0 ""v1!=v2\0 ""v1>v2\0 ""v1<v2\0 ""v1>=v2\0 ""v1<=v2\0 ""d>=ofs\0 ""|d|>=ofs"
|
||||
|
||||
#define LEN_VFSWFUNC "\015"
|
||||
#if defined(VARIO)
|
||||
|
||||
@@ -87,8 +87,8 @@
|
||||
#define LEN_VMIXTRIMS "\003"
|
||||
#define TR_VMIXTRIMS "OFF""ON ""Dir""Prf""Gaz""Ail"
|
||||
|
||||
#define LEN_VCSWFUNC "\007"
|
||||
#define TR_VCSWFUNC "----\0 ""v>ofs ""v<ofs ""|v|>ofs""|v|<ofs""ET ""OU ""OU Excl""v1==v2 ""v1!=v2 ""v1>v2 ""v1<v2 ""v1>=v2 ""v1<=v2 "
|
||||
#define LEN_VCSWFUNC "\010"
|
||||
#define TR_VCSWFUNC "---\0 ""v>ofs\0 ""v<ofs\0 ""|v|>ofs\0""|v|<ofs\0""AND\0 ""OR\0 ""XOR\0 ""v1==v2\0 ""v1!=v2\0 ""v1>v2\0 ""v1<v2\0 ""v1>=v2\0 ""v1<=v2\0 ""d>=ofs\0 ""|d|>=ofs"
|
||||
|
||||
#define LEN_VFSWFUNC "\015"
|
||||
#if defined(VARIO)
|
||||
|
||||
@@ -92,8 +92,8 @@
|
||||
#define LEN_VMIXTRIMS "\003"
|
||||
#define TR_VMIXTRIMS "OFF""ON ""Rud""Ele""Thr""Ail"
|
||||
|
||||
#define LEN_VCSWFUNC "\007"
|
||||
#define TR_VCSWFUNC "----\0 ""v>ofs ""v<ofs ""|v|>ofs""|v|<ofs""AND ""OR ""XOR ""v1==v2 ""v1!=v2 ""v1>v2 ""v1<v2 ""v1>=v2 ""v1<=v2 "
|
||||
#define LEN_VCSWFUNC "\010"
|
||||
#define TR_VCSWFUNC "---\0 ""v>ofs\0 ""v<ofs\0 ""|v|>ofs\0""|v|<ofs\0""AND\0 ""OR\0 ""XOR\0 ""v1==v2\0 ""v1!=v2\0 ""v1>v2\0 ""v1<v2\0 ""v1>=v2\0 ""v1<=v2\0 ""d>=ofs\0 ""|d|>=ofs"
|
||||
|
||||
#define LEN_VFSWFUNC "\015"
|
||||
#if defined(VARIO)
|
||||
|
||||
@@ -87,8 +87,8 @@
|
||||
#define LEN_VMIXTRIMS "\003"
|
||||
#define TR_VMIXTRIMS "AV ""P\203 ""Rod""Hjd""Gas""Ske"
|
||||
|
||||
#define LEN_VCSWFUNC "\007"
|
||||
#define TR_VCSWFUNC " ---\0 "" X>Y "" X<Y "" (X)>Y "" (X)<Y "" AND "" OR "" XOR "" X=Y "" X!=Y "" X>Y "" X<Y "" X>=Y "" X<=Y "
|
||||
#define LEN_VCSWFUNC "\010"
|
||||
#define TR_VCSWFUNC " ---\0 "" X>Y "" X<Y "" (X)>Y "" (X)<Y "" AND "" OR "" XOR "" X=Y "" X!=Y "" X>Y "" X<Y "" X>=Y "" X<=Y ""D>=ofs\0 ""|D|>=ofs"
|
||||
|
||||
#define LEN_VFSWFUNC "\015"
|
||||
#if defined(VARIO)
|
||||
|
||||
+26
-19
@@ -37,23 +37,24 @@ enum FrenchPrompts {
|
||||
PROMPT_NUMBERS_BASE = 0,
|
||||
PROMPT_ZERO = PROMPT_NUMBERS_BASE+0,
|
||||
PROMPT_CENT = PROMPT_NUMBERS_BASE+100,
|
||||
PROMPT_MILLE = PROMPT_NUMBERS_BASE+101,
|
||||
PROMPT_DEUX_CENT = PROMPT_CENT+1,
|
||||
PROMPT_MILLE = PROMPT_CENT+9,
|
||||
|
||||
PROMPT_UNE = 102,
|
||||
PROMPT_ONZE = 103,
|
||||
PROMPT_VINGT_ET_UNE = 104,
|
||||
PROMPT_TRENTE_ET_UNE = 105,
|
||||
PROMPT_QUARANTE_ET_UNE = 106,
|
||||
PROMPT_CINQUANTE_ET_UNE = 107,
|
||||
PROMPT_SOIXANTE_ET_UNE = 108,
|
||||
PROMPT_SOIXANTE_ET_ONZE = 109,
|
||||
PROMPT_QUATRE_VINGT_UNE = 110,
|
||||
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,
|
||||
|
||||
PROMPT_VIRGULE = 116,
|
||||
PROMPT_ET = 117,
|
||||
PROMPT_MOINS = 118,
|
||||
PROMPT_VIRGULE = 119,
|
||||
PROMPT_ET = 120,
|
||||
PROMPT_MOINS = 121,
|
||||
|
||||
PROMPT_UNITS_BASE = 120,
|
||||
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,
|
||||
@@ -71,7 +72,7 @@ enum FrenchPrompts {
|
||||
PROMPT_MINUTE = PROMPT_UNITS_BASE+UNIT_MINUTES,
|
||||
PROMPT_SECONDE = PROMPT_UNITS_BASE+UNIT_SECONDS,
|
||||
|
||||
PROMPT_LABELS_BASE = 140,
|
||||
PROMPT_LABELS_BASE = 145,
|
||||
PROMPT_TIMER1 = PROMPT_LABELS_BASE+TELEM_TM1,
|
||||
PROMPT_TIMER2 = PROMPT_LABELS_BASE+TELEM_TM2,
|
||||
PROMPT_A1 = PROMPT_LABELS_BASE+TELEM_A1,
|
||||
@@ -97,7 +98,6 @@ enum FrenchPrompts {
|
||||
PROMPT_ACCELz = PROMPT_LABELS_BASE+TELEM_ACCz,
|
||||
PROMPT_HDG = PROMPT_LABELS_BASE+TELEM_HDG,
|
||||
PROMPT_VARIO = PROMPT_LABELS_BASE+TELEM_VSPD,
|
||||
|
||||
};
|
||||
|
||||
#if defined(VOICE)
|
||||
@@ -119,9 +119,16 @@ void playNumber(int16_t number, uint8_t unit, uint8_t att)
|
||||
int8_t mode = MODE(att);
|
||||
if (mode > 0) {
|
||||
div_t qr = div(number, (mode == 1 ? 10 : 100));
|
||||
playNumber(qr.quot);
|
||||
pushPrompt(PROMPT_VIRGULE);
|
||||
playNumber(qr.rem, unit);
|
||||
if (qr.rem > 0) {
|
||||
playNumber(qr.quot);
|
||||
pushPrompt(PROMPT_VIRGULE);
|
||||
if (mode==2 && qr.rem < 10)
|
||||
pushPrompt(PROMPT_ZERO);
|
||||
playNumber(qr.rem, unit);
|
||||
}
|
||||
else {
|
||||
playNumber(qr.quot, unit);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user