From 4cc1987e2184c9afafda4a345419d5f27e1ff44f Mon Sep 17 00:00:00 2001 From: Sjef Verhoeven PE5PVB Date: Thu, 23 May 2024 20:05:50 +0200 Subject: [PATCH] Fix PI recall in memory mode Also added PI check on manual entries and updated the doc --- TEF6686_ESP32.ino | 4 +++- docs/Memory channel protocol.pdf | Bin 235292 -> 235253 bytes src/comms.cpp | 12 +++++++++++- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/TEF6686_ESP32.ino b/TEF6686_ESP32.ino index 08efae0..77c1b8f 100644 --- a/TEF6686_ESP32.ino +++ b/TEF6686_ESP32.ino @@ -2764,9 +2764,11 @@ void DoMemoryPosTune() { } if (presets[memorypos].RDSPI[0] != '\0') { - for (byte i = 0; i < 5; i++) { + for (byte i = 0; i < 4; i++) { radio.rds.picode[i] = presets[memorypos].RDSPI[i]; } + radio.rds.picode[4] = ' '; + radio.rds.picode[5] = ' '; radio.rds.picode[6] = '\0'; radio.rds.correctPI = (uint16_t)strtol(radio.rds.picode, NULL, 16); } else { diff --git a/docs/Memory channel protocol.pdf b/docs/Memory channel protocol.pdf index 0315aec1fa0b9cc783ca410675d5f4873e7a26bc..e540d6d544a4b61cb626c4f895417fd40a982c52 100644 GIT binary patch delta 11370 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

sh7ld3SD(SJoPPC zny|;0*vpbhVn*WkwVIc;9-5cCl;PVauN@*X7hLNZ(l759toOdSXyJz9IF9Wp zX>{Za&A2{Uapg0i{qGdTTjW$V?!UfyIYQ>PnUj;@(ql)uwcq)yyQya)*u0b5BY)SH z`Lq6aRMp&BYkEv(*Os+f@p{&hvHNe&(>ZXS<=vH9*~(*S0yb~XoeKPZx$eu{32WpV zjW;&`d?J^2_ISBme34SU`<$T&qhG+9 z1^bM;E_k;+dLE(q@mOyBJOKyEz&Xh+%9j(YUDLXfeYKqxB`#|T^1V!680pU7-j!s1 zJ5Z|ntW3KLcMJ*|3S_%&NT=1JXvq#9a z{g6g{iH1O*$kDQGi%q^wGM=nu94tAtW6?JD>1ESqsJdIYZtVGWOQUb^nj=2PPBzW2 zy%}j-z@o@-XkzAuxkkpl8#QiC+)(>yUCI9bA6m*g+ypBG^R8>3_#`M&Gh6*l4Pn+k7PEM@f5 z;C-9pk@-S3T`e$inUa>^(REMs=5fwh5aC#xDzb3;)EOsFUSQ7?EtZNEIU8+ek*d}J ziKwD$Q>=@&x6~i=;ebbxMz5wry~j%cNZS7_@TkE=fukriK8E5g9>~kCayJN@Nvpa zRt||BWboQ$tTyx>>~5 zcY2om*wDVC>~#9`OS^9`z3F06dOkLAer<@%U+<&SSN~4i+IrCa=m93u|d9{KXql{ za?8sz7F|;9^jLW3phbg=f{dm7?VEl|8>agx#Z`a%a4RFflE>Elsg(2iKzm_us`+L3 zrCML+=r0|q`g(f-=YT6rN;?{q4smu}IM=4(q<>TA(wfye?Tv3Iq%T)4c)n}u;KG)#l_|f@kQ&?5mXB{tN^$(xf*KIoxKfC(Lfmy3lgSl$v|D7@6#GeaqEZ8i| zZOvaF?QjehOl8xqS#(CA&x`x^O~09m`ogDlPV=M``E8ze&;M~&;Lp&i#z7E9)ismOhiR^zXWVcwx`a^mAsC-zUUv$@zG2ZEEqyk11=D zTK2YYFXT1E>9cD+?*qNdoiI@6swm!0+ul=;+)ttqav6*iR zZbqK*X1>}`ut+MVa_z=VSq*VUXEm$E1RjMQc`$Q%^*i3lwo8>*U#96V)HyJ*sou0} z{hsA4du?K0wq4x$-0Qo(&hx}CoW)cB@hG)xbO#i-&F*>CSmA zadq>a#vOX4_t5@z(fPjHotD@Cr>5TQn{BmI{ZmO~*{Qy0AC1$op2yC!^ci)(%~3yn z!&~k2ntvA;DIfcpDY%IJ(*&iC@P&&`wY?FppT3J-QvJaH5VmtK7j8K)|G>=AkxklZx8|Jwvsi2YMel)bCz(Gq09da>No-wZ}T3LC{moVwO zK1mzW+>?5CYE6+4;XACspRZ)wx z-u7kMT&cMwr~m4@^{iXqZD-mOD%_E`^YY30h5ycVYqvhQ;&MNbEr0j#ZPGzI^1Dsy zW9zNIUY%)odHcLq)fTDqzUzJ|{T#q46&u_A?A+Cl@4j42KD+8?D9iM)Ee$u$xhxe3 zt4g%eW66GCqjyE);>INn>bDbT-FcXrD)jy9rH306L)S+B3lJ=eYtqqQ7o&e&D)7Nn zsSQo(tD|0*1e%I{IMCbP{zz8tcu7{sHJvL<*0}|6*QX?#t`uGE8LMAB`TCNys}Uhv z&lJV6vaMc!%B}I)o^7A+Ot&e2dS#vR&ipX5b<>S&s@H7#DC}+Btmhkd=B&>-UnWjd zw+A8_;n(X;{=}~ro8tcD^{tes&t|W*yw8PaUwc36J^PXm_ufWay8O3c&->>;87uGS z9PZ5Ac;eK888g^&>ch0Mrw;;Tx^%Fyq>g^XH;0`E z-S%#3e-qrid)Xzm*H_gm4@RiT_Wau^zawn!qeFiT#6FpFCbXRX?)|Mk`RAVWTcxjG z&gJdyW_q{!`P6B?JD$3yg>0RpbYA(~6oxehQIDpt*WY)>r21K$?PZhnTKkJ8>9zH* zSp!%E{;ZPA)B7>)n!ws=f9LA2+V6L*=X^G|S$}8lmTE&K#{>v$GtJ`qqDVFQ-+}z4(UGUDduP)7DSuob%^e_Mf=+{7dB_ zPqxpwvFAPOaphU}Vm@o_k(};t;+JpqGhJ-M#DZ;SRzJzfvJ%o=*!6U#oYV6NFJtY_ zT?P-f$`>c9O)-jHYwWat_Uc-lE6V$WyiM~Hv#&IqSC0F=(cyhh^o=7GSCi|wqm3W6 z*6S9UuL)eR{p|t$YvnscPM;Tgv$A1Z{-6(0@H(i!J zx-2~)SXR%nY}@+#td92cb_jOF-3{HLy1IT&VQILgnR)faZzqPz>(SNM=6n`>ZuHBe{_z)+L+9T)<=j7Wjpv8{KARba zDiZ2dvqSR}vdWuZXm7t3kRP9Y^VXY$w6z~Ly}GhNI@D`g*Ds5rXSLZgiz<1_^Bx_a z)|)O^dF{Q>yJ#DpJre@rIV<<7WNys+`{nUVUh|LJu9+nVEjRDWJ7K>u`}`M~y@92- zPT#(K_tCcL?SA*_ugAna+r9A8EB~si>*76yjb=}X?>e&X$HlAJht%`ptJd|(M=Gi` zP5#BYaCvO{PADn^-JkpHIE)`*t2riBmcC88})pa2P&4G zx%S*|tIo`b1eF;+I-y@mdA!p4^ZtcSHcb;zYc_qFlDJ8=`qS@MX}tCPuXS!rzQ3jB z`t&>JM0*x`pS53pD1D{%+ZvgzbN@}h!tf?h(JGVC=c~k(`B#}N4$qmtzkxNv`)U5F z$F<)6#Y^uA7+kE%`TzdOB{t_0{%eaWA2?n7)pq7mmReSzsjyV>9E<6ZzAvAO^|c)^ zemv=Q$1cIs`R68o^=)LIBz`GxPnP4osnP2l%wv5Q$F0Recc)VxBa#c@LhIfJ7X!c5o5innK8;h z&e>_U`F9L>+RFcOooDq^)eKtHaKNEh-g!I2y)Hl2OFTOl{`~K(d0%zflRHZpf0a%? zFjMk)m@}KJMS2vN>GNn497$aN!Jd|HnTs zcoS~*O2_*2sG1$sQ58##_Ti13>7OMkZPzo^!l5KhwOE!IsZ-2S@w*R|#XXm;Z?#)r)ow@hKo_cq2%le9qkCj&3 z>FnrL!cQ8DzF4$C_YBANb z@*T?$pUYeS{@uHjb5nn+d#PNR@y!p{ulgnw zyT;61eR2J4E#t_%?Mo!$=KtM)*yF{=J*PbM*GW$N-zqrc@mj^cn`i#+b4=TIaP|sM zKlRAi&f1c8Mh$a`4{Ij1@D$4KxjXkt>(y6FcH8ap-mkxeZTTN=ucU8hK7X37aq#cm0YRPLuV6J}jTP^4E>*yBXz?Ykp;|TevT8`l=eY zC*1whZhTtEEb>gdJLqrI`bTBY>zM4Oep@!3v6NYOyJZElrX;7Sk+G41fsuj1^z4bu zQb^psiOln~&CD$n3_w63kCzKX8yOp$8JMDq8JZZHn^{Z`pTuk>hAwAhWMOJzG=2Fb zW;HPr15|xRM&_nwmeU_kV)hj`w=_nRG&Zm>Hk|H0nORND&=O6~$imdjaC-A(W#592^&ojmG;=`m#u#EoW+rH2 zhNi~m=IHTaYGP!HW}l&{iIIgNh8s*x%oXZE@oRt-(WVxd1{z~Tu(7czM*J8X8yaE6 znW2fH5t_wDh8Boeh=HasBQp~-bQc<#8(Ux)Xl8DJ779j2=Ef#yJ~lEoHa9Y#etH_S P2dAkam#V6(zZ(|-?8a1$ delta 11430 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 1) error |= (1 << 3); + if (rdsPi[0] != '\0') { + for (int i = 0; i < 4; i++) { + char c = rdsPi[i]; + if (!((c >= '0' && c <= '9') || (c >= 'a' && c <= 'f') || (c >= 'A' && c <= 'F'))) { + error |= (1 << 5); + break; + } + } + } + if (error == 0) { error |= (1 << 7); memorypos = mempos; @@ -453,7 +463,7 @@ void XDRGTKRoutine() { if (!screenmute) { if (!usesquelch) { tftPrint(-1, "SQ:", 212, 145, BackgroundColor, BackgroundColor, 16); - showAutoSquelch(0); + showAutoSquelch(0); } else { Squelch = -150; }