From 78c62d5489aa81df45748dd281c7f93fdb961803 Mon Sep 17 00:00:00 2001 From: OneOfEleven Date: Sun, 17 Sep 2023 09:54:24 +0100 Subject: [PATCH] Live DTMF decoder display tidy up --- app/app.c | 56 +++++++++++++++++++++++--------------------- app/dtmf.c | 6 ++--- app/fm.c | 18 +++++++------- app/fm.h | 46 ++++++++++++++++++------------------ app/main.c | 2 +- app/menu.c | 2 +- app/uart.c | 14 +++++------ board.c | 32 ++++++++++++------------- firmware | Bin 164816 -> 164988 bytes firmware.bin | Bin 48748 -> 48796 bytes firmware.packed.bin | Bin 48766 -> 48814 bytes functions.c | 7 ++++-- misc.c | 5 ++++ misc.h | 7 +++++- radio.c | 39 +++++++++++++++++++----------- scheduler.c | 2 +- ui/helper.c | 20 ++++++++-------- ui/main.c | 42 +++++++++++++++++++-------------- ui/menu.c | 6 ++--- ui/rssi.c | 14 +++++------ ui/status.c | 30 ++++++++++++------------ 21 files changed, 191 insertions(+), 157 deletions(-) diff --git a/app/app.c b/app/app.c index 738fa5e..fb1eb59 100644 --- a/app/app.c +++ b/app/app.c @@ -650,28 +650,30 @@ void APP_CheckRadioInterrupts(void) // fetch the RX'ed char const char c = DTMF_GetCharacter(BK4819_GetDTMF_5TONE_Code()); - - 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-- - 1); - gDTMF_Received[gDTMF_WriteIndex++] = c; - - if (gCurrentFunction == FUNCTION_RECEIVE) + if (c != 0xff) { - #ifdef ENABLE_DTMF_DECODER - gDTMF_RecvTimeoutSaved = DTMF_RX_timeout_saved_500ms; - size_t len = strlen(gDTMF_ReceivedSaved); - // shift the RX buffer down one - if (len >= (sizeof(gDTMF_ReceivedSaved) - 1)) - memmove(gDTMF_ReceivedSaved, &gDTMF_ReceivedSaved[1], len--); - gDTMF_ReceivedSaved[len++] = c; - gDTMF_ReceivedSaved[len] = '\0'; - gUpdateDisplay = true; - #endif - - DTMF_HandleRequest(); + 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-- - 1); + gDTMF_Received[gDTMF_WriteIndex++] = c; + + if (gCurrentFunction == FUNCTION_RECEIVE) + { + #ifdef ENABLE_DTMF_DECODER + gDTMF_RecvTimeoutSaved = DTMF_RX_timeout_saved_500ms; + size_t len = strlen(gDTMF_ReceivedSaved); + // shift the RX buffer down one - if need be + if (len >= (sizeof(gDTMF_ReceivedSaved) - 1)) + memmove(gDTMF_ReceivedSaved, &gDTMF_ReceivedSaved[1], len--); + gDTMF_ReceivedSaved[len++] = c; + gDTMF_ReceivedSaved[len] = '\0'; + gUpdateDisplay = true; + #endif + + DTMF_HandleRequest(); + } } } @@ -877,7 +879,7 @@ void APP_Update(void) APP_HandleFunction(); #ifdef ENABLE_FMRADIO - if (gFmRadioCountdown) + if (gFmRadioCountdown_500ms > 0) return; #endif @@ -1253,7 +1255,7 @@ void APP_TimeSlice10ms(void) // Skipping authentic device checks #ifdef ENABLE_FMRADIO - if (gFmRadioCountdown > 0) + if (gFmRadioCountdown_500ms > 0) return; #endif @@ -1496,9 +1498,9 @@ void APP_TimeSlice500ms(void) // Skipped authentic device check #ifdef ENABLE_FMRADIO - if (gFmRadioCountdown > 0) + if (gFmRadioCountdown_500ms > 0) { - gFmRadioCountdown--; + gFmRadioCountdown_500ms--; return; } #endif @@ -1597,9 +1599,9 @@ void APP_TimeSlice500ms(void) } #ifdef ENABLE_FMRADIO - if (!gPttIsPressed && gFM_ResumeCountdown > 0) + if (!gPttIsPressed && gFM_ResumeCountdown_500ms > 0) { - if (--gFM_ResumeCountdown == 0) + if (--gFM_ResumeCountdown_500ms == 0) { RADIO_SetVfoState(VFO_STATE_NORMAL); if (gCurrentFunction != FUNCTION_RECEIVE && gCurrentFunction != FUNCTION_TRANSMIT && gCurrentFunction != FUNCTION_MONITOR && gFmRadioMode) diff --git a/app/dtmf.c b/app/dtmf.c index 6a93a75..126552c 100644 --- a/app/dtmf.c +++ b/app/dtmf.c @@ -113,7 +113,7 @@ bool DTMF_FindContact(const char *pContact, char *pResult) if (j == 3) { - memcpy(pResult, Contact, 8); + memmove(pResult, Contact, 8); pResult[8] = 0; return true; } @@ -263,8 +263,8 @@ void DTMF_HandleRequest(void) if (DTMF_CompareMessage(gDTMF_Received + Offset, String, 4, true)) { gDTMF_CallState = DTMF_CALL_STATE_RECEIVED; - memcpy(gDTMF_Callee, gDTMF_Received + Offset, 3); - memcpy(gDTMF_Caller, gDTMF_Received + Offset + 4, 3); + memmove(gDTMF_Callee, gDTMF_Received + Offset, 3); + memmove(gDTMF_Caller, gDTMF_Received + Offset + 4, 3); gUpdateDisplay = true; diff --git a/app/fm.c b/app/fm.c index 56eb4ba..1573ab9 100644 --- a/app/fm.c +++ b/app/fm.c @@ -38,14 +38,14 @@ uint16_t gFM_Channels[20]; bool gFmRadioMode; -uint8_t gFmRadioCountdown; -volatile uint16_t gFmPlayCountdown; +uint8_t gFmRadioCountdown_500ms; +volatile uint16_t gFmPlayCountdown_10ms; volatile int8_t gFM_ScanState; bool gFM_AutoScan; uint8_t gFM_ChannelPosition; bool gFM_FoundFrequency; bool gFM_AutoScan; -uint8_t gFM_ResumeCountdown; +uint8_t gFM_ResumeCountdown_500ms; uint16_t gFM_RestoreCountdown; bool FM_CheckValidChannel(uint8_t Channel) @@ -120,7 +120,7 @@ void FM_Tune(uint16_t Frequency, int8_t Step, bool bFlag) gEnableSpeaker = false; - gFmPlayCountdown = (gFM_ScanState == FM_SCAN_OFF) ? 120 : 10; + gFmPlayCountdown_10ms = (gFM_ScanState == FM_SCAN_OFF) ? fm_play_countdown_noscan_10ms : fm_play_countdown_scan_10ms; gScheduleFM = false; gFM_FoundFrequency = false; @@ -159,9 +159,9 @@ void FM_PlayAndUpdate(void) BK1080_SetFrequency(gEeprom.FM_FrequencyPlaying); SETTINGS_SaveFM(); - gFmPlayCountdown = 0; - gScheduleFM = false; - gAskToSave = false; + gFmPlayCountdown_10ms = 0; + gScheduleFM = false; + gAskToSave = false; GPIO_SetBit(&GPIOC->DATA, GPIOC_PIN_AUDIO_PATH); @@ -617,8 +617,8 @@ void FM_Play(void) { if (!gFM_AutoScan) { - gFmPlayCountdown = 0; - gFM_FoundFrequency = true; + gFmPlayCountdown_10ms = 0; + gFM_FoundFrequency = true; if (!gEeprom.FM_IsMrMode) gEeprom.FM_SelectedFrequency = gEeprom.FM_FrequencyPlaying; diff --git a/app/fm.h b/app/fm.h index eef7b6f..462852a 100644 --- a/app/fm.h +++ b/app/fm.h @@ -28,34 +28,34 @@ enum { FM_SCAN_OFF = 0U, }; -extern uint16_t gFM_Channels[20]; -extern bool gFmRadioMode; -extern uint8_t gFmRadioCountdown; -extern volatile uint16_t gFmPlayCountdown; -extern volatile int8_t gFM_ScanState; -extern bool gFM_AutoScan; -extern uint8_t gFM_ChannelPosition; -// Doubts about whether this should be signed or not. -extern uint16_t gFM_FrequencyDeviation; -extern bool gFM_FoundFrequency; -extern bool gFM_AutoScan; -extern uint8_t gFM_ResumeCountdown; -extern uint16_t gFM_RestoreCountdown; +extern uint16_t gFM_Channels[20]; +extern bool gFmRadioMode; +extern uint8_t gFmRadioCountdown_500ms; +extern volatile uint16_t gFmPlayCountdown_10ms; +extern volatile int8_t gFM_ScanState; +extern bool gFM_AutoScan; +extern uint8_t gFM_ChannelPosition; +// Doubts about whether this should be signed or not +extern uint16_t gFM_FrequencyDeviation; +extern bool gFM_FoundFrequency; +extern bool gFM_AutoScan; +extern uint8_t gFM_ResumeCountdown_500ms; +extern uint16_t gFM_RestoreCountdown; -bool FM_CheckValidChannel(uint8_t Channel); +bool FM_CheckValidChannel(uint8_t Channel); uint8_t FM_FindNextChannel(uint8_t Channel, uint8_t Direction); -int FM_ConfigureChannelState(void); -void FM_TurnOff(void); -void FM_EraseChannels(void); +int FM_ConfigureChannelState(void); +void FM_TurnOff(void); +void FM_EraseChannels(void); -void FM_Tune(uint16_t Frequency, int8_t Step, bool bFlag); -void FM_PlayAndUpdate(void); -int FM_CheckFrequencyLock(uint16_t Frequency, uint16_t LowerLimit); +void FM_Tune(uint16_t Frequency, int8_t Step, bool bFlag); +void FM_PlayAndUpdate(void); +int FM_CheckFrequencyLock(uint16_t Frequency, uint16_t LowerLimit); -void FM_ProcessKeys(KEY_Code_t Key, bool bKeyPressed, bool bKeyHeld); +void FM_ProcessKeys(KEY_Code_t Key, bool bKeyPressed, bool bKeyHeld); -void FM_Play(void); -void FM_Start(void); +void FM_Play(void); +void FM_Start(void); #endif diff --git a/app/main.c b/app/main.c index e6402ca..422c57c 100644 --- a/app/main.c +++ b/app/main.c @@ -509,7 +509,7 @@ static void MAIN_Key_STAR(bool bKeyPressed, bool bKeyHeld) { gKeyInputCountdown = key_input_timeout_500ms; gDTMF_InputMode = true; - memcpy(gDTMF_InputBox, gDTMF_String, 15); + memmove(gDTMF_InputBox, gDTMF_String, 15); gDTMF_InputIndex = 0; gRequestDisplayScreen = DISPLAY_MAIN; return; diff --git a/app/menu.c b/app/menu.c index 08febd9..7c4f89b 100644 --- a/app/menu.c +++ b/app/menu.c @@ -616,7 +616,7 @@ void MENU_AcceptSetting(void) GUI_SelectNextDisplay(DISPLAY_MAIN); gDTMF_InputMode = true; gDTMF_InputIndex = 3; - memcpy(gDTMF_InputBox, gDTMF_ID, 4); + memmove(gDTMF_InputBox, gDTMF_ID, 4); gRequestDisplayScreen = DISPLAY_INVALID; } return; diff --git a/app/uart.c b/app/uart.c index 96fc79f..cb34c71 100644 --- a/app/uart.c +++ b/app/uart.c @@ -223,7 +223,7 @@ static void CMD_0514(const uint8_t *pBuffer) Timestamp = pCmd->Timestamp; #ifdef ENABLE_FMRADIO - gFmRadioCountdown = 4; + gFmRadioCountdown_500ms = fm_radio_countdown_500ms; #endif GPIO_ClearBit(&GPIOB->DATA, GPIOB_PIN_BACKLIGHT); SendVersion(); @@ -240,7 +240,7 @@ static void CMD_051B(const uint8_t *pBuffer) } #ifdef ENABLE_FMRADIO - gFmRadioCountdown = 4; + gFmRadioCountdown_500ms = fm_radio_countdown_500ms; #endif memset(&Reply, 0, sizeof(Reply)); Reply.Header.ID = 0x051C; @@ -273,7 +273,7 @@ static void CMD_051D(const uint8_t *pBuffer) bReloadEeprom = false; #ifdef ENABLE_FMRADIO - gFmRadioCountdown = 4; + gFmRadioCountdown_500ms = fm_radio_countdown_500ms; #endif Reply.Header.ID = 0x051E; Reply.Header.Size = sizeof(Reply.Data); @@ -340,7 +340,7 @@ static void CMD_052D(const uint8_t *pBuffer) bool bIsLocked; #ifdef ENABLE_FMRADIO - gFmRadioCountdown = 4; + gFmRadioCountdown_500ms = fm_radio_countdown_500ms; #endif Reply.Header.ID = 0x052E; Reply.Header.Size = sizeof(Reply.Data); @@ -458,11 +458,11 @@ bool UART_IsCommandAvailable(void) if (TailIndex < Index) { const uint16_t ChunkSize = sizeof(UART_DMA_Buffer) - Index; - memcpy(UART_Command.Buffer, UART_DMA_Buffer + Index, ChunkSize); - memcpy(UART_Command.Buffer + ChunkSize, UART_DMA_Buffer, TailIndex); + memmove(UART_Command.Buffer, UART_DMA_Buffer + Index, ChunkSize); + memmove(UART_Command.Buffer + ChunkSize, UART_DMA_Buffer, TailIndex); } else - memcpy(UART_Command.Buffer, UART_DMA_Buffer + Index, TailIndex - Index); + memmove(UART_Command.Buffer, UART_DMA_Buffer + Index, TailIndex - Index); TailIndex = DMA_INDEX(TailIndex, 2); if (TailIndex < gUART_WriteIndex) diff --git a/board.c b/board.c index 2b341b8..5d3e35c 100644 --- a/board.c +++ b/board.c @@ -609,7 +609,7 @@ void BOARD_EEPROM_Init(void) // 0E98..0E9F EEPROM_ReadBuffer(0x0E98, Data, 8); - memcpy(&gEeprom.POWER_ON_PASSWORD, Data, 4); + memmove(&gEeprom.POWER_ON_PASSWORD, Data, 4); // 0EA0..0EA7 #ifdef ENABLE_VOICE @@ -646,38 +646,38 @@ void BOARD_EEPROM_Init(void) // 0EE0..0EE7 EEPROM_ReadBuffer(0x0EE0, Data, 8); if (DTMF_ValidateCodes((char *)Data, 8)) - memcpy(gEeprom.ANI_DTMF_ID, Data, 8); + memmove(gEeprom.ANI_DTMF_ID, Data, 8); else // Original firmware overflows into the next string - memcpy(gEeprom.ANI_DTMF_ID, "123\0\0\0\0", 8); + memmove(gEeprom.ANI_DTMF_ID, "123\0\0\0\0", 8); // 0EE8..0EEF EEPROM_ReadBuffer(0x0EE8, Data, 8); if (DTMF_ValidateCodes((char *)Data, 8)) - memcpy(gEeprom.KILL_CODE, Data, 8); + memmove(gEeprom.KILL_CODE, Data, 8); else - memcpy(gEeprom.KILL_CODE, "ABCD9\0\0", 8); + memmove(gEeprom.KILL_CODE, "ABCD9\0\0", 8); // 0EF0..0EF7 EEPROM_ReadBuffer(0x0EF0, Data, 8); if (DTMF_ValidateCodes((char *)Data, 8)) - memcpy(gEeprom.REVIVE_CODE, Data, 8); + memmove(gEeprom.REVIVE_CODE, Data, 8); else - memcpy(gEeprom.REVIVE_CODE, "9DCBA\0\0", 8); + memmove(gEeprom.REVIVE_CODE, "9DCBA\0\0", 8); // 0EF8..0F07 EEPROM_ReadBuffer(0x0EF8, Data, 16); if (DTMF_ValidateCodes((char *)Data, 16)) - memcpy(gEeprom.DTMF_UP_CODE, Data, 16); + memmove(gEeprom.DTMF_UP_CODE, Data, 16); else - memcpy(gEeprom.DTMF_UP_CODE, "12345\0\0\0\0\0\0\0\0\0\0", 16); + memmove(gEeprom.DTMF_UP_CODE, "12345\0\0\0\0\0\0\0\0\0\0", 16); // 0F08..0F17 EEPROM_ReadBuffer(0x0F08, Data, 16); if (DTMF_ValidateCodes((char *)Data, 16)) - memcpy(gEeprom.DTMF_DOWN_CODE, Data, 16); + memmove(gEeprom.DTMF_DOWN_CODE, Data, 16); else - memcpy(gEeprom.DTMF_DOWN_CODE, "54321\0\0\0\0\0\0\0\0\0\0", 16); + memmove(gEeprom.DTMF_DOWN_CODE, "54321\0\0\0\0\0\0\0\0\0\0", 16); // 0F18..0F1F EEPROM_ReadBuffer(0x0F18, Data, 8); @@ -728,16 +728,16 @@ void BOARD_EEPROM_LoadMoreSettings(void) // uint8_t Mic; EEPROM_ReadBuffer(0x1EC0, gEEPROM_1EC0_0, 8); - memcpy(gEEPROM_1EC0_1, gEEPROM_1EC0_0, 8); - memcpy(gEEPROM_1EC0_2, gEEPROM_1EC0_0, 8); - memcpy(gEEPROM_1EC0_3, gEEPROM_1EC0_0, 8); + memmove(gEEPROM_1EC0_1, gEEPROM_1EC0_0, 8); + memmove(gEEPROM_1EC0_2, gEEPROM_1EC0_0, 8); + memmove(gEEPROM_1EC0_3, gEEPROM_1EC0_0, 8); // 3 bands, 4 * 16-bit values per band // both my radios are -70dBm, -65dBm, -60dBm, -55dBm (0xB4, 0xBE, 0xC8, 0xD2) // -93, -75, -57, -39 seems to be a better choice (0x86, 0xAA, 0xCE, 0xF2) EEPROM_ReadBuffer(0x1EC8, gEEPROM_RSSI_CALIB[0], 8); - memcpy(gEEPROM_RSSI_CALIB[1], gEEPROM_RSSI_CALIB[0], 8); - memcpy(gEEPROM_RSSI_CALIB[2], gEEPROM_RSSI_CALIB[0], 8); + memmove(gEEPROM_RSSI_CALIB[1], gEEPROM_RSSI_CALIB[0], 8); + memmove(gEEPROM_RSSI_CALIB[2], gEEPROM_RSSI_CALIB[0], 8); EEPROM_ReadBuffer(0x1F40, gBatteryCalibration, 12); if (gBatteryCalibration[0] >= 5000) diff --git a/firmware b/firmware index 33c0a7a55135764fc55e0d435f4610d8a34e247d..c5fb27173814a3cb850160da93273913f5758b13 100644 GIT binary patch delta 21610 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

6kwIDnGD{D0 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 delta 21197 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%0Ar$0RlVi5`=R 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 ZGBNzqp6=Abq{OvxpwM2e_ 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 HGny3uPcb7p delta 8349 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 S#o+Ji7Oo5BZg$)m%?bdwTg5v7 diff --git a/firmware.packed.bin b/firmware.packed.bin index 370dcfd32875fac097c6d82e37982fa1f5546bc4..cc72b909cd66834720980603763ea4b46506e7f9 100644 GIT binary patch delta 38423 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%0Dd9 zY7gU-lM|jUjOy6#m&?JmOJbfnqepaMUxn0$Ty@;AY} zf`{Z6uL$FLy^i(MjhkNnf=-oP>*C|(J73(iZIM1E7-pPacWpuL{^i%V)T=r@kXt@$ z_2R;H-EtD2PR?Ue`nu@COi&uQ_HgFpIRP@o+%NT(8~id#UzD`PUh%^EMP{!iyBpp2 zjR^_s*g0dy<^0D!H77z(&Q|zhDY0c`{R4h?=@6-JR@1ZB7k*(r_)E#qGA!cTu8+R&KrV?x1^g3mrJ3SQT`Pl%|# z53WBckiX!~n!hitrcd_BD{?Q>-N9g^>LS9dW1mNhpWoX%yEq8Zj0AF+flN8 z-@)A(R)-$QEq|mPUAVD@k^RxNol;t*lLA)WUglhW{oTCza{``pb4!8>BIArjxx4*O zzPJvmj@^|G21Z4OOxc)`p*$VbB8oaTMgNWIk9wzjeCg|vnnd7SAjZD(*G8sq>G2#h z|3h+tpLKrPvjfM$Wm@MV&*I;!H?)1EJZ^ox<6J>SZdYR9Qu98)0vtw(X?9Y=d z%z1D929uP2uiD)PW)|+cC!4t2lNyBPUiX;2uCVY_*{d@>3Wv_^Hh5!N|3CO7L;e2b zDXuGbg==q6yqvB0bneNM>-J~evVVUwmrDBTZo z^56(DR8Ww9|JWz_xYxBQ`Z@Ja7x2tH@PGdsZ_%Gx9Vs8y_3Zw5E9s=;${m%f-uap> zm-iPl@3iS=F)Q477abU zf8{HznZK@QFDPUFvybT$Cu5lV%PK=B%OB_GyLEi~;}V^w*jJrj_iJ0_!sYjte%R%e zFil@7IJ$6OHy_8RYmHS=f1@-e-rnU@ee7Rb_Y{pcpPL1*?N@lMT)ruHvALmzzt*)$ zka8g0W6GI?S-0gLE~&Tj6Kbk2e6RZ8j9ziQXZmc`_+9g|*b=0Ex;rbLvqtLG1Xw(M0)d2Ugqd{ZS##i7tJewW0jU_YiuwZWQ!SJ%X+ z%$d{TymhYJ=jH1zzIT7GQ?e^}v4W;XxRaFmL5X*l0-yEH%2t-Ywc+_qnAFHX^JMvV1FEo1oaA%nB%Y9#*wt?D&o04r>GOT{(&H{6?mJmnaR*q+PK~>i@O5ss_lg?Gn6J-}yyn33u)87ZWtX z^JX6HcF*q=iw$SE`%NQZisn+E@EczB*OnQ)QQgiu*R_8CV=0&288>V;D0=PPDD`OW zOi-hAu@uMwht@yKyCa>soWoi{bjUe{vtFMRe)HRF zO?cB~V_ho;!J8e@Hh@SSnr}%=j+G56h^|S?F z)&A`7{$_5q%kN^gRIsSs|BG_rTP8FzDXkaHztXu&K%wNOjU4X1-j!uoEx$+r#OsBRJI4A}8^_E;*TTCq93(pS88!%4a%{_fPDyv)UywuOyOD%4Xw~7~h5c zhy0W_$fq8f^(I!Webv=NrvkieqCwekTdv7Z!}s>NwPJZKr@Do!riloJdtCdXYH&OM zu|&N}4{P&%gZ*h|<>rLd|5+{Ivny-5!dG*LEuW+|K4}nQzOidj{&!_*+i6SYR)VTy znQSN1O;5A_erpA#f#{1_Ub6Cq4Lf5a_swby%-h0QGx7FILEWjVwl|-b2~`MJzV@ze zFQeVJ+IRU`>B8yPuH9kDZ4r+ZPCfoKA>p?6xq3PM4zFwHWtU{F;kfA%^nRlt>&vXe z_H)%eet$Jz*3}y3zIOUv?x)7_@i%w2i{5n=7|i>3VBH1zcnfCbXY*wjl$5vob_>-OgbO}iw2Ud|0HYjh z>c#&FYTtC~7crQ^dZ&{8x+YzRg>q(xKj1pVt#JEaR{QdY!paTjX6WAVu6MY+ah~7< zEth6(-mvU93sk@UoY*14eWU8PpmK1wL-TSi-6IcoS|{(9%-Q{8SB3cFxr;x{5sWK# z0(DHjaI#F7+wJ4vqpyEw(hu|SMe*U`){idmaPF^9dg;TzTWLp|)tj^xiGK`yPdyg* zJtDt6;%J`Jy1!wMTKhzKUjA4j_�M@6h$u;>*%SJM-$*OqV}W`?`P98{7J?zNgfq z<)xJWOz{Zc*R;?pdzX;LrT$%#>Qnz6I&dx^-pD`p+k?~vEUFK6C)sCZO6PsMdrw%Y zg-t*(-O6eWavs*&Hx2%~?(ASJTt&x3#Q^ZwbkGSjZBPcK8VU z&5OqxLsnO3jeWvcWL;vq6($ljrE|O zN$!dekqBS07KhbOmqlo@+3!0X=JzRxU*mx0nY~M2J?YFYabC1wqVv=gQMrGAy7Zr9 zCn|EN&revkVb-?)huVq?Ru@c7;WXAZo0uXI@$q|;ht^(C2dNo5<;s`!9bB9f7E`Vy zJZDcteSXR%-aqm;^~B4+Og<3nv_aH$xnKPiX{W>qrOh_hM|NE}ZG3+3VxNr#7JCl` z_^-5TVcwzFzGG$Nr)X_i7yrfv7jO|t4Y*3Oo`sVA;Jr^znF zYjzM@e0}s6zv(Yj@=tGHbK<+$Spym61pz-;Ozj`L=RT~G(O97?Gy7nyQvbnajw@HW zxNQS%vH1S*c&MD1+|COV^4GE?t+{U*#BkL0{ec@&)e9DExzALc{C-^W#@h>Q zORDV-wC9Ay)PEMAw*A1ToRXjEmu-@&MHJ^WzBW%~5DBdh@z}EXLc(o#VK18#|1Wi) zm!2-~^YecPlS~P#*jf20{xher_`PK_n^NMoXu-rF?)vqd*F3C>xg~O+vOMI!Df<3t z!B1<@$wOb~9hVDUSh7&@;rrd1jY@a9(yr&}bS#=}C{{UHGeo9H`JLjg^H+2_T#a3< zH8slbD&8qcSGw@N-uIE`7Qg8lD(`MJ#Z~twp&Pla5cDcXxA;|_QB@g(#7i+ySsia?or&q$8&p8m8_lFitvy{j85C0$Mau%ZE4do zU+p2E^!&7E8d)3uKMF0dGLx8>E)*PXcyfwdgxSSLrntXR8Krl2#k!pPcWn8TfEZ_P z!D-dz;M=W#vny(dzq>f8yIM=&8S;dY{%ks~E M^21N+(aDt;0E4Gr-v9sr delta 38374 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 diff --git a/functions.c b/functions.c index 845184a..32fb1d8 100644 --- a/functions.c +++ b/functions.c @@ -134,11 +134,14 @@ void FUNCTION_Select(FUNCTION_Type_t Function) case FUNCTION_POWER_SAVE: gBatterySave = gEeprom.BATTERY_SAVE * 10; gRxIdleMode = true; + BK4819_DisableVox(); BK4819_Sleep(); BK4819_ToggleGpioOut(BK4819_GPIO6_PIN2, false); + gBatterySaveCountdownExpired = false; gUpdateStatus = true; + GUI_SelectNextDisplay(DISPLAY_MAIN); return; @@ -184,8 +187,8 @@ void FUNCTION_Select(FUNCTION_Type_t Function) } #endif - if (gCurrentVfo->SCRAMBLING_TYPE && gSetting_ScrambleEnable) - BK4819_EnableScramble(gCurrentVfo->SCRAMBLING_TYPE - 1U); + if (gCurrentVfo->SCRAMBLING_TYPE > 0 && gSetting_ScrambleEnable) + BK4819_EnableScramble(gCurrentVfo->SCRAMBLING_TYPE - 1); else BK4819_DisableScramble(); diff --git a/misc.c b/misc.c index 759e0ae..d9d6f27 100644 --- a/misc.c +++ b/misc.c @@ -18,6 +18,11 @@ #include "misc.h" +const uint8_t fm_resume_countdown_500ms = 2500 / 500; // 2.5 seconds +const uint8_t fm_radio_countdown_500ms = 2000 / 500; // 2 seconds +const uint16_t fm_play_countdown_scan_10ms = 100 / 10; // 100ms +const uint16_t fm_play_countdown_noscan_10ms = 1200 / 10; // 1.2 seconds + const uint8_t menu_timeout_500ms = 20000 / 500; // 20 seconds const uint8_t DTMF_RX_timeout_500ms = 2500 / 500; // 2.5 seconds diff --git a/misc.h b/misc.h index 91289d6..4062f02 100644 --- a/misc.h +++ b/misc.h @@ -78,6 +78,11 @@ enum CssScanMode_t typedef enum CssScanMode_t CssScanMode_t; +extern const uint8_t fm_resume_countdown_500ms; +extern const uint8_t fm_radio_countdown_500ms; +extern const uint16_t fm_play_countdown_scan_10ms; +extern const uint16_t fm_play_countdown_noscan_10ms; + extern const uint8_t menu_timeout_500ms; extern const uint8_t DTMF_RX_timeout_500ms; @@ -138,7 +143,7 @@ extern volatile uint16_t gDualWatchCountdown; extern volatile uint16_t gTxTimerCountdown; extern volatile uint16_t gTailNoteEliminationCountdown; #ifdef ENABLE_FMRADIO - extern volatile uint16_t gFmPlayCountdown; + extern volatile uint16_t gFmPlayCountdown_10ms; #endif #ifdef ENABLE_NOAA extern volatile uint16_t gNOAA_Countdown; diff --git a/radio.c b/radio.c index aa488fb..4a3f174 100644 --- a/radio.c +++ b/radio.c @@ -645,10 +645,10 @@ void RADIO_SetupRegisters(bool bSwitchToFunction0) break; } - if (gRxVfo->SCRAMBLING_TYPE == 0 || !gSetting_ScrambleEnable) - BK4819_DisableScramble(); - else + if (gRxVfo->SCRAMBLING_TYPE > 0 && gSetting_ScrambleEnable) BK4819_EnableScramble(gRxVfo->SCRAMBLING_TYPE - 1); + else + BK4819_DisableScramble(); } } #ifdef ENABLE_NOAA @@ -688,18 +688,26 @@ void RADIO_SetupRegisters(bool bSwitchToFunction0) #endif #ifndef ENABLE_DTMF_DECODER + // 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->IsAM || (!gRxVfo->DTMF_DECODING_ENABLE && !gSetting_KILLED)) { BK4819_DisableDTMF(); } else + { + BK4819_EnableDTMF(); + InterruptMask |= BK4819_REG_3F_DTMF_5TONE_FOUND; + } + #else + if (!gSetting_KILLED) + { + BK4819_EnableDTMF(); + InterruptMask |= BK4819_REG_3F_DTMF_5TONE_FOUND; + } #endif - { - BK4819_EnableDTMF(); - InterruptMask |= BK4819_REG_3F_DTMF_5TONE_FOUND; - } - // enable/disable BK4819 interrupts + // enable/disable BK4819 selected interrupts BK4819_WriteRegister(BK4819_REG_3F, InterruptMask); FUNCTION_Init(); @@ -765,7 +773,7 @@ void RADIO_SetTxParameters(void) Bandwidth = gCurrentVfo->CHANNEL_BANDWIDTH; if (Bandwidth != BK4819_FILTER_BW_WIDE) - Bandwidth = BK4819_FILTER_BW_NARROW; + Bandwidth = BK4819_FILTER_BW_NARROW; BK4819_SetFilterBandwidth(Bandwidth); BK4819_SetFrequency(gCurrentVfo->pTX->Frequency); @@ -816,7 +824,7 @@ void RADIO_SetVfoState(VfoState_t State) VfoState[1] = VFO_STATE_NORMAL; #ifdef ENABLE_FMRADIO - gFM_ResumeCountdown = 0; + gFM_ResumeCountdown_500ms = 0; #endif } else @@ -833,7 +841,7 @@ void RADIO_SetVfoState(VfoState_t State) } #ifdef ENABLE_FMRADIO - gFM_ResumeCountdown = 5; + gFM_ResumeCountdown_500ms = fm_resume_countdown_500ms; #endif } @@ -858,7 +866,9 @@ void RADIO_PrepareTX(void) RADIO_SelectCurrentVfo(); #ifdef ENABLE_ALARM - if (gAlarmState == ALARM_STATE_OFF || gAlarmState == ALARM_STATE_TX1750 || (gAlarmState == ALARM_STATE_ALARM && gEeprom.ALARM_MODE == ALARM_MODE_TONE)) + if (gAlarmState == ALARM_STATE_OFF || + gAlarmState == ALARM_STATE_TX1750 || + (gAlarmState == ALARM_STATE_ALARM && gEeprom.ALARM_MODE == ALARM_MODE_TONE)) #endif { VfoState_t State; @@ -892,10 +902,9 @@ void RADIO_PrepareTX(void) gAlarmState = ALARM_STATE_OFF; #endif - AUDIO_PlayBeep(BEEP_500HZ_60MS_DOUBLE_BEEP_OPTIONAL); - gDTMF_ReplyState = DTMF_REPLY_NONE; + AUDIO_PlayBeep(BEEP_500HZ_60MS_DOUBLE_BEEP_OPTIONAL); return; } @@ -953,7 +962,9 @@ void RADIO_EnableCxCSS(void) void RADIO_PrepareCssTX(void) { RADIO_PrepareTX(); + SYSTEM_DelayMs(200); + RADIO_EnableCxCSS(); RADIO_SetupRegisters(true); } diff --git a/scheduler.c b/scheduler.c index 27a441b..94a6ce7 100644 --- a/scheduler.c +++ b/scheduler.c @@ -98,7 +98,7 @@ void SystickHandler(void) #ifdef ENABLE_FMRADIO if (gFM_ScanState != FM_SCAN_OFF && gCurrentFunction != FUNCTION_MONITOR) if (gCurrentFunction != FUNCTION_TRANSMIT && gCurrentFunction != FUNCTION_RECEIVE) - DECREMENT_AND_TRIGGER(gFmPlayCountdown, gScheduleFM); + DECREMENT_AND_TRIGGER(gFmPlayCountdown_10ms, gScheduleFM); #endif if (gVoxStopCountdown) diff --git a/ui/helper.c b/ui/helper.c index 8510eef..83b3b43 100644 --- a/ui/helper.c +++ b/ui/helper.c @@ -76,8 +76,8 @@ void UI_PrintString(const char *pString, uint8_t Start, uint8_t End, uint8_t Lin { const unsigned int Index = pString[i] - ' '; const unsigned int ofs = (unsigned int)Start + (i * Width); - memcpy(gFrameBuffer[Line + 0] + ofs, &gFontBig[Index][0], 8); - memcpy(gFrameBuffer[Line + 1] + ofs, &gFontBig[Index][8], 7); + memmove(gFrameBuffer[Line + 0] + ofs, &gFontBig[Index][0], 8); + memmove(gFrameBuffer[Line + 1] + ofs, &gFontBig[Index][8], 7); } } } @@ -99,7 +99,7 @@ void UI_PrintStringSmall(const char *pString, uint8_t Start, uint8_t End, uint8_ { const unsigned int Index = (unsigned int)pString[i] - 32; if (Index < ARRAY_SIZE(gFontSmall)) - memcpy(pFb + (i * char_spacing), &gFontSmall[Index], char_width); + memmove(pFb + (i * char_spacing), &gFontSmall[Index], char_width); } } } @@ -119,8 +119,8 @@ void UI_DisplayFrequency(const char *pDigits, uint8_t X, uint8_t Y, bool bDispla if (bDisplayLeadingZero || bCanDisplay || Digit > 0) { bCanDisplay = true; - memcpy(pFb0, gFontBigDigits[Digit], char_width); - memcpy(pFb1, gFontBigDigits[Digit] + char_width, char_width); + memmove(pFb0, gFontBigDigits[Digit], char_width); + memmove(pFb1, gFontBigDigits[Digit] + char_width, char_width); } else if (bFlag) @@ -141,8 +141,8 @@ void UI_DisplayFrequency(const char *pDigits, uint8_t X, uint8_t Y, bool bDispla while (i < 6) { const unsigned int Digit = pDigits[i++]; - memcpy(pFb0, gFontBigDigits[Digit], char_width); - memcpy(pFb1, gFontBigDigits[Digit] + char_width, char_width); + memmove(pFb0, gFontBigDigits[Digit], char_width); + memmove(pFb1, gFontBigDigits[Digit] + char_width, char_width); pFb0 += char_width; pFb1 += char_width; } @@ -162,7 +162,7 @@ void UI_DisplayFrequencySmall(const char *pDigits, uint8_t X, uint8_t Y, bool bD if (bDisplayLeadingZero || bCanDisplay || Digit > 0) { bCanDisplay = true; - memcpy(pFb, gFontSmallDigits[Digit], char_width); + memmove(pFb, gFontSmallDigits[Digit], char_width); pFb += char_width; } } @@ -178,7 +178,7 @@ void UI_DisplayFrequencySmall(const char *pDigits, uint8_t X, uint8_t Y, bool bD while (i < 8) { const unsigned int Digit = pDigits[i++]; - memcpy(pFb, gFontSmallDigits[Digit], char_width); + memmove(pFb, gFontSmallDigits[Digit], char_width); pFb += char_width; } } @@ -196,7 +196,7 @@ void UI_DisplaySmallDigits(const uint8_t size, const char *str, const uint8_t x, display = true; if (display && c < ARRAY_SIZE(gFontSmallDigits)) { - memcpy(gFrameBuffer[y] + xx, gFontSmallDigits[c], char_width); + memmove(gFrameBuffer[y] + xx, gFontSmallDigits[c], char_width); xx += char_width; } } diff --git a/ui/main.c b/ui/main.c index f9f7e38..3e22201 100644 --- a/ui/main.c +++ b/ui/main.c @@ -54,6 +54,10 @@ void UI_DisplayMain(void) const bool single_vfo = false; // #endif + #ifdef ENABLE_DTMF_DECODER + bool show_dtmf_rx = true; + #endif + for (vfo_num = 0; vfo_num < 2; vfo_num++) { uint8_t Channel = gEeprom.TX_CHANNEL; @@ -112,24 +116,28 @@ void UI_DisplayMain(void) } UI_PrintString(String, 2, 0, 2 + (vfo_num * 3), 8); + #ifdef ENABLE_DTMF_DECODER + show_dtmf_rx = false; + #endif + continue; } // highlight the selected/used VFO with a marker if (!single_vfo && bIsSameVfo) - memcpy(pLine0 + 2, BITMAP_VFO_Default, sizeof(BITMAP_VFO_Default)); + memmove(pLine0 + 2, BITMAP_VFO_Default, sizeof(BITMAP_VFO_Default)); else if (gEeprom.CROSS_BAND_RX_TX != CROSS_BAND_OFF) - memcpy(pLine0 + 2, BITMAP_VFO_NotDefault, sizeof(BITMAP_VFO_NotDefault)); + memmove(pLine0 + 2, BITMAP_VFO_NotDefault, sizeof(BITMAP_VFO_NotDefault)); } else if (!single_vfo) { // highlight the selected/used VFO with a marker if (bIsSameVfo) - memcpy(pLine0 + 2, BITMAP_VFO_Default, sizeof(BITMAP_VFO_Default)); + memmove(pLine0 + 2, BITMAP_VFO_Default, sizeof(BITMAP_VFO_Default)); else //if (gEeprom.CROSS_BAND_RX_TX != CROSS_BAND_OFF) - memcpy(pLine0 + 2, BITMAP_VFO_NotDefault, sizeof(BITMAP_VFO_NotDefault)); + memmove(pLine0 + 2, BITMAP_VFO_NotDefault, sizeof(BITMAP_VFO_NotDefault)); } uint32_t SomeValue = 0; @@ -167,7 +175,7 @@ void UI_DisplayMain(void) if (!inputting) NUMBER_ToDigits(gEeprom.ScreenChannel[vfo_num] + 1, String); // show the memory channel number else - memcpy(String + 5, gInputBox, 3); // show the input text + memmove(String + 5, gInputBox, 3); // show the input text UI_PrintStringSmall("M", x, 0, Line + 1); UI_DisplaySmallDigits(3, String + 5, x + 7, Line + 1, inputting); } @@ -234,9 +242,9 @@ void UI_DisplayMain(void) { // show the scanlist symbols const uint8_t Attributes = gMR_ChannelAttributes[gEeprom.ScreenChannel[vfo_num]]; if (Attributes & MR_CH_SCANLIST1) - memcpy(pLine0 + 113, BITMAP_ScanList, sizeof(BITMAP_ScanList)); + memmove(pLine0 + 113, BITMAP_ScanList, sizeof(BITMAP_ScanList)); if (Attributes & MR_CH_SCANLIST2) - memcpy(pLine0 + 120, BITMAP_ScanList, sizeof(BITMAP_ScanList)); + memmove(pLine0 + 120, BITMAP_ScanList, sizeof(BITMAP_ScanList)); } switch (gEeprom.CHANNEL_DISPLAY_MODE) @@ -270,7 +278,7 @@ void UI_DisplayMain(void) else { // channel name memset(String, 0, sizeof(String)); - memcpy(String, gEeprom.VfoInfo[vfo_num].Name, 10); + memmove(String, gEeprom.VfoInfo[vfo_num].Name, 10); } UI_PrintString(String, 31, 112, Line, 8); break; @@ -285,7 +293,7 @@ void UI_DisplayMain(void) else { // channel name memset(String, 0, sizeof(String)); - memcpy(String, gEeprom.VfoInfo[vfo_num].Name, 10); + memmove(String, gEeprom.VfoInfo[vfo_num].Name, 10); } UI_PrintStringSmall(String, 31 + 8, 0, Line); @@ -336,18 +344,18 @@ void UI_DisplayMain(void) if (Level >= 1) { - memcpy(pLine1 + display_width + 0, BITMAP_Antenna, sizeof(BITMAP_Antenna)); - memcpy(pLine1 + display_width + 5, BITMAP_AntennaLevel1, sizeof(BITMAP_AntennaLevel1)); + memmove(pLine1 + display_width + 0, BITMAP_Antenna, sizeof(BITMAP_Antenna)); + memmove(pLine1 + display_width + 5, BITMAP_AntennaLevel1, sizeof(BITMAP_AntennaLevel1)); if (Level >= 2) - memcpy(pLine1 + display_width + 8, BITMAP_AntennaLevel2, sizeof(BITMAP_AntennaLevel2)); + memmove(pLine1 + display_width + 8, BITMAP_AntennaLevel2, sizeof(BITMAP_AntennaLevel2)); if (Level >= 3) - memcpy(pLine1 + display_width + 11, BITMAP_AntennaLevel3, sizeof(BITMAP_AntennaLevel3)); + memmove(pLine1 + display_width + 11, BITMAP_AntennaLevel3, sizeof(BITMAP_AntennaLevel3)); if (Level >= 4) - memcpy(pLine1 + display_width + 14, BITMAP_AntennaLevel4, sizeof(BITMAP_AntennaLevel4)); + memmove(pLine1 + display_width + 14, BITMAP_AntennaLevel4, sizeof(BITMAP_AntennaLevel4)); if (Level >= 5) - memcpy(pLine1 + display_width + 17, BITMAP_AntennaLevel5, sizeof(BITMAP_AntennaLevel5)); + memmove(pLine1 + display_width + 17, BITMAP_AntennaLevel5, sizeof(BITMAP_AntennaLevel5)); if (Level >= 6) - memcpy(pLine1 + display_width + 20, BITMAP_AntennaLevel6, sizeof(BITMAP_AntennaLevel6)); + memmove(pLine1 + display_width + 20, BITMAP_AntennaLevel6, sizeof(BITMAP_AntennaLevel6)); } } @@ -404,7 +412,7 @@ void UI_DisplayMain(void) } #ifdef ENABLE_DTMF_DECODER - if (gDTMF_ReceivedSaved[0] >= 32) + if (show_dtmf_rx && gDTMF_ReceivedSaved[0] >= 32) { // show the incoming DTMF live on-screen UI_PrintStringSmall(gDTMF_ReceivedSaved, 8, 0, 3); } diff --git a/ui/menu.c b/ui/menu.c index 320796b..41c9a38 100644 --- a/ui/menu.c +++ b/ui/menu.c @@ -302,7 +302,7 @@ void UI_DisplayMenu(void) #endif if (gIsInSubMenu) - memcpy(gFrameBuffer[0] + 50, BITMAP_CurrentIndicator, sizeof(BITMAP_CurrentIndicator)); + memmove(gFrameBuffer[0] + 50, BITMAP_CurrentIndicator, sizeof(BITMAP_CurrentIndicator)); memset(String, 0, sizeof(String)); @@ -523,7 +523,7 @@ void UI_DisplayMenu(void) if (!gIsDtmfContactValid) strcpy(String, "NULL"); else - memcpy(String, Contact, 8); + memmove(String, Contact, 8); break; case MENU_PONMSG: @@ -650,7 +650,7 @@ void UI_DisplayMenu(void) if (gMenuCursor == MENU_D_LIST && gIsDtmfContactValid) { Contact[11] = 0; - memcpy(&gDTMF_ID, Contact + 8, 4); + memmove(&gDTMF_ID, Contact + 8, 4); sprintf(String, "ID:%s", Contact + 8); UI_PrintString(String, 50, 127, 4, 8); } diff --git a/ui/rssi.c b/ui/rssi.c index 7ed70db..0aa7cc3 100644 --- a/ui/rssi.c +++ b/ui/rssi.c @@ -53,19 +53,19 @@ static void Render(uint8_t RssiLevel, uint8_t VFO) } else { - memcpy(pLine, BITMAP_Antenna, 5); + memmove(pLine, BITMAP_Antenna, 5); if (RssiLevel >= 2) - memcpy(pLine + 5, BITMAP_AntennaLevel1, sizeof(BITMAP_AntennaLevel1)); + memmove(pLine + 5, BITMAP_AntennaLevel1, sizeof(BITMAP_AntennaLevel1)); if (RssiLevel >= 3) - memcpy(pLine + 8, BITMAP_AntennaLevel2, sizeof(BITMAP_AntennaLevel2)); + memmove(pLine + 8, BITMAP_AntennaLevel2, sizeof(BITMAP_AntennaLevel2)); if (RssiLevel >= 4) - memcpy(pLine + 11, BITMAP_AntennaLevel3, sizeof(BITMAP_AntennaLevel3)); + memmove(pLine + 11, BITMAP_AntennaLevel3, sizeof(BITMAP_AntennaLevel3)); if (RssiLevel >= 5) - memcpy(pLine + 14, BITMAP_AntennaLevel4, sizeof(BITMAP_AntennaLevel4)); + memmove(pLine + 14, BITMAP_AntennaLevel4, sizeof(BITMAP_AntennaLevel4)); if (RssiLevel >= 6) - memcpy(pLine + 17, BITMAP_AntennaLevel5, sizeof(BITMAP_AntennaLevel5)); + memmove(pLine + 17, BITMAP_AntennaLevel5, sizeof(BITMAP_AntennaLevel5)); if (RssiLevel >= 7) - memcpy(pLine + 20, BITMAP_AntennaLevel6, sizeof(BITMAP_AntennaLevel6)); + memmove(pLine + 20, BITMAP_AntennaLevel6, sizeof(BITMAP_AntennaLevel6)); } ST7565_DrawLine(0, Line, 23 , pLine, bIsClearMode); diff --git a/ui/status.c b/ui/status.c index af633ff..a4ae278 100644 --- a/ui/status.c +++ b/ui/status.c @@ -34,11 +34,11 @@ void UI_DisplayStatus(const bool test_display) memset(gStatusLine, 0, sizeof(gStatusLine)); if (gCurrentFunction == FUNCTION_POWER_SAVE || test_display) - memcpy(gStatusLine, BITMAP_PowerSave, sizeof(BITMAP_PowerSave)); + memmove(gStatusLine, BITMAP_PowerSave, sizeof(BITMAP_PowerSave)); #ifdef ENABLE_NOAA if (gIsNoaaMode || test_display) - memcpy(gStatusLine + 7, BITMAP_NOAA, sizeof(BITMAP_NOAA)); + memmove(gStatusLine + 7, BITMAP_NOAA, sizeof(BITMAP_NOAA)); #endif if (gSetting_KILLED || test_display) @@ -46,46 +46,46 @@ void UI_DisplayStatus(const bool test_display) #ifdef ENABLE_FMRADIO else if (gFmRadioMode || test_display) - memcpy(gStatusLine + 21, BITMAP_FM, sizeof(BITMAP_FM)); + memmove(gStatusLine + 21, BITMAP_FM, sizeof(BITMAP_FM)); #endif #ifdef ENABLE_VOICE if (gEeprom.VOICE_PROMPT != VOICE_PROMPT_OFF || test_display) - memcpy(gStatusLine + 34, BITMAP_VoicePrompt, sizeof(BITMAP_VoicePrompt)); + memmove(gStatusLine + 34, BITMAP_VoicePrompt, sizeof(BITMAP_VoicePrompt)); #endif if (gEeprom.DUAL_WATCH != DUAL_WATCH_OFF || test_display) - memcpy(gStatusLine + 45, BITMAP_TDR, sizeof(BITMAP_TDR)); + memmove(gStatusLine + 45, BITMAP_TDR, sizeof(BITMAP_TDR)); if (gEeprom.CROSS_BAND_RX_TX != CROSS_BAND_OFF || test_display) - memcpy(gStatusLine + 58, BITMAP_XB, sizeof(BITMAP_XB)); + memmove(gStatusLine + 58, BITMAP_XB, sizeof(BITMAP_XB)); if (gEeprom.VOX_SWITCH || test_display) - memcpy(gStatusLine + 71, BITMAP_VOX, sizeof(BITMAP_VOX)); + memmove(gStatusLine + 71, BITMAP_VOX, sizeof(BITMAP_VOX)); if (gEeprom.KEY_LOCK || test_display) - memcpy(gStatusLine + 90, BITMAP_KeyLock, sizeof(BITMAP_KeyLock)); + memmove(gStatusLine + 90, BITMAP_KeyLock, sizeof(BITMAP_KeyLock)); else if (gWasFKeyPressed) - memcpy(gStatusLine + 90, BITMAP_F_Key, sizeof(BITMAP_F_Key)); + memmove(gStatusLine + 90, BITMAP_F_Key, sizeof(BITMAP_F_Key)); if (gChargingWithTypeC || test_display) - memcpy(gStatusLine + 100, BITMAP_USB_C, sizeof(BITMAP_USB_C)); + memmove(gStatusLine + 100, BITMAP_USB_C, sizeof(BITMAP_USB_C)); if (gBatteryDisplayLevel >= 5 || test_display) - memcpy(gStatusLine + 110, BITMAP_BatteryLevel5, sizeof(BITMAP_BatteryLevel5)); + memmove(gStatusLine + 110, BITMAP_BatteryLevel5, sizeof(BITMAP_BatteryLevel5)); else if (gBatteryDisplayLevel >= 4) - memcpy(gStatusLine + 110, BITMAP_BatteryLevel4, sizeof(BITMAP_BatteryLevel4)); + memmove(gStatusLine + 110, BITMAP_BatteryLevel4, sizeof(BITMAP_BatteryLevel4)); else if (gBatteryDisplayLevel >= 3) - memcpy(gStatusLine + 110, BITMAP_BatteryLevel3, sizeof(BITMAP_BatteryLevel3)); + memmove(gStatusLine + 110, BITMAP_BatteryLevel3, sizeof(BITMAP_BatteryLevel3)); else if (gBatteryDisplayLevel >= 2) - memcpy(gStatusLine + 110, BITMAP_BatteryLevel2, sizeof(BITMAP_BatteryLevel2)); + memmove(gStatusLine + 110, BITMAP_BatteryLevel2, sizeof(BITMAP_BatteryLevel2)); else if (gLowBatteryBlink == 1) - memcpy(gStatusLine + 110, BITMAP_BatteryLevel1, sizeof(BITMAP_BatteryLevel1)); + memmove(gStatusLine + 110, BITMAP_BatteryLevel1, sizeof(BITMAP_BatteryLevel1)); ST7565_BlitStatusLine(); }