From 9651e52317bb787b3193b3b73749c845c99b31e2 Mon Sep 17 00:00:00 2001 From: OneOfEleven Date: Tue, 19 Sep 2023 14:48:09 +0100 Subject: [PATCH] Fix frequency display position --- README.md | 6 +-- app/menu.c | 126 ++++++++++++++++++++++---------------------- bitmaps.c | 32 +++++------ firmware | Bin 165592 -> 165592 bytes firmware.bin | Bin 49748 -> 49708 bytes firmware.packed.bin | Bin 49766 -> 49726 bytes ui/main.c | 28 ++++------ ui/menu.c | 23 ++++---- ui/menu.h | 8 +-- ui/status.c | 18 ++++--- 10 files changed, 117 insertions(+), 124 deletions(-) diff --git a/README.md b/README.md index 6605113..51f26f5 100644 --- a/README.md +++ b/README.md @@ -26,11 +26,11 @@ ENABLE_CHAN_NAME_FREQ := 1 show channel frequency below channel na ENABLE_WIDE_RX := 1 full 18MHz to 1300MHz RX (though frontend not tuned over full range) ENABLE_TX_WHEN_AM := 0 allow TX (always FM) when RX is set to AM ENABLE_CTCSS_TAIL_PHASE_SHIFT := 1 standard CTCSS tail phase shift rather than QS's own 55Hz tone method -ENABLE_MAIN_KEY_HOLD := 1 initial F-key press not needed, instead hold down keys 0-9 +ENABLE_MAIN_KEY_HOLD := 1 initial F-key press not needed, instead hold down keys 0-9 to access the functions ENABLE_BOOT_BEEPS := 0 give user audio feedback on volume knob position at boot-up -ENABLE_COMPANDER := 1 compander option - setting not yet saved +ENABLE_COMPANDER := 1 compander option - setting not yet saved (per channel) ENABLE_SHOW_CHARGE_LEVEL := 1 show the charge level when the radio is on charge -ENABLE_REVERSE_BAT_SYMBOL := 1 reverse the battery symbol on the status bar +ENABLE_REVERSE_BAT_SYMBOL := 1 mirror the battery symbol on the status bar (+ pole on the right) ENABLE_STATUSBAR_VOLTAGE := 0 show the battery voltage on the top status bar - when possible ENABLE_STATUSBAR_PERCENTAGE := 1 show the battery percentage on the top status bar - when possible #ENABLE_SINGLE_VFO_CHAN := 1 not yet implemented - single VFO on display when possible diff --git a/app/menu.c b/app/menu.c index d4843b7..e170330 100644 --- a/app/menu.c +++ b/app/menu.c @@ -48,79 +48,79 @@ #ifdef ENABLE_VOICE static const VOICE_ID_t MenuVoices[] = { - VOICE_ID_SQUELCH, - VOICE_ID_FREQUENCY_STEP, - VOICE_ID_POWER, - VOICE_ID_DCS, - VOICE_ID_CTCSS, - VOICE_ID_DCS, - VOICE_ID_CTCSS, - VOICE_ID_TX_OFFSET_FREQUENCY_DIRECTION, - VOICE_ID_TX_OFFSET_FREQUENCY, - VOICE_ID_CHANNEL_BANDWIDTH, - VOICE_ID_SCRAMBLER_ON, - VOICE_ID_BUSY_LOCKOUT, - VOICE_ID_MEMORY_CHANNEL, - VOICE_ID_SAVE_MODE, - VOICE_ID_VOX, - VOICE_ID_INVALID, - VOICE_ID_DUAL_STANDBY, - VOICE_ID_INVALID, - VOICE_ID_BEEP_PROMPT, - VOICE_ID_TRANSMIT_OVER_TIME, - #ifdef ENABLE_VOICE - VOICE_ID_VOICE_PROMPT, - #endif - VOICE_ID_INVALID, - VOICE_ID_INVALID, - VOICE_ID_INVALID, - VOICE_ID_INVALID, - VOICE_ID_INVALID, - VOICE_ID_INVALID, - VOICE_ID_INVALID, - VOICE_ID_INVALID, + VOICE_ID_SQUELCH, // SQL + VOICE_ID_FREQUENCY_STEP, // STEP + VOICE_ID_POWER, // T-PWR + VOICE_ID_DCS, // R-DCS + VOICE_ID_CTCSS, // R-CTCS + VOICE_ID_DCS, // T-DCS + VOICE_ID_CTCSS, // T-CTCS + VOICE_ID_TX_OFFSET_FREQUENCY_DIRECTION, // T-DIR + VOICE_ID_TX_OFFSET_FREQUENCY, // T-OFFS + VOICE_ID_INVALID, // T-VFO + VOICE_ID_TRANSMIT_OVER_TIME, // T-TOUT + VOICE_ID_CHANNEL_BANDWIDTH, // W/N + VOICE_ID_SCRAMBLER_ON, // SCRAM + VOICE_ID_BUSY_LOCKOUT, // BUSYCL + VOICE_ID_MEMORY_CHANNEL, // CH-SAV + VOICE_ID_DELETE_CHANNEL, // CH-DEL + VOICE_ID_INVALID, // CH-DIS + VOICE_ID_SAVE_MODE, // BATSAV + VOICE_ID_VOX, // VOX + VOICE_ID_INVALID, // BACKLT + VOICE_ID_DUAL_STANDBY, // DUALRX + VOICE_ID_BEEP_PROMPT, // BEEP + #ifdef ENABLE_VOICE + VOICE_ID_VOICE_PROMPT, // VOICE + #endif + VOICE_ID_INVALID, // SC-REV + VOICE_ID_INVALID, // KEYLOC + VOICE_ID_INVALID, // S-ADD1 + VOICE_ID_INVALID, // S-ADD2 + VOICE_ID_INVALID, // STE + VOICE_ID_INVALID, // RP-STE + VOICE_ID_INVALID, // MIC #ifdef ENABLE_COMPANDER - VOICE_ID_INVALID, + VOICE_ID_INVALID, // COMPND #endif - VOICE_ID_INVALID, - VOICE_ID_INVALID, - VOICE_ID_INVALID, - VOICE_ID_INVALID, + VOICE_ID_INVALID, // 1-CALL + VOICE_ID_INVALID, // SLIST + VOICE_ID_INVALID, // SLIST1 + VOICE_ID_INVALID, // SLIST2 #ifdef ENABLE_ALARM - VOICE_ID_INVALID, + VOICE_ID_INVALID, // AL-MOD #endif - VOICE_ID_ANI_CODE, - VOICE_ID_INVALID, - VOICE_ID_INVALID, - VOICE_ID_INVALID, - VOICE_ID_INVALID, - VOICE_ID_INVALID, - VOICE_ID_INVALID, - VOICE_ID_INVALID, - VOICE_ID_INVALID, - VOICE_ID_INVALID, - VOICE_ID_INVALID, - VOICE_ID_INVALID, - VOICE_ID_INVALID, - VOICE_ID_INVALID, - VOICE_ID_INVALID, + VOICE_ID_ANI_CODE, // ANI-ID + VOICE_ID_INVALID, // UPCODE + VOICE_ID_INVALID, // DWCODE + VOICE_ID_INVALID, // D-ST + VOICE_ID_INVALID, // D-RSP + VOICE_ID_INVALID, // D-HOLD + VOICE_ID_INVALID, // D-PRE + VOICE_ID_INVALID, // PTT-ID + VOICE_ID_INVALID, // D-DCD + VOICE_ID_INVALID, // D-LIST + VOICE_ID_INVALID, // D-LIVE + VOICE_ID_INVALID, // PONMSG + VOICE_ID_INVALID, // ROGER + VOICE_ID_INVALID, // BATVOL + VOICE_ID_INVALID, // MODE #ifdef ENABLE_NOAA - VOICE_ID_INVALID, + VOICE_ID_INVALID, // NOAA-S #endif - VOICE_ID_DELETE_CHANNEL, - VOICE_ID_INITIALISATION, + VOICE_ID_INITIALISATION, // RESET // hidden items - VOICE_ID_INVALID, - VOICE_ID_INVALID, - VOICE_ID_INVALID, - VOICE_ID_INVALID, - VOICE_ID_INVALID, - VOICE_ID_INVALID, + VOICE_ID_INVALID, // F-LOCK + VOICE_ID_INVALID, // TX-200 + VOICE_ID_INVALID, // TX-350 + VOICE_ID_INVALID, // TX-500 + VOICE_ID_INVALID, // 350-EN + VOICE_ID_INVALID, // SCR-EN - VOICE_ID_INVALID, - VOICE_ID_INVALID + VOICE_ID_INVALID, // TX-EN + VOICE_ID_INVALID // F-CALI }; #endif diff --git a/bitmaps.c b/bitmaps.c index 02991ce..6063924 100644 --- a/bitmaps.c +++ b/bitmaps.c @@ -290,14 +290,12 @@ const uint8_t BITMAP_VOX[18] = 0b01000000, 0b00100000, 0b00011111, - 0b00000000, 0b00111110, 0b01000001, 0b01000001, 0b01000001, 0b00111110, - 0b00000000, 0b01100011, 0b00010100, @@ -315,7 +313,6 @@ const uint8_t BITMAP_VOX[18] = 0b00011000, 0b00100000, 0b01111111, - 0b00000000, 0b01100011, 0b00010100, @@ -324,7 +321,7 @@ const uint8_t BITMAP_VOX[18] = 0b01100011 }; #else - // 'XB' (cross-band) + // 'XB' (cross-band/cross-VFO) const uint8_t BITMAP_XB[12] = { // "XB" 0b00000000, @@ -333,7 +330,6 @@ const uint8_t BITMAP_VOX[18] = 0b00001000, 0b00010100, 0b01100011, - 0b00000000, 0b01111111, 0b01001001, @@ -351,7 +347,6 @@ const uint8_t BITMAP_TDR1[12] = 0b01000001, 0b01000001, 0b00111110, - 0b00000000, 0b01111111, 0b00100000, @@ -361,20 +356,19 @@ const uint8_t BITMAP_TDR1[12] = }; const uint8_t BITMAP_TDR2[12] = -{ // "--" +{ // "><" .. DW on hold 0b00000000, - 0b00010000, - 0b00010000, - 0b00010000, - 0b00010000, - 0b00010000, - - 0b00010000, - 0b00010000, - 0b00010000, - 0b00010000, - 0b00010000, - 0b00010000, + 0b00000000, + 0b00100010, + 0b00110110, + 0b00011100, + 0b00001000, + 0b00000000, + 0b00001000, + 0b00011100, + 0b00110110, + 0b00100010, + 0b00000000 }; #ifdef ENABLE_VOICE diff --git a/firmware b/firmware index 3616c90147317e0180af5476f7bcf105fa923bf2..f076d82408f736d67632376e2b9b1d2d01d484c2 100644 GIT binary patch delta 9428 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 VEqJ*Y{9WC`b)nqN^Y`?!0s#Lg{mK9U diff --git a/firmware.packed.bin b/firmware.packed.bin index 60c213b1bae104948579b58dc260bd6fb352424f..4ddb2faf07d51c1ca40258ceb73ac7873d070974 100644 GIT binary patch delta 15043 zcmaFX!o07Ad4mii^i@BPWYQ+lXJD7OWxI$ zlc>DcsFeIQisSO-UA5}x{w*__8ek(aIakM?aq8r?I{A#VCd=x|G99VdY@<7YiSfbY zv-U(0XJj4=# zl{>GvQkG%Q>=3;NuO`mEIC-hnNk+!W`PPYyM<-vj-ppt_xz#3~aqr}(Hjzx6+a^2M z-eCN`S<+6LkDeu5JhzjVJv!MO=YI0SHeJ8tV?ZLX6ru8`?UF> zYd$06@yUknw;4q?^LiX)V%)I#ycatYqsQdyKCX;OlVyFQ8N(-6`Z}{7p7+pCd-6eF zL&mhppM6akk4@I}3pP&F>R*{D@GT*`Qg2s(RNO<|g=vP*a(---yC#3D?745~-%Uc! z{V^W{XIY0{>~_EL_`N~xG8KI`uOOOASfltE;2OQ=JN@T9K& zKb9I>{gpVPUKgxgcydarMDR5=rr5vtG$e1E#ikw)ZWEewMCJu^|21xdIGy90&h75d zoE$#qT2Ob35_{0}@YX4*31+t~A4}CRdU18Xe{=l7f}0=ey&o@T6|l<5ewO#~_hyZ- z97e{clc$ESWfYq19I>A9_TQBlk7W*nH!xNiTU+S1~R=^M{UMj-NE|MnaOcTB zfz6Il!i38swRn*|fO84VxFm$4o! zPA}RrFNA$+;E}f5_gwGBIZs-DR94Hs{8f63G<$W3{rqE6O<5b}{aadcN^!DpQa7W@ zvW8+Y54NaHsdtxI^Gon3XST=0qrcAvR&{H&J4om_5oPoY{loRQI&qTryhX{1*V-C#<~)jK=AXajz>CXip`p8NZoXN`b*=M| z%cU!89XBLQ*)-vfs{7**)7!glm56ckKJeGv(m4IGqtB~TlP4?ZIVNtd`qvhr5Fj&Y zzu+~Go-aDH_-c3S%(+*dFl*MzG^K{%W@?IS+fV(wQzo@8l} zxb}RjalZSr#k0=1y6)Dhcp3RG<&C#=hGFlsrKheneF~l&TO`kzxVg3{nvqd`^3CFf zoK7p1fAvMVUfMLdxnv`w*JRUDeMXbXsimHRq5_k5Ei$Q5=iU2JLgYL{+_}yBOZ^$8 zd75r!+&`c-=WeXW%_lSV9}fF^??`@6R65V?ipiSghAhpWE;CJzD_3AF+FW1$lacfJ zM2+xkd6T-sCpT6KGaVP1Jgu^d?ZjtL?Xg*`%7KxQV{>@*LPj?I2^!(Q@+SYQkz#Dw zELkhh%*35C*{b0X)4l4={~Gid8Rt*dZ8B#3u{p8nJ`>Z4%afg24>3NP%-WV3YV}0I z)pL1|L5F<4RrxI2n_lZZCvg2rQQDX2df#d5<_T8HEK8^Gnr7`kYw-4t_yq-y*lCY# zoL`@MK5=qh&xw_jUc5NGj9>8L_NZen@x4pmJDM$(ytZ)i{x)C6kjcF5$xNX=lZ)Ed zF}|3r*m0S$cJkK_W7eaKAD#4`tlR0$s5iN?)7e<(zQ9VW*yQy^H=H7hRu)L{i_BwZ zeivOhK~qlRU3MeWRS!3fnFR|~vyZ)QYn>C&U-;R4^7~Ft!ySgQEwZ^U>ur4Fo@Ewo z@^6eSSh!oS*#4>au4%KU%UK*tZDhLT5vtL8drxfTu|H*5lQX+)6-Ai0=|29iyRm)! zgilV>!awj&(XY~SR@9%;riljrtmGtQoTvL{+}{=_#oH(D2*{43`sIhn8S zf9iL>w7$ufy=xf_CO_}hWZX4buuoWe+GU>KtYVK|hQ_*|jJmvu`D;A?cAv)8CQ{d& zC)@WemVC9?ec%7J_kGWVzxU!=w^sVgpEtkDgzau_nEbm>QLsn$p5F(j=}t@c%iP?z z>9OUj$-4dV+}jyVOl}*UTwq}GZSwT~Oh%o_j1&Gc)s;`0Xu|sC5&yLC$(9r4>m9Ni znaaLKaePnP6)RBvukGrT02^iw!EaYBzVOKHs+~P`ibi;R_N4AJ^A7}B#CvSnem3Fu zy;nXl9^bEZw>(fi(3-+fZ~7ucwX%77w%;M1-|WjDoh*rRKgsOlv@Pj~=sTk(^*_?Q z4f8beQ4IbSyKcGX zBp&D7lG5P2Me5qyO~zkrA1vL!P5nUogW^LP^RG*;zip*i|5DbVgs?))E|i| zdli4lN<1u7*VB;UU$we8HTP7Ru$}b%1%*1ZR+uv!IOtTCJZ0C34Yu_MePS;^x?asL zpjhelTg-2Zcj#B6gVjA-zD{qOpt%3h<9?^2vpXWr<$UK`!eGZyXQ1{l$Kbf*@%Xt` zF5i|i74LrW;I3A1SYiFWyYep>^;a<|{546ORqVT}+U9Os^S*N1iq-EFZ=F7SI(F!tw31Je5M9VOKPNQyw$F16lzv)>~?2}C@u}(o;+i= z`hTc`=w7@yw<2N=T2rqo{rn{l&8OBI!v6> z3yKB)tbMpsuJn-IX&Ft8(kI_@YgXMja?(xPWB;a&o)b!D`-I<}^|jmJ-0Oo`6aRN4 zNCwO^a+vP0VSljPq`;pW57xR{JP=9TmR|dG`}M}d#aHfZTFt=rjpZ{zhOaug^tJoT zv%j3Ct$D;ht?iJ_lGC#v`su3F&RgKPAurr9weX&0^ZI%|iQ>YwGV(9F^;a^j^|#}k zpdGUGQOUJgYWD)p1pZ{zFMf1V^tJm-P-(VEkbnE}lj}`7)gJ7-H8t&U zlG^>n&+Zlo?L0ZJo=dtZt7P?Ql=zv46`gt~sY9GoPBO&+t5^ znyC2zRLJvg7&?on#UHjeVU^s^M^V6nu0;N&izdjcb(PP7`FF%Y}aIEk>JH) z>!<1^9=X;0sJT|bTcqp%+gA^pZ!p)se>|7P)_Pv%tGuw^dnMkSz8KQ+V#Vk1E%mV? zQ!Gx%wp~%b?8BTJ@kBcN#NOS@_gk0NO9rZ44VqF=H+7EG*DnoLNl&=4C%oKsKIO^O zHl~Y?GR9J;QUZ=QT=m*iH^u&^_l7{j509<0ziv{L(fV^%^H+P`fq0uPr_0L6rIRIG zelfh+dE>&9uAm2suk$7^?38+Jxo^GliQSAQ{_*jQ(+d77P(y2N_=4Q__Eri?04OUGW8NAH~Y?RJrwd)?dX#1cj|qfOnsq4=>ckVTz;?`O%h^9*qhQ?2*kW;@Q*vHy6eL;c}5f%C81u1YT4KgBEXv)bNY zf`2144o}+ub&{b%W%vGoejY`!w{rzQwsg4mJDYQ998rJ!c4aAZx74Bqi*lw*I6R#b z=o@}`(w4^t$5gGSSh$((@(%s_=D-)`4X!K-tx}EGW5rpQwZ7PSGQEV~%~Hc;x%AeD zxh}pT$Cn=R_u!AM4=m|Sm>_fTp-0q4-I8MB)j3>2@g___bb^y;*H z)2|E%5@jki1lZ;?>&~m5S}$NH{n>AK)0Bl_MA(#5)RnrAJi8)>E&m6R{E%%{zk_7)WE>C;%6{JPT2R^ zxNx7&xkr<3n#zAyZTnPZRKo8i_-Flt&QmNQ@|Rr`0yjp?|C(!?y>yGZoOaQ6XQ@fA zSoA~|GVjg}YKd8?X3rXPYL!{;E$$;4k2~@w@7TQSy7fYKp_9AJ{@3gC@B1!Mnk3Bf z;dRZkUtKOS=GGFvLN(sTPcr=VY1-afC@_HHUMJTHFGv#>sPf61y( zTaKPlSozGpcqLnA_rVtbulFt;Vo`Suzq+tVoyW=M;l521jn~&J-PkH_5EOG{ll8nU z@)?HHzTK@YnEzag>8gZ$;-}5$bN(OWNjBOSVJ(n-_`0En>pY)HT|O@^dfBJWpRT;| z>V-8*r5@Xx9aD?*OEz`?-FkUN-um>_d=tK<_dgE#y64F9?9Km;H*I{SVRGoK>&x~X z?s5}X{LKFP%6XY4`@@@d$7j?FuAaJO&M~8mJG(7?rpo_b+Ln@K_3zh*e+o+XGB_vt z?*E$hk)g0EX;tzTOm@wGmvQOf4ww9Vup|Fpy9HZ2M>9{N>YtWSIP^2&z& z)1(Wmf|t%yzw|D;FjiAef+@R^snj`2<4o$VSf+}9ZGO`OY^HGtev7dF!sE?RyE|yQ zMtE?>q;7ky14T8jJf>7;Cj1tQ^{JWi`C4~fsOp0iDGc@7V?$V9TFGR6&|&^A?022){MlOQ+5%sVg`ZP6&ormWd!%U0&-k2S z!>ss~Qit#nV?0kM;YXI(pejHMGw5-sew;ibHN( zGOHJGsWb0aTz&jlU&^apR?~Y9C&MkpWQ;L07Ra<{s`e$E2zoU}q z+f_5TZoByS9e!%AU8~H$b3yp$qyK8cE&ljSpQIi$J3aiy>?`XG&b$0p{mtPQ9vCuB z{Osi^&0@9}HlKR)=|F9$;o4o1=h90U-5xgBu9yDyy`J6fc$(PcsXONEY%f^ZVL4X@ zlm<3sJ$uisKWWn?2ZxXe4=m(T#Cj5MzOeb7%PIKHwC{_~q@A_1FDYr1U%fkN^$yJg zMXK>0TaIQV{QeN@QzPVdZS~PW)d$;C80yc2Rr@`$;t}8A%C9{K+$7_$n6@kOTv~~X z+Z}Mnq<-0aYgYxcfR+p|V@mAtZyEft5wBGb5ch5g= z40z-ASNM0=gDW~E6JkG^OKL3V*O<7>>Gy-6xYE$Oy8;rly<|NC?@s>KZG6strPE7> z{zbBZ8gCwN&))1Ky=j5gBg-o*9FOeRNZOWCD}Dd*Pn#04`WsC=5qjaz7W`a3_vz9C zDW~@{?q$A<2;XyK<^Oxv3ZHKK7RAwVaaZlt^Z%B4O$e}wWEK3@KKF}GkbLcK*%pm( z+v-W((ftR4Tz+{>S$;O*w(E1Bm=*sI9#}QiXtnIk6S^x`&FX!!>CR)DXWX|KBYsJL z_cwgF`^2X&CB1y>!@G6D>e=mE-K@fnEm^%|V_V$wiWh+lNA;z%4jXTBle3JPa>Dtw ze{3>uyP15tSo$Srz4fnE{v>8wTYupR-cdVSUrD2!`Oc)(%NaI2k1ac=qMTqkIbV2N z)@U;9#U@~+8ZJQx0+dibcjO=Qu_9WnR94&J;~uKPn>o8=v@C081M?y5=4`&Z_dSe#O%A;kZx z`h7_G%u>i_I%-g{gqotL+!+i|)7@66UPVx9eBEpzK-6 zzK8qzCb_Nc^ImoQU|UwzZmqffQj3{;VvA)=zO&ErRtSx{VWPIH{(wn=C5~K-e6NQ?Ut8;wM)AB0=F&sr`m0czX!~_K6CvB-i`a^Pk#EPGHWycJADF=6z?6NiUWPo{(XA?f0rrkB-^&Y;on& zT3~UaL1?4Pp&bgrQ~c}24ia4o?X~gd+WfzWuCJFY@Txnew$(Sg=fi@+SzO^8sX{Hle)$F4+J#@dTe=f zHsN;5Q=b?i=WDAy9917|yw4D?@H#|Q!ECzs+`~M-r%OJ1x$d|7OY0b?ZT005{M%d) z*esdY{m@S-BkkCm%NzFdttpWDvT&aIzjx7vT9$GWan+4X^8=zZTrcgaU6uW>ZL(%W zct*AG-<1!(vlk@QPO$rNZ9%nmli7}|*H$mvuszvp?hKn{?|ouU{MTG8Xk)S}eqpoi zGUE`nXT?XPcgrzvQp$R{^Su0&nHw8@>i_5HGv5ER)99=~*n4&Z`Hb~zgmnHME3Nk0 zZ8<52Sve|T*L}W>*UKjEfBi9vL-qQu+NG!dEt@+nz~&9N;J14gUwGVh)y}@Hpi$0p zb<*k_jRQqH;ykuEUVZR0|IpntPnoV&w~HS==XeWFDL(FFl`0CqxiO{V@x^t`nkhQv zNqZ)&xmxdc`ONk?u2T*;in4CjiO(y~4qQHaHlv(c-K6SCH=jycmW9i7CM0NYkSeJO z{;_G5alNX5yh8g~`5y*~4vOD3Hq5)l)GhTW^3d6+1)J(4w>SzcW8L)qm4yzI+Poa= z-!lZYC+rYE(#9{b%W~f4Crj>kZ`qz`_38U0FQv>S_unY`t~zMJS@N{TMv?$f8pVYPCYR`(U4IP)H(-MBWKJbb0alE#=CRFu7%LRt`k5M74uUe;P zXJ6*|t+edX$zzXo*4HOBxVEO%iBDs&n^P?_Tk?0Vs^QvQT<#txqk7KPJj}chy@ua* z;uN_T&AJUtOn=wjmr>EGPkFTNbn{*&nP_G~wPmMwB~?ran8mNDv0PDC?Z?KetJaB2 zGT&)Pn4|MgYD0I%W~~}W0ri79H~)4tNrtMvmd={fIprhIoM(?;+ANf>7yZ3UXf~nn6mt`#5U)ErrWzpT*ZGc ztIy7O98n|weP+c6_Qb3%AN|X+GRj{jt&0t^SgNt6`o<)Qgb%sKTf2X6`23q;0ox3p zPoLJii6s0x<5k(?K9h|x?62(WV}}uVVXJ%5O57W==%e%8k%HKmW zy6vp)qpj+u2@af__H&%%SM2=7v~7dK)Y}U3Npk;}&b?Tj)BD9(cfIianD9*vJ|Y)Y z$}Hxk)^y*#CHZ_q_M45~t=uz2INH^d^r8*UvrU*}cfiu(d5HW&tLfU;F7f8|jZ*x9iv*e)u!@P@WX~(jXH_R_tQy{fVU`D!CWOQKgTsey)cN&#m zyGLoPo4GaC^JA9`fA{_{_!ZF=!+XZD@kbUHB}Sil~1q)fLwM`Nan2 zHR-*47nXMD9Li3VTWNJG?bw1@4(>-JHq`7g%>16SMcZuCCDG_!rbdOtuNSkPa_kIw z-?A{YVcP9D^9w?ERf_KXFWL9)r_rzLrP@~-3|;iR1>#$x+IA$da_77_Zg+6zwQS30 z&t4y&&A6uI!4&!3)glSjI=mWI^^!`LCyTQ@GTiK(suOd*XK9Ch|AdqWa}9Eq{rRL_ zyw&%4;mbm)I9m^)8`W0Vc0DnmvgcTO5%3a7YSu{A874) zS@l}r`;+jNE8nEHx7@bb%wLiIcFDq>zxT84SE~NaH1DglD5t@~OL_6@&AfS)bcM4f zo!-@_(z5ng^S(1t1zfYHG(G;V_UA)>#$oP-VFo!98_y)1X}l74tJO*=gX7twd%3|J zmm+q)l{dI|f?>YdtLZ#R71MT9=bx#6_&7T8fR~7ymEnh`HKuYt^J}_o!voY6Lo)SJ z-)n1Z%sIPcgTjl*SpA8DQH!dk++$iWor!DZ{^;LQx2xRE+SNl2Ot~FbbRp_mzSgo_ zvlX?OcKP0d1=CN?4o^AQC@bo*f8$oonet2Yt(v2*MHH-43HABO(7#JMY{yIC{N2ks z>udHLj8*Dqa%}(jXrs}`>90;+_+DeYF6#fIOtbumXG=Br>_56Ru4-!3;&1%H-ad2Y zZi~BrUDsvV&RU0_+e>Yk*DZXe^5uNZlx)UF1p!awg}(P^RpqOf=zW^JFH5=8+fSUg zcd3#S_v2j;bnn!7O)x%i$HL>$?DBmV&a<*8#T9R^_Z8dyoaNEu<8AJz%GO3~>*nTL zn%I3bboQ)Bj?SDC@`z<(#f-9KE6qAjr9WBG?uvAtn63)%UXH!4Y!buo?3p{Rap(Eyv2{} zCAZnk7cvhL%2;$In(^6`376I_`Bpjgt(sfSOicgXa85V8 z*`jxACd>L4KBuUicTzdL>E>TmO%pG-Nt-;MCfGE`6?-mXPxyT(c(G5w z-C6RMI$v!j_`aHB>teKI$1AJ)=Inw_?cc$FmHH2b`A*z@AmUhB4*woL37^B<#me3lm-a2Q4$5jQ-_2(H)-EmrDLfEzIT3zOf2LzNw z&8}@!lAD?T*vEEe#+UgjPgLg{KetO>{Cf4T`spsK!&j6Qw`@$Ab8@ei`@};ZjgF<; z=TG}`#<@{KZ8>|9TKKbh+8_TtSy~{`!!k`>$UirD|Jnt`Upj`reRj{! z{2G4gs!#XxX(0h~L+?&=6#shjpZj|Z9_l1+O4+TdX%^0SZEJU)((9nY@Y*RI2~oF0 z9v9S1@tWOT_on=TR0mw(_HXO`6d?4<{-I3={z*91Q*{?wyO zEXmf)S?c*ye`!nmohT0f{G#$h$M!98*QV>9c+mPoo!8$wKkeCqtPT5*E!DHyB{5H3 zCOEcm;}kBnXD_BQDcu$hzwvTcEc?}OO%MMD=verv$JVyBHn2{e7cN_7>s9#kY6I zh@Su5+Pq3K)XGc!T4&|nRJ)$q-S)07;Y!ygoz~_%5EL69v+YAd!tLts5gBK^u5}ll zGkoE5v!1E$-K!whmt1!h9|iIJJ}>al;z4&BX{En?2Qw^-?FPWf5e z-}RXp;jvey^}EI%(2WmvXgQYT!fpMSHw>+&) zKY~~PJ{aycZTAPKZ4vVR*S3GNX;w~KSZ0$SxokqzhlXRvQj9k7{8g8Y)~?((MXqx3 z{3DLZe?hrmS8U4hKTX{|1~SFW0n;xSe9N)0W)bGD7;JDUxdUl6Z#QL97kG7tU@qNAPqtqi~ZsTd+w^=mE z$3673&X)nDf%$DueL-m;f~#7-aN`s?^-b3rnc}{BS&et9G}!t&MZsv`OEc)s95PhC3X1YT|G^{|<-69Ik8KJZnYV1=N250R(n}d1xbVljx8;)+9h#cP$)RMbn^r; znNQdDJ16gv7Mpnchmy*%e{B!XGKN~Y3VwN4xi`^uQ|fwMi*R?PkJryJrT+{{mSep8 zBOu|H+$+!e8(t3%RW7a1x#lz9)9l+RFV=@f^OJYv@%;9D_Qaok!^Zh;oKD-)9Sj~$ zSQYyuTk@YDC>QJ~^K*naV4k{^u{GbhFLe^1t~D}QJ-o9{Jl1CRjD7#wnjh)c3ndk7 zKNm1Xr+icDa!dVn7nca+eRfwm;FYSb@$~|u@RP#FJ~a_tX1_V=Kirn{xyew!|4A_O zdz*aR{EL6!)dloUx%+f*m+n!|%^VFq$ zQW!3Lt*>l+IiE@CZ;ambyL)agQfS!GJSRY=m|1Y;1;Z~o<(q1EyI*~GaY=xP@9wAr zL9w3Y&o3}C?vl9^RCB{?U3vYtti@@k;{UYoe;guv(fb?MMgH0&>!co?Jb3MRrd8n~ zv*+>r)4rdyZIx1g;BS=&D+fSPFi%}7IJ$7-lV=Z_t~D|#{dF{+czc&~)Ukg%=0Y5B zZG8dD9doDN-}buZ9%?6h`^|58+`V+ZV#@ZMjK|?`yk&NHU90E*(4+dp;XZTS^4}p_ z1wXyNZIH+OWFhz4YZt@PuP^!Nv@IR%0Gk$RHO76)=^zJe-*9hhfz>X7w(Gw@4rpN$ z|9Y*_=~3;i7Z-2ujz~WGx3O(bfXwE@g4fm?eAO-3TC>YuQv*~Ebh|4($a4($n6fb; z;dcIGpW2(=_1C)$->Nz_xqh6oVHD0&Mvp#@Jx${ z<>z?qg3M7c zAp}l@PIIF)Cf?rVTXE`NTl1U?cZ7`@udO%yu2sD%*LwfT71tMqP3m`6I}#Qd?9tN5 zupm1Bu}@C@0k;bshIeFN91*PW-~Tv-^^@ZC?0|VP*@~~2PM-4&|F`y;V_AE?_%d-$ zo7pVt5ByaM^5h~OS-5XonxMLrqt8Ng^XklQgQ_o!f2jTI)yb3H}6k z=_{?7hw`)67xMhx$olu>!MOc`n?Py6U!e2(Nt+gFJ;`mx`58YpRIT4|Y;DIOs~^wo zrJP;zHcV$=`K4FMrSvySqw&a6-;#Te>Z;#t$m#wqcyfcm7oCi?tlRC3m)E)$?#>?qxJnHB_wlYU+6=$QSRJL=cXOEi1r)v{sZQn*+$h^HP zc8=Y@&N)2}JUKis_0}7FxzfL>ZjZ5{N`RtXR=2y7#j4nV@Q!UY^>@naXRrBVVRWur zt+NIO% zNex1=;r_FCCM4Xh&wuPwbHnRecfp!eg)=u93Kx8G<@%;If3k<(nd*&FpRS#A3;(vY zu<4t+{CTnO$CRgVoBedNe!py8#H0=TPwq<4+REOy{Fbn^VWEhe_}k+Xgss2ax{(>Y zC^zNUyP0!(0%VGtFHU>E!6c{r?;`E>*TTcK^s>0wA2|g1dW28eSYKa%JAd(%B_IbF z{IU8U11bq0i`+G|n$8{Yu7~BEkd)!UYwas{J&awM5+U68{iI3FV>M7^RQ7X!)rNYu z)DOR^X3Vo-4R$G9*By7GXxhO;i~dHL_uby*RPAPW?C_llbBcNRj_p@?t!!TO_jmov z72%6CbEU&=&tIA=&LL8$P@iz6;Pahk^;6TlH|T&uKpj%_pQqg z(GP!Z+~lV&4=M?bXLH-V?E9Ucrk0SkVZ+U>38qUq<~_d^9KEq{ik$r4b2E8WZD(mr zyj?Xn<>bS8y)FL2#)l_f)BmtVCw*1X9s@&*>5r~W>TZ8@;O?R0H(buu$1jl9U)-~2 zhS$02YX41sgxqZS?>{?+_odbJ?EQr@uQy6P+PE{!{pGHYPAeLp)lLWLVo+2mFf32D+`2QyD;`?7Cb{9S?!i6T zJ5LsPg--b&-+8>PKJ;&;_LTaM9=C382y`H;7R-C!=`YwZSI`x}EckAn$)vNz|)$OZvBs@0Uqkc;L z*@WAd{CsLko?q);?Wp>|7n}w{SYNhJ&z^mm=Xc}sM<;*2c7OTP$7!3+BmQa2N^DxB zXFv2yxRmzn-}Mdqmq-*?eG5OSE+r>qx^YTa;MRGKzA3w-m?z%eRgiM*-^EimL}iMZ zC9QzCLLi+IS?dY zFCjB!qpE&?{$oDl9;Rz&Qx{}DVC-_Q-@jGb^QF~Im4DhiTfWCUI(d+VW8MG7PQR69 z_@{lJUv*kKeJzuduD32EB=nURCBP_xniMsbnA(rR-&n0pg{ZocZeUcIlMk3F*x z{}*^xJwk|I>BAv8zrB5+_JBm@r3v3SQ<_#EKYxxx#?URKZN0&ldXxG3|1vd`g{o)W zJ>g#Xwq96LxN^!PU&Z;_7k%`5_^)*vyeZ$1*cD>6f1RuwC>MNIbX@&E?$M7oqHIgQ zeH8qq#}hs6`>cYq9z_@YGL-eVeu>!duj5T@@jr>v<&iS-CL1q!M(>?;gemO;XU)Xh zyCglQti9GeN5s(DCw9{MlAATE-)nd0*Va^JPnvW-E3Lj+EH<2H=U+|Z{`}>M1`}l_ zcPA{)UMoM3LHENF!SI(>SGAs4IB(w=zP7g|%>CtyErOqo=g z0=pNJzD{tkdgriNNGmzosbz_A?4E0v91AYUr%mjCRG`@LukGkY;aGbwSW&F;Rwzlf zJZ1lbX9o4oo6HN#*`HkDbC}27Wg)s<<=5)^mC4%^_nXLdUNbj%VlZ9ht48#->w3-q zznB)iygEzuin)a8u5JG$C;xvNa?v_I{L19G*3OS}J*$62-{Q3lu49_=-8%cz^utWa zd!#cj+@7!Jxb)xljq3wq4IM(?ujky5Z~D2mi&sh}N$K&j9rdNc2NX?=4QB365MC|S z=va2ca>1*ZR>!w)H;ZMi_eS!+ti10wHO{VYW8|tQPtr=}?AkB>OFQ2A=9VU#V}7MO z{3`W~j=fQRzJJo+fV$7#_fx~fqE&y~j1FJk)aabIha+`j?^i*CXWPynxe^es&Kx@R zkHLm~)lGK4ic>ix%A0o8-xMi&86+pha$};tX@CB53B!3=O_wG17cA!gz+nA)osjC@ zr0MGS8M1F5%xK@WsVwE?xp_&4IgJy(&N*3sG(78ewnu)%;mcW%o*#Q`B!6CFx45QS zX-MP3Y>CaY8{Nt_$Y>mz@gi1z-TW_4eim4=>6$#7>$-?1=y=3D`~1}K+zItpy4lL7 z$i}kB9{UoX(4)6XBKAi9lYeq210H1VWeAxytxDl0_apvKd7AU*+h6*s4YCjuS{L$*~F*`XBHnT;OMe=>r@$>?>O;!b@iur8zQsmMuJeZJ9E^sCq9I?g_?&;R63 zie9t48KC>^Ql7#btK*hGW6bUyk=oeRAmP5?-|6(D>5{RRmwlG}Xv%!C+Am*W%Tw#F zsc*WY1SS}5QIBMo@SeTT#OTJKM#r*!3A|6f&ezb{^Y74s^H~vL#!5RM8Z6IM{O+_n zC!1uO~~I>npMBqUtvz;YtWQQXo$y_sT0y>XRVAmd0MHrJNt=Q!)CpXhW)44 zU;Wu0uDf9#*Y35}&zc>>LK-)1Jo&X=M*drS-=9O$*Piof-%5HGKlhfyvEJ_2`!y0T zd|VS`B|3+xf>-h5-@9Ba*C&2<>`Cl>^sXkm@3ESq=-hsTcRuO-d;eP3-_#S=Q=4)+ z{?aj_IGLb7o3xE*244##H!1zhiKk0jM{DzJ$N&-*F(r2DrOx!4|;<$bX zm**VWrCCAqgInC~B^)KE+-Iq{K6iE&`!)xU+#iXtb?a`Oo%v_A{R(F8eZAH1d_sSw z*I$-RGBUsM)w4U+>!GB(dFK7q9F7x8n|H@Ed!2c#zr4QT%x`%U-RJ(f4}+#^?BWyo z?Pu}x=tZ%Rl?!%6{>iuJ-}YqX;o>(pK7Ll7pY}{4Ys3Frp#@fU67$ln7DpFaPLYea zrq;-`?r&7a%-g$UWsdzj<~}<>hM!q*nz#8Eo$y^AwZEkmHN=JPO*%bU^*~T&yvLQ! zjD*>XpZL@~ak_RI6a^pdG1U7z$GghTnxhTw8-i-XF!z_Pe9qfv#PLm&KXtg}_zeKc Cxt0+C delta 15083 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 diff --git a/ui/main.c b/ui/main.c index ea1c599..57d32b3 100644 --- a/ui/main.c +++ b/ui/main.c @@ -143,7 +143,7 @@ void UI_DisplayMain(void) memmove(pLine0 + 0, BITMAP_VFO_NotDefault, sizeof(BITMAP_VFO_NotDefault)); } - uint32_t SomeValue = 0; + uint32_t duff_beer = 0; if (gCurrentFunction == FUNCTION_TRANSMIT) { // transmitting @@ -151,7 +151,7 @@ void UI_DisplayMain(void) #ifdef ENABLE_ALARM if (gAlarmState == ALARM_STATE_ALARM) { - SomeValue = 2; + duff_beer = 2; } else #endif @@ -159,14 +159,14 @@ void UI_DisplayMain(void) Channel = (gEeprom.CROSS_BAND_RX_TX == CROSS_BAND_OFF) ? gEeprom.RX_CHANNEL : gEeprom.TX_CHANNEL; if (Channel == vfo_num) { // show the TX symbol - SomeValue = 1; + duff_beer = 1; UI_PrintStringSmall("TX", 14, 0, Line); } } } else { // receiving .. show the RX symbol - SomeValue = 2; + duff_beer = 2; if ((gCurrentFunction == FUNCTION_RECEIVE || gCurrentFunction == FUNCTION_MONITOR) && gEeprom.RX_CHANNEL == vfo_num) UI_PrintStringSmall("RX", 14, 0, Line); } @@ -319,7 +319,7 @@ void UI_DisplayMain(void) #else // show the frequency in the main font sprintf(String, "%03u.%05u", frequency / 100000, frequency % 100000); - UI_PrintString(String, 38, 112, Line, 8); + UI_PrintString(String, 31, 112, Line, 8); #endif } } @@ -329,7 +329,7 @@ void UI_DisplayMain(void) { // show the TX/RX level uint8_t Level = 0; - if (SomeValue == 1) + if (duff_beer == 1) { // TX power level switch (gRxVfo->OUTPUT_POWER) { @@ -339,7 +339,7 @@ void UI_DisplayMain(void) } } else - if (SomeValue == 2) + if (duff_beer == 2) { // RX signal level #ifdef ENABLE_DBM // dBm @@ -387,7 +387,7 @@ void UI_DisplayMain(void) } else { // or show the CTCSS/DCS symbol - const FREQ_Config_t *pConfig = (SomeValue == 1) ? gEeprom.VfoInfo[vfo_num].pTX : gEeprom.VfoInfo[vfo_num].pRX; + const FREQ_Config_t *pConfig = (duff_beer == 1) ? gEeprom.VfoInfo[vfo_num].pTX : gEeprom.VfoInfo[vfo_num].pRX; const unsigned int code_type = pConfig->CodeType; const char *code_list[] = {"", "CT", "DCS", "DCR"}; if (code_type >= 0 && code_type < ARRAY_SIZE(code_list)) @@ -448,15 +448,9 @@ void UI_DisplayMain(void) if (gChargingWithTypeC) { // charging .. show the battery state #ifdef ENABLE_SHOW_CHARGE_LEVEL - const uint16_t volts = (gBatteryVoltageAverage < gMin_bat_v) ? gMin_bat_v : - (gBatteryVoltageAverage > gMax_bat_v) ? gMax_bat_v : - gBatteryVoltageAverage; - - sprintf(String, "Charge %u.%02uV %u%%", - gBatteryVoltageAverage / 100, - gBatteryVoltageAverage % 100, - (100 * (volts - gMin_bat_v)) / (gMax_bat_v - gMin_bat_v)); - + const uint16_t volts = (gBatteryVoltageAverage < gMin_bat_v) ? gMin_bat_v : gBatteryVoltageAverage; + const uint16_t percent = (100 * (volts - gMin_bat_v)) / (gMax_bat_v - gMin_bat_v); + sprintf(String, "Charge %u.%02uV %u%%", gBatteryVoltageAverage / 100, gBatteryVoltageAverage % 100, percent); UI_PrintStringSmall(String, 2, 0, 3); #endif } diff --git a/ui/menu.c b/ui/menu.c index d5c3221..718101f 100644 --- a/ui/menu.c +++ b/ui/menu.c @@ -48,22 +48,23 @@ const char MenuList[][7] = "T-CTCS", // was "T_CTCS" "T-DIR", // was "SFT_D" "T-OFFS", // was "OFFSET" + "T-VFO", // was "WX" + "T-TOUT", // was "TOT" "W/N", "SCRAM", // was "SCR" "BUSYCL", // was "BCL" - "MEMSAV", // was "MEM-CH" + "CH-SAV", // was "MEM-CH" + "CH-DEL", // was "DEL-CH" + "CH-DIS", // was "MDF" "BATSAV", // was "SAVE" "VOX", "BACKLT", // was "ABR" "DUALRX", // was "TDR" - "T-VFO", // was "WX" "BEEP", - "T-TOUT", // was "TOT" #ifdef ENABLE_VOICE "VOICE", #endif "SC-REV", - "CHDISP", // was "MDF" "KEYLOC", // was "AUTOLk" "S-ADD1", "S-ADD2", @@ -98,11 +99,10 @@ const char MenuList[][7] = #ifdef ENABLE_NOAA "NOAA-S", #endif - "MEMDEL", // was "Del-CH" - "RESET", + "RESET", // might be better to move this to the hidden menu items ? - // hidden menu items from here on. - // enabled if pressing PTT and upper side button at power-on. + // hidden menu items from here on + // enabled if pressing both the PTT and upper side button at power-on "F-LOCK", "TX-200", // was "200TX" @@ -114,7 +114,7 @@ const char MenuList[][7] = "TX-EN", // enable TX "F-CALI", // reference xtal calibration - "" // end of list - DO NOT DELETE THIS ! + "" // end of list - DO NOT DELETE THIS ! .. I use this to compute this list size }; const char gSubMenu_TXP[3][5] = @@ -555,8 +555,9 @@ void UI_DisplayMenu(void) { // 2nd text line .. percentage UI_PrintString(String, 50, 127, 1, 8); - const uint16_t volts = (gBatteryVoltageAverage < gMin_bat_v) ? gMin_bat_v : gBatteryVoltageAverage; - sprintf(String, "%u%%", (100 * (volts - gMin_bat_v)) / (gMax_bat_v - gMin_bat_v)); + const uint16_t volts = (gBatteryVoltageAverage < gMin_bat_v) ? gMin_bat_v : gBatteryVoltageAverage; + const uint16_t percent = (100 * (volts - gMin_bat_v)) / (gMax_bat_v - gMin_bat_v); + sprintf(String, "%u%%", percent); UI_PrintString(String, 50, 127, 3, 8); #if 0 sprintf(String, "Curr %u", gBatteryCurrent); // needs scaling into mA diff --git a/ui/menu.h b/ui/menu.h index e130b31..914cee2 100644 --- a/ui/menu.h +++ b/ui/menu.h @@ -31,22 +31,23 @@ enum MENU_T_CTCS, MENU_SFT_D, MENU_OFFSET, + MENU_XB, + MENU_TOT, MENU_W_N, MENU_SCR, MENU_BCL, MENU_MEM_CH, + MENU_DEL_CH, + MENU_MDF, MENU_SAVE, MENU_VOX, MENU_ABR, MENU_TDR, - MENU_XB, MENU_BEEP, - MENU_TOT, #ifdef ENABLE_VOICE MENU_VOICE, #endif MENU_SC_REV, - MENU_MDF, MENU_AUTOLK, MENU_S_ADD1, MENU_S_ADD2, @@ -81,7 +82,6 @@ enum #ifdef ENABLE_NOAA MENU_NOAA_S, #endif - MENU_DEL_CH, MENU_RESET, // items after here are normally hidden diff --git a/ui/status.c b/ui/status.c index 5f13423..4b4ebb8 100644 --- a/ui/status.c +++ b/ui/status.c @@ -122,17 +122,21 @@ void UI_DisplayStatus(const bool test_display) UI_PrintStringSmallBuffer(s, line); //line += 8 * 4; #elif defined(ENABLE_STATUSBAR_PERCENTAGE) - char s[6]; - const uint16_t volts = (gBatteryVoltageAverage < gMin_bat_v) ? gMin_bat_v : gBatteryVoltageAverage; - sprintf(s, "%u%%", (100 * (volts - gMin_bat_v)) / (gMax_bat_v - gMin_bat_v)); - UI_PrintStringSmallBuffer(s, line); + const uint16_t volts = (gBatteryVoltageAverage < gMin_bat_v) ? gMin_bat_v : gBatteryVoltageAverage; + const uint16_t percent = (100 * (volts - gMin_bat_v)) / (gMax_bat_v - gMin_bat_v); + const unsigned int x = (percent >= 100) ? 0 : 4; // move to the right a bit + char s[8]; + sprintf(s, "%u%%", percent); + UI_PrintStringSmallBuffer(s, line + x); //line += 8 * 4; #endif } -// else -// line += sizeof(BITMAP_F_Key); - line = gStatusLine + LCD_WIDTH - sizeof(BITMAP_BatteryLevel5) - sizeof(BITMAP_USB_C); // point to right side of the screen + + + + // move to right side of the screen + line = gStatusLine + LCD_WIDTH - sizeof(BITMAP_BatteryLevel5) - sizeof(BITMAP_USB_C); // USB-C charge indicator if (gChargingWithTypeC || test_display)