From 77059d0e1cef349108ac386d7e50ed1e0f1329bc Mon Sep 17 00:00:00 2001 From: YunHorn Technology Date: Wed, 28 May 2025 19:28:30 +0800 Subject: [PATCH] wip good progress --- LoRaWAN/App/lora_app.c | 7 +- STM32CubeIDE/Release/WLE5CC_NODE_STS.bin | Bin 190592 -> 190464 bytes STM32CubeIDE/Release/WLE5CC_NODE_STS.elf | Bin 275836 -> 275848 bytes STS/Core/Inc/yunhorn_sts_sensors.h | 2 +- STS/Core/Src/yunhorn_sts_process.c | 36 ++++- STS/TOF/App/app_tof.c | 163 +++++++++++++++-------- rio_edge_mask_off_20250528.xlsx | Bin 0 -> 10145 bytes 7 files changed, 142 insertions(+), 66 deletions(-) create mode 100644 rio_edge_mask_off_20250528.xlsx diff --git a/LoRaWAN/App/lora_app.c b/LoRaWAN/App/lora_app.c index 83f4844..7314483 100644 --- a/LoRaWAN/App/lora_app.c +++ b/LoRaWAN/App/lora_app.c @@ -702,13 +702,13 @@ void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) // APP_LOG(TS_OFF, VLEVEL_M,"\r\n EXTI_CALLBACK, Door Open: sts status color =%d, lampbar_color=%d \r\n", sts_status_color, sts_lamp_bar_color); } - if (sts_hall1_read == prev_sts_hall1_read) return; + //if (sts_hall1_read == prev_sts_hall1_read) return; prev_sts_hall1_read = sts_hall1_read; //if (last_sts_hall1_read != sts_hall1_read) // to eliminate power drop issue of PCB with long REEDSWITCH CABLES { // 1) record event start/stop time - APP_LOG(TS_OFF, VLEVEL_M,"\r\n EXIT_CALLBACK, Door state =%d \r\n", sts_hall1_read); + //APP_LOG(TS_OFF, VLEVEL_M,"\r\n EXIT_CALLBACK, Door state =%d \r\n", sts_hall1_read); OnSensor1StateChanged(); // 2) change lamp bar color @@ -1563,7 +1563,8 @@ static void OnJoinRequest(LmHandlerJoinParams_t *joinParams) UTIL_TIMER_Start(&YunhornSTSHeartBeatTimer); - UTIL_TIMER_Start(&YunhornSTSSelfFunctionTestTimer); + // UTIL_TIMER_Start(&YunhornSTSSelfFunctionTestTimer); + // update 2025 05 28 ... not to start given sts mask bitmap has been stored and restored // UTIL_TIMER_Start(&TxTimer); // UTIL_TIMER_Start(&YunhornSTSWakeUpScanTimer); diff --git a/STM32CubeIDE/Release/WLE5CC_NODE_STS.bin b/STM32CubeIDE/Release/WLE5CC_NODE_STS.bin index 6697eeb7f425d03bb2bdd253ce69c9388506591c..66720f31c19bc958b0d0025f589d1c1b9b514d06 100644 GIT binary patch delta 14048 zcmb7rd3aRC()Z~z+sQ^|vOpFfvm_zOBoGKo0wR+T4oQX(HkC~wYz9#n7A4>^VaHu) zbbyGm3S2H4GR6?LfO@Zb)hiKD5D^q5V6Ji^%beN2Ur&P9_kF(ak1sqmRb9PzS5;S6 zA8J}6YEDO}IF9JoY)}ocpPS7I41P)P!1vPaNV__De&8U0^x}jlKs4Z9IUVR8e@S!r zV|j+Z@a~oUzhL{H4W<00Lf^m8tWqzehyI1fI$?i*ZLst&`G4jAzi4fPYLuy(-cORq zbUKM7lj+VU@k{>g+`unYlXz!X*l&dNbh^S-JWBW@XYeUTE zXMJPJBgtB7@3~;aPd?!gCzX12C5laC|Ccw&1hur&!+68IktJ%$=Vf$(w?Yc`6_6h2 zQR8>NPlewXJW5dkJc{O}1c&|Li_oj3C_iV^iCR$K__TUO-NUl7O)c@qg$A`$7}OqG zASpTFxZ1jPZjodu+FCj44^O|OO0_hCF4UWdfxfOU)x8qbAL29Onioh!NmA94n%>ke zBu8nbp%PR0$gs5Aa`$C<{cGHo3o@7c`K@p+q4;n0anb@h)|f-8sol7cq|kQbljJac z)RdC=ZZJb6My&zk4iaO@Pa}Ce^ygHOjHc$azO}{-Eoj04E)igRZ^4j;T#M!E&yKwq@>BUHAM|Y$xDEZrQ?5;&E z-8c?|R1zj#KwB>%pJ2{mhdbK^Egz+$d*#OF`4sjJVdH|9Ln^F& z82zZ1IXp)0NZpjF+$+E5-aubbCF(_u^p&g{{#*UQ7 zj5{s;jYJH?o*AKPb;UI%feQO7Zd*)Us74x1_h#fJ{oqCKGZmeJswnvKhH9e5p_ab( z(%Tv7WExG*G>};5(98`)_d)Y{OkGtXGzccebO9=QIjir`1;KuuDyfocn>jA>eNBU^ zOm#qOAT&-|D|e_XUx$rrUcH0}xeaUTlp?<`N{p4J&~kH%opCX~B5eb$GTr8e)9JC2 zE~vGV)b2J;`nwz}P4`BX#7axOQC6lrNtL`lR(i@CbbaCGB;Fk>J?1lD31X$SA$mBYau>gaEEPJvD#>%2kn9l4Z3Dw%WB4(N|aQ&UyvGMOM|Y--V{jH zN1^-)UM{u!J(isxN=%2zIWH0eQ}pGXX>G$x zb=gpMrAYS0N*G^mCV7ZX%I!tU>5AO6sKLiW+EGFb8mT{Z=BC9eyn3zkdmEi`~F9h;2G6CaS6X;jf%eu9wtc4GWb(%FCLS09%_AMuQv~Rx@ zQc1`5ixvLiP1CES+g|#3zy7AZ!7B??(mOB*S_@-eJ_@r^%vpqnaFK{SmhdV1Q9nbk z>t0jUcXL}5zO&!W9mo65ZLJbYif-5NTc?LfdY`&fSwf6q(knC~?_tv_uMREMcsadr zoT<9dpuu>zgtmgXRV6CvWBOv=6r!iCc|GFGkK)kFjg>AQhJmmWW0K7_GLt6u&qFJ)?<`4xtcdCTCg;z zF-ZSi_M>(U`suLAx z@j}2JUBcHLzizX{N}nC!jFHG-U40q2)|##5^ckHqIe=B`4*DeUC4dKz^du2J#VQeC z>~d+qwe|!jDFj+E)8 zfDJ{*w&RGdTxW#_g@&^>K+>bFy>0A-Wy5f9udt7otn~GP z2kfn~&_qloTiU3Z%V!=6lh%1jhS0(+;zqaO&prRxpJGiaxlqkPcDH+pc(|!MB#;gC zTR)eYguy-SPO>JHBv$Px%5OHHw$~jG?g@8tUGDK{(}%6*U981T8P$o^LDv8`Tjnr~V0lwmc~*6JlUj;aCRXdkpsSbLT)j#n3bXA$ ztpx3Drlt9@a7Z4`H~yr_gUkg~aiZ&Ae67xuHFe z&jtT!fTkgu%~Qlpl%cw`No`H8QkhjPu-mp6iKEjB;x+I4YnsBOMfB-{VX<3%J<#bv zxZygnd#H;;^vi;js2x7e7~81>wbWgZVt>)6WS)>QBE(ffCA5|pspc44;;C5bzoFNQ zfXJmpcn5e7AQ5yHAiqH=Mv0n`#s*xIeYs6pkW)p;@$31PfNSE>(D4Sv&^Ewt@oU?K zXibaS${AT79qKkJ<`~H(Exh%1D|5&4(dcNpe{f!Grf-Usd!30rj;cxQTAS`jfb={Y1kd397fHkbj2(^om{t?h4e||8cPCCwv(HtzIf3cUok5(i89LJrTm!rT`OIKk`ic`O2Xex~!JP1q z0i2LYcih*_-i}&K0v9(}Mp;G|mNWaNhZhs=?WYgA)H1VjEUiI0;0grUDZ$b~4@=)g zx+C8eO8<_FO-KGs&l||UhIB`MYbgE0pY<leeBbN z*CG8Ud_6&1z-{vNuyU!1RotdL+@vxf9O(h}`&A$TYxV`qFWLxnvnEz`!`8vnz^)b! zj|Vpfcc3_H99B9Gsfa+FwZr1tW2B>=j&p*SijFX)FpT1aD_D{85uEV+XinGw{3f#( z;IZ}G1p2c=E_6Z+E#QQcX9-sa{upeEwm~^cj{y|~I-HgmY2^vFx|WQb8^MuEarSBT zd6E%vn$PHanyI2>UsrdBt8lk03?1xuT4!O=%7X^60#3e4D)BsCo?$arcbJmLLV7;S zlUY62I=5_L6K_bg>5xkxg&pQ)zSmqmtL$QZtnGAboUOY}3bmIOoNhIU-%syov#00b zQFTx}gi%$MskTgt3S)k)6Fa>fS0j^}00#=i?2 zD&&f*WUeMgTIhS@x`Nwc$IbZ#5Je(K3q?z4hPU0r$}+2CtG5&-H21>%*nI8_4bEJx zkb(kd?$^S<%S=OsZ=iKxMN&0uY8@cyQ2#R4ymq>|)NBo}=B1#T%j(3@cd%!WJ=V4kA`ExqGkK(a5)d+2%LLT7)- zbOMbiv}XEbq0V-E9)_rC;i^dn4^iVz3r&LbbdXDnYER)_mQ%(E(h+Je9Af{M>}-w1 zM!H((R+G$wrz6w{&T^6~u&=eZ_)aS`Dy!EL;TrnO!)Vz-eFpR;fVP1%CRvk5t*`5_ z^Lyk(jG@e@hxbv1omm<%RVmF0=i{tY&erd2qVllZ7n@>Al}47k$^Dq9G!Q#1OiIvH zMe-uo%Timjb$2V;eXGX_R7j zF%oTr;XW4*{IZX=I0nZd^Eha6vapvX?sy-NsT7Uq+%F5b zdM;m-T;=rsaf>r@R3|E}3cXGW{OPtcx8~w9I%D|bhUEdWKVSS(R@Nw`B`{Wn2%9OT z*AX%@;tHsgUZXdM_cA;K`x(ZLy_Zpm z{QK#v&v528)G&ywh7LC;Ml)xfN$Bn*PX9XAjgu9j^*aTclv<2B$#;VB1S_39vb&l{ zPDFfY^~k}7kNxH~Nu$A@8&Lcyo%qpg{I};FPe$pd5d=0fetLXx?CX*Q?xC*vHVQ^mLl$t_iJX9 za3)22B)@a&*YzJxAbEn>)$&LMXZq;Y$NYuiE2k1kL&6K)2_%n~2yZd3khkk4$j5`$ z%ksn(%--lErJqahDrtCS%W$!SLCaA0sl?BSo zC_50FX*Pc&Vdqqm_jP?7=8~32UQ^PWTwhF0E_((}oj{u!jt+lgSWA;NCZb5;`J8(`sSTnXTIb^*3EOf5H8Z>(dg z%H`_BNmfMV(ETu<1-i|{NXB_;OfSnquH_F+>_N30o*QsIPs__35x;o(zx5SkVep@# zH_N*5XT4OguD2JW)!WdMHvxYKyn^(50H!;!Frozr2oLfkz?YbO2q7w)LF@|0jrF<6 z%P!1pDPoXIvZ7nqfzE{j0E|Dw%cHZ{AX^MAbVWRxRLy6duD{z^PJ`vrB}o-trM?Zz z@-37zfR69LDE4>;mp+;~YA)$Q>8P1$`934mpEKyBRxctJB?46VythZ0U?6&S{M*p{ zbedfLFj-2MmG{ai^l+)uJnQ8&kw|Xb(A2o%a29LlepY+B9wPmJt{+ewuJ^mF^vm*; z0hJ!LX$X8Wzk40L7pC44OhC~Q=00r4Xto0%1I}&O6*8l2sSVUHx*MUiV00SEpwmY8 zh|fe^pWkmP(Md^OLzw|e9dzxX8%Er`T-$mW*- zBeo^Ts4vjQrl3-?^O+*!9`S6Gr{|6_bJ7bdCz+L}5h4YZ4^Ly8T$x)uq^nszPj-%z zP14fwoX}Fi3Fb~bsS|@|4`r~-uuf)=|7M2r3MX__W@Qq`{g-Cx!ZDn%O`efEe2CWk zVP|J|z%z{fZ@E`NzYZQN|5s3i+Oq#oCM)m{6y8`ChkXpVE(CGWo9=fd1~}s@5Ds=y z7q~lk(E(ywbt`s#(A5)$@k(HwHF^CkV{JV<+1J3|UI|mO5x@j+Wv3n{yMwMLJx{c9 zslq;-XBLf8`Z@R%eR)iB>6YL_tqaTNj|#dT519XKX#W3dNGCFfUxxraq}Nl7SPf^I zX(Q#^|B?v2i4p4j4PW;-l7qW#w?}??aexeCU_j z6o$jCSVBulcDK_LvU{B#o^8K<=3S<`=5hhMJT@S(Adx3S%r*-9Ihj~>(qhD-a}00N zZ^xQq#K`8UW?_F!K8`UDjU1OjhR^}y%=U+%L`=B4KMOY(z=Vw1m+_$g4v&}# z8;kJl1n)KQ*k0xixmX`&9(MQPcQ>;8$2G<)Fmr#rP(zHWEB8{XYB=MIC0c_*Ium@M zQxOBQQB2ss7Gio+UIS52=)q=&%8#F~L12y*J|27y_i08Q4pQH^sRpgIFF32SzEhr2 zVnp~+C+(J}g;XWr>O+@}AF6xgT1m!9gk36U9BU1_PRXCpPsW#bogxoJ`GoyCX_TDT zS^ir;&6;q(`Lg%PUzipQ$E9H5!LC@-`3Fs-qS`BY&J-h)lpk@z#hKkLL02TD6LONr z$`PG|;N-5xg#DTlt<)Y=mvuEH(Tfud7Ujlz^7;CP$!!3;-!`9{pM(y0@4@4DYNcU*PBM6Awi07{Neu?y z&Hr#Kmo@D6l=nDe8k7WOL@5W)S$ufUlGU<$I}0T!aI$BKNhNHyL0=-e;S4h+yJCzO zYtu@-1NXH;31(padSc?6b}iJF&Rn9UZ%<5~$O61t$>W3QgleC|nb_DGn(wPWLg3id z{x$@ZS@^pH|8Z@^1xP5Ba*`Fj9%El_O2@f41@>-7zVVJV%dCN-nkea0xLc z&7M5_t=X4mE3Ivy5gnsO-n=R$RqQucsVK`E<5$3fbJ8>Z+(Y4^HD{d`dIPO$oKT-8a(W3X zd>imS=AKN@)dn|<7)XQ#8Kwi z4%pgk=7sYX9$476kTa?19*D^{IWBiA9Ad?a%koPbxnAAi&Z=5C2Xhn@n81&oy!8nf z7CU6Zjp^v2<05Hi%jm#Ok_^&HUwJHjern;;FUw;#0(JuGab`^%B(@J{e)K&YXqA+_}%kJ!}~skpECir7u$%!iw&6jey!kr#2Y`EI4k zU32>bYGw7w+WMIz@CAj!^2Zf>O@%}vSIOH?BJ=94gqV=a{&=SdFZAq8WHmOz!LO}{lhlth&I#p_fm&&X$I|=F z7Oc$%F8#p6>}c(9p)y(K1dq`BHnd@~b<*e#eXx4Cw0KGJr{}DdifHm9gX|?%GC(Vt zJo=n(S}ZuXYwLHl35swdTg;31hH7Ke@Cb^H8VnEt=|#2mT0 zaT}TQOJX50VxCnix!idukr0X|amKzFyjJ?ntzlO7)u3xm;Bun;e%&dtUhLRkWlI){ zu-(1rrvG^)%dW*fYVpki8D!}b(H<8O-p+@IwUe-OEvj0Qck&uSW}&6-jpH?eSsqC6 zJ%{-hNb)m~;->&iN||I|128v!HF&Q8HUV%p2xkGz@};dHLLD@1KGISHXFw2VO(=w; zm1^9~&*rjxr@7Q_rQK~zr8au$;c23MoLev6Zk>R-EV#w$CwDic&O$ophHH39s2V3d zU&Ez}ofRMOav4ioipws`+76z{hU zkM8>YW?A!RD*9rNve>Fg-FdTaI=MvPkl%B}i=D?RZofC{>()1hzFTzryLfACDQ6sv zXh(8&_;g;+^ihWnPRiF>wVgJ83NU949^pA@DSz$p+dux076 zW$*tFTedo6%U&$MEaz_g-!`lX_12ZHE32)KnBHVZ0$O$Fy_vDoBdTJmIuuzat_Yd> z6b$a|V8CrCZ)<1fnsOpz8(S(vrdA$0BDMBb&6xWbVo<#k%TjnQv3& zk-pA5+wHtelBE{XpPl_z>$evDe4aDT3$q@5`HH^Y3^0rZyarj{YqN0zxUL~OZ%xnOw0s$jKO1%s}! z@L~!uL^klJscx3ZJ|uLHjFx5x^ZpX=$U=Xlf3!3?Xvw}5iVT>nEV>XajYY_?Bf1bR zS%X}vIb=#Zq6@4>VNl3smb4>&5G@r1m95Uo39|MA5g8@xnjXy#>rf=R2jpqLzv;<3VnUP0^)szpQA?IN{VSq* z@*<5|J)TrLD_8g6qsMtwqN%F3YKo@qoCmk`m)9=kqrFtUt|tl7v~?}fZ{X`6R^X!M z7ZiAvs@6M6A7|70G(vXL%g?8fjn3fnOI73>y7bk|s8azhd0)}pGs-J&*HP!eSC1=5 z4V_1SBeUtGO*zq{eQMEMRXev(j_F=YiL!5Wb7o zDLCp0>F+$cxew2G#~HFUiSOce3bo&me7DOWvvw4cM)78mx&^BU6G2R^xP$)M>UPD* zHOYL&?-vyMKX96yy~GRsf8d3m7t^lWe&WwwqMmK(@Fxv#ts(c(y>E@+lY{j4x1Q>8 zIiL~0kvHXT(OBB|)X1)H10N;p%y%v*ugI7g>0 zFT8v$GH3K@-drKo4Ns~vN;Qj;rstvUF?7|=!i+wUzM$*4kIPsIUWT7b4$ruI;Q`b) z`YoWpx=;bSyPy7NX96GXr|Mm6^FD`!9Id*jNW>ie;aio=n_U-lSMo4!jUr-r-gMb@ z#K)GA?frqGi`a&G+Po_>dK>C}D+_%uDA@A8L0!8HQENhN)rL5Bnzq{%^+bp>Da3h{ zKCn9npGBAzqrZcMG{pKiO;6ZH59}t*TX%bDTc^xa@k3D)wcP zr)kc8*M;e z=b@%EeAs|vobW8*dHV9P5oD9|%&{B=@l$d#k8e3f2cCS69HLL38b)uQTuVkfpFVYo zbe|?yw6d>&1%7MgHFWSKUHPw->P^tM zmwuq(pU)!SITw7Mqa1PID^A!0X!^gvxBvd1{N}%uVRi1o+s+@qn#Yra&hoDvgqK#* zYiH(%J^uwK2qW6R~HuaY89zF<{|;IAIGQ^EXbY05kx80WAKV6Q%(^0ep6o z6Mh4J0C=H<@_-gVk9JO2_3Qs19KFdoSG6e=2U6k~snc3ztVm%A}dL6X@jH5RE!QUoI&(UBPn{_j6Dei%n~>cDZ# zNhjmNS6}9ZSpbyyFrAbU!&D?j0VV(ve8C|1t9sDZEnyamD{N4xup=jfTqfNeQJJJQ zyrU{FtiJ3BWRmaV*(hdB#Un0iuNgr&*2>hz-?H%J78)VrPe=Z&#;|O%OR0`T`imbL z>vPHdisWJV+$%%;-Sxc3fZw&A-(A&ih4h{Och`i*i2iVp(_cdI#jA+05r7YPt?>H@ zK{S!q^U`rVQn7El-(A(%WguCulya$T*%%Y)l+M!U$RKFo|SKO#Fkm z>|hR$1D+pFg#E)C|1FZOYIT2nJG1_3%o@l12gwrhMdQ^6$y`F(8_Opm zAjPZvjf*CeQG^_JG*2P%WUS-d6a*HoI>=Nql5B94P9>Ab?~Ywl$r^INk@+xbApdN< z{4m+Tlgo~U(^2EDW8HM}BS~nSTS*oW^%D3nzs+>~FoP^YiLo=$*pkL)XW~21_+Fuh z9`?3zQV9#+y=+PRjAqDvA+uK z^lv;@g^MgHcHEdtdXW-`?lF=VUxE&`4T@1$=WZUk>oN9rk}$HwG3haqf)dLfBjbU- ze2h#1%A7~u1G+Ge50+Jq7S@vJWoGk?vf`eZTg%)|DwXVaL13! ziP<47C(6dir^zFV#(B??hj``Sw0^T3pVW}w9BnJe#@^#*&s;En&fG^smG9S2s9H38 zan*vyXX#7kK3X+24IMm@tsk{uX$R?8x{~BN-dl;+O#L(5GiiCV^p4C`#H4%%B^#}) zNR`6z{#r67-jB!gAYdf>WPrW7L3z~c64#N&#C80wiCzDi|1adR{I6Fv8n5u-3j6m^ z1iT4xqaU(Py8&9!LHE52TG>JOQ((DO9dw=+w7P@t-vhL!gC39tIt+B-m@(rAfer^< zTvR%(7<2^a^5Nqqj0GJTqOBty0UgD0W@K1%=ONLBWfYDN(b0?^JwCS@d@bn7BgR$S zT0QMul2j~mHJ4%U=Ig$t)DoKRks6>ZgemT7H zji31+2>HVCC zBjBs^9QCbyS@)K2@R=E48=(C{$7l|n$3xk-oZ#58h$J|2uk%XdrSI^c&j5*l5db!5 U_BY@nC!`_0=Lg4w*ZHjf1G%&s;Q#;t delta 13952 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 P{1r&k3w7VO3mN|diHxPo diff --git a/STM32CubeIDE/Release/WLE5CC_NODE_STS.elf b/STM32CubeIDE/Release/WLE5CC_NODE_STS.elf index 9a87f14120cebe2927ba87e52a5fd10b2b279728..f50763f9414347624f18ef8ee8f68af77137744f 100644 GIT binary patch delta 54648 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 delta 54455 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 + fhmos_bg.maskoff[j] = sts_mask_bitmap[j/8]>>(7-j%8)&0x01; + } + APP_LOG(TS_OFF, VLEVEL_M, "\r\n Prev Stored mask bitmap ----------\r\n"); + for (uint8_t j=0; j<64; j++) + { + if (j%8==0) APP_LOG(TS_OFF, VLEVEL_M, "\r\n"); + APP_LOG(TS_OFF, VLEVEL_M, "%2d ", fhmos_bg.maskoff[j]); + } +#endif sts_cfg_nvm.reserve02 =(uint8_t)nvm_store_value[NVM_RESERVE02]; sts_cfg_nvm.reserve03 =(uint8_t)nvm_store_value[NVM_RESERVE03]; sts_cfg_nvm.sensor_install_height_in_10cm =(uint8_t)nvm_store_value[NVM_SENSOR_INSTALL_HEIGHT]; @@ -1970,6 +1996,7 @@ void STS_FHMOS_sensor_config_init(void) //sts_high_threshold = sts_cfg_nvm.sensor_install_height_in_10cm*100; //sts_low_threshold = sts_high_threshold - 1400; //APP_LOG(TS_OFF, VLEVEL_M, "\r\n FHMOS cfg high= %4d low= %4d \r\n", sts_high_threshold, sts_low_threshold); + sts_maskoff_update(); } void STS_FHMOS_sensor_config_update() @@ -1988,6 +2015,7 @@ void STS_FHMOS_sensor_config_update() sts_low_threshold = sts_high_threshold - 1400; APP_LOG(TS_OFF, VLEVEL_M, "\r\n FHMOS cfg high= %4d low= %4d \r\n", sts_high_threshold, sts_low_threshold); + sts_maskoff_update(); } void STS_FHMOS_sensor_upload_map(uint8_t map_index) @@ -2572,8 +2600,8 @@ void YunhornSTSDurationCheckTimer(void) // upload state confirm message if (sts_fhmos_bitmap_pending == FHMOS_BITMAP_BLANK) { - APP_LOG(TS_OFF, VLEVEL_M, "\r\nGenerate Fall Gesture Map, bitmap stateu=%d \r\n", sts_fhmos_bitmap_pending); - UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_LoRaSendOnTxTimerOrButtonEvent), CFG_SEQ_Prio_0); + APP_LOG(TS_OFF, VLEVEL_M, "\r\nGenerate Fall Gesture Map, bitmap state=%d \r\n", sts_fhmos_bitmap_pending); + // UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_LoRaSendOnTxTimerOrButtonEvent), CFG_SEQ_Prio_0); //APP_LOG(TS_OFF, VLEVEL_M, "\r\nGenerate Fall Gesture Map\r\n"); sts_generate_fall_gesture_map(); diff --git a/STS/TOF/App/app_tof.c b/STS/TOF/App/app_tof.c index 75b25d3..89577d5 100644 --- a/STS/TOF/App/app_tof.c +++ b/STS/TOF/App/app_tof.c @@ -59,11 +59,13 @@ static int to_confirm = 0; static uint32_t STS_Get_Center_Range_Distance(RANGING_SENSOR_Result_t *Result); uint16_t bg_distance[64]={0}; uint8_t idx[64]={0}; -uint8_t IDX_LEN=10; +uint8_t IDX_LEN=20; #if defined(NARROW_CUBICLE) -//static uint8_t rio_edge[36]={0, 1, 2, 3, 4, 5, 6, 7, 8,15,16,23,24,31,32,39,40,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63}; #define RIO_EDGE_SIZE 34 +//static uint8_t rio_edge[RIO_EDGE_SIZE]={0, 1, 2, 3, 4, 5, 6, 7, 8,15,16,23,24,31,32,39,40,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63}; + +// 2025 05 27 static uint8_t rio_edge[RIO_EDGE_SIZE]={0, 1, 2, 3, 4, 5, 6, 7, //first line 8,14,15, 16,22,23, @@ -73,6 +75,16 @@ static uint8_t rio_edge[RIO_EDGE_SIZE]={0, 1, 2, 3, 4, 5, 6, 7, //first line 48,54,55, 56,57,58,59,60,61,62,63}; // last line +/* 2025 05 28 +static uint8_t rio_edge[RIO_EDGE_SIZE]={0, 1, 2, 3, 4, 5, 6, 7, //first line + 8,15, + 16,23, + 24,31, + 32,39, + 40,47, + 48,49,50,51,52,53,54,55, + 56,57,58,59,60,61,62,63}; // last line +*/ #endif //uint8_t rio_edge[34]={0,1,2,3,4,5,6,7,8,15,16,23,24,31,32,39,40,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63}; /* Private typedef -----------------------------------------------------------*/ @@ -225,7 +237,7 @@ void STS_LMZ_Ambient_Height_Scan_Process(void) sts_high_threshold = sts_sensor_install_height; sts_low_threshold = sts_sensor_install_height-1400; - //APP_LOG(TS_OFF, VLEVEL_M, "\r\nReconfig ----> Threshold High=%d mm, Low=%d mm \r\n", sts_high_threshold, sts_low_threshold); + APP_LOG(TS_OFF, VLEVEL_M, "\r\nReconfig ----> Threshold High=%d mm, Low=%d mm \r\n", sts_high_threshold, sts_low_threshold); STS_TOF_L8_Reconfig(); #if 1 @@ -254,14 +266,14 @@ void STS_LMZ_Ambient_Height_Scan_Process(void) //} else { for (i = 0; i < 64; i++) { - if (i % 8 ==0) { - APP_LOG(TS_OFF, VLEVEL_M, "\r\n[cm] "); - } + //if (i % 8 ==0) { + // APP_LOG(TS_OFF, VLEVEL_H, "\r\n"); + //} //if ((Result.ZoneResult[i].NumberOfTargets > 0)) //{ bg_distance[i] += (uint16_t) Result.ZoneResult[i].Distance[0]; idx[i] ++; - APP_LOG(TS_OFF, VLEVEL_M, "|%3d ", Result.ZoneResult[i].Distance[0]/10); + // APP_LOG(TS_OFF, VLEVEL_H, " %3d ", Result.ZoneResult[i].Distance[0]/10); //} //else APP_LOG(TS_OFF, VLEVEL_H, "|%3d ", 0); @@ -269,15 +281,16 @@ void STS_LMZ_Ambient_Height_Scan_Process(void) //} } - HAL_Delay(10); + //HAL_Delay(1); } + // status = VL53L8A1_RANGING_SENSOR_Stop(VL53L8A1_DEV_CENTER); APP_LOG(TS_OFF, VLEVEL_M, "\r\n\n\n=========Average Distance=========\r\n\n"); for (i=0; i< 64; i++) { - if (i%8==0) APP_LOG(TS_OFF, VLEVEL_M, "\r\n%2d| ",i ); + // if (i%8==0) APP_LOG(TS_OFF, VLEVEL_M, "\r\n%2d| ",i ); bg_distance[i] /= idx[i]; - APP_LOG(TS_OFF, VLEVEL_M, "|%3d ", bg_distance[i]/10); + //APP_LOG(TS_OFF, VLEVEL_M, "|%3d ", bg_distance[i]/10); } //STS_TOF_L8_Process(); @@ -287,7 +300,7 @@ void STS_LMZ_Ambient_Height_Scan_Process(void) for (uint8_t i = 0; i < 64; i++) { /* Print distance and status */ - if (i%8==0) APP_LOG(TS_OFF, VLEVEL_L, "\r\n[cm]|"); + if (i%8==0) APP_LOG(TS_OFF, VLEVEL_M, "\r\n |"); // if ((Result.ZoneResult[i].NumberOfTargets > 0)) if (1) { @@ -295,23 +308,29 @@ void STS_LMZ_Ambient_Height_Scan_Process(void) range_distance = (uint16_t)bg_distance[i]; // mm if (sts_sensor_install_height > range_distance) { - fhmos_bg.h2cm[i] = (sts_sensor_install_height - range_distance)/10; + //fhmos_bg.h2cm[i] = (sts_sensor_install_height - range_distance)/10; + fhmos_bg.h2cm[(7-i%8)*8+i/8] = (sts_sensor_install_height - range_distance)/10; } else { - fhmos_bg.h2cm[i] = 0; + //fhmos_bg.h2cm[i] = 0; + fhmos_bg.h2cm[(7-i%8)*8+i/8] = 0; } //fhmos_bg.h2cm[i] = (uint16_t)(0, (sts_sensor_install_height/10 - range_distance)); // in cm - APP_LOG(TS_OFF, VLEVEL_L, "|%3d ", (uint16_t)fhmos_bg.h2cm[i]); + APP_LOG(TS_OFF, VLEVEL_M, "|%3d ", (uint16_t)fhmos_bg.h2cm[i]); if ((uint16_t)fhmos_bg.h2cm[i] < (uint16_t)(fhmos_cfg.th_gesture_mask_off_height_cm)) { - fhmos_bg.maskoff[(7-i%8)*8+i/8] = 0; // update 2025 05 27 + // fhmos_bg.maskoff[(7-i%8)*8+i/8] = 0; // update 2025 05 27 + fhmos_bg.maskoff[i] = 0; + //fhmos_bg.maskoff[(7-i%8)*8+i/8] = 0; // update 2025 05 27 } else { - fhmos_bg.maskoff[(7-i%8)*8+i/8] = 1; + // fhmos_bg.maskoff[(7-i%8)*8+i/8] = 1; + fhmos_bg.maskoff[i] = 1; + //fhmos_bg.maskoff[(7-i%8)*8+i/8] = 1; // update 2025 05 27 } //sts_mask_bitmap[(uint8_t)(i/8)] |= (fhmos_bg.maskoff[i])<<(7-i%8); @@ -322,50 +341,63 @@ void STS_LMZ_Ambient_Height_Scan_Process(void) } else { fhmos_bg.h2cm[i] = 0; - APP_LOG(TS_OFF, VLEVEL_L, "|%3d ", fhmos_bg.h2cm[i]); + APP_LOG(TS_OFF, VLEVEL_M, "|%3d ", fhmos_bg.h2cm[i]); } } - APP_LOG(TS_OFF, VLEVEL_L, "\r\n Thresholds: Headlevel=%4d cm, Gesture Mask off=%d cm, Min body height=%d cm\r\n", + APP_LOG(TS_OFF, VLEVEL_M, "\r\n Thresholds: Headlevel=%4d cm, Gesture Mask off=%d cm, Min body height=%d cm\r\n", (uint8_t)fhmos_cfg.th_head_level_height_cm, (uint8_t)fhmos_cfg.th_gesture_mask_off_height_cm, (uint8_t)(fhmos_cfg.th_fall_body_min_height_cm)); +#if 0 + APP_LOG(TS_OFF, VLEVEL_M, "\r\n\n ------- Mask off matrix before remove edge \r\n"); - APP_LOG(TS_OFF, VLEVEL_L, "\r\n\n ------- Mask off matrix before remove edge \r\n"); - - for (i=0; i<64; i++) + for (i=0; i < 64; i++) { sts_mask_bitmap[(uint8_t)(i/8)] |= (fhmos_bg.maskoff[i])<<(7-i%8); // 2025-JAN-03 update - if (i%8==0) APP_LOG(TS_OFF, VLEVEL_L, " |\r\n"); - APP_LOG(TS_OFF, VLEVEL_L, " %d ", (uint8_t)fhmos_bg.maskoff[i]); - } + if (i%8==0) + { + APP_LOG(TS_OFF, VLEVEL_M, " |\r\n"); + } -#if defined(NARROW_CUBICLE) - for (i=0; i 0) && (fhmos_gesture.maskoff[i]==0)) + if (fhmos_bg.maskoff[((7-i%8)*8+i/8)]==0) { // range_distance = (uint32_t)Result.ZoneResult[i].Distance[0]; range_distance = (uint32_t)bg_distance[i]; @@ -425,11 +456,25 @@ void sts_generate_fall_gesture_map(void) sts_fall_head_position = range_distance; // simply find out the head level head_xy = i; // head x, y coordination in 8x8 matrix } - fhmos_gesture.h2cm[i] = (uint8_t)abs(sts_sensor_install_height - range_distance)/20; + + fhmos_gesture.h2cm[i] = (uint8_t)abs(sts_sensor_install_height - range_distance)/10; + //APP_LOG(TS_OFF, VLEVEL_M, "\r\nGesture h_2cm:%4d maskoff height_cm: %4d \r\n", fhmos_gesture.h2cm[i], fhmos_cfg.th_gesture_mask_off_height_cm); + if (fhmos_gesture.h2cm[i] > fhmos_cfg.th_gesture_mask_off_height_cm) + { + fhmos_gesture.maskoff[i] = 1; + if (fhmos_gesture.h2cm[i] >= fhmos_gesture.head_level) + { + fhmos_gesture.head_level = fhmos_gesture.h2cm[i]; + fhmos_gesture.head_xy = i; + } + + } else { + fhmos_gesture.maskoff[i] = 0; + } //fhmos_gesture.maskoff[i] = ((2*fhmos_gesture.h2cm[i])< fhmos_cfg.th_gesture_mask_off_height_cm)? 0:1; - fhmos_gesture.maskoff[i] = (fhmos_gesture.h2cm[i]==0)? 0:1; - //fhmos_gesture_bitmap[(uint8_t)(i/8)] |= (fhmos_gesture.maskoff[i])<<(7 - i%8); // 2025-JAN-03 UPDATE - fhmos_gesture_bitmap[(uint8_t)((7-i/8)*8+i%8)] |= (fhmos_gesture.maskoff[i])<<(i%8); // 2025-05-27 UPDATE + //fhmos_gesture.maskoff[i] = (fhmos_gesture.h2cm[i]==0)? 0:1; + fhmos_gesture_bitmap[(uint8_t)(i/8)] |= (fhmos_gesture.maskoff[i])<<(7 - i%8); // 2025-JAN-03 UPDATE + //fhmos_gesture_bitmap[(uint8_t)((7-i/8)*8+i%8)] |= (fhmos_gesture.maskoff[i])<<(i%8); // 2025-05-27 UPDATE // debug // if (i%8==0) printf("\r\n"); // printf("|%4ld %4d ", range_distance, fhmos_gesture.h2cm[i]); @@ -437,24 +482,24 @@ void sts_generate_fall_gesture_map(void) //else { //fhmos_gesture.h2cm[i] = 0; //} - if (i%8==0) APP_LOG(TS_OFF, VLEVEL_L, "\r\n"); - APP_LOG(TS_OFF, VLEVEL_L, "|%4d ", fhmos_gesture.h2cm[i]); + if (i%8==0) APP_LOG(TS_OFF, VLEVEL_M, "\r\n"); + APP_LOG(TS_OFF, VLEVEL_M, "|%4d :%2d", fhmos_gesture.h2cm[i], fhmos_gesture.maskoff[i]); } - +#if 0 for (i = 0; i < 64; i++) { if (i%8==0) APP_LOG(TS_OFF, VLEVEL_L, "\r\n"); APP_LOG(TS_OFF, VLEVEL_M, "|%d ", fhmos_gesture.maskoff[i]); } - +#endif for (i=0; i<8; i++) - APP_LOG(TS_OFF, VLEVEL_L, "%02x ",fhmos_gesture_bitmap[i]); + APP_LOG(TS_OFF, VLEVEL_M, "%02x ",fhmos_gesture_bitmap[i]); - APP_LOG(TS_OFF, VLEVEL_L, "\r\n"); + APP_LOG(TS_OFF, VLEVEL_M, "\r\n"); for (i = 0; i < 32; i++) { - if (i%4 == 0) APP_LOG(TS_OFF, VLEVEL_L, "\r\n"); + if (i%4 == 0) APP_LOG(TS_OFF, VLEVEL_M, "\r\n"); //h4 = MIN(fhmos_gesture.h2cm[2*i+0],sts_gesture_mask_cap_height_2cm)/8; //l4 = MIN(fhmos_gesture.h2cm[2*i+1],sts_gesture_mask_cap_height_2cm)/8; h4 = 0xff&(fhmos_gesture.h2cm[2*i+0]); @@ -744,18 +789,20 @@ static void print_result(RANGING_SENSOR_Result_t *Result) //* //APP_LOG(TS_OFF, VLEVEL_M, "\r\n Eliminate edge \r\n"); //uint8_t rio_edge[36]={0,1,2,3,4,5,6,7,8,15,16,23,24,31,32,39,40,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63}; + /* #if defined(NARROW_CUBICLE) for (i=0; iZoneResult[i].Distance[0], Result->ZoneResult[i].NumberOfTargets, fhmos_bg.maskoff[i]); - if (0 == fhmos_bg.maskoff[i]) // only within the non-mask-off blocks + //if (i%8==0) APP_LOG(TS_OFF, VLEVEL_M, "\r\n"); + //APP_LOG(TS_OFF, VLEVEL_M, "| %4d_%2d %2d", Result->ZoneResult[i].Distance[0], Result->ZoneResult[i].NumberOfTargets, fhmos_bg.maskoff[(7-i%8)*8+i/8]); + //if (0 == fhmos_bg.maskoff[i]) // only within the non-mask-off blocks + if (0 == fhmos_bg.maskoff[(7-i%8)*8+i/8]) { // Result.ZoneResult[i].NumberOfTargets > 0) if ((Result->ZoneResult[i].Distance[0] < head_distance_from_ceiling_mm) && (Result->ZoneResult[i].NumberOfTargets > 0)) @@ -765,9 +812,9 @@ static void print_result(RANGING_SENSOR_Result_t *Result) } //head_distance_from_ceiling = MIN(4000,head_distance_from_ceiling); - APP_LOG(TS_OFF, VLEVEL_M, "\r\n Head Distance from ceiling= %4d mm \r\n", head_distance_from_ceiling_mm); + //APP_LOG(TS_OFF, VLEVEL_M, "\r\n Head Distance from ceiling= %4d mm \r\n", head_distance_from_ceiling_mm); - //head_height_level_from_floor_mm = MIN(1400, abs(sts_sensor_install_height - head_distance_from_ceiling_mm)); + head_height_level_from_floor_mm = MIN(1400, abs(sts_sensor_install_height - head_distance_from_ceiling_mm)); APP_LOG(TS_OFF, VLEVEL_M, "\r\n Updown distance=%d cm, Floor Up head =%d cm\r\n", head_distance_from_ceiling_mm/10, head_height_level_from_floor_mm/10); @@ -777,8 +824,8 @@ static void print_result(RANGING_SENSOR_Result_t *Result) && ((head_height_level_from_floor_mm) <= (10*fhmos_cfg.th_head_level_height_cm)) && (head_height_level_from_floor_mm >= (10*fhmos_cfg.th_fall_body_min_height_cm ))) { - to_confirm ++; - if (to_confirm >=3 ) + //to_confirm ++; + if (to_confirm++ >= 3 ) { sts_head_level_low = 1; // to_confirm = 0; diff --git a/rio_edge_mask_off_20250528.xlsx b/rio_edge_mask_off_20250528.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..ffd8d4ebb235af7707ec170ad39e106db1358477 GIT binary patch literal 10145 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 F{{xHg=IH