mirror of
https://github.com/OneOfEleven/uv-k5-firmware-custom.git
synced 2025-08-03 09:36:32 +03:00
Live DTMF decoder update
This commit is contained in:
25
app/app.c
25
app/app.c
@@ -663,8 +663,17 @@ void APP_CheckRadioInterrupts(void)
|
||||
|
||||
if (gCurrentFunction == FUNCTION_RECEIVE)
|
||||
{
|
||||
#ifdef ENABLE_DTMF_DECODER
|
||||
if (gDTMF_WriteIndex > 0)
|
||||
{
|
||||
memcpy(gDTMF_ReceivedSaved, gDTMF_Received, sizeof(gDTMF_ReceivedSaved));
|
||||
gDTMF_WriteIndexSaved = gDTMF_WriteIndex;
|
||||
gDTMF_RecvTimeoutSaved = DTMF_RX_timeout_saved_500ms;
|
||||
gUpdateDisplay = true;
|
||||
}
|
||||
#endif
|
||||
|
||||
DTMF_HandleRequest();
|
||||
gUpdateDisplay = true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -831,9 +840,7 @@ static void APP_HandleVox(void)
|
||||
if (gCurrentFunction != FUNCTION_TRANSMIT)
|
||||
{
|
||||
gDTMF_ReplyState = DTMF_REPLY_NONE;
|
||||
|
||||
RADIO_PrepareTX();
|
||||
|
||||
gUpdateDisplay = true;
|
||||
}
|
||||
}
|
||||
@@ -1705,6 +1712,18 @@ void APP_TimeSlice500ms(void)
|
||||
memset(gDTMF_Received, 0, sizeof(gDTMF_Received));
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef ENABLE_DTMF_DECODER
|
||||
if (gDTMF_RecvTimeoutSaved > 0)
|
||||
{
|
||||
if (--gDTMF_RecvTimeoutSaved == 0)
|
||||
{
|
||||
gDTMF_WriteIndexSaved = 0;
|
||||
memset(gDTMF_ReceivedSaved, 0, sizeof(gDTMF_ReceivedSaved));
|
||||
gUpdateDisplay = true;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
#ifdef ENABLE_ALARM
|
||||
|
14
app/dtmf.c
14
app/dtmf.c
@@ -33,7 +33,18 @@
|
||||
|
||||
char gDTMF_String[15];
|
||||
char gDTMF_InputBox[15];
|
||||
|
||||
char gDTMF_Received[16];
|
||||
uint8_t gDTMF_WriteIndex = 0;
|
||||
uint8_t gDTMF_PreviousIndex = 0;
|
||||
uint8_t gDTMF_RecvTimeout = 0;
|
||||
|
||||
#ifdef ENABLE_DTMF_DECODER
|
||||
char gDTMF_ReceivedSaved[16];
|
||||
uint8_t gDTMF_WriteIndexSaved = 0;
|
||||
uint8_t gDTMF_RecvTimeoutSaved = 0;
|
||||
#endif
|
||||
|
||||
bool gIsDtmfContactValid;
|
||||
char gDTMF_ID[4];
|
||||
char gDTMF_Caller[4];
|
||||
@@ -42,12 +53,9 @@ DTMF_State_t gDTMF_State;
|
||||
bool gDTMF_DecodeRing;
|
||||
uint8_t gDTMF_DecodeRingCountdown;
|
||||
uint8_t gDTMFChosenContact;
|
||||
uint8_t gDTMF_WriteIndex;
|
||||
uint8_t gDTMF_PreviousIndex;
|
||||
uint8_t gDTMF_AUTO_RESET_TIME;
|
||||
uint8_t gDTMF_InputIndex;
|
||||
bool gDTMF_InputMode;
|
||||
uint8_t gDTMF_RecvTimeout;
|
||||
DTMF_CallState_t gDTMF_CallState;
|
||||
DTMF_ReplyState_t gDTMF_ReplyState;
|
||||
DTMF_CallMode_t gDTMF_CallMode;
|
||||
|
14
app/dtmf.h
14
app/dtmf.h
@@ -55,7 +55,18 @@ typedef enum DTMF_CallMode_t DTMF_CallMode_t;
|
||||
|
||||
extern char gDTMF_String[15];
|
||||
extern char gDTMF_InputBox[15];
|
||||
|
||||
extern char gDTMF_Received[16];
|
||||
extern uint8_t gDTMF_WriteIndex;
|
||||
extern uint8_t gDTMF_PreviousIndex;
|
||||
extern uint8_t gDTMF_RecvTimeout;
|
||||
|
||||
#ifdef ENABLE_DTMF_DECODER
|
||||
extern char gDTMF_ReceivedSaved[16];
|
||||
extern uint8_t gDTMF_WriteIndexSaved;
|
||||
extern uint8_t gDTMF_RecvTimeoutSaved;
|
||||
#endif
|
||||
|
||||
extern bool gIsDtmfContactValid;
|
||||
extern char gDTMF_ID[4];
|
||||
extern char gDTMF_Caller[4];
|
||||
@@ -64,12 +75,9 @@ extern DTMF_State_t gDTMF_State;
|
||||
extern bool gDTMF_DecodeRing;
|
||||
extern uint8_t gDTMF_DecodeRingCountdown;
|
||||
extern uint8_t gDTMFChosenContact;
|
||||
extern uint8_t gDTMF_WriteIndex;
|
||||
extern uint8_t gDTMF_PreviousIndex;
|
||||
extern uint8_t gDTMF_AUTO_RESET_TIME;
|
||||
extern uint8_t gDTMF_InputIndex;
|
||||
extern bool gDTMF_InputMode;
|
||||
extern uint8_t gDTMF_RecvTimeout;
|
||||
extern DTMF_CallState_t gDTMF_CallState;
|
||||
extern DTMF_ReplyState_t gDTMF_ReplyState;
|
||||
extern DTMF_CallMode_t gDTMF_CallMode;
|
||||
|
Reference in New Issue
Block a user