diff --git a/radio/src/audio_arm.h b/radio/src/audio_arm.h index c60f774cf..a44dd5483 100644 --- a/radio/src/audio_arm.h +++ b/radio/src/audio_arm.h @@ -306,8 +306,8 @@ void audioStart(); #define AUDIO_ERROR() AUDIO_BUZZER(audioEvent(AU_ERROR), beep(4)) #define AUDIO_TIMER_30() AUDIO_BUZZER(audioEvent(AU_TIMER_30), { beepAgain=2; beep(2); }) #define AUDIO_TIMER_20() AUDIO_BUZZER(audioEvent(AU_TIMER_20), { beepAgain=1; beep(2); }) -#define AUDIO_TIMER_LT10(m, x) do { if (m==COUNTDOWN_VOICE) playNumber(x, 0, 0, 0); else AUDIO_BUZZER(audioEvent(AU_TIMER_LT10), beep(2)); } while(0) -#define AUDIO_TIMER_00(m) do { if (m==COUNTDOWN_VOICE) playNumber(0, 0, 0, 0); else AUDIO_BUZZER(audioEvent(AU_TIMER_00), beep(3)); } while(0) +#define AUDIO_TIMER_LT10(m, x) do { if (m==COUNTDOWN_VOICE) playNumber(x, 0, 0, 0); else if (m==COUNTDOWN_HAPTIC) haptic.event(AU_TIMER_LT10); else AUDIO_BUZZER(audioEvent(AU_TIMER_LT10), beep(2)); } while(0) +#define AUDIO_TIMER_00(m) do { if (m==COUNTDOWN_VOICE) playNumber(0, 0, 0, 0); else if (m==COUNTDOWN_HAPTIC) haptic.event(AU_TIMER_00); else AUDIO_BUZZER(audioEvent(AU_TIMER_00), beep(3)); } while(0) #define AUDIO_INACTIVITY() AUDIO_BUZZER(audioEvent(AU_INACTIVITY), beep(3)) #define AUDIO_MIX_WARNING(x) AUDIO_BUZZER(audioEvent(AU_MIX_WARNING_1+x-1), beep(1)) #define AUDIO_POT_MIDDLE(x) AUDIO_BUZZER(audioEvent(AU_STICK1_MIDDLE+x), beep(2)) diff --git a/radio/src/gui/9X/menu_model_setup.cpp b/radio/src/gui/9X/menu_model_setup.cpp index 0b12529b3..1261dd574 100644 --- a/radio/src/gui/9X/menu_model_setup.cpp +++ b/radio/src/gui/9X/menu_model_setup.cpp @@ -256,7 +256,7 @@ void menuModelSetup(uint8_t event) case ITEM_MODEL_TIMER3_COUNTDOWN_BEEP: { TimerData * timer = &g_model.timers[k>=ITEM_MODEL_TIMER3 ? 2 : (k>=ITEM_MODEL_TIMER2 ? 1 : 0)]; - timer->countdownBeep = selectMenuItem(MODEL_SETUP_2ND_COLUMN, y, STR_BEEPCOUNTDOWN, STR_VBEEPCOUNTDOWN, timer->countdownBeep, 0, 2, attr, event); + timer->countdownBeep = selectMenuItem(MODEL_SETUP_2ND_COLUMN, y, STR_BEEPCOUNTDOWN, STR_VBEEPCOUNTDOWN, timer->countdownBeep, COUNTDOWN_SILENT, COUNTDOWN_COUNT-1, attr, event); break; } diff --git a/radio/src/gui/Taranis/menu_model_setup.cpp b/radio/src/gui/Taranis/menu_model_setup.cpp index 6b1c135a5..f4226fc62 100644 --- a/radio/src/gui/Taranis/menu_model_setup.cpp +++ b/radio/src/gui/Taranis/menu_model_setup.cpp @@ -321,7 +321,7 @@ void menuModelSetup(uint8_t event) break; case ITEM_MODEL_TIMER1_COUNTDOWN_BEEP: - g_model.timers[0].countdownBeep = selectMenuItem(MODEL_SETUP_2ND_COLUMN, y, STR_BEEPCOUNTDOWN, STR_VBEEPCOUNTDOWN, g_model.timers[0].countdownBeep, 0, 2, attr, event); + g_model.timers[0].countdownBeep = selectMenuItem(MODEL_SETUP_2ND_COLUMN, y, STR_BEEPCOUNTDOWN, STR_VBEEPCOUNTDOWN, g_model.timers[0].countdownBeep, COUNTDOWN_SILENT, COUNTDOWN_COUNT-1, attr, event); break; case ITEM_MODEL_TIMER1_PERSISTENT: @@ -342,7 +342,7 @@ void menuModelSetup(uint8_t event) break; case ITEM_MODEL_TIMER2_COUNTDOWN_BEEP: - g_model.timers[1].countdownBeep = selectMenuItem(MODEL_SETUP_2ND_COLUMN, y, STR_BEEPCOUNTDOWN, STR_VBEEPCOUNTDOWN, g_model.timers[1].countdownBeep, 0, 2, attr, event); + g_model.timers[1].countdownBeep = selectMenuItem(MODEL_SETUP_2ND_COLUMN, y, STR_BEEPCOUNTDOWN, STR_VBEEPCOUNTDOWN, g_model.timers[1].countdownBeep, COUNTDOWN_SILENT, COUNTDOWN_COUNT-1, attr, event); break; case ITEM_MODEL_TIMER2_PERSISTENT: @@ -364,7 +364,7 @@ void menuModelSetup(uint8_t event) break; case ITEM_MODEL_TIMER3_COUNTDOWN_BEEP: - g_model.timers[2].countdownBeep = selectMenuItem(MODEL_SETUP_2ND_COLUMN, y, STR_BEEPCOUNTDOWN, STR_VBEEPCOUNTDOWN, g_model.timers[2].countdownBeep, 0, 2, attr, event); + g_model.timers[2].countdownBeep = selectMenuItem(MODEL_SETUP_2ND_COLUMN, y, STR_BEEPCOUNTDOWN, STR_VBEEPCOUNTDOWN, g_model.timers[2].countdownBeep, COUNTDOWN_SILENT, COUNTDOWN_COUNT-1, attr, event); break; case ITEM_MODEL_TIMER3_PERSISTENT: diff --git a/radio/src/myeeprom.h b/radio/src/myeeprom.h index e09da2eb4..77f25db50 100644 --- a/radio/src/myeeprom.h +++ b/radio/src/myeeprom.h @@ -1964,7 +1964,11 @@ enum TimerModes { enum CountDownModes { COUNTDOWN_SILENT, COUNTDOWN_BEEPS, - COUNTDOWN_VOICE + COUNTDOWN_VOICE, +#if defined(CPUARM) && defined(HAPTIC) + COUNTDOWN_HAPTIC, +#endif + COUNTDOWN_COUNT }; #if defined(CPUARM) diff --git a/radio/src/tests/timers.cpp b/radio/src/tests/timers.cpp index 4eff9c825..5b526afb2 100644 --- a/radio/src/tests/timers.cpp +++ b/radio/src/tests/timers.cpp @@ -38,42 +38,6 @@ #include "opentx.h" #include "timers.h" -/* -struct TimerState { - uint16_t cnt; - uint16_t sum; - uint8_t state; - int16_t val; - uint8_t val_10ms; -}; - -PACK(typedef struct t_TimerData { - int8_t mode; // timer trigger source -> off, abs, stk, stk%, sw/!sw, !m_sw/!m_sw - uint16_t start; - uint8_t countdownBeep:2; - uint8_t minuteBeep:1; - uint8_t persistent:2; // 0 off, 1 flight, 2 manual reset - uint8_t spare:3; - uint16_t value; -}) TimerData; - -enum TimerModes { - TMRMODE_NONE, - TMRMODE_ABS, - TMRMODE_THR, - TMRMODE_THR_REL, - TMRMODE_THR_TRG, - TMRMODE_COUNT -}; - -enum CountDownModes { - COUNTDOWN_SILENT, - COUNTDOWN_BEEPS, - COUNTDOWN_VOICE -}; - -*/ - #if !defined(CPUARM) #undef timerSet void timerSet(int idx, int16_t val) diff --git a/radio/src/timers.cpp b/radio/src/timers.cpp index bc591c0f9..4826eea64 100644 --- a/radio/src/timers.cpp +++ b/radio/src/timers.cpp @@ -188,15 +188,15 @@ void evalTimers(int16_t throttle, uint8_t tick10ms) timerState->val = newTimerVal; if (timerState->state == TMR_RUNNING) { if (g_model.timers[i].countdownBeep && g_model.timers[i].start) { - if (newTimerVal==30) { + if (newTimerVal == 30) { AUDIO_TIMER_30(); // TRACE("Timer[%d] 30s announcement", i); } - if (newTimerVal==20) { + if (newTimerVal == 20) { AUDIO_TIMER_20(); // TRACE("Timer[%d] 20s announcement", i); } - if (newTimerVal<=10) { + if (newTimerVal <= 10) { AUDIO_TIMER_LT10(g_model.timers[i].countdownBeep, newTimerVal); // TRACE("Timer[%d] %ds announcement", i, newTimerVal); }