0
mirror of https://github.com/OneOfEleven/uv-k5-firmware-custom.git synced 2025-06-19 06:39:49 +03:00

fix side-butt TX tone

This commit is contained in:
OneOfEleven
2023-12-08 17:43:01 +00:00
parent ade0b61c67
commit 3dc430905d
18 changed files with 205 additions and 167 deletions

View File

@ -338,22 +338,21 @@ void ACTION_Scan(bool bRestart)
}
#endif
#if defined(ENABLE_ALARM) || defined(ENABLE_TX1750)
static void ACTION_AlarmOr1750(const bool b1750)
#if defined(ENABLE_ALARM) || (ENABLE_TX_TONE_HZ > 0)
static void ACTION_AlarmOrTone(const bool tone)
{
g_input_box_index = 0;
(void)b1750; // stop compile warning
(void)tone; // stop compile warning
#if defined(ENABLE_ALARM) && defined(ENABLE_TX1750)
g_alarm_state = b1750 ? ALARM_STATE_TX1750 : ALARM_STATE_TXALARM;
g_alarm_running_counter_10ms = 0;
#if defined(ENABLE_ALARM) && (ENABLE_TX_TONE_HZ > 0)
g_alarm_state = tone ? ALARM_STATE_TX_TONE : ALARM_STATE_TX_ALARM;
#elif defined(ENABLE_ALARM)
g_alarm_state = ALARM_STATE_TXALARM;
g_alarm_running_counter_10ms = 0;
g_alarm_state = ALARM_STATE_TX_ALARM;
#else
g_alarm_state = ALARM_STATE_TX1750;
g_alarm_state = ALARM_STATE_TX_TONE;
#endif
g_alarm_running_counter_10ms = 0;
g_flag_prepare_tx = true;
@ -362,7 +361,6 @@ void ACTION_Scan(bool bRestart)
}
#endif
#ifdef ENABLE_FMRADIO
void ACTION_FM(void)
{
@ -454,7 +452,7 @@ void ACTION_process(const key_code_t Key, const bool key_pressed, const bool key
break;
case ACTION_OPT_ALARM:
#ifdef ENABLE_ALARM
ACTION_AlarmOr1750(false);
ACTION_AlarmOrTone(false);
#endif
break;
#ifdef ENABLE_FMRADIO
@ -462,9 +460,9 @@ void ACTION_process(const key_code_t Key, const bool key_pressed, const bool key
ACTION_FM();
break;
#endif
case ACTION_OPT_1750:
#ifdef ENABLE_TX1750
ACTION_AlarmOr1750(true);
case ACTION_OPT_TX_TONE:
#if (ENABLE_TX_TONE_HZ > 0)
ACTION_AlarmOrTone(true);
#endif
break;
}

View File

@ -19,20 +19,15 @@
#include "driver/keyboard.h"
//static void ACTION_FlashLight(void)
void ACTION_Power(void);
void ACTION_Monitor(void);
void ACTION_Scan(bool bFlag);
#ifdef ENABLE_VOX
void ACTION_Vox(void);
#endif
#ifdef ENABLE_ALARM
//static void ACTION_AlarmOr1750(bool b1750)
#endif
#ifdef ENABLE_FMRADIO
void ACTION_FM(void);
#endif
void ACTION_process(const key_code_t Key, const bool bKeyPressed, const bool bKeyHeld);
#endif

View File

@ -1558,7 +1558,7 @@ void APP_cancel_user_input_modes(void)
}
}
#if defined(ENABLE_ALARM) || defined(ENABLE_TX1750)
#if defined(ENABLE_ALARM) || (ENABLE_TX_TONE_HZ > 0)
static void APP_alarm_off(void)
{
if (!g_squelch_open && !g_monitor_enabled)
@ -1806,7 +1806,7 @@ void APP_process_transmit(void)
return;
#ifdef ENABLE_ALARM
if (g_alarm_state == ALARM_STATE_TXALARM || g_alarm_state == ALARM_STATE_ALARM)
if (g_alarm_state == ALARM_STATE_TX_ALARM || g_alarm_state == ALARM_STATE_ALARM)
{ // TX alarm tone
uint16_t Tone;
@ -1825,9 +1825,13 @@ void APP_process_transmit(void)
if (g_eeprom.config.setting.alarm_mode == ALARM_MODE_TONE && g_alarm_running_counter_10ms == 512)
{
#if defined(ENABLE_UART) && defined(ENABLE_UART_DEBUG)
// UART_printf("alm tone\n");
#endif
g_alarm_running_counter_10ms = 0;
if (g_alarm_state == ALARM_STATE_TXALARM)
if (g_alarm_state == ALARM_STATE_TX_ALARM)
{
g_alarm_state = ALARM_STATE_ALARM;
@ -1842,7 +1846,7 @@ void APP_process_transmit(void)
}
else
{
g_alarm_state = ALARM_STATE_TXALARM;
g_alarm_state = ALARM_STATE_TX_ALARM;
GUI_DisplayScreen();
@ -2086,19 +2090,41 @@ void APP_time_slice_500ms(void)
return;
#endif
static bool tx_timeout_tone_on = false;
if (g_current_function == FUNCTION_TRANSMIT)
{
if (g_tx_timer_tick_500ms < 6)
{ // <= 3 seconds left
{ // <= 3 seconds TX time left .. start beeping
if (g_tx_timer_tick_500ms & 1u)
BK4819_start_tone(880, 10, true, true);
{
if (!tx_timeout_tone_on)
{
tx_timeout_tone_on = true;
//BK4819_start_tone(880, 10, true, false);
BK4819_TransmitTone(true, 880);
}
}
else
BK4819_stop_tones(true);
{
if (tx_timeout_tone_on)
{
tx_timeout_tone_on = false;
//GPIO_ClearBit(&GPIOC->DATA, GPIOC_PIN_SPEAKER);
BK4819_stop_tones(true);
}
}
}
if (g_tx_timer_tick_500ms & 1u)
g_update_display = true;
}
else
if (tx_timeout_tone_on)
{
tx_timeout_tone_on = false;
BK4819_stop_tones(false);
}
if (g_update_screen_tick_500ms > 0)
{ // update display once every 500ms
@ -2851,7 +2877,7 @@ static void APP_process_key(const key_code_t Key, const bool key_pressed, const
if (g_current_function == FUNCTION_TRANSMIT)
{ // transmitting
#if defined(ENABLE_ALARM) || defined(ENABLE_TX1750)
#if defined(ENABLE_ALARM) || (ENABLE_TX_TONE_HZ > 0)
if (g_alarm_state == ALARM_STATE_OFF)
#endif
{
@ -2864,7 +2890,7 @@ static void APP_process_key(const key_code_t Key, const bool key_pressed, const
}
if (Key == KEY_SIDE2)
{ // transmit 1750Hz tone
{ // transmit tone
Code = 0xFE;
}
else
@ -2900,15 +2926,19 @@ static void APP_process_key(const key_code_t Key, const bool key_pressed, const
BK4819_set_scrambler(0);
if (Code == 0xFE)
BK4819_TransmitTone(g_eeprom.config.setting.dtmf.side_tone, 1750);
BK4819_TransmitTone(g_eeprom.config.setting.dtmf.side_tone, ENABLE_TX_TONE_HZ);
else
BK4819_PlayDTMFEx(g_eeprom.config.setting.dtmf.side_tone, Code);
}
}
#if defined(ENABLE_ALARM) || defined(ENABLE_TX1750)
#if defined(ENABLE_ALARM) || (ENABLE_TX_TONE_HZ > 0)
else
if ((!key_held && key_pressed) || (g_alarm_state == ALARM_STATE_TX1750 && key_held && !key_pressed))
if ((!key_held && key_pressed) || (g_alarm_state == ALARM_STATE_TX_TONE && key_held && !key_pressed))
{
#if defined(ENABLE_UART) && defined(ENABLE_UART_DEBUG)
// UART_printf("alarm off\n");
#endif
APP_alarm_off();
if (g_eeprom.config.setting.repeater_tail_tone_elimination == 0)

View File

@ -411,7 +411,7 @@ bool DTMF_Reply(void)
#endif
#if defined(ENABLE_UART) && defined(ENABLE_UART_DEBUG)
UART_printf("dtmf reply none %d, %s\n", g_dtmf_reply_state, g_dtmf_string);
// UART_printf("dtmf reply none %d, %s\n", g_dtmf_reply_state, g_dtmf_string);
#endif
switch (g_dtmf_reply_state)

View File

@ -53,17 +53,17 @@ bool g_manual_scanning;
void resume_scanning(void)
{
g_scan_tick_10ms = 0;
g_scan_pause_time_mode = false;
g_squelch_open = false;
g_rx_reception_mode = RX_MODE_NONE;
FUNCTION_Select(FUNCTION_FOREGROUND);
if (g_current_display_screen != DISPLAY_SEARCH &&
g_scan_state_dir != SCAN_STATE_DIR_OFF &&
g_scan_state_dir != SCAN_STATE_DIR_OFF &&
!g_ptt_is_pressed)
{
g_scan_tick_10ms = 0;
g_scan_pause_time_mode = false;
g_squelch_open = false;
g_rx_reception_mode = RX_MODE_NONE;
FUNCTION_Select(FUNCTION_FOREGROUND);
if (g_scan_next_channel <= USER_CHANNEL_LAST)
APP_next_channel();
else