From 9493f34c236a775154c8f9f49f7ccf9ce9c43cde Mon Sep 17 00:00:00 2001 From: OneOfEleven Date: Sat, 30 Sep 2023 11:22:19 +0100 Subject: [PATCH] Various DTMF bug fixes and renames --- Makefile | 4 +- app/action.c | 7 ++ app/app.c | 162 +++++++++++++++++++++--------------- app/dtmf.c | 194 ++++++++++++++++++++++++++++---------------- app/dtmf.h | 33 +++++--- app/main.c | 28 +++++-- app/menu.c | 23 ++++-- app/scanner.c | 4 +- audio.c | 15 +++- audio.h | 2 + driver/bk4819.c | 2 +- firmware.bin | Bin 58340 -> 58368 bytes firmware.packed.bin | Bin 58358 -> 58386 bytes functions.c | 20 ++--- misc.c | 3 +- misc.h | 1 - radio.c | 5 +- settings.c | 2 +- ui/main.c | 41 +++++++--- ui/menu.c | 16 +++- ui/menu.h | 1 + 21 files changed, 360 insertions(+), 203 deletions(-) diff --git a/Makefile b/Makefile index f194b92..6fe777f 100644 --- a/Makefile +++ b/Makefile @@ -26,8 +26,8 @@ ENABLE_NO_SCAN_TIMEOUT := 1 ENABLE_AM_FIX := 1 ENABLE_AM_FIX_SHOW_DATA := 1 ENABLE_SQUELCH1_LOWER := 0 -ENABLE_RSSI_BAR := 1 -ENABLE_AUDIO_BAR := 1 +ENABLE_RSSI_BAR := 0 +ENABLE_AUDIO_BAR := 0 #ENABLE_COPY_CHAN_TO_VFO := 1 #ENABLE_SINGLE_VFO_CHAN := 1 #ENABLE_BAND_SCOPE := 1 diff --git a/app/action.c b/app/action.c index 4ac57b9..5acb8c5 100644 --- a/app/action.c +++ b/app/action.c @@ -14,6 +14,8 @@ * limitations under the License. */ +#include + #include "app/action.h" #include "app/app.h" #include "app/dtmf.h" @@ -167,6 +169,11 @@ void ACTION_Scan(bool bRestart) gMonitor = false; + DTMF_clear_RX(); + + gDTMF_RX_live_timeout = 0; + memset(gDTMF_RX_live, 0, sizeof(gDTMF_RX_live)); + RADIO_SelectVfos(); #ifdef ENABLE_NOAA diff --git a/app/app.c b/app/app.c index 4d9c2ab..152f66a 100644 --- a/app/app.c +++ b/app/app.c @@ -73,10 +73,10 @@ static void updateRSSI(const int vfo) if (gEeprom.VfoInfo[vfo].AM_mode && gSetting_AM_fix) rssi -= rssi_gain_diff[vfo]; #endif - + if (gCurrentRSSI[vfo] == rssi) return; // no change - + gCurrentRSSI[vfo] = rssi; UI_UpdateRSSI(rssi, vfo); @@ -119,7 +119,7 @@ static void APP_CheckForIncoming(void) updateRSSI(gEeprom.RX_CHANNEL); gUpdateRSSI = true; } - + return; } @@ -182,6 +182,10 @@ static void APP_HandleIncoming(void) if (!g_SquelchLost) { // squelch is closed + + if (gDTMF_RX_index > 0) + DTMF_clear_RX(); + if (gCurrentFunction != FUNCTION_FOREGROUND) { FUNCTION_Select(FUNCTION_FOREGROUND); @@ -214,12 +218,13 @@ static void APP_HandleIncoming(void) if (!bFlag) return; - DTMF_HandleRequest(); - if (gScanState == SCAN_OFF && gCssScanMode == CSS_SCAN_MODE_OFF) { // not scanning if (gRxVfo->DTMF_DECODING_ENABLE || gSetting_KILLED) - { // DTMF is enabled + { // DTMF DCD is enabled + +// DTMF_HandleRequest(); + if (gDTMF_CallState == DTMF_CALL_STATE_NONE) { if (gRxReceptionMode == RX_MODE_DETECTED) @@ -234,7 +239,6 @@ static void APP_HandleIncoming(void) gUpdateStatus = true; gUpdateDisplay = true; - return; } } @@ -531,7 +535,7 @@ void APP_StartListening(FUNCTION_Type_t Function, const bool reset_am_fix) } // ****************************************** - + // original setting uint8_t lna_short = orig_lna_short; uint8_t lna = orig_lna; @@ -777,34 +781,40 @@ void APP_CheckRadioInterrupts(void) // g_CTCSS_Lost = true; if (interrupt_status_bits & BK4819_REG_02_DTMF_5TONE_FOUND) - { // save the new DTMF RX'ed character - - // fetch the RX'ed char + { // save the RX'ed DTMF character const char c = DTMF_GetCharacter(BK4819_GetDTMF_5TONE_Code()); if (c != 0xff) { - if (gCurrentFunction == FUNCTION_RECEIVE || - gCurrentFunction == FUNCTION_INCOMING || - gCurrentFunction == FUNCTION_MONITOR) + if (gCurrentFunction != FUNCTION_TRANSMIT) { - gDTMF_RequestPending = true; - gDTMF_RecvTimeout = DTMF_RX_timeout_500ms; - // shift the RX buffer down one - if need be - if (gDTMF_WriteIndex >= sizeof(gDTMF_Received)) - memmove(gDTMF_Received, &gDTMF_Received[1], --gDTMF_WriteIndex); - gDTMF_Received[gDTMF_WriteIndex++] = c; + if (gSetting_live_DTMF_decoder) + { + size_t len = strlen(gDTMF_RX_live); + if (len >= (sizeof(gDTMF_RX_live) - 1)) + { // make room + memmove(&gDTMF_RX_live[0], &gDTMF_RX_live[1], sizeof(gDTMF_RX_live) - 1); + len--; + } + gDTMF_RX_live[len++] = c; + gDTMF_RX_live[len] = 0; + gDTMF_RX_live_timeout = DTMF_RX_live_timeout_500ms; // time till we delete it + gUpdateDisplay = true; + } - // live DTMF decoder - size_t len = strlen(gDTMF_RX_live); - // shift the RX buffer down one - if need be - if (len >= (sizeof(gDTMF_RX_live) - 1)) - memmove(&gDTMF_RX_live[0], &gDTMF_RX_live[1], --len); - gDTMF_RX_live[len++] = c; - gDTMF_RX_live[len] = 0; - gDTMF_RX_live_timeout = DTMF_RX_live_timeout_500ms; // time till we delete it - gUpdateDisplay = true; + if (gRxVfo->DTMF_DECODING_ENABLE || gSetting_KILLED) + { + if (gDTMF_RX_index >= (sizeof(gDTMF_RX) - 1)) + { // make room + memmove(&gDTMF_RX[0], &gDTMF_RX[1], sizeof(gDTMF_RX) - 1); + gDTMF_RX_index--; + } + gDTMF_RX[gDTMF_RX_index++] = c; + gDTMF_RX[gDTMF_RX_index] = 0; + gDTMF_RX_timeout = DTMF_RX_timeout_500ms; // time till we delete it + gDTMF_RX_pending = true; - DTMF_HandleRequest(); + DTMF_HandleRequest(); + } } } } @@ -1257,7 +1267,7 @@ void APP_CheckKeys(void) while (i-- > 0) { SYSTEM_DelayMs(1); - + if (!GPIO_CheckBit(&GPIOC->DATA, GPIOC_PIN_PTT)) { // PTT pressed if (count > 0) @@ -1666,9 +1676,9 @@ void cancelUserInputModes(void) gKeyInputCountdown = 0; if (gDTMF_InputMode || gInputBoxIndex > 0) { + memset(gDTMF_String, 0, sizeof(gDTMF_String)); gDTMF_InputMode = false; gDTMF_InputIndex = 0; - memset(gDTMF_String, 0, sizeof(gDTMF_String)); gInputBoxIndex = 0; gRequestDisplayScreen = DISPLAY_MAIN; gBeepToPlay = BEEP_1KHZ_60MS_OPTIONAL; @@ -1692,11 +1702,18 @@ void APP_TimeSlice500ms(void) { if (--gDTMF_RX_live_timeout == 0) { - gDTMF_RX_live[0] = 0; - gUpdateDisplay = true; + if (gDTMF_RX_live[0] != 0) + { + memset(gDTMF_RX_live, 0, sizeof(gDTMF_RX_live)); + gUpdateDisplay = true; + } } } + if (gDTMF_RX_timeout > 0) + if (--gDTMF_RX_timeout == 0) + DTMF_clear_RX(); + // Skipped authentic device check #ifdef ENABLE_FMRADIO @@ -1711,8 +1728,16 @@ void APP_TimeSlice500ms(void) if (gReducedService) { BOARD_ADC_GetBatteryInfo(&gBatteryCurrentVoltage, &gBatteryCurrent); + if (gBatteryCurrent > 500 || gBatteryCalibration[3] < gBatteryCurrentVoltage) - overlay_FLASH_RebootToBootloader(); + { + #ifdef ENABLE_OVERLAY + overlay_FLASH_RebootToBootloader(); + #else + NVIC_SystemReset(); + #endif + } + return; } @@ -1892,7 +1917,7 @@ void APP_TimeSlice500ms(void) if (gScreenToDisplay == DISPLAY_SCANNER && gScannerEditState == 0 && gScanCssState < SCAN_CSS_STATE_FOUND) { gScanProgressIndicator++; - + #ifndef ENABLE_NO_SCAN_TIMEOUT if (gScanProgressIndicator > 32) { @@ -1900,15 +1925,28 @@ void APP_TimeSlice500ms(void) gScanCssState = SCAN_CSS_STATE_FOUND; else gScanCssState = SCAN_CSS_STATE_FAILED; - + gUpdateStatus = true; } #endif - + gUpdateDisplay = true; } - if (gDTMF_CallState != DTMF_CALL_STATE_NONE && gCurrentFunction != FUNCTION_TRANSMIT && gCurrentFunction != FUNCTION_RECEIVE) + if (gCurrentFunction != FUNCTION_TRANSMIT) + { + if (gDTMF_DecodeRingCountdown_500ms > 0) + { // make "ring-ring" sound + gDTMF_DecodeRingCountdown_500ms--; + AUDIO_PlayBeep(BEEP_880HZ_200MS); + } + } + else + gDTMF_DecodeRingCountdown_500ms = 0; + + if (gDTMF_CallState != DTMF_CALL_STATE_NONE && + gCurrentFunction != FUNCTION_TRANSMIT && + gCurrentFunction != FUNCTION_RECEIVE) { if (gDTMF_AUTO_RESET_TIME > 0) { @@ -1918,15 +1956,6 @@ void APP_TimeSlice500ms(void) gUpdateDisplay = true; } } - - if (gDTMF_DecodeRing && gDTMF_DecodeRingCountdown_500ms > 0) - { - if ((--gDTMF_DecodeRingCountdown_500ms % 3) == 0) - AUDIO_PlayBeep(BEEP_440HZ_500MS); - - if (gDTMF_DecodeRingCountdown_500ms == 0) - gDTMF_DecodeRing = false; - } } if (gDTMF_IsTx && gDTMF_TxStopCountdown_500ms > 0) @@ -1937,15 +1966,6 @@ void APP_TimeSlice500ms(void) gUpdateDisplay = true; } } - - if (gDTMF_RecvTimeout > 0) - { - if (--gDTMF_RecvTimeout == 0) - { - gDTMF_WriteIndex = 0; - memset(gDTMF_Received, 0, sizeof(gDTMF_Received)); - } - } } #ifdef ENABLE_ALARM @@ -2022,9 +2042,13 @@ static void APP_ProcessKey(KEY_Code_t Key, bool bKeyPressed, bool bKeyHeld) if (Key == KEY_EXIT && bKeyPressed && bKeyHeld && gDTMF_RX_live[0] != 0) { // clear the live DTMF decoder if the EXIT key is held - gDTMF_RX_live_timeout = 0; - gDTMF_RX_live[0] = 0; - gUpdateDisplay = true; + if (gDTMF_RX_live[0] != 0) + { + gDTMF_RX_live_timeout = 0; + memset(gDTMF_RX_live, 0, sizeof(gDTMF_RX_live)); + + gUpdateDisplay = true; + } } if (!bKeyPressed) @@ -2065,10 +2089,12 @@ static void APP_ProcessKey(KEY_Code_t Key, bool bKeyPressed, bool bKeyHeld) BACKLIGHT_TurnOn(); - if (gDTMF_DecodeRing) - { - gDTMF_DecodeRing = false; + if (gDTMF_DecodeRingCountdown_500ms > 0) + { // cancel the ringing + gDTMF_DecodeRingCountdown_500ms = 0; + AUDIO_PlayBeep(BEEP_1KHZ_60MS_OPTIONAL); + if (Key != KEY_PTT) { gPttWasReleased = true; @@ -2115,7 +2141,8 @@ static void APP_ProcessKey(KEY_Code_t Key, bool bKeyPressed, bool bKeyHeld) Key != KEY_EXIT && Key != KEY_SIDE1 && Key != KEY_SIDE2 && - Key != KEY_STAR) + Key != KEY_STAR && + Key != KEY_MENU) { if (gScanState != SCAN_OFF || gCssScanMode != CSS_SCAN_MODE_OFF) { // frequency or CTCSS/DCS scanning @@ -2147,7 +2174,8 @@ static void APP_ProcessKey(KEY_Code_t Key, bool bKeyPressed, bool bKeyHeld) } } - if (gWasFKeyPressed && Key > KEY_9 && Key != KEY_F && Key != KEY_STAR && Key != KEY_MENU) + if (gWasFKeyPressed && Key > KEY_9 && Key != KEY_F && Key != KEY_STAR) +// if (gWasFKeyPressed && Key > KEY_9 && Key != KEY_F && Key != KEY_STAR && Key != KEY_MENU) { gWasFKeyPressed = false; gUpdateStatus = true; @@ -2203,7 +2231,7 @@ static void APP_ProcessKey(KEY_Code_t Key, bool bKeyPressed, bool bKeyHeld) else { if (gEeprom.DTMF_SIDE_TONE) - { + { // user will here the DTMF tones in speaker GPIO_SetBit(&GPIOC->DATA, GPIOC_PIN_AUDIO_PATH); gEnableSpeaker = true; } @@ -2416,7 +2444,7 @@ Skip: if (gFlagStartScan) { gMonitor = false; - + #ifdef ENABLE_VOICE AUDIO_SetVoiceID(0, VOICE_ID_SCANNING_BEGIN); AUDIO_PlaySingleVoice(true); diff --git a/app/dtmf.c b/app/dtmf.c index 415f42e..42c641f 100644 --- a/app/dtmf.c +++ b/app/dtmf.c @@ -22,6 +22,7 @@ #endif #include "app/scanner.h" #include "bsp/dp32g030/gpio.h" +#include "audio.h" #include "driver/bk4819.h" #include "driver/eeprom.h" #include "driver/gpio.h" @@ -33,12 +34,16 @@ #include "ui/ui.h" char gDTMF_String[15]; -char gDTMF_InputBox[15]; -char gDTMF_Received[16]; -uint8_t gDTMF_WriteIndex = 0; +char gDTMF_InputBox[15]; +uint8_t gDTMF_InputIndex = 0; +bool gDTMF_InputMode = false; uint8_t gDTMF_PreviousIndex = 0; -uint8_t gDTMF_RecvTimeout = 0; + +char gDTMF_RX[17]; +uint8_t gDTMF_RX_index = 0; +uint8_t gDTMF_RX_timeout = 0; +bool gDTMF_RX_pending = false; char gDTMF_RX_live[20]; uint8_t gDTMF_RX_live_timeout = 0; @@ -48,12 +53,9 @@ char gDTMF_ID[4]; char gDTMF_Caller[4]; char gDTMF_Callee[4]; DTMF_State_t gDTMF_State; -bool gDTMF_DecodeRing; uint8_t gDTMF_DecodeRingCountdown_500ms; uint8_t gDTMFChosenContact; uint8_t gDTMF_AUTO_RESET_TIME; -uint8_t gDTMF_InputIndex; -bool gDTMF_InputMode; DTMF_CallState_t gDTMF_CallState; DTMF_ReplyState_t gDTMF_ReplyState; DTMF_CallMode_t gDTMF_CallMode; @@ -61,14 +63,22 @@ bool gDTMF_IsTx; uint8_t gDTMF_TxStopCountdown_500ms; bool gDTMF_IsGroupCall; -bool DTMF_ValidateCodes(char *pCode, uint8_t Size) +void DTMF_clear_RX(void) +{ + gDTMF_RX_timeout = 0; + gDTMF_RX_index = 0; + gDTMF_RX_pending = false; + memset(gDTMF_RX, 0, sizeof(gDTMF_RX)); +} + +bool DTMF_ValidateCodes(char *pCode, const unsigned int size) { unsigned int i; if (pCode[0] == 0xFF || pCode[0] == 0) return false; - for (i = 0; i < Size; i++) + for (i = 0; i < size; i++) { if (pCode[i] == 0xFF || pCode[i] == 0) { @@ -121,16 +131,16 @@ bool DTMF_FindContact(const char *pContact, char *pResult) return false; } -char DTMF_GetCharacter(const uint8_t code) +char DTMF_GetCharacter(const unsigned int code) { const char list[] = "0123456789ABCD*#"; return (code < ARRAY_SIZE(list)) ? list[code] : 0xFF; } -bool DTMF_CompareMessage(const char *pMsg, const char *pTemplate, uint8_t Size, bool bCheckGroup) +bool DTMF_CompareMessage(const char *pMsg, const char *pTemplate, const unsigned int size, const bool bCheckGroup) { unsigned int i; - for (i = 0; i < Size; i++) + for (i = 0; i < size; i++) { if (pMsg[i] != pTemplate[i]) { @@ -140,58 +150,69 @@ bool DTMF_CompareMessage(const char *pMsg, const char *pTemplate, uint8_t Size, } } - return DTMF_CALL_MODE_NOT_GROUP; + return true; } -DTMF_CallMode_t DTMF_CheckGroupCall(const char *pMsg, uint32_t Size) +DTMF_CallMode_t DTMF_CheckGroupCall(const char *pMsg, const unsigned int size) { - uint32_t i; - for (i = 0; i < Size; i++) + unsigned int i; + for (i = 0; i < size; i++) if (pMsg[i] == gEeprom.DTMF_GROUP_CALL_CODE) break; - return (i != Size) ? DTMF_CALL_MODE_GROUP : DTMF_CALL_MODE_NOT_GROUP; + + return (i < size) ? DTMF_CALL_MODE_GROUP : DTMF_CALL_MODE_NOT_GROUP; } -void DTMF_Append(char Code) +void DTMF_Append(const char code) { if (gDTMF_InputIndex == 0) { memset(gDTMF_InputBox, '-', sizeof(gDTMF_InputBox)); gDTMF_InputBox[sizeof(gDTMF_InputBox) - 1] = 0; } - else - if (gDTMF_InputIndex >= sizeof(gDTMF_InputBox)) - return; - gDTMF_InputBox[gDTMF_InputIndex++] = Code; + if (gDTMF_InputIndex < sizeof(gDTMF_InputBox)) + gDTMF_InputBox[gDTMF_InputIndex++] = code; } void DTMF_HandleRequest(void) -{ - char String[20]; - uint8_t Offset; +{ // proccess the RX'ed DTMF characters - if (!gDTMF_RequestPending) - return; + char String[20]; + unsigned int Offset; - gDTMF_RequestPending = false; + if (!gDTMF_RX_pending) + return; // nothing new received if (gScanState != SCAN_OFF || gCssScanMode != CSS_SCAN_MODE_OFF) + { // we're busy scanning + DTMF_clear_RX(); return; - + } + if (!gRxVfo->DTMF_DECODING_ENABLE && !gSetting_KILLED) + { // D-DCD is disabled or we're alive + DTMF_clear_RX(); return; + } + + gDTMF_RX_pending = false; + + if (gDTMF_RX_index >= 9) + { // look for the KILL code - if (gDTMF_WriteIndex >= 9) - { - Offset = gDTMF_WriteIndex - 9; sprintf(String, "%s%c%s", gEeprom.ANI_DTMF_ID, gEeprom.DTMF_SEPARATE_CODE, gEeprom.KILL_CODE); - if (DTMF_CompareMessage(gDTMF_Received + Offset, String, 9, true)) - { + Offset = gDTMF_RX_index - strlen(String); + + if (DTMF_CompareMessage(gDTMF_RX + Offset, String, strlen(String), true)) + { // bugger + if (gEeprom.PERMIT_REMOTE_KILL) { - gSetting_KILLED = true; + gSetting_KILLED = true; // oooerr ! + + DTMF_clear_RX(); SETTINGS_SaveSettings(); @@ -212,82 +233,117 @@ void DTMF_HandleRequest(void) gDTMF_CallState = DTMF_CALL_STATE_NONE; - gUpdateDisplay = true; - gUpdateStatus = true; + gUpdateDisplay = true; + gUpdateStatus = true; return; } - + } + + if (gDTMF_RX_index >= 9) + { // look for the REVIVE code + sprintf(String, "%s%c%s", gEeprom.ANI_DTMF_ID, gEeprom.DTMF_SEPARATE_CODE, gEeprom.REVIVE_CODE); - if (DTMF_CompareMessage(gDTMF_Received + Offset, String, 9, true)) - { + + Offset = gDTMF_RX_index - strlen(String); + + if (DTMF_CompareMessage(gDTMF_RX + Offset, String, strlen(String), true)) + { // shit, we're back ! + gSetting_KILLED = false; + + DTMF_clear_RX(); + SETTINGS_SaveSettings(); + gDTMF_ReplyState = DTMF_REPLY_AB; gDTMF_CallState = DTMF_CALL_STATE_NONE; + gUpdateDisplay = true; gUpdateStatus = true; return; } } - if (gDTMF_WriteIndex >= 2) - { - if (DTMF_CompareMessage(gDTMF_Received + (gDTMF_WriteIndex - 2), "AB", 2, true)) - { - gDTMF_State = DTMF_STATE_TX_SUCC; - gUpdateDisplay = true; - return; + if (gDTMF_RX_index >= 2) + { // look for ACK reply + + strcpy(String, "AB"); + + Offset = gDTMF_RX_index - strlen(String); + + if (DTMF_CompareMessage(gDTMF_RX + Offset, String, strlen(String), true)) + { // ends with "AB" + + if (gDTMF_ReplyState != DTMF_REPLY_NONE) // 1of11 +// if (gDTMF_CallState != DTMF_CALL_STATE_NONE) // 1of11 +// if (gDTMF_CallState == DTMF_CALL_STATE_CALL_OUT) // 1of11 + { + gDTMF_State = DTMF_STATE_TX_SUCC; + DTMF_clear_RX(); + gUpdateDisplay = true; + return; + } } } - if (gDTMF_CallState == DTMF_CALL_STATE_CALL_OUT && gDTMF_CallMode == DTMF_CALL_MODE_NOT_GROUP && gDTMF_WriteIndex >= 9) - { - Offset = gDTMF_WriteIndex - 9; - + if (gDTMF_CallState == DTMF_CALL_STATE_CALL_OUT && + gDTMF_CallMode == DTMF_CALL_MODE_NOT_GROUP && + gDTMF_RX_index >= 9) + { // waiting for a reply + sprintf(String, "%s%c%s", gDTMF_String, gEeprom.DTMF_SEPARATE_CODE, "AAAAA"); - if (DTMF_CompareMessage(gDTMF_Received + Offset, String, 9, false)) - { + Offset = gDTMF_RX_index - strlen(String); + + if (DTMF_CompareMessage(gDTMF_RX + Offset, String, strlen(String), false)) + { // we got a response gDTMF_State = DTMF_STATE_CALL_OUT_RSP; + DTMF_clear_RX(); gUpdateDisplay = true; } } if (gSetting_KILLED || gDTMF_CallState != DTMF_CALL_STATE_NONE) + { // we've been killed or expecting a reply return; + } - if (gDTMF_WriteIndex >= 7) - { - Offset = gDTMF_WriteIndex - 7; - - sprintf(String, "%s%c", gEeprom.ANI_DTMF_ID, gEeprom.DTMF_SEPARATE_CODE); + if (gDTMF_RX_index >= 7) + { // see if we're being called gDTMF_IsGroupCall = false; - if (DTMF_CompareMessage(gDTMF_Received + Offset, String, 4, true)) - { + sprintf(String, "%s%c", gEeprom.ANI_DTMF_ID, gEeprom.DTMF_SEPARATE_CODE); + + Offset = gDTMF_RX_index - strlen(String) - 3; + + if (DTMF_CompareMessage(gDTMF_RX + Offset, String, strlen(String), true)) + { // it's for us ! + gDTMF_CallState = DTMF_CALL_STATE_RECEIVED; - memmove(gDTMF_Callee, gDTMF_Received + Offset + 0, 3); - memmove(gDTMF_Caller, gDTMF_Received + Offset + 4, 3); + memset(gDTMF_Callee, 0, sizeof(gDTMF_Callee)); + memset(gDTMF_Caller, 0, sizeof(gDTMF_Caller)); + memmove(gDTMF_Callee, gDTMF_RX + Offset + 0, 3); + memmove(gDTMF_Caller, gDTMF_RX + Offset + 4, 3); + + DTMF_clear_RX(); gUpdateDisplay = true; switch (gEeprom.DTMF_DECODE_RESPONSE) { - case 3: - gDTMF_DecodeRing = true; + case DTMF_DEC_RESPONSE_BOTH: gDTMF_DecodeRingCountdown_500ms = DTMF_decode_ring_countdown_500ms; - // Fallthrough - case 2: + case DTMF_DEC_RESPONSE_REPLY: gDTMF_ReplyState = DTMF_REPLY_AAAAA; break; - case 1: - gDTMF_DecodeRing = true; + case DTMF_DEC_RESPONSE_RING: gDTMF_DecodeRingCountdown_500ms = DTMF_decode_ring_countdown_500ms; break; default: - gDTMF_DecodeRing = false; + case DTMF_DEC_RESPONSE_NONE: + gDTMF_DecodeRingCountdown_500ms = 0; gDTMF_ReplyState = DTMF_REPLY_NONE; break; } diff --git a/app/dtmf.h b/app/dtmf.h index 3b4b425..281fae9 100644 --- a/app/dtmf.h +++ b/app/dtmf.h @@ -36,6 +36,13 @@ enum DTMF_CallState_t { DTMF_CALL_STATE_RECEIVED }; +enum DTMF_DecodeResponse_t { + DTMF_DEC_RESPONSE_NONE = 0, + DTMF_DEC_RESPONSE_RING, + DTMF_DEC_RESPONSE_REPLY, + DTMF_DEC_RESPONSE_BOTH +}; + typedef enum DTMF_CallState_t DTMF_CallState_t; enum DTMF_ReplyState_t { @@ -56,12 +63,16 @@ enum DTMF_CallMode_t { 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 char gDTMF_InputBox[15]; +extern uint8_t gDTMF_InputIndex; +extern bool gDTMF_InputMode; extern uint8_t gDTMF_PreviousIndex; -extern uint8_t gDTMF_RecvTimeout; + +extern char gDTMF_RX[17]; +extern uint8_t gDTMF_RX_index; +extern uint8_t gDTMF_RX_timeout; +extern bool gDTMF_RX_pending; extern char gDTMF_RX_live[20]; extern uint8_t gDTMF_RX_live_timeout; @@ -71,25 +82,23 @@ extern char gDTMF_ID[4]; extern char gDTMF_Caller[4]; extern char gDTMF_Callee[4]; extern DTMF_State_t gDTMF_State; -extern bool gDTMF_DecodeRing; extern uint8_t gDTMF_DecodeRingCountdown_500ms; extern uint8_t gDTMFChosenContact; extern uint8_t gDTMF_AUTO_RESET_TIME; -extern uint8_t gDTMF_InputIndex; -extern bool gDTMF_InputMode; extern DTMF_CallState_t gDTMF_CallState; extern DTMF_ReplyState_t gDTMF_ReplyState; extern DTMF_CallMode_t gDTMF_CallMode; extern bool gDTMF_IsTx; extern uint8_t gDTMF_TxStopCountdown_500ms; -bool DTMF_ValidateCodes(char *pCode, uint8_t Size); +void DTMF_clear_RX(void); +bool DTMF_ValidateCodes(char *pCode, const unsigned int size); bool DTMF_GetContact(const int Index, char *pContact); bool DTMF_FindContact(const char *pContact, char *pResult); -char DTMF_GetCharacter(const uint8_t code); -bool DTMF_CompareMessage(const char *pDTMF, const char *pTemplate, uint8_t Size, bool bFlag); -DTMF_CallMode_t DTMF_CheckGroupCall(const char *pDTMF, uint32_t Size); -void DTMF_Append(char Code); +char DTMF_GetCharacter(const unsigned int code); +bool DTMF_CompareMessage(const char *pDTMF, const char *pTemplate, const unsigned int size, const bool bFlag); +DTMF_CallMode_t DTMF_CheckGroupCall(const char *pDTMF, const unsigned int size); +void DTMF_Append(const char vode); void DTMF_HandleRequest(void); void DTMF_Reply(void); diff --git a/app/main.c b/app/main.c index e2e5f5a..3acd3d6 100644 --- a/app/main.c +++ b/app/main.c @@ -452,9 +452,17 @@ static void MAIN_Key_DIGITS(KEY_Code_t Key, bool bKeyPressed, bool bKeyHeld) static void MAIN_Key_EXIT(bool bKeyPressed, bool bKeyHeld) { if (!bKeyHeld && bKeyPressed) - { + { // exit key pressed + gBeepToPlay = BEEP_1KHZ_60MS_OPTIONAL; + if (gDTMF_CallState != DTMF_CALL_STATE_NONE && gCurrentFunction != FUNCTION_TRANSMIT) + { // clear CALL mode being displayed + gDTMF_CallState = DTMF_CALL_STATE_NONE; + gUpdateDisplay = true; + return; + } + #ifdef ENABLE_FMRADIO if (!gFmRadioMode) #endif @@ -493,7 +501,8 @@ static void MAIN_Key_EXIT(bool bKeyPressed, bool bKeyHeld) } if (bKeyHeld && bKeyPressed) - { + { // exit key held down + if (gInputBoxIndex > 0) { // cancel key input mode (channel/frequency entry) gDTMF_InputMode = false; @@ -509,7 +518,7 @@ static void MAIN_Key_EXIT(bool bKeyPressed, bool bKeyHeld) static void MAIN_Key_MENU(const bool bKeyPressed, const bool bKeyHeld) { if (bKeyHeld) - { // key held down (long press) + { // menu key held down (long press) if (bKeyPressed) { @@ -560,6 +569,7 @@ static void MAIN_Key_MENU(const bool bKeyPressed, const bool bKeyHeld) gBeepToPlay = BEEP_1KHZ_60MS_OPTIONAL; + // TODO: finish this //gEeprom.RX_CHANNEL = () & 1; // swap to the VFO @@ -577,13 +587,13 @@ static void MAIN_Key_MENU(const bool bKeyPressed, const bool bKeyHeld) return; } - if (!bKeyPressed) - { - bool bFlag; + if (!bKeyPressed && !gDTMF_InputMode) + { // menu key released + const bool bFlag = (gInputBoxIndex == 0); + gInputBoxIndex = 0; - gBeepToPlay = BEEP_1KHZ_60MS_OPTIONAL; - bFlag = (gInputBoxIndex == 0); - gInputBoxIndex = 0; + gBeepToPlay = BEEP_1KHZ_60MS_OPTIONAL; + if (bFlag) { gFlagRefreshSetting = true; diff --git a/app/menu.c b/app/menu.c index db627f6..c19fcd4 100644 --- a/app/menu.c +++ b/app/menu.c @@ -109,11 +109,15 @@ int MENU_GetLimits(uint8_t Cursor, int32_t *pMin, int32_t *pMax) break; case MENU_TDR: - case MENU_XB: *pMin = 0; *pMax = ARRAY_SIZE(gSubMenu_CHAN) - 1; break; + case MENU_XB: + *pMin = 0; + *pMax = ARRAY_SIZE(gSubMenu_XB) - 1; + break; + #ifdef ENABLE_VOICE case MENU_VOICE: *pMin = 0; @@ -591,13 +595,14 @@ void MENU_AcceptSetting(void) case MENU_D_DCD: gTxVfo->DTMF_DECODING_ENABLE = gSubMenuSelection; - gRequestSaveChannel = 1; + DTMF_clear_RX(); + gRequestSaveChannel = 1; return; case MENU_D_LIVE_DEC: - gDTMF_RX_live_timeout = 0; - gDTMF_RX_live[0] = '\0'; gSetting_live_DTMF_decoder = gSubMenuSelection; + gDTMF_RX_live_timeout = 0; + memset(gDTMF_RX_live, 0, sizeof(gDTMF_RX_live)); if (!gSetting_live_DTMF_decoder) BK4819_DisableDTMF(); gFlagReconfigureVfos = true; @@ -1317,9 +1322,13 @@ static void MENU_Key_MENU(const bool bKeyPressed, const bool bKeyHeld) gAskForConfirmation = 0; gIsInSubMenu = true; - gInputBoxIndex = 0; - edit_index = -1; - + +// if (gMenuCursor != MENU_D_LIST) + { + gInputBoxIndex = 0; + edit_index = -1; + } + return; } diff --git a/app/scanner.c b/app/scanner.c index cc52d65..4002e38 100644 --- a/app/scanner.c +++ b/app/scanner.c @@ -14,6 +14,7 @@ * limitations under the License. */ +#include "app/dtmf.h" #include "app/generic.h" #include "app/scanner.h" #include "audio.h" @@ -399,12 +400,13 @@ void SCANNER_Start(void) gUpdateStatus = true; } + DTMF_clear_RX(); + gScanDelay_10ms = scan_delay_10ms; gScanCssResultCode = 0xFF; gScanCssResultType = 0xFF; gScanHitCount = 0; gScanUseCssResult = false; - gDTMF_RequestPending = false; g_CxCSS_TAIL_Found = false; g_CDCSS_Lost = false; gCDCSSCodeType = 0; diff --git a/audio.c b/audio.c index 14de43d..94d54d6 100644 --- a/audio.c +++ b/audio.c @@ -76,7 +76,12 @@ void AUDIO_PlayBeep(BEEP_Type_t Beep) uint16_t ToneFrequency; uint16_t Duration; - if (Beep != BEEP_880HZ_60MS_TRIPLE_BEEP && Beep != BEEP_500HZ_60MS_DOUBLE_BEEP && Beep != BEEP_440HZ_500MS && !gEeprom.BEEP_CONTROL) + if (Beep != BEEP_880HZ_60MS_TRIPLE_BEEP && + Beep != BEEP_500HZ_60MS_DOUBLE_BEEP && + Beep != BEEP_440HZ_500MS && + Beep != BEEP_880HZ_200MS && + Beep != BEEP_880HZ_500MS && + !gEeprom.BEEP_CONTROL) return; #ifdef ENABLE_AIRCOPY @@ -123,6 +128,8 @@ void AUDIO_PlayBeep(BEEP_Type_t Beep) break; case BEEP_880HZ_40MS_OPTIONAL: case BEEP_880HZ_60MS_TRIPLE_BEEP: + case BEEP_880HZ_200MS: + case BEEP_880HZ_500MS: ToneFrequency = 880; break; } @@ -161,7 +168,13 @@ void AUDIO_PlayBeep(BEEP_Type_t Beep) Duration = 40; break; + case BEEP_880HZ_200MS: + BK4819_ExitTxMute(); + Duration = 200; + break; + case BEEP_440HZ_500MS: + case BEEP_880HZ_500MS: default: BK4819_ExitTxMute(); Duration = 500; diff --git a/audio.h b/audio.h index 65c2ca6..86b5928 100644 --- a/audio.h +++ b/audio.h @@ -26,6 +26,8 @@ enum BEEP_Type_t BEEP_1KHZ_60MS_OPTIONAL, BEEP_500HZ_60MS_DOUBLE_BEEP_OPTIONAL, BEEP_440HZ_500MS, + BEEP_880HZ_200MS, + BEEP_880HZ_500MS, BEEP_500HZ_60MS_DOUBLE_BEEP, BEEP_440HZ_40MS_OPTIONAL, BEEP_880HZ_40MS_OPTIONAL, diff --git a/driver/bk4819.c b/driver/bk4819.c index 91177b1..49ac4dc 100644 --- a/driver/bk4819.c +++ b/driver/bk4819.c @@ -891,7 +891,7 @@ void BK4819_EnableDTMF(void) // REG_24 <3:0> 14 Max symbol number for SelCall detection // const uint16_t threshold = 24; // doesn't decode non-QS radios - const uint16_t threshold = 200; // but 128 ~ 247 does + const uint16_t threshold = 140; // but 128 ~ 247 does BK4819_WriteRegister(BK4819_REG_24, // 1 00011000 1 1 1 1110 (1u << BK4819_REG_24_SHIFT_UNKNOWN_15) | (threshold << BK4819_REG_24_SHIFT_THRESHOLD) // 0 ~ 255 diff --git a/firmware.bin b/firmware.bin index d0e66df538f1ac5abd868a0e5dfb96344f241123..329b34752fb7ab079abee4aeffe40d59612e6a57 100644 GIT binary patch delta 24714 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 MJML?-FfslI08K$YF#rGn delta 24881 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 E0D;Ln+a diff --git a/firmware.packed.bin b/firmware.packed.bin index 7ac0589aae2c6cff80044c2aba644af92cd596bf..7d7b337795507ec60f332fa2ca0843bcb9254734 100644 GIT binary patch delta 48983 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 F0RT7MjmH20 delta 48955 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 T_IOT!Ob?U5HFslfonm$XP8yDy diff --git a/functions.c b/functions.c index 6f35bf4..5394fde 100644 --- a/functions.c +++ b/functions.c @@ -53,15 +53,8 @@ void FUNCTION_Init(void) gCurrentCodeType = CODE_TYPE_CONTINUOUS_TONE; #endif - gDTMF_RequestPending = false; - - gDTMF_RecvTimeout = 0; - gDTMF_WriteIndex = 0; - memset(gDTMF_Received, 0, sizeof(gDTMF_Received)); - -// gDTMF_RX_timeout_live = 0; -// gDTMF_RX_timeout_live[0] = '\0'; - + DTMF_clear_RX(); + g_CxCSS_TAIL_Found = false; g_CDCSS_Lost = false; g_CTCSS_Lost = false; @@ -152,8 +145,13 @@ void FUNCTION_Select(FUNCTION_Type_t Function) // if DTMF is enabled when TX'ing, it changes the TX audio filtering !! .. 1of11 BK4819_DisableDTMF(); + // clear the DTMF RX buffer + DTMF_clear_RX(); + + // clear the DTMF RX live decoder buffer gDTMF_RX_live_timeout = 0; - gDTMF_RX_live[0] = 0; + gDTMF_RX_live_timeout = 0; + memset(gDTMF_RX_live, 0, sizeof(gDTMF_RX_live)); #if defined(ENABLE_FMRADIO) if (gFmRadioMode) @@ -189,7 +187,7 @@ void FUNCTION_Select(FUNCTION_Type_t Function) RADIO_SetTxParameters(); - // turn the LED on RED + // turn the RED LED on BK4819_ToggleGpioOut(BK4819_GPIO1_PIN29_RED, true); DTMF_Reply(); diff --git a/misc.c b/misc.c index efb619b..ce567a1 100644 --- a/misc.c +++ b/misc.c @@ -28,7 +28,7 @@ const uint8_t menu_timeout_500ms = 20000 / 500; // 20 seconds const uint8_t DTMF_RX_live_timeout_500ms = 6000 / 500; // 6 seconds live decoder on screen const uint8_t DTMF_RX_timeout_500ms = 10000 / 500; // 10 seconds till we wipe the DTMF receiver -const uint8_t DTMF_decode_ring_countdown_500ms = 15000 / 500; // 15 seconds +const uint8_t DTMF_decode_ring_countdown_500ms = 15000 / 500; // 15 seconds .. time we sound the ringing for const uint8_t DTMF_txstop_countdown_500ms = 3000 / 500; // 6 seconds const uint8_t key_input_timeout_500ms = 8000 / 500; // 8 seconds @@ -174,7 +174,6 @@ bool gFlagSaveChannel; #ifdef ENABLE_FMRADIO bool gFlagSaveFM; #endif -uint8_t gDTMF_RequestPending; bool g_CDCSS_Lost; uint8_t gCDCSSCodeType; bool g_CTCSS_Lost; diff --git a/misc.h b/misc.h index 517e28b..a27ba72 100644 --- a/misc.h +++ b/misc.h @@ -238,7 +238,6 @@ extern bool gFlagSaveChannel; #ifdef ENABLE_FMRADIO extern bool gFlagSaveFM; #endif -extern uint8_t gDTMF_RequestPending; extern bool g_CDCSS_Lost; extern uint8_t gCDCSSCodeType; extern bool g_CTCSS_Lost; diff --git a/radio.c b/radio.c index 9356b0b..d1f7ef8 100644 --- a/radio.c +++ b/radio.c @@ -747,9 +747,6 @@ void RADIO_SetupRegisters(bool bSwitchToFunction0) #endif #if 0 - // there's no reason the DTMF decoder can't be used in AM RX mode too - // aircraft comms use it on HF (AM and SSB) -// if (gRxVfo->AM_mode || (!gRxVfo->DTMF_DECODING_ENABLE && !gSetting_KILLED)) if (!gRxVfo->DTMF_DECODING_ENABLE && !gSetting_KILLED) { BK4819_DisableDTMF(); @@ -760,7 +757,7 @@ void RADIO_SetupRegisters(bool bSwitchToFunction0) InterruptMask |= BK4819_REG_3F_DTMF_5TONE_FOUND; } #else - if (gCurrentFunction != FUNCTION_TRANSMIT && gSetting_live_DTMF_decoder) + if (gCurrentFunction != FUNCTION_TRANSMIT) { BK4819_EnableDTMF(); InterruptMask |= BK4819_REG_3F_DTMF_5TONE_FOUND; diff --git a/settings.c b/settings.c index e0203a7..649eca4 100644 --- a/settings.c +++ b/settings.c @@ -214,7 +214,7 @@ void SETTINGS_SaveChannel(uint8_t Channel, uint8_t VFO, const VFO_Info_t *pVFO, | (pVFO->OUTPUT_POWER << 2) | (pVFO->CHANNEL_BANDWIDTH << 1) | (pVFO->FrequencyReverse << 0); - State[5] = (pVFO->DTMF_PTT_ID_TX_MODE << 1) | (pVFO->DTMF_DECODING_ENABLE < 0); + State[5] = (pVFO->DTMF_PTT_ID_TX_MODE << 1) | (pVFO->DTMF_DECODING_ENABLE << 0); State[6] = pVFO->STEP_SETTING; State[7] = pVFO->SCRAMBLING_TYPE; EEPROM_WriteBuffer(OffsetVFO + 8, State); diff --git a/ui/main.c b/ui/main.c index f0dd0f4..47da6cb 100644 --- a/ui/main.c +++ b/ui/main.c @@ -36,6 +36,8 @@ #include "ui/main.h" #include "ui/ui.h" +bool center_line_is_free = true; + // *************************************************************************** #ifdef ENABLE_AUDIO_BAR @@ -180,6 +182,9 @@ void UI_UpdateRSSI(const int16_t rssi, const int vfo) { #ifdef ENABLE_RSSI_BAR + if (!center_line_is_free) + return; + const bool rx = (gCurrentFunction == FUNCTION_RECEIVE || gCurrentFunction == FUNCTION_MONITOR || gCurrentFunction == FUNCTION_INCOMING); @@ -286,8 +291,9 @@ void UI_DisplayMain(void) { char String[16]; unsigned int vfo_num; - bool center_line_is_free = true; + center_line_is_free = true; + // #ifdef SINGLE_VFO_CHAN // const bool single_vfo = (gEeprom.DUAL_WATCH == DUAL_WATCH_OFF && gEeprom.CROSS_BAND_RX_TX == CROSS_BAND_OFF) ? true : false; // #else @@ -338,7 +344,7 @@ void UI_DisplayMain(void) strcpy(String, (gDTMF_State == DTMF_STATE_CALL_OUT_RSP) ? "CALL OUT(RSP)" : "CALL OUT"); else if (gDTMF_CallState == DTMF_CALL_STATE_RECEIVED) - sprintf(String, "CALL:%s", (DTMF_FindContact(gDTMF_Caller, Contact)) ? Contact : gDTMF_Caller); + sprintf(String, "CALL FRM:%s", (DTMF_FindContact(gDTMF_Caller, Contact)) ? Contact : gDTMF_Caller); else if (gDTMF_IsTx) strcpy(String, (gDTMF_State == DTMF_STATE_TX_SUCC) ? "DTMF TX(SUCC)" : "DTMF TX"); @@ -680,7 +686,7 @@ void UI_DisplayMain(void) UI_PrintStringSmall(String, LCD_WIDTH + 70, 0, Line + 1); } - // show the DTMF decoding symbol( + // show the DTMF decoding symbol if (gEeprom.VfoInfo[vfo_num].DTMF_DECODING_ENABLE || gSetting_KILLED) UI_PrintStringSmall("DTMF", LCD_WIDTH + 78, 0, Line + 1); @@ -722,15 +728,26 @@ void UI_DisplayMain(void) if (rx || gCurrentFunction == FUNCTION_FOREGROUND) { - if (gSetting_live_DTMF_decoder && gDTMF_RX_live[0] >= 32) - { // show live DTMF decode - const unsigned int len = strlen(gDTMF_RX_live); - const unsigned int idx = (len > (17 - 5)) ? len - (17 - 5) : 0; // limit to last 'n' chars - strcpy(String, "DTMF "); - strcat(String, gDTMF_RX_live + idx); - UI_PrintStringSmall(String, 2, 0, 3); - } - + #if 1 + if (gSetting_live_DTMF_decoder && gDTMF_RX_live[0] != 0) + { // show live DTMF decode + const unsigned int len = strlen(gDTMF_RX_live); + const unsigned int idx = (len > (17 - 5)) ? len - (17 - 5) : 0; // limit to last 'n' chars + strcpy(String, "DTMF "); + strcat(String, gDTMF_RX_live + idx); + UI_PrintStringSmall(String, 2, 0, 3); + } + #else + if (gSetting_live_DTMF_decoder && gDTMF_RX_index > 0) + { // show live DTMF decode + const unsigned int len = gDTMF_RX_index; + const unsigned int idx = (len > (17 - 5)) ? len - (17 - 5) : 0; // limit to last 'n' chars + strcpy(String, "DTMF "); + strcat(String, gDTMF_RX + idx); + UI_PrintStringSmall(String, 2, 0, 3); + } + #endif + #ifdef ENABLE_SHOW_CHARGE_LEVEL else if (gChargingWithTypeC) diff --git a/ui/menu.c b/ui/menu.c index 24d4d09..2399cf6 100644 --- a/ui/menu.c +++ b/ui/menu.c @@ -184,8 +184,15 @@ const char gSubMenu_TOT[11][7] = const char gSubMenu_CHAN[3][7] = { "OFF", - "CHAN_A", - "CHAN_B" + "CHAN A", + "CHAN B" +}; + +const char gSubMenu_XB[3][7] = +{ + "SAME", + "CHAN A", + "CHAN B" }; #ifdef ENABLE_VOICE @@ -575,10 +582,13 @@ void UI_DisplayMenu(void) break; case MENU_TDR: - case MENU_XB: strcpy(String, gSubMenu_CHAN[gSubMenuSelection]); break; + case MENU_XB: + strcpy(String, gSubMenu_XB[gSubMenuSelection]); + break; + case MENU_TOT: strcpy(String, gSubMenu_TOT[gSubMenuSelection]); break; diff --git a/ui/menu.h b/ui/menu.h index 3cd187e..1356510 100644 --- a/ui/menu.h +++ b/ui/menu.h @@ -125,6 +125,7 @@ extern const char gSubMenu_OFF_ON[2][4]; extern const char gSubMenu_SAVE[5][4]; extern const char gSubMenu_TOT[11][7]; extern const char gSubMenu_CHAN[3][7]; +extern const char gSubMenu_XB[3][7]; #ifdef ENABLE_VOICE extern const char gSubMenu_VOICE[3][4]; #endif