From f436a84bd56a2f9d652ff00255da2a302fcb18ce Mon Sep 17 00:00:00 2001 From: OneOfEleven Date: Tue, 12 Sep 2023 16:53:47 +0100 Subject: [PATCH] Fixed WX/Cross-band display indicator, some menu renames --- app/action.c | 8 +- app/app.c | 42 ++++++++-- firmware | Bin 172892 -> 172892 bytes firmware.bin | Bin 56664 -> 56736 bytes firmware.packed.bin | Bin 56682 -> 56754 bytes functions.c | 194 +++++++++++++++++++++++--------------------- helper/boot.c | 3 + ui/aircopy.c | 2 +- ui/helper.c | 18 +++- ui/helper.h | 2 +- ui/main.c | 15 ++-- ui/menu.c | 40 ++++----- 12 files changed, 190 insertions(+), 134 deletions(-) diff --git a/app/action.c b/app/action.c index db0dc8c..e57da3e 100644 --- a/app/action.c +++ b/app/action.c @@ -74,6 +74,7 @@ static void ACTION_Monitor(void) RADIO_SetupRegisters(true); APP_StartListening(FUNCTION_MONITOR); + return; } @@ -88,7 +89,7 @@ static void ACTION_Monitor(void) if (gEeprom.DUAL_WATCH == DUAL_WATCH_OFF && gIsNoaaMode) { gNOAA_Countdown = 500; - gScheduleNOAA = false; + gScheduleNOAA = false; } #endif @@ -207,6 +208,7 @@ void ACTION_FM(void) if (gFmRadioMode) { FM_TurnOff(); + gInputBoxIndex = 0; gVoxResumeCountdown = 80; gFlagReconfigureVfos = true; @@ -216,7 +218,9 @@ void ACTION_FM(void) RADIO_SelectVfos(); RADIO_SetupRegisters(true); + FM_Start(); + gInputBoxIndex = 0; gRequestDisplayScreen = DISPLAY_FM; } @@ -246,6 +250,7 @@ void ACTION_Handle(KEY_Code_t Key, bool bKeyPressed, bool bKeyHeld) #ifndef DISABLE_VOICE gAnotherVoiceID = VOICE_ID_CANCEL; #endif + gRequestDisplayScreen = DISPLAY_MAIN; gDTMF_InputMode = false; } @@ -286,6 +291,7 @@ void ACTION_Handle(KEY_Code_t Key, bool bKeyPressed, bool bKeyHeld) switch (Short) { default: + case ACTION_OPT_NONE: break; case ACTION_OPT_FLASHLIGHT: ACTION_FlashLight(); diff --git a/app/app.c b/app/app.c index d41462a..c6e06aa 100644 --- a/app/app.c +++ b/app/app.c @@ -421,7 +421,6 @@ void APP_StartListening(FUNCTION_Type_t Function) #ifndef DISABLE_VOICE if (gVoiceWriteIndex == 0) -// BK4819_SetAF(gRxVfo->IsAM ? BK4819_AF_AM : BK4819_AF_OPEN); #endif BK4819_SetAF(gRxVfo->IsAM ? BK4819_AF_AM : BK4819_AF_OPEN); @@ -685,7 +684,11 @@ static void APP_HandleVox(void) gVoxPauseCountdown = 0; } - if (gCurrentFunction != FUNCTION_RECEIVE && gCurrentFunction != FUNCTION_MONITOR && gScanState == SCAN_OFF && gCssScanMode == CSS_SCAN_MODE_OFF && !gFmRadioMode) + if (gCurrentFunction != FUNCTION_RECEIVE && + gCurrentFunction != FUNCTION_MONITOR && + gScanState == SCAN_OFF && + gCssScanMode == CSS_SCAN_MODE_OFF && + !gFmRadioMode) { if (gVOX_NoiseDetected) { @@ -704,6 +707,7 @@ static void APP_HandleVox(void) else { APP_EndTransmission(); + if (gEeprom.REPEATER_TAIL_TONE_ELIMINATION == 0) FUNCTION_Select(FUNCTION_FOREGROUND); else @@ -727,7 +731,9 @@ static void APP_HandleVox(void) if (gCurrentFunction != FUNCTION_TRANSMIT) { gDTMF_ReplyState = DTMF_REPLY_NONE; + RADIO_PrepareTX(); + gUpdateDisplay = true; } } @@ -749,9 +755,13 @@ void APP_Update(void) { gTxTimeoutReached = false; gFlagEndTransmission = true; + APP_EndTransmission(); + AUDIO_PlayBeep(BEEP_500HZ_60MS_DOUBLE_BEEP); + RADIO_SetVfoState(VFO_STATE_TIMEOUT); + GUI_DisplayScreen(); } @@ -809,6 +819,7 @@ void APP_Update(void) { NOAA_IncreaseChannel(); RADIO_SetupRegisters(false); + gScheduleNOAA = false; gNOAA_Countdown = 7; } @@ -840,7 +851,11 @@ void APP_Update(void) } } - if (gFM_ScanState != FM_SCAN_OFF && gScheduleFM && gCurrentFunction != FUNCTION_MONITOR && gCurrentFunction != FUNCTION_RECEIVE && gCurrentFunction != FUNCTION_TRANSMIT) + if (gFM_ScanState != FM_SCAN_OFF && + gScheduleFM && + gCurrentFunction != FUNCTION_MONITOR && + gCurrentFunction != FUNCTION_RECEIVE && + gCurrentFunction != FUNCTION_TRANSMIT) { FM_Play(); gScheduleFM = false; @@ -852,7 +867,14 @@ void APP_Update(void) if (gSchedulePowerSave) { #ifndef DISABLE_NOAA - if (gEeprom.BATTERY_SAVE == 0 || gScanState != SCAN_OFF || gCssScanMode != CSS_SCAN_MODE_OFF || gFmRadioMode || gPttIsPressed || gScreenToDisplay != DISPLAY_MAIN || gKeyBeingHeld || gDTMF_CallState != DTMF_CALL_STATE_NONE) + if (gEeprom.BATTERY_SAVE == 0 || + gScanState != SCAN_OFF || + gCssScanMode != CSS_SCAN_MODE_OFF || + gFmRadioMode || + gPttIsPressed || + gScreenToDisplay != DISPLAY_MAIN || + gKeyBeingHeld || + gDTMF_CallState != DTMF_CALL_STATE_NONE) gBatterySaveCountdown = 1000; else if ((IS_NOT_NOAA_CHANNEL(gEeprom.ScreenChannel[0]) && IS_NOT_NOAA_CHANNEL(gEeprom.ScreenChannel[1])) || !gIsNoaaMode) @@ -860,7 +882,14 @@ void APP_Update(void) else gBatterySaveCountdown = 1000; #else - if (gEeprom.BATTERY_SAVE == 0 || gScanState != SCAN_OFF || gCssScanMode != CSS_SCAN_MODE_OFF || gFmRadioMode || gPttIsPressed || gScreenToDisplay != DISPLAY_MAIN || gKeyBeingHeld || gDTMF_CallState != DTMF_CALL_STATE_NONE) + if (gEeprom.BATTERY_SAVE == 0 || + gScanState != SCAN_OFF || + gCssScanMode != CSS_SCAN_MODE_OFF || + gFmRadioMode || + gPttIsPressed || + gScreenToDisplay != DISPLAY_MAIN || + gKeyBeingHeld || + gDTMF_CallState != DTMF_CALL_STATE_NONE) gBatterySaveCountdown = 1000; else FUNCTION_Select(FUNCTION_POWER_SAVE); @@ -889,6 +918,7 @@ void APP_Update(void) } FUNCTION_Init(); + gBatterySave = 10; gRxIdleMode = false; } @@ -923,7 +953,7 @@ void APP_Update(void) // called every 10ms void APP_CheckKeys(void) { - const uint16_t key_repeat_delay = 70; // 700ms + const uint16_t key_repeat_delay = 60; // 600ms KEY_Code_t Key; #ifndef DISABLE_AIRCOPY diff --git a/firmware b/firmware index 3d80b94b682f89c05a0fb66fa20d7f0ae393f445..d60bb5d2cf6616eed6afcb8db6339efdfabf61cf 100644 GIT binary patch delta 13077 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

wyOoY9EY^U|hI&p{@FOmVoz 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 delta 13083 zcmca}jO)%Zt_d!(7PlA}K$w*Q1Q;0@K@KX1H=FS@BimQ==y{c3=F9teDe;ggE4F`?VXS9kI&orqnKEM+FC))(MngtVM!{ph1ojGS<@~S;O0U}{~7&tz(PoHYbIF-HNKcfQchxyYD?HHf4|NIByXiS&4XVhdAp6+SSxR!Cx z^zZhJ-i!g$ogEl;*+c(;RMbo_cVM(+l$^fNfl;5)eELHNMrTIJ>8g&5>hddp+7>ML zx2|B&X1>7o;m}V8W$S_^aDLwOY)3{}Y3ARvy%`nd3#NGAsAT}S0CjH25q(r40;R~WFE48SU26-nNgWhWO}+Yqo(@N zUyKTt6|5f){!*^^ug!Q7q=Qjey8vXfaRKXxwO}{jnZDhbF_5urJEsfdX-00}zYNOS z1qv1HACjiucV(<(te+m~#&}>t)__jYGwW#sk#p^(Ay zVHP;NI=9DqFfM20zW{GcxvW zxAkF6Wn_G|eX%d&Lq^7z(_8%+ofVJ&)UIIEX1I9oDT9)kw^RY^2d^KDO48m^1y`T4 zDzJRmKK-RXqbeiQcK!gy`HYNi)7J+wDl)oFzZl4<&geG%XCPyyV9b98W#fWEKjR7p zZO#kq9~h<=2QelxI!?bD#Hh}AdHUZV#&pK{(^G>PlNocTpA2SP&saXaGK4Xbv1CT~y+xaK_WK>{MWckqZlTm@?!{+InVT_jY z2LGzT;Uaml%3Gp>K|}Ncqs4(u5(Nwz0vB06Je-~w#wg1uG`&8IQIYZf^o3!JUm5GB zPY-9*WIR3nU^wG>M%(QZBN*)&8TqGQjAXpX^yBaJB~gsi#4r6}QdTa=2Aj=tf#Jik zp9~6YA68BejAnFXTsD1jG~-3yqkkT5s+3?>()D2buzz}C3}Zf{)bxijjLM>lCm9%W zI2aVnI2aUEPBJj$axf@pZI_H?GoEC0nJ$>Xc%O0g_KyjS?u?Ap(=C%2^%-Ap&rD+MW@5a){c8$i zF(ZHZKL%xAFXaN^0tN-<57)Mrr!i(SGKx=sn9kVDSh_tmgOQn$@$vM`Oh!w_1=AO2 zGO9CLO+TH<=*{W!mr2orf$2ltbongC|BMpT<+B-s8Fy?i&Sn&6WZbm9JBQJik@58Q zo4JhQ%#5PbKNc{)XH1;_u#i!d>CeyUKMEO*7%Qf07ct(HJ@r$mLdaX#Ma-v6xYIdVC3^G-KBG>Jm^ItehTO z#`vG{<@DHc#;J^I+dr2x$};j7|1+-8*Ji%>|NEI=EFVIq%U3ckWn4V{XeDDlW7%}m zD#l=5j(-eF3I&1;4VxH0s863-#aPS8H(j`z(UkG*bkAzWql{V8`D++s8HK0k)-XnL zYW>q>FkoQ(ptk*d4WlNbX6JuRUyTeVhQqS=>X|e3j2i2ODx@=7x*0z>{MF82RJbL3 zt$a>1$b73&x$GnP-^TF02m&hVE}0c4$GJ)@}MjXw$*j33nhynQaDe_WgA zCgX>*U{RSrN*SEq6Y6JHGAc8D5dZV=In#$Z)6?r2=Su6JWMEi*_W%DoyZ--Y*vjwS zyMf=6c?HvCmJfZ?Q9$#Vhm+mHNCir(VpqU&+S{97?&|J)=iIYVa#QW*?zKx@gg(RpMTru zbTD3GWIV7vzl%|ukx^^<>~2OyM#<@WyBU=k*{473W>jSQ_Gdav52Fp!i{sOsdKmQ> z_ir!kVN_;hbGXXD@aM|(S-p%}K`)LoFbHq`rr_Yip`^&*!1(Js%P&O+4kcR;<`3+D zKr9;%<_}C@mX!zdhrhqAz$z_0etm!c6C`ip!TjOVZxGAOgZabT-_ynV82>TmO&9HF zlxJK&-L#+aI%B|e-U*E9i~-Y2CopO=y*agg(FDdXjP){JGTuTJQUx+zf)xy!>=&iI zgfavej13qn7&KHbNER@th8_C$P_Stc=}V!Tc!XDZonc2Q`aD{S141c zQmWwE^Of8T3iG)c6a=^!6qZaEoXi+*Z2E^m$=qA2fa$}fe~dc17fr!M1@i?4MGl4^ z-&g!+`cU+r;lroDtO|^ZKfi1I`t$w7^x2acr5R18Z=cMVt0?;W=lAU2Ak{y=-~P#< zAmlAkAmlAm!1Tf3|F!2ozdxMrI)$;6@yYbvQy3>R7ESk`%IK?`@{d7-@dATF!QP+W zum5LZ5K;K`{oyZGMIMiz-^2bfXnef*^ZV)ltYGo0(@#!i^b~gcXRgHVEmOemEma_} zmqCH)gY9(HX^iHKozr8dF)A`vY_FfjD9Xs#I(_PNMpee5>AR;hN;5J|zdoH&Id#$> zg#xw>1$z}4bR`&-G#C^Ne|~@VM}t9;LBN1fsbQ0{;m_~)z7lb3;~6hZ-#VMoP(9@DaUFph3JhNj z7#KN}3>g|W{rvvnmm!0lw*un<2__{DLy*Yx>AZ6o_cFRpKRt(WZGFKn2E`n2HU-Io zAKwlCW_wF#Xd6pcNXRf~GhAR)II!u*_XU3$6j>F1d{_DlimD&qSN&yBWK{U^UFt8R z3Xj5%?@qtj7}OjToY*fgC^9Mh_jVm7yo^DZpdJ-@Z)&&55Lkz^M4+`;9*y3XYyX zzIRNwpT}q@yY|PA?`Qv*`6*{;8G|Z1<_jj^6z6pD$M?O{d*?AKGJcxAejcMT@5#Rq ztF3Oh{)t5iMxBT7t z{Kxm1e@{OD@qNW~<@t=B^>0owFq~mwU=Y~KqNwWe^LyS;1_c#wMh1z3AK&%=DEla5 z1lGJi${Ep_5*a_fAN=#lz2;k$eUurjjHN3WwXHAy_|7@~;zCAEQHLLl$~Fqx z1wX%U|D(*%XDm_i^}|@ zcJC#dI85g_eZ6SD_kdf)^v)%W(v0%cmo8z{lv?t?-_u_#VYFbZn69{#QIj!wy7y8>XK}}W97>uDOe>f^RR4IKk?9uX!8G~DceCkB zmoh3ds!Tt*l+m<)$KPzXh(cwCHe-nnF2%3kH~h_Zn^CCD&;jMI_?zu^qwuXlrW*s} zkME!Uf=mSYMCXSxLl;!dw7=PI5(UZ(Jy3oh$jky|hAg*!W9f=ax5))c9zVWc`J3go zxIWWOxZrWUyhm`s@A}CFpQqO@W0d6C`&W~JLn*_J@x%B3(-$pcG-03nmvzI3y{*&l zE@Si;zWwW(@^)uw#{Uu=N)`-ED}Q|Vn{L0H(OT8}FOzpn=;!AL++eBqJf7fgFM5}?~A6-U(Tq@s5JfTa>hc&m(%T6FiJ8`ogTS@Q8g^!2m4+IC1&rh z&o6T_D9pLaz_8&e1H-113=9vH1hz6Lwr!Zi5a7Z1;mbb(B?d*N6^tL=|MT?((f0p& zlo=*7DAy}VGBB-R_`v;>K~X>nBy;cI^eZbEZ5WqM7hK7xD$VepOSxW&L6KoH(+Uo2 zh7V_cz>JzdJ#ZysKBM~dgDV+j>+OD>e15=9pP4~n>s1DZXFLoFJFYS?Jmq0f*msqI zVLb`T)Tv|-iV^=ZCGrhSw zy>1nw8Smwv-=F{2V!p`c$@sx~`oUF4J3oU6 z0~>=Z1LKFcf2ZfIX0+i~_{(O_X!Zsg01DH0u4Z)R`~Js}fmca^f!C1n!^c0$|qJ}u~XB-*D&fbPMqGlhS8XD=JcIw7&X0G{xF(uar%7m`(BWJ>#u+u%g4Z= z%C3Hgaft+n7vqE_5{$D~J2Bk&zPB)z)w|MJfq`8K6;#~mQjRp z`SjGajQWE8fBd|qDj2l>TwqX=D){mJ_4K7{8MPhDe==w=Untu4_q)-rq-~(y<&6ss zN(_p29*iH7|2$A)P@KeI|DN?<##^d_RZIFNgOULQ(@Lp=f8SsHPEnHZzMT>5%rtAV z6U#+Lg}>i*euHufhZ2_}s7cHCM}gt*cctmu*D;!=vR;Fv3{c8>p!8wuBnAe>Jsy)c zFn+l9d$;$j8U`(~3%k68Dj2kcE^w$Yg45}C4~8lKzrXv-4CZYG^Pd0x@xAu1@P-e2 z8Pr)OZ}i^i$2{4B!9{L?<4T{E(*xHt3fHgl05!cBE_7G!c4D}A?ZI;I6+V&`p#Cw( z#bw}Hisd4MX6c0`UQ0b=A24YCx+tK;w}SCQ_iyD2Ms1Ia3%nP4N>?yxGhA5U$+d#< z!{y)1Djdo+&J0RSiVTyvRwy(4|33FGD35_;3x4-|OI9#wibGAwu=?HOJ=qsjYBOD6 z(zdxc(N}|kZ{@G=cmD9LV$fi?sKwCk$+hC!cdP##N=zmUlb944lpb&5TJisT@pRb@ zjI#9&K71<`7=C@<0o9#6I(vo;hfx!UJq3*T3>ZIb z{KcruHaT0y-{TG=XZ>WB*(wqe6~{FKZ*VB3crK7({IKv>GT36~3m)FLD|b8DTws~a zwNj#j(cs_rtG{>^IaY8=a49h>WXt^j&i^mc`*tk*WCm@9i-#V7N*GWuUHZj7gVBOj zBjU!_?{Yta;}Vim(m>AK<+SPohmx=7%ICK$H$7)kVzREE?0kC@+aw0uLIAS87z!%Z(`Hty&<4v2X?O4FP7PS zE2S%hlq`+83m6r$Wi~%IhI&8(>;bL|=PbBZ{`+43ix2F0ekCS_Y?%emb-g+KR!UWL z6-QT`F8=sj2b=&-{^C$(P-2*@q^QlnwL;{fy65NT>Yg8;t9!nGuI~BvxjHy{JpR3g z78;;5-pIwEV1A8(!DYJWCPw-CuxpSmIM+1>28nBsF1Q5;gMtkQgM!~R1_s4z3=I0$ z7#Q}QVqgH3|4UCXFc_YKWSP0#3<}3iF)$>af)u7qrx+Nbt}!sgUt?fMzsA5&bd7KX$>!!-tmgI+ANg({>g7_=fTNHJI#UE0K^6?|jw^qrd+1zC4`{Qo|A`uRh;rq zDljlBZSZV0VEi!gC!;RI#fuL>B5OQ53>ZIj{AAK)xOf6AveL8Lfbm29Pi9?)i~GSM zOFjDx7(bN#WYJ}~xD70_$aA6razthx*r*Mddnc}_84{E+f<*#o0Yp$zs(v%Q2W z7_~Sr_IpjNW6)HcUb>l4Fl~z0#hA-s91|I|S#Pn&^PW-5tkHGj%l8}qSmeYFE>+%m&OYPYcf%j8Uaj6=zn}cc#K6tK zwW8Vc+xO_d9Lfbs43p&*wHf|BoBn1qqm-!o-&fBOqRcZy4gP7N*CHc8I;u(IcI^grQsj5=dfg~|C2+BbtWi5-}v$PIs1&S-*5bn z@QU>Q`n>?^fN;-m-~7Dh+e#Xp#5OII;!M_ypkj=I30&3chT$;nfJ zVT}RfhpE$lZ()?KZwD!C41cP? zAf%+~`ObjxgZGbsr^cBx>Ywu{DS7ri=TK7gTmdGRK0n|Fs?9;^8B~ie;bu?>KFPok zagu={`XmEG+(`z8#FGpRDJK~i(oaGXE~w#Cd5VGIW5(l-tv{aFbzNg%0M*w$+zbl# zCm9%SoMd3|JjKA^eUgD;;wc7(!czPDS~N&hI0rMV^}4;OL4rexVG@IqAjALfe!q+unDy>oWKde}EmR7%BZXS{_f+t3Bg+L2rOBRCJQzOA`437y8Vn2{UjA38 zFxBwB@#VYMUo!>|#&E_s#&R(3WUTLFJj{5K@fG8H#=ndw8P72?F)=Z{V&q`rXA)(4 z#R!2?OjZo<85Nnl7`zx%nbesynO-q!GZ`|OGFdXcVzg%pWC~}BWqQQ;o-vc@6=NP; zU$M7TMzN>y!$R+3FX@a6F<-x{{bNun^#1bw-G5NV$@kQ7V)*vG;kR0at{%e$l}D;} zpgPz{QG}7Q=-YPmq`Q{^tNI(qLei%wqljd*@H(3TA6YZSEVP;IycI0VK~b*+?o9Cjx2g8Tu|2Z_+Z^Gn#!19?tl`E9Ac`kZ-FnpMfBJT#4kF5WxT%oBganTuU zyvPLxCHB>~ia1xY7&&+_e7Nw>-jj2c2E(`S%)emqV$_zrA?at7@n4JK zLiHmJ22IcUZ{M%|GS2v~&3ZxI-(K=}J*fL$@`yv3VKSRFD7Z8j{(oox`Q!WCAA%b` z?1eP6@9{7wgmW_}XkBMu&}U&#Fl1t2*vQ1daF>Tc;Q}a|F*7JU;9*dZzs|sr2WtK@ zJg}dCje&vnIs*gebq0nfJPZnxuQ4#pyvD%J02&v%b9H*vPDUwBk?WAQGAIvk_TJ(p zodN2xe*G@~cazs9?=Ro)|Knz0V%X^Ue)`^>jFR4<7`ycE(X-WF8QSbO7_FljE=8^M z1O->*uj|h;!Te>O-=5C_Cx>SjmUw~G%!vB>{pp`YUW>fHd|wMTaG~ek>597;(`^)#KVBuMwOP?_)>#EK4I22>Zz@^1_!NBO^rk5d%#?0DZFX}1js=X>emSHr0 z8N#Oh^`g4*>q6}!2IcIc)kUw1+MbnpOJ=Yudpmb{PI?YX+6-D#E@VC{@NV^#$Y9mz zzwzaJ`0rk3R(8(m`*$%~^Nam6%3x%;v`K^E-}guVeWr8nX6%<_|DWic=m{E|XSgW- zoI^>2fqf;z2dBS3rf=NMC@;wRN7GBw`^)#Ue?b8h>Unqi!`+PXoSL6O8Uw?LYYYtMuQ4!OyT-r(>dj5K#=yXNlYznS zCIiEg8w?D0uQ4zr-DF^Rd4qxBG03883=H4785H<=7!(wF7!-EiU|{$R61&F0pm39c zp^k$=0o3;ryve{|bF-d-;T0!?!vAXw3??@j7%tvmV92@3z)*6Pfr0fF1B1YI1_mB& zrVD!73>RXbGALPj3o^)MY};hO@b~-uKcL2N&{GEWuV!Y9yh@e~+cxp6;GWL#VbvcF zB?AWTmEXU6|1x0UFkn(@*u=Z?`*)XL*={;Yvn6iFDp<#BbKGQ5&Z>9QQ4Er}9Li`e zsQ=?4(*qFw=AxjYf&%wyMoR`wwu`Vl&SK5ILh7kh4Wo6F^OuWJCGVdzDrzuX+Vt;x z?!U&T9BTDS49bwwj>-Jr_lf_0)gRa5xxr|}?+Hpa-@d#3V1gB6)Bb&L{Kw@jBgtZ- z`KbQ57Q@Y=r;J7#3~Zj4HhueU^aB*PEY`_SL2)Z}9Wp$kG(B=3<6kDOztbc3Gs;Nf ztVO5y?q{@Cwf^Pr2ZMspDbP?Nm$yU(vj*#p&)=i}GqG}T|Kt0v{!d`M)~Iee7QqZ;6gC-@pD>^-}fz@_p}5=Gklv5z;Bj{0tG!iPE3H zC;T^JV3=UdAn(bs;_G+Uzg#K|$}B4+8S0f7ru_R}|C?h4C>1d%f_N3bLA57?qNoRm zSNQw;cgx@3zq9^c_58I0%Sr(y2F7pSpZt5HAfUvt62!h&|L^+q18(ct7!*L`37`TU zl+Qr<50vM=Bb6fmZ!$1&-C|&1-wGNqV>f10lwkP&-QW-VUIqpqZ(py1tx^f!zt8*q z=ljo}-@jk@EwAY5@%_8P9}gb|28Is_KN%Sm7`}g(_`|H|>hb-%$e#&H3@XmP(_bB7 zl&XLH!_Lpn!;s<6_dP%Ve1Gus&-a=?Op4&1{x8ss=-=;hzy5v~`2!jcaQ{;L+ed;abFw13Z^|Ns8}-`DTC z|9&YPVEF!>^S6PLjJH(5-|r$nq`hBdurSPWV!OepEa|IV@bCM(-=Hy4kh9Hy@FQX3rd>s z#509Z#-;|Yehdu3&Oxqz4BKDdU=&rKxWQu!(-u~y4@akOV`Va8oHG3-E0aE>&2&jN zCV57m?Urmzhq(kRPJq@=fG{J&8zu&ZitW6DOzWA1P9TXZGcz!pII;blFq0g+AkRsV zVi0Cz2xDeo;Mx9Hib-CCQGdIvKGS#Y)5N2ekXJTN8K;nZ;_n97R#H26SGX!d>syxGN z1Ro^-U=D&`&s5LAz%v&i08)^G#0NQ`0ErKhH<*u550bAy;)CQx7NE+jAn`%+2}u0< z6eb3S0we*D0-J@X1~ee?LGmk*_#g+YLE|4m;)B$OOwYApnlG5M2w^Np_{wxyTPFK@ zk0q$WJxF|z=?jqfAZ<60_#pWQNPLj|gJlTwK=Lxn5qyw*2NJ)Yi9v{A0+IkoLCo~G zwoLYp2`f!$zHV3Mo9 zu?|)FpA85;$QGuJ2tLTTD@c5he9k6R`Hsy9K1jX?i4W3WvK1lU#KJILTZ>7s{s*!k z69dDUZ3smmLoBu<_#i_b>_G6pu`)1#`kGaYpqPXd%P~6<@*wqPyAXVkc{NDt2 zBe?R}ha@k<2I*xW%ilqg*I|QnWfTzl!x-KnDX?UN^nW-I3K#@#A{^k!#=rpT+wddF zOCiZevO)SmBGVb2n8fQd*&sb1m~j=)OEXPe{gLJ<*q3V~i zLHc$)P(CPp3X$}K_@MqG#KDYi3|rV37(fDiPz{IJARS0#_je%~aGs5UVd_l=2AFz~ zfwQK^Iy1=&iR^=z3Q7?mVUhjQ?`bp13Ht0u72hy@uQQXppv*y3VTS2%otfl=N)Dk4 zHzDyssi+N!53*$e5+5YL1c?ul|8r=1oC{N&pv7TSb2X-)bz#zX3^{@j25HYg;)Ar$ zIf{^HWoKXjwd&-dVa3PJz+k%F)|E-0iBVyDt~*mbBdDSE&VxygamsXFPbPUro9Viq zO!A68#}TH0OkIG+Pne$T$)wLHHGQrplYTvDB^5+HBmslQJ(2mKu}@?^s5gkr2aT^H z^Fd>+$b8VaD>5H628+aZ0uRU{34jM@k@=w3D>5I{l11kCP5AK!b@{IMD5mL}8f=H2n+_fuxa%mmxfu{QBv0eVFv?A!B_YDTuN%wAN`k8ovUK4_cl9 z(hW1V6-^$rRsmUlDyqB?co71!g00hSeVODFLDRX&!k~FAWIkw^37HQX9YW@VhM$o6 zpdlz^{^IF(eVOFzL7iG;VNjsF328NTU8W>I>$%E8iLE@j}U|_h3rv3(!JV^Z$B>qzl zW(J0d)BpN0trr9hV}R-uK?X*KwVVtLw$u0eGs!cCPQUBVBro)E2?K)-6R6fpv zU^sSaI$r>j6XTKTfdNd~jHT0S1DNa?9jEUNV9IASnXVhiR4)X|HlSJyWa4^m(8SF2 zeSu7If}p|)CN9Xsz;JN7ZV;0{qvP~i5am1lY!H(?qy6-^K}`CLmeXZ}nd}8Yb3e=s z3=ANnf_WJj0;lH&Gx;-?P2U^L6whceT{eViJ!9tdvms3SinFINFvu}LoGQT2z|cFL zfq{b&!Z+n-V2GJ68_ML*s4+b^lu4iU=NbkEi|GqPnWULM9-Y1~l*y0r?{wZUCVxiR z>9Ju<`izCsd&8L4Gftdt8_p!pICpw%I8#5P;qC^-y6Z?FSu|C z1A_z9;#tBB48hZ7BboFWE2sNLGRX^q*4eld{BvU=((&>LeiY89ijbhSg zoH{)=ib-Cu^biAs0n{XOQ3i&s(|ejEjb+kj%$r0o(doTOO!ka3r=Lv%RfXGq zlbQG#855_+rZCwvMoyob!W7RKG5v1}lRu;9bl+5_c*gSSYg3v08K+MFn+n!wo5my$ z(vZfK&-CZY^mA!UdW^Eu|E4k7Gp0_rO=s$7ES!Eeo#{Sf&GfYyO#X~1)Bk2L{b#hC z{x_4!o>6wXZ5ETf(9f+53^E*$B=J%eH1<6`FN;Zzv2l8D7Lz~Ig_G0oWiiPKTHJ!< zbO8n?hS_Qi3{R)?W;5wCa!t3*W|C)ox;-|Vsh*LsWcuA4rg)|!C#T!xGU+kxJ2gEo zm&uNC>GZX^O#Y0b)Bol&^)vEL@6BV%XL@jI`oBD;b%LNO4HWL6^c=0tz~DQ5Z$6Vh zJ<#}1Y!Q<^WAyg9MNH26j27D;E@Y}^1ORiwj&J|~ diff --git a/firmware.bin b/firmware.bin index fe3f4a40ec3cfa557bdd3c9259dacf319be940c9..f35bb526b71d5b9ac38fe92ec31e317a88c7fda5 100644 GIT binary patch delta 8222 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 VYT)X}z!2;l1Si|owvD7xr>*vXS1N8C!=8Y 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 U&Gw(j`zumX_Jm!S`%C%d07kOHh5!Hn delta 20874 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 TE>pB->9+n&VF diff --git a/functions.c b/functions.c index d19189c..c1f7c49 100644 --- a/functions.c +++ b/functions.c @@ -42,12 +42,7 @@ void FUNCTION_Init(void) { gCurrentCodeType = gSelectedCodeType; if (gCssScanMode == CSS_SCAN_MODE_OFF) - { - if (gRxVfo->IsAM) - gCurrentCodeType = CODE_TYPE_OFF; - else - gCurrentCodeType = gRxVfo->pRX->CodeType; - } + gCurrentCodeType = gRxVfo->IsAM ? CODE_TYPE_OFF : gRxVfo->pRX->CodeType; } #ifndef DISABLE_NOAA else @@ -77,108 +72,119 @@ void FUNCTION_Init(void) void FUNCTION_Select(FUNCTION_Type_t Function) { FUNCTION_Type_t PreviousFunction; - bool bWasPowerSave; - uint16_t Countdown = 0; + bool bWasPowerSave; + uint16_t Countdown = 0; PreviousFunction = gCurrentFunction; - bWasPowerSave = (PreviousFunction == FUNCTION_POWER_SAVE); + bWasPowerSave = (PreviousFunction == FUNCTION_POWER_SAVE); gCurrentFunction = Function; - if (bWasPowerSave) { - if (Function != FUNCTION_POWER_SAVE) { + if (bWasPowerSave) + { + if (Function != FUNCTION_POWER_SAVE) + { BK4819_Conditional_RX_TurnOn_and_GPIO6_Enable(); gRxIdleMode = false; UI_DisplayStatus(); } } - switch (Function) { - case FUNCTION_FOREGROUND: - if (gDTMF_ReplyState != DTMF_REPLY_NONE) { - RADIO_PrepareCssTX(); - } - if (PreviousFunction == FUNCTION_TRANSMIT) { - gVFO_RSSI_Level[0] = 0; - gVFO_RSSI_Level[1] = 0; - } else if (PreviousFunction == FUNCTION_RECEIVE) { - if (gFmRadioMode) { - Countdown = 500; - } - if (gDTMF_CallState == DTMF_CALL_STATE_CALL_OUT || gDTMF_CallState == DTMF_CALL_STATE_RECEIVED) { - gDTMF_AUTO_RESET_TIME = 1 + (gEeprom.DTMF_AUTO_RESET_TIME * 2); - } - } - return; - - case FUNCTION_MONITOR: - case FUNCTION_INCOMING: - case FUNCTION_RECEIVE: - break; - - 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; - - case FUNCTION_TRANSMIT: - if (gFmRadioMode) - BK1080_Init(0, false); - - #ifndef DISABLE_ALARM - if (gAlarmState == ALARM_STATE_TXALARM && gEeprom.ALARM_MODE != ALARM_MODE_TONE) - { - gAlarmState = ALARM_STATE_ALARM; - GUI_DisplayScreen(); - GPIO_ClearBit(&GPIOC->DATA, GPIOC_PIN_AUDIO_PATH); - SYSTEM_DelayMs(20); - BK4819_PlayTone(500, 0); - SYSTEM_DelayMs(2); - GPIO_SetBit(&GPIOC->DATA, GPIOC_PIN_AUDIO_PATH); - gEnableSpeaker = true; - SYSTEM_DelayMs(60); - BK4819_ExitTxMute(); - gAlarmToneCounter = 0; - break; - } - #endif - - GUI_DisplayScreen(); - RADIO_SetTxParameters(); - BK4819_ToggleGpioOut(BK4819_GPIO1_PIN29_RED, true); - - DTMF_Reply(); - - #ifndef DISABLE_ALARM - if (gAlarmState != ALARM_STATE_OFF) - { - if (gAlarmState == ALARM_STATE_TX1750) - BK4819_TransmitTone(true, 1750); - else - BK4819_TransmitTone(true, 500); + switch (Function) + { + case FUNCTION_FOREGROUND: + if (gDTMF_ReplyState != DTMF_REPLY_NONE) + RADIO_PrepareCssTX(); - SYSTEM_DelayMs(2); - GPIO_SetBit(&GPIOC->DATA, GPIOC_PIN_AUDIO_PATH); - gAlarmToneCounter = 0; - gEnableSpeaker = true; - break; + if (PreviousFunction == FUNCTION_TRANSMIT) + { + gVFO_RSSI_Level[0] = 0; + gVFO_RSSI_Level[1] = 0; } - #endif + else + if (PreviousFunction == FUNCTION_RECEIVE) + { + if (gFmRadioMode) + Countdown = 500; + + if (gDTMF_CallState == DTMF_CALL_STATE_CALL_OUT || gDTMF_CallState == DTMF_CALL_STATE_RECEIVED) + gDTMF_AUTO_RESET_TIME = 1 + (gEeprom.DTMF_AUTO_RESET_TIME * 2); + } + + return; + + case FUNCTION_MONITOR: + case FUNCTION_INCOMING: + case FUNCTION_RECEIVE: + break; + + 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; + + case FUNCTION_TRANSMIT: + if (gFmRadioMode) + BK1080_Init(0, false); + + #ifndef DISABLE_ALARM + if (gAlarmState == ALARM_STATE_TXALARM && gEeprom.ALARM_MODE != ALARM_MODE_TONE) + { + gAlarmState = ALARM_STATE_ALARM; + GUI_DisplayScreen(); + GPIO_ClearBit(&GPIOC->DATA, GPIOC_PIN_AUDIO_PATH); + SYSTEM_DelayMs(20); + BK4819_PlayTone(500, 0); + SYSTEM_DelayMs(2); + GPIO_SetBit(&GPIOC->DATA, GPIOC_PIN_AUDIO_PATH); + gEnableSpeaker = true; + SYSTEM_DelayMs(60); + BK4819_ExitTxMute(); + gAlarmToneCounter = 0; + break; + } + #endif + + GUI_DisplayScreen(); + + RADIO_SetTxParameters(); + + BK4819_ToggleGpioOut(BK4819_GPIO1_PIN29_RED, true); + + DTMF_Reply(); + + #ifndef DISABLE_ALARM + if (gAlarmState != ALARM_STATE_OFF) + { + BK4819_TransmitTone(true, (gAlarmState == ALARM_STATE_TX1750) ? 1750 : 500); - if (gCurrentVfo->SCRAMBLING_TYPE && gSetting_ScrambleEnable) - BK4819_EnableScramble(gCurrentVfo->SCRAMBLING_TYPE - 1U); - else - BK4819_DisableScramble(); + SYSTEM_DelayMs(2); - break; + GPIO_SetBit(&GPIOC->DATA, GPIOC_PIN_AUDIO_PATH); + + gAlarmToneCounter = 0; + gEnableSpeaker = true; + break; + } + #endif + + if (gCurrentVfo->SCRAMBLING_TYPE && gSetting_ScrambleEnable) + BK4819_EnableScramble(gCurrentVfo->SCRAMBLING_TYPE - 1U); + else + BK4819_DisableScramble(); + + break; } + gBatterySaveCountdown = 1000; - gSchedulePowerSave = false; - gFM_RestoreCountdown = Countdown; + gSchedulePowerSave = false; + gFM_RestoreCountdown = Countdown; } - diff --git a/helper/boot.c b/helper/boot.c index 5ffbfd0..f755bf0 100644 --- a/helper/boot.c +++ b/helper/boot.c @@ -74,6 +74,9 @@ void BOOT_ProcessMode(BOOT_Mode_t Mode) #ifdef DISABLE_VOICE gMenuListCount--; #endif + #ifdef DISABLE_ALARM + gMenuListCount--; + #endif #ifdef DISABLE_NOAA gMenuListCount--; #endif diff --git a/ui/aircopy.c b/ui/aircopy.c index 85ba8ab..242769c 100644 --- a/ui/aircopy.c +++ b/ui/aircopy.c @@ -46,7 +46,7 @@ void UI_DisplayAircopy(void) { NUMBER_ToDigits(gRxVfo->ConfigRX.Frequency, String); UI_DisplayFrequency(String, 16, 2, 0, 0); - UI_DisplaySmallDigits(2, String + 6, 97, 3); + UI_DisplaySmallDigits(2, String + 6, 97, 3, true); } else UI_DisplayFrequency(gInputBox, 16, 2, 1, 0); diff --git a/ui/helper.c b/ui/helper.c index 6cc64f3..358e558 100644 --- a/ui/helper.c +++ b/ui/helper.c @@ -217,11 +217,21 @@ void UI_DisplayFrequencySmall(const char *pDigits, uint8_t X, uint8_t Y, bool bD } } -void UI_DisplaySmallDigits(uint8_t Size, const char *pString, uint8_t X, uint8_t Y) +void UI_DisplaySmallDigits(const uint8_t size, const char *str, const uint8_t x, const uint8_t y, const bool display_leading_zeros) { const unsigned int char_width = 7; - unsigned int x = X; + bool display = display_leading_zeros; + unsigned int xx; unsigned int i; - for (i = 0; i < Size; i++, x += char_width) - memcpy(gFrameBuffer[Y] + x, gFontSmallDigits[(unsigned int)pString[i]], char_width); + for (i = 0, xx = x; i < size; i++) + { + const unsigned int c = (unsigned int)str[i]; + if (c > 0) + display = true; + if (display && c < ARRAY_SIZE(gFontSmallDigits)) + { + memcpy(gFrameBuffer[y] + xx, gFontSmallDigits[c], char_width); + xx += char_width; + } + } } diff --git a/ui/helper.h b/ui/helper.h index dbd4353..213b149 100644 --- a/ui/helper.h +++ b/ui/helper.h @@ -26,7 +26,7 @@ void UI_PrintString(const char *pString, uint8_t Start, uint8_t End, uint8_t Lin void UI_PrintStringSmall(const char *pString, uint8_t Start, uint8_t End, uint8_t Line); void UI_DisplayFrequency(const char *pDigits, uint8_t X, uint8_t Y, bool bDisplayLeadingZero, bool bFlag); void UI_DisplayFrequencySmall(const char *pDigits, uint8_t X, uint8_t Y, bool bDisplayLeadingZero); -void UI_DisplaySmallDigits(uint8_t Size, const char *pString, uint8_t X, uint8_t Y); +void UI_DisplaySmallDigits(const uint8_t size, const char *str, const uint8_t x, const uint8_t y, const bool display_leading_zeros); #endif diff --git a/ui/main.c b/ui/main.c index 1d86942..8fbc57c 100644 --- a/ui/main.c +++ b/ui/main.c @@ -116,8 +116,9 @@ void UI_DisplayMain(void) // highlight the selected/used VFO with a marker if (!single_vfo && bIsSameVfo) memcpy(pLine0 + 2, BITMAP_VFO_Default, sizeof(BITMAP_VFO_Default)); - //else - // memcpy(pLine0 + 2, BITMAP_VFO_NotDefault, sizeof(BITMAP_VFO_NotDefault)); + else + if (gEeprom.CROSS_BAND_RX_TX != CROSS_BAND_OFF) + memcpy(pLine0 + 2, BITMAP_VFO_NotDefault, sizeof(BITMAP_VFO_NotDefault)); } else if (!single_vfo) @@ -169,7 +170,7 @@ void UI_DisplayMain(void) NUMBER_ToDigits(gEeprom.ScreenChannel[vfo_num] + 1, String); else memcpy(String + 5, gInputBox, 3); - UI_DisplaySmallDigits(3, String + 5, x + sizeof(BITMAP_M), Line + 1); + UI_DisplaySmallDigits(3, String + 5, x + sizeof(BITMAP_M), Line + 1, false); } else if (IS_FREQ_CHANNEL(gEeprom.ScreenChannel[vfo_num])) @@ -179,7 +180,7 @@ void UI_DisplayMain(void) char c; memcpy(pLine1 + x, BITMAP_FB, sizeof(BITMAP_FB)); c = (gEeprom.ScreenChannel[vfo_num] - FREQ_CHANNEL_FIRST) + 1; - UI_DisplaySmallDigits(1, &c, x + sizeof(BITMAP_FB), Line + 1); + UI_DisplaySmallDigits(1, &c, x + sizeof(BITMAP_FB), Line + 1, false); } else { @@ -195,7 +196,7 @@ void UI_DisplayMain(void) String[6] = gInputBox[0]; String[7] = gInputBox[1]; } - UI_DisplaySmallDigits(2, String + 6, 15, Line + 1); + UI_DisplaySmallDigits(2, String + 6, 15, Line + 1, true); } // ************ @@ -285,7 +286,7 @@ void UI_DisplayMain(void) // show the main large frequency digits UI_DisplayFrequency(String, 31, Line, false, false); // show the remaining 2 small frequency digits - UI_DisplaySmallDigits(2, String + 6, 112, Line + 1); + UI_DisplaySmallDigits(2, String + 6, 112, Line + 1, true); #else // show the frequency in the main font sprintf(String, "%9.5f", frequency_Hz * 0.00001); @@ -346,7 +347,7 @@ void UI_DisplayMain(void) // show the main large frequency digits UI_DisplayFrequency(String, 31, Line, false, false); // show the remaining 2 small frequency digits - UI_DisplaySmallDigits(2, String + 6, 112, Line + 1); + UI_DisplaySmallDigits(2, String + 6, 112, Line + 1, true); #else // show the frequency in the main font sprintf(String, "%9.5f", frequency_Hz * 0.00001); diff --git a/ui/menu.c b/ui/menu.c index b136962..d588895 100644 --- a/ui/menu.c +++ b/ui/menu.c @@ -34,22 +34,22 @@ static const char MenuList[][7] = { "SQL", "STEP", - "TX-PWR", - "R_DCS", - "R_CTCS", - "T_DCS", - "T_CTCS", + "TX-PWR", // was "TXP" + "R-DCS", // was "R_DCS" + "R-CTCS", // was "R_CTCS" + "T-DCS", // was "T_DCS" + "T-CTCS", // was "T_CTCS" "SFT-D", "OFFSET", "W/N", - "SCRAM", + "SCRAM", // was "SCR" "BCL", "MEM-CH", - "B-SAVE", + "B-SAVE", // was "SAVE" "VOX", - "BAK-LT", - "TDR", - "CROS-B", + "BAK-LT", // was "ABR" + "DUAL-W", // was "TDR" + "CROS-B", // was "WX" "BEEP", "TOT", #ifndef DISABLE_VOICE @@ -82,8 +82,8 @@ static const char MenuList[][7] = "D-LIST", "PONMSG", "ROGER", - "BATVOL", - "MODE", + "BATVOL", // was "VOL" + "MODE", // was "AM" #ifndef DISABLE_NOAA "NOAA_S", #endif @@ -93,12 +93,12 @@ static const char MenuList[][7] = // normally hidden menu items from here on. // enabled if pressing PTT and side button below PTT at power-on. - "350TX", + "350-TX", // was "350TX" "F-LOCK", - "200TX", - "500TX", - "350EN", - "SCREN" + "200-TX", // was "200TX" + "500-TX", // was "500TX" + "350-EN", // was "350EN" + "SCR-EN" // was "SCREN" }; #if 0 @@ -293,7 +293,7 @@ void UI_DisplayMenu(void) #endif NUMBER_ToDigits(gMenuCursor + 1, String); - UI_DisplaySmallDigits(2, String + 6, 33, 6); + UI_DisplaySmallDigits(2, String + 6, 33, 6, false); if (gIsInSubMenu) memcpy(gFrameBuffer[0] + 50, BITMAP_CurrentIndicator, sizeof(BITMAP_CurrentIndicator)); @@ -628,10 +628,10 @@ void UI_DisplayMenu(void) gMenuCursor == MENU_T_DCS || gMenuCursor == MENU_D_LIST) { - uint8_t Offset; + unsigned int Offset; NUMBER_ToDigits((uint8_t)gSubMenuSelection, String); Offset = (gMenuCursor == MENU_D_LIST) ? 2 : 3; - UI_DisplaySmallDigits(Offset, String + (8 - Offset), 105, 0); + UI_DisplaySmallDigits(Offset, String + (8 - Offset), 105, 0, false); } if (gMenuCursor == MENU_SLIST1 || gMenuCursor == MENU_SLIST2)