From 4a01508b41766afb33c654fa4159a7581009e00d Mon Sep 17 00:00:00 2001 From: YunHorn Technology Date: Tue, 15 Apr 2025 16:48:52 +0800 Subject: [PATCH] wip with reboot process adjusted --- Core/Src/main.c | 2 +- LoRaWAN/App/lora_app.c | 55 +++++++++++++++++++---- STM32CubeIDE/Release/WLE5CC_NODE_STS.bin | Bin 188612 -> 188660 bytes STM32CubeIDE/Release/WLE5CC_NODE_STS.elf | Bin 275140 -> 275204 bytes STS/Core/Inc/yunhorn_sts_sensors.h | 3 ++ STS/Core/Src/yunhorn_sts_process.c | 2 +- STS/TOF/App/app_tof.c | 41 ++++++++++++----- 7 files changed, 81 insertions(+), 22 deletions(-) diff --git a/Core/Src/main.c b/Core/Src/main.c index 4c9a40e..11d5a42 100644 --- a/Core/Src/main.c +++ b/Core/Src/main.c @@ -124,7 +124,7 @@ int main(void) } /* USER CODE BEGIN 2 */ - + STS_Sensor_Init(); /* USER CODE END 2 */ /* Infinite loop */ diff --git a/LoRaWAN/App/lora_app.c b/LoRaWAN/App/lora_app.c index fc1ad51..4171457 100644 --- a/LoRaWAN/App/lora_app.c +++ b/LoRaWAN/App/lora_app.c @@ -559,22 +559,16 @@ void LoRaWAN_Init(void) } /* USER CODE BEGIN LoRaWAN_Init_Last */ - +#if 0 STS_REBOOT_CONFIG_Init(); UTIL_SEQ_RegTask((1 << CFG_SEQ_Task_YunhornSTSEventRFAC), UTIL_SEQ_RFU, STS_YunhornSTSEventRFAC_Process); - #ifdef STS_M1 - UTIL_SEQ_RegTask((1 << CFG_SEQ_Task_YunhornSTSEventP1), UTIL_SEQ_RFU, STS_YunhornSTSEventP1_Process); - #endif - #if defined(STS_P2)||defined(STS_T6)||defined(L8) - UTIL_SEQ_RegTask((1 << CFG_SEQ_Task_YunhornSTSEventP5), UTIL_SEQ_RFU, STS_YunhornSTSEventP5_Process); - #endif #ifdef STS_R4 @@ -599,10 +593,55 @@ void LoRaWAN_Init(void) //UTIL_TIMER_Create(&YunhornSTSHeartBeatTimer, 1000*STS_HeartBeatTimerPeriod_sec, UTIL_TIMER_PERIODIC, OnYunhornSTSHeartBeatTimerEvent, NULL); // UTIL_TIMER_Create(&YunhornSTSHeartBeatTimer, 1000*STS_HeartBeatTimerPeriod_sec, UTIL_TIMER_ONESHOT, OnYunhornSTSHeartBeatTimerEvent, NULL); // UTIL_TIMER_Start(&YunhornSTSHeartBeatTimer); - +#endif /* USER CODE END LoRaWAN_Init_Last */ } + +void STS_Sensor_Init(void) +{ + + /* VVVVVV migrated to yunhorn_sts_process.c */ + // #if 0 + /// **************************************************************************** TO-DO LIST + STS_REBOOT_CONFIG_Init(); + + UTIL_SEQ_RegTask((1 << CFG_SEQ_Task_YunhornSTSEventRFAC), UTIL_SEQ_RFU, STS_YunhornSTSEventRFAC_Process); + #ifdef STS_M1 + UTIL_SEQ_RegTask((1 << CFG_SEQ_Task_YunhornSTSEventP1), UTIL_SEQ_RFU, STS_YunhornSTSEventP1_Process); + #endif + + #if defined(STS_P2)||defined(STS_T6)||defined(L8) + UTIL_SEQ_RegTask((1 << CFG_SEQ_Task_YunhornSTSEventP5), UTIL_SEQ_RFU, STS_YunhornSTSEventP5_Process); + #endif + + #ifdef STS_R4 + UTIL_SEQ_RegTask((1 << CFG_SEQ_Task_YunhornSTSEventP6), UTIL_SEQ_RFU, STS_YunhornSTSEventP6_Process); + #endif + + #ifdef VL53L0 + UTIL_SEQ_RegTask((1 << CFG_SEQ_Task_YunhornSTSEventP4), UTIL_SEQ_RFU, STS_YunhornSTSEventP4_Process); + #endif + + #if defined(STS_T6)||defined(STS_O6)||defined(O1L) + UTIL_SEQ_RegTask((1 << CFG_SEQ_Task_YunhornSTSEventP3), UTIL_SEQ_RFU, STS_YunhornSTSEventP3_Process); + #endif + + #if defined(STS_P2)||defined(STS_T6)||defined(L8) + UTIL_TIMER_Create(&YunhornSTSWakeUpScanTimer, STS_TOFScanPeriod_msec, UTIL_TIMER_PERIODIC, (void*)STS_YunhornSTSEventP5_Process, NULL); + UTIL_TIMER_Start(&YunhornSTSWakeUpScanTimer); + #endif + + UTIL_TIMER_Start(&STSLampBarColorTimer); + UTIL_TIMER_Start(&STSDurationCheckTimer); + //UTIL_TIMER_Create(&YunhornSTSHeartBeatTimer, 1000*STS_HeartBeatTimerPeriod_sec, UTIL_TIMER_PERIODIC, OnYunhornSTSHeartBeatTimerEvent, NULL); + // UTIL_TIMER_Create(&YunhornSTSHeartBeatTimer, 1000*STS_HeartBeatTimerPeriod_sec, UTIL_TIMER_ONESHOT, OnYunhornSTSHeartBeatTimerEvent, NULL); + // UTIL_TIMER_Start(&YunhornSTSHeartBeatTimer); + /* VVVVVV migrated to yunhorn_sts_process.c */ + +} + + /* USER CODE BEGIN PB_Callbacks */ void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) diff --git a/STM32CubeIDE/Release/WLE5CC_NODE_STS.bin b/STM32CubeIDE/Release/WLE5CC_NODE_STS.bin index 55a96a06d3265a796f92b1bf31d633d2f3e2ec38..a6eefa9d31057932e645d1616e69fde4e27af933 100644 GIT binary patch delta 11282 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 delta 11417 zcma)i3tW^{`u{oa%rNh8ab~y(2*g}OLA-#7;4KD_7jQ&WH18`!7G|!HnYz^inPt1V zrAK#6DmAl2*A<*)36;pzw#>C;O^Y>Cw^cOPe7(*LbNhYIfNj71{6D|XA3oprJm>bD z=bZCA&w1YS&fOy+$Bu;55<(5PDv3BVnTWH1Ilw$%0YLuiZz0Mm`pPSjE&_5N>&4=q z(Y$O0^3U~^)gxU4tOYgz4A>0pNG7%7J`iod14evIPPhN8>_OfCl^*(8`;$MTd7q=m zcm1sF!Mt)G%lgm2mw(pa{~9Pz$1KrIkID!OqFzCkUW%WjWzTVt2b8A zzp(F(E2HQ4TyU;?gS^@0Bxxt^1e2JFdk#d%(^!pZ7=4FrGu2Sa^yU?GBYVZ182gnk zS)wMLF-ZQ>M@^-7>ncj+H!MN&XRO1V5XHQucPB>EMqY;Xc}4O2Ao*2x%N&tfiyD$w zdRH0oQ>~fTF8Aupv@uyi>(M8#DJBNVPqGmMqbe49Ef31G6q|zNSzeQ*HTK6^_+0!s ztcT}=K;3uoXHp=q2KA$hKNA9Z-ttPIeH8LWDFylOT>Kfvb`4A&{F= zIk1-zE>$3R%JpFPgPCJsV#w$IY!fkxyCdXJm@z3@tqSzL!g7)_>8ET(Qil3^p#LA) z{-nX`uL87T2 z+IT=C_xKHxuKg_?F_4yqrlP))js6%=0%VBytK~Gda!?_CiFFK$%h!3u=BNMc>yG1E z;uc#}&>p{|#qW3I`uvV_K)r{^NnRpf_7nNveor@VOJVRi@Zlue#Of8>a&4bfxA9e~@)um2i z8e-5(LGozl5abs*bxnc!B@;_^At79@LvE#&8jd>G5pG**x%ETLUrA=G z*yZ&*av<|%cdz|vI(W@HfgCjwgIb>aVRd13p|88|zqXra`9It&M9%@!y9#2U5MuRV zF50t)c`bzr-fSZs>$Jr1Am5F=g||iBCD0dzUiuv9@z?;~&H@fI4`UlGLGrZ2d<=~o zf_lC|v`8(7jr*u?Kny;F-AGQ4*bYDNhK28Zki6Bc1amt}Pf5{y=(RL+kFbnYrle|C z`Fe9RnJr~p(kQ=5BFXnUN13Rk!Ja(sEtQ)l)|o{nV!bWqepv6_%#o6j_sbq|u2l3{ znqth!YpU65Taf%{&(5X!ck2{87wufCKuTGfL>v5$pk+KN6$=U0SgeI(a z$GT-yOlw)&q?Cl+VN$rfmR%Yety$zwu2VIowXb7zSXAv;|3oWIN~k7slq+0*)ty%q zE^l||S}}>d0TqH_Sey;yqkm%YMIf*JiN#+7c{SSi4)IZd zrN8Ha2!9Ub9X$_3_+ub{6Zu{d-Vfxvd&1>mo)l?VGS;OSM6%R=)oDTD;egT?)j2i zozhukOYUng}DJ_NmorR>2$-3kV z>NV@36mCmrdaH>HB*w7o0*R16aK)R9lDHcVeWGGhguKl)3VAJ*c`JJ^JvJ-L$sNo= zsBc}Fxk$;BjiPLYv-CTfdJ*?tG-_DNn!rrvxk7M+z=`+pdChRC1Gxx<2YyG1O9|g`l07%dY!sajjueG+ zWYu7}*GZj1z}SkT;kHB=Oh;~h=H?5Y*9nl+Q62~a;l1;itLHe^Jow|I@+i?a|n@6TDZKB z-55P)&TU`7DY!|;UO0pefY>4!h*2+l{oIRFnEcs;ayU*jBQ@yd+a0==yxY3v;$)H> z)1i>mMdtEwd1a5WN{N>4z&r#{hgoe_Y;mVQxQN@DO8&-!<%E@~nS_zw&**dWb|*Q=|bU zp&bLPae>lhzTDeX5nEhUm0G7Z>E)$L-%++F(mg%v>z)H5BeC=OMnk}sG5o@06SFdbC}wRtPrbP9>TuxnNIe^f#OmZ zdU&iwDx$Fixt?gO%3oX>S@J5Ssm;U`$w#ckkUC%c)oP0#)%2jgL~n&X1VmB#=pe0i zcr_1!xM&`4D7Mw^PF|HRX=JrafgV>~7rT3X65pai2(=0+U(Q9KR|9+^X$VIAj%Rv! zK%#_|hs(RY8u_A2C22|WicVp--;wPWcMFKGR*czJd%`ESQM0*v;N;3*RW@tnB`%sQ zb{gOe`@0N3?b~bahpYpNx>gZr<4Z0oeb^Rfr6w-uJTDm-3*r3ESZj1qY}Jmu><%M( z*SaE6n&*nc0i!kjwL2*Nhfa+=8ZkCWzH*AM)vuNlV^gU6&K;dZ7`8+n&9;qAFmJ&; z`1}T9E+2rV@@>)P_(a2x9>)JH(Mkh@U?PMPp3}E-i z86w{4Nx%$vyrh@n16o$YQpP8SRUqb%02>9LJ)1c`vDWHQa%UURD}_PX#O+%zTMlzA ze+v4w1;ZQ%dVoy;1JqAbF$TzPQA%O3EUr5~>`YqQ5U7BnsQqfT#pf7(FmQB0=X4O$ z<<{L2wd&3wD=`Je2&hVE_+gqxI|b|AZXU=D0@LwKH6gL~Su0^C=~=5{GuJ82CcXTF zd%2Zt<~j!7{|w*0OKxFMkon{_QfZQwS_QOBll1ag_mcm#Tfs|Cx-~eLH1g#hO~cVU zYLl=L&%C&PbR!?5!rI&KAX+7()!)(TA8hA@sM=Y5HM`u8SRW}On@m#a-J%-3-0hoT zo$<5$1>bb*bmWKh)qm}qYMuJC`Y(M`tWyH@xwqG)>*Y^<2Fd4m4ZhsxSnVmcl1<#j z^i&iU>E$+G;iO&%_HeDY03@I281F<-N>HP`d7wm4BfPwsM!x6DvBo3tY43Ts_+glx zv4=l{T*JXE$3Namj4`W3`4Qh(Yi!k63C^hPOFT>j;=lD%etVobO9TN0mPuPa*L1 z`$C#z>??OhGqAV62U>w|02eS|ITg>~)txKaCrD=?HI5@9cWfsg8%y8;h~YTWH;}GH z1MW2HzaV1q7$Tk-PsDxML>z<0gea&5M#r59cPg8Jid-Uo+-HoL=*tcBRsn7G*n3F~{Pyu_2TD&0DA(zG_g7+bBc?%j_q z?$lN14rEmStvj+hzWQ$WV+dy6@SCA7-< z1Ll0m6*vw$xXb60=ANe#tI55NuEkJfnEab2z5J}#5O|>rmmAoI+yweD+n*a%xyu_2 zlh<40R#nQiiuF!0&FeVsBc{j9d<=8ddZ&gErk6B*VVnhV%RPWZy z1#b0Q;p4e~(96%UwfQND2N9!%2l&K4)7$@pzW!=N&zZc{MIHOo)J$Sd%pq2OG<=&KmA8rzz#RKFHKgO>#Fe zDNt5dqm-wz6B8HG*H~&nQdqt}Pf{X|=05BiTTl=kTMj!)Z0R?dn8%w0#K1zvqbtlS ze2!Px`hw`FC;Ux4b$8}zDpv$tddC*5;d`vDfNA+oi7nK~l~ajJqIps*oyS&4X8mf+ zQP=WDlLdNGg>kg3QR>e4(yt3Rb+6;B*U%PLWHBw4KzsP>cJO5LDw6u+sqddBsn<_M zBKi*5t&{)Ejux5`L3bB^O2@MOMJY6ibrn?#E+2cicyw4ThT%)a?Q#dJFE-O=wyQWX zY(L(_7yGzR@;Q#O&fEViMBl0R|WJBGR;$$(Yn{ zn}`XANt#|NwyFZ7b$NQtM=!tcsWWp!vD{Wi>~jXE`5cvOz10?5>k;;(ND(lO$MJ3! zIB6wAwN75nCQL4iY5{LCju@H-5W~lS@GKS0Y}aIC)^MmVmo?9;ff>@&V8}1_$!tK} zsj~>+nc1Oh-wR`#i+;zknX8$1as~Y-TUhc$$VZ-ZX+V)^(#iW-XUQzOm8DF{&{n$p zH`7u7I*>VWBz)4dY{`_w{K;-Ad!VrGS7nRevEd-;I0}B-u^tzYrnT&BstY&?y{vJU z{jXV4as zmQb2RWtLyMAWXB8il0MvK3*c*R~j8%-^1H~3d4N9M=93|DN+m+Xb(GAnlk6!boljB zBEHat`Kfu$orraQ$9%jp5*v@f1s5moN* z*SD61xKE5}48dAvvySPp>BYD)Be)k;$P@i%5gn8641-cTr|%nzG8M zbI!;6_+4>T7MbuKqLaU7^<}$4e&@{FO`*7zLFUTQK_Dvjwy3VA=?GwO^ZK<#1CvlGf*$6eta*Av~;G_a@+e3_@B zn+(ahyKp}-nXu-`l2%^iE0u-d_@bAbLEHH|mO`$>8&ymZm*Y84^rVPY#K@1asZvC> zR(_nlGJ8bHXxtsE0xf1D-aXVEkneTnDk}1*_A_WBx2B=UKLTX6RAF5X;2nUxJz$j} z`;}YUqOH9zGg?{46my0NE-xE7XV93fXwD7!4_M|sz#ovWZ4scpzjO-k_#F2<(bfU0 z;5@+OU|ZBrOpdb+b7JXXws%fk@gKb^gunw9&0X})qVtQC*6ZE>!iIeWPMqtxz7f1g zdj%WnjIxrq2CSk(&KwAbo8aNQV9?6HVcNMP=+i7`Zd5|_>fYX5w#nc!4*6l%{JFwz zt$dT!%*~<`SmWFrn!v8jjjOHbYt3EDCeUJw*RdH3r8D-&)(mtD2CpN!haw-2e0(6U zg?qyZ6}VOen~z)*GQ%ne4!-7jDaQ9a8C6QAXf#);7;pbC zj{?yzk#*jfX0EmKnR{M>>NW<5WC`=X%#8Dlaz>>QQ^Nrs$V|tLFwMkXdMv}lTajW@ z=LKh4JxPj^)i_)7akfw_C}qY4QMvcsmSI1jJ{0xK7x0s&x1RUE>K2FH#TJaQW>4wu zbHUBIDEdw)&gCpyxnKfqWi1OP)NXOdKpoy(eQq_`$j=rUftv{_(yEnz>qf+9h^g+~ z&Ik5WcW9t9YWp16_k&a8CB%u_p&tLnDRKg{8}lpJIxrEK1k41kp#C>VxlW%$D!0U9 z)U{25PWBTru&23yaeOsjtY%jKi^BfH+y+U7sGNtRoPAupd7$rC?7LqKqRW_S;Vbk6 zTfeXZ=gG~5Nd@}npjc2U&N~lu8p6D_P1F#I+fI!eJB6LZyfPJ=h}_oGyC;`>Vwwf) zNxI7i%S&sIWOK?hYA-cGRh}kB1B@lQ$71RY!*sH~XYUlOf;7k(p4J>gM_Pu|JGZAf zI^QoztzJ^SxB7Z@YR!_Gy*1Zsc3RbY6t@iOn5sEdk&@z=m~kl2Bsn_c)?IKubHH48 z2w#}qn$&P0qMTD(LG8S^zcQlS?`ZTZY6I$0579P5w3AL>ckp1pV}#eRSII6oi#F=^ zs@N7O>{eYc4>`D6tPePS*pKT?r_w-%5ZPbXg%IE$PGT4^@pC-40CeO!JcCVk_w74` z)x)y+Q9(y(<T=GTBe)Y$lhP|pS1FCdR8mD@L zj*o=PIN-i@JKw2Hz1>+|dck?D{?Kavg1QXv6fmY@guoW#LP{@{T3Pv{{ZlhykKH*&m~*=!b^fJ%Dy!*l zED`zV4sgj*XDBpvpNi}hhu-b1;Ahn9!B(@~#52E&^5b;(rK2IZE0elrt42|}LMb`z@pP>~8?O|0PDCzU| zmZua{75zLSQ+xZ;K*^$~S1R>a(B{V%(e7m+NI?4=&t?g#k5Ihbp0awsKzG}_o=a3v z19SblL36>clw#U?9M$aY+6J0$A5*6l=qs%F#WK3U{`QLrf_92mC7G)ls^+P$pXqTF zvg0qUG=_L1r>G?U;rg8V>{qO+OTDmzRb^Q6WvXE1Jq|akSlg-H=;`fwPJJ0Yf6H=T zwo{k=-pff8UvlHtCDPy7$E{nb!Y#gieM(rnlf>=LyMJ1FvB%MBzqYi!WPmGSvM=BFR~Gv8tDhDYttej z)N8kFK0xV6`<>r|Ss82Inh-Owr!G!N{;^A8xDB^?_^cqte=Uetf61sNgI|F4gDBIlWa(vE?zCA*JAW-J=lH{Db z&+d0Q_AtdexnZxOG^1*+N`;xOVbk6*Yij}}^HjC>#-i1eY|T3(w9}nI($|n`t2zel ztnA1;(b^oez#W?%)b&o!`;! zA;~YIY_6Zg1t;I{nu-21{1(t(c9nvj!VYbZrMc|P_E$2z*#1LR=M=GDIUNq)nm8fV z(WSqb0jbrBko=5tr{mu~zGw>M_vW2D<#hauy}lzw`z88)?G)3y6e{%mjD5Pp7}gr# z)etCYX7_fO!?p!V<^)RKWJ&K1qjjw8-K3~x;AyXV6kJ0U_UkWdzXIPyZ2h|#dMkRE z`$qc^rBKLsGX&3B7PRvro($SK7vFa3cNXGf{PCTswAp@dr<&4X%=_M()XHqTQuUw1 zJif1L2%=|*A-mn__zOF|D~0Z3-d)jj2a9@tCEZ|O|Nh$ozJaDT?xTzCU5$<)ddS|{ zgx^4nwdWtmRB7-IDms94dwuI^L6dn9uR_49Y{9_-f%xq29UQ8li&+_6}?hGib>p!3)@dN!N+k(A|sG zKckKR#@v8RnSeXZ->(8P?~LPiJ@hh@^1vu0%W)9W2u!IM}r;&3yE{c!4X&y1~hHDEb;Y>!iPDr3y8jy*X zzkzy7>zs$^PNnJ!wCDX+{01vW5%0&xnPlmvqu6D{Q*zyOWIL5|aL-Lgq^ouQAo?xU zRH6GHa7Lc6=6u{EWDeklyu zh6sVb|2*I}bUrc2;A%(tVc@U8m%ul_wwa3PGjwRHt%xqBbXqH&M9l(S)S5JzmeALZ*eKs-)fNJtNo67zMGC_+p8rsmFC-8N@yY7X7iTNIdqC`))cyyhS<(ep)K^Q zR#r+k2+=uhLUL#a!c)WjZfdyO&A;E=bUb1kH=SOh$66E0=rXE$9+5?-ZNm(@oF>{- zGr{`#*7TWBjHo9({DNACOQee*jjzO8=0ak4-nQWp`T?!BjhRJl^ch>{EG)w5*0$Mn z7Nz5D`nl*h-nL*a*o<#|buQk3Xp!yhd2}$HYWrj!&4`+c;dCvE$=@&DQn>R;&OWAa zsx53jc5kX}*nC=sq<%gYc&hFEe7YaW`UNxt$&m$g4V~Ir@C&FGwYJV&h*Hf}EaOce z(zcV;^FaOY+yx5z(Y^z*^aelDb@N2-Z$G#K92dHZOWD(6*(&0AElhjB}w$vvv zh5k0{lQaPr&bG&&q{*6tc*`c{9~|iaB+b+`^kq-j&OAwz=u0*?5=~8C>5kTvC3K-O zX*LwjQ%iD4CXF~2PQ)AplSV)VBmoqd*1B&QJre?>%w0kIx9)h3o=`068cD>}8E{fa z*CH(jHUNlEi3?@TzzaYoupZa}N2EySkE)B zbk@?=&RXHq*-<~QSD=p9hqUhdMhH>VMqyJZ#+@?Dy3hog3jw-p1ZaG1Ah}bgmW>A; z40>W-@xo%zA)rh0r_Xo!s7GLHFZyZdriVa(YTx+6ySxfu371y)+rl zLZHN!^{tRz`$-lRUmZ=wBiZ;a4!SEBE&!=22a}pW#l;j!$K*d<3mrzeZw%S99i^mLyTLVBI28iK?7k=Vknf4Kw4@$enGItuQ&sB x0CIuN-}H_=^J_?fysc&_jY+x)S?ar>Jg994uJyIzGIpW-IP%4|r5A-){s-}7cHIB~ diff --git a/STM32CubeIDE/Release/WLE5CC_NODE_STS.elf b/STM32CubeIDE/Release/WLE5CC_NODE_STS.elf index b9bf4c341b4a21e9dac24c29f0d8e60b5c52ecba..ce6939e8b1fc0b32bbc9eeb287e03fe0d2e4f723 100644 GIT binary patch delta 49394 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%0A!B%j|`Beb> z$@wH>(i8NqdKzQWce-(@5-}5~Y%7M3tDel5^o6dh zG|bem3Ea=hMwuQ^@(S@3 ztyw9DMfR;p>{IFJnq% zWK2Qh7?WPjnDh;dN#Dkp9;-Tm!533#+u#dbQRe8Qqqj4sH!)!D0H?vpIbfbun&;q3 z?i_QY*cQf=cZaWX=UhBVvCz+TpGq0q%FNhSX2zuNW=#5C#-yKTO!@`J(C6dVkz5PV z!k7X~y3JLe#+dXuj46X6#-x`kiTC2#Yb7%`quN%1r$MG_qhu$U{s;6^;NwiM_ScHh z0ewAqghQunUSvAOdx*T zO!{udr0;cOl`;8y1Zwfg-@q990%;C2kV6q;3Xl}!8X%c5>0dCW^j|Y3-4LwwD$@7O z4hVLQGm|m-)i9rfj*T*D+OjYSwuehPIpk5{gdIW9~yQ;=jOq8PWm z)7;F{7*pOe8B?-SrK}iDYbi66+e$Zn%8fU=@yl-fmKz^*2se9oclAk(Sb z#~Ihb{{yhI4^vn}gtni@q0@VjXueMOXg>$jYn6-+M!X?X2unZ#`Z1;q?`2H-Ol8Xg z+)JdFIXUC{hf5N@*vZL*!SsG6CsUZJURt>*Os!%?81o@F^R!6Kjgl2HresSQlYWRX z=~o$(ew{JtIlW!to25z2Kn@9gTpXk<#-!)=b=BuECjDfTtA5&zbw;k^YQw+`whS24 z9u&CoB*x^Q6U_s{pE2nzj47Ul@eI2E92esnAi<4yy75)UltBk)9C>>4Ru=5k;>_T$ z6>Eupa0)d%Sn+3nNHcf2Gg~`9%#IY5vqC9cga+af>vXf9qwaO%ayNd>jlXx}4mXaA z)8fc&I+xyCPYVdNju-_>E88-L-(7Z_84 zER3l@Qi2wb^bE%T!ttV4pP)4fqKpcTP%X4%GCk&r0=&`9nV_3kNi4(payN6Me2y!HFq`RxHs^st^03dL+}v6ie>fO(DzNjm8`YA9 z>9H_a!MK}qYxj$iwbBiSUJR~w=(gftVh$N_ptsLa{ZRL#46Z7P_o18vQnWZ^-oQ8; zhUdVgT3ktGI{CM_ahDs97~&fLAY+u%ES+Ws3V4<=)#p{lq+e%Dx<{&O1_s8YPh(8! zXEL_k)>+96;q|n8;@|~Np4)k*j8Q2 zDdcXhVdlrNlk~bX4_hYoY&J8!20Fdm(CE-9OfAzV&&J?12e00R-TAHCLrmX|^o_3R zP10HB09`uI_y`R2YBXM;3rznE`bE-}KKJXx%)bHYHEi7dGIMW%POoa?`cGZCK$?C;8w>KYEQ@hK=kGDrRYVFI#`j(F{@_B%pV{l`2Q6d=zgllanCR z>*Vn9!maV*Ak#CU)2r$Dr#q*ao(nwv|B{u9$TK&SWLQ4KlA`|C`92|B$aFUO`UUo6+hEPEF=de0t@nFfZ7 z&FdKSbZ~-=?3Fx|=~Rhx7@vVZy^pVy`5$uX%H(o9Y5f&k=+%884i^e>-sysZUxH4r z{KF;jt=&+WejPf!Ca{KOQJSF@`ETg-0#Lfi?5u{hntr?F5s3$dU`S#Cb}NnL7}skx zKdBGg=(T~)Yw}buy_S%FI&qcx(|%lMO#M;H)XGJ=7h}@X7(+Kp8O)H44C%du73_14 znM|jEMT{xnw&AWB)-o=n9Rgd}#}qYqry`Q!j|Ldbk9IS|3M8PHE>^Py;iGs0T<9`> z0{--(#&fK|*Rx&yJw|IR!=GO8_=qig6d)ZNRm|ZHIMACOkFx@tV><0|LXPsx1GpKT zg||Wi@u!oHARWCW^16-etu}6~rhf`O16`F`fb-0r#PqMA)7v4PQwz#x8q=xf=P>>; z61Sb`)siRKp08yNl%R$&1ysjr1tL8TZ5Av1*$bTP#u>``2lex!>D9eH7pJz<5 zTNsmW$y0hfq#qwj+Q#v&`%$BmJ*1DEPSRO7>6{yn$k&pRe>r2yW+h|NcPmze_N2|@ ziqFFswmxGXwt~B{>c++bEl2Vn?Z#^vQ#KbElfUZ9xa~2)HQ-%tT*{aNo>TTbjLFs| zH*<*MQ-LpGkVnqlt`T$Hc*I0aC;xjHQxWGgCS97O`IGL;nDikU-)@^Z4Al&_`QZs= zO9j4!d77Ci&Q-<~$78Z z1;(UbW=#53#-z6}Cf&k#2EBr;_f)OQ@51obg2A>Hj?R;Wk?9n0vtoS&AG5V65s&JZ zo3}HS!oT6hd)@ee8y|GzLvDP;jo)|WA<_v~gY=0TpLXNVl+4xm1mP?*mtn7)z(pv( z^U^9wsf3$3d74%^&%!MQj4S$EZaGY+-OpwG68!Vr{O2&8{EHY<<*sG?dT+dW=rMd^ z);V3=dR&SU)i5VYw2d+8+ZmI-n=$Eo8J|KS_kpWnckX)v@&no|@DGyGn1KSSO5aWlZVMF(&=UOs#a#dq@|Y21TsV2P@O6^fl%Vrw#R2 z(FaejgZVT&uFxfjl)(5Y_$PwzKxWSA#63)>LTzy46O2*FASqy$YX%|8mNojpvDI$o z4UB2$w#^pGvwr#rDQ!k7xz!I+Zy&e6h<9>AFNB*vsC zGbTNkG4vRzfEmc4iZKOPt6ZaUUSei)^O);e4g+J-do!jmM#iLXU`%=qW73Z^h8`rH zUoRvMo~achb+^EYS%o4`vUJA2@Drc?IxwsKmL$MQss&0szZ z`7)jS!x?{v_z~bNTWZ@pd%je_94G<3_8cqx>7;8&PzWAjBm2a>n(5?EuRB^vrb_hr{P^F_3D5sDNuTsB;Rp5E1QqU?T;wh+Wl}uXU4HmRIuT)|cbakN?iF`dul((M3 ztHul^uJ(iy+JUvodYH4T7il@?M&YA(u>G!x z{Rp09x-ARF6y~IIts3tFrFXyc9XQ9BlAUKv$u22{>v5PbyPHe3Fq8~WD#I->t<2S2 zrJRB}$imDNH2glLZ9VFq-XssipM4+jeT-)iWrUk~rcwyAn4?sZTKa#fdu-+4Rj>weCzGo7nzr^$=wL;6*dw?Gc&(z~u=2 zRt@u$=ofA{?{xe^fbDZaqa@MqRM8F7AhePd;EM_N$KQ#c0xwhcAgtLZRoEUQCG-0* z(>q|Wk^*rBeHt6<7TF*ECH(@Jev5?ew-Mh2ufW9G*TMeLl2n#te=45zzTiqcUrpsC z9uB6Tx+rk)_-H9uqF;e8au{aAq0fEFtmpN8MVV6hJYGKY7>oZO$YZb@^js6gYX(PP zNPNq|KY}-v*dNa(-8%*yexqc#>d?c$WwwV6h?_d`xNxN5i_CAq+&s|!&@k~S@HJec z8XfutaLU{EM`%g^FL>X236Ejh)3<{^!u+4^f|K48`+WnoV{~vd*lMufbtipz9LgNO zNO|i89Gwr8Q!k+P9Ekfa&ZFxckB7g9YVm@>TUqrd#p62i8s1OfEO0g)mMyd&uNY)F4ZOZutH(01 z&+D51`2kMRW$M zoJZ|5m`iX;<*b<>z>Dw4sO2a$err^s9|6LL7q;rYEm4wW_|vdL&DID`e-mF~aMm<9 ztVa1{lm2cqZ{9VqZ^2=79@c%}8EkhN!Stg-$j+9}$KXl~E4dE-20SlT>u)O9iYbS) z`CGwHBfhgg`VK(x*7VX2Vf+AmteB?l=ooOJ()bc4K4mo9aFl;8%+8;)3Bdj>1V5@+ z$?Yq2Z)bS?EQZvH=i687?Ztfqj2HSSa4Q_64Wi$}+-I3TdMhc-#P0X#t|+=6@2)u@YQO63;RceAnutCaXB zB*Q^RpbKz(j+OTccrzv{v_o{tvw(}0Yg=%Q_!V};*)%h8Cm>!)d>KLKDtTCCKZ&n6 zJ3GV+P@_;QzK%@Z1XrS=dpYXW*P~e zjwf}UVbj5z6rZgqM7EN+6=&Oee1+6`DC(g)pFyE2IRoyAvD~R&1lM3s>CoEt6#O~H zJ7*P#;w&-`a~bEM9}HfPb49YFxlaX$_LmGR9XmBI8P6ELV#4X$(TyI3!(6(9%k!FZ5D7HOdl+5aFp|Z;9@pvc&6acs(j%~%E9z-I`~LFEg$$G0mzUcq(D z3JfmJ$~O$bIZMfW1?{O3bA~iWv}~9|*&OE{u!6ISGq;Dq%arv<7I=*9L@msll*U)+ z7*51@f;{cbxEfhHH5BSPowM8Q1J!KD==?8;Yjx< zcnezdt-dh~x4sgT@jGxfqMv`9=J3mgeKP7H%faKonV66}$ITLOdanIjg4BH1f+swU zAo{w6mEhV+DMJb|TUn2l z?PufZd`%4?@=hE`r4i;KFYMOZ*JPNVXW8BlK8oYxEXLE|_%lk6ozyN~!Vi8p>hpcr z`=C9c8f+6v{OpFb4wvOPE!v9z12_dkwzHG}4zAxX87drl7dSCp>wjLuQJ*>5^+FUl z8aIAdI{fi_8_JtI^?{T34AweB0i1rsJdFxLbv6fF_ny``9|V_d(GIE%e(o7<5O@uI zSn=6~A1&E{TN2?2Lsiudb1+_OlH>>*iq7~T>%-~bpF{0WB~i9hz^~&p9^~*Z0)MHj z--RPUzwPO45l_RsMrlND(Yrp93}+qQ@5B5fYRcJ?J_m16eBN-IWk!xfyZ=J6J*PyO zCW7PR#H|a7ao~@XLL`eGgJw9|5&dzPf5fcIxi34w*OV=AGyC8&GsoffJBt<)P@SM9Znhiqf+)J%341P6J$rz`wV8Ef7ri;OEqx`yoMbf-6+?*L%~mD zs<*)rb~tzf&alo_GXcEHN2|#qa0G@pqr<;)6iRajW3+SUx5A-QiP(*D-7L|Dh^sJH z;>4NeNY@U&hVQ5rARU!6EDMt<%rjOy^daEJ1zK0m1z$tgb5=(YxDT$;Zg==E2lG1p zKV6-BSXIRqz~{ihc!+|4`M|^nzD+<(w76o5fr^Sn$~96_6f{#(O4B-EVUkjx_XAIL z?WU;}mVKsiee{`HmuqDBNWDtMRr}QPD@rrFX_5Cg`^+$-|0uuNvuDq&S!>OjwfEV3 zc?yjZfyjQmZ=JV?dMB8Re0AQTTh2QT%MZiq(Dr9Iimm?&RloIcTngv+QydN3*Bt~` zlCseKOdBq|ld3SysZ4^F(LyR+Bu^Es8YzdbBEt&BmA5py5w5oU@kelxcUKk8?3%Zp z|HADq^uCuE#2d7k=zF!b#aK#lnI(xzcs-rcov4C$c?&ipF!|9?Kl&m!i{~l+HrAvl zLkMUVqhR{9j_@v&->v$d1lzsIgk!Dk;#_zv{v?I^(w{7W*?lyhUp9g@u8Q~GeCqOP z##$=WTfxOvIGjcF9(6&&Aci~S9s1p1r7EveoMFW%F06TQ53?hShKoqfX+=+jQ!%9Z zs@ain_88WB)s1QJ7IIY&spCuF_6K~gw37<_(nvzh{VPquYgDMjY4e|>;amBG$6|eg z^W(uexW?L_oPM08H|u&uYW>>euEGcg8E zzQgxw6WQZQ@bi{}%z+z-U8Sd&$6tVJtIb5b4p*~aXo>BFd-L|veM&-~dnnk%2zIIl z_%4jdTVY0Y4GukQd`;_7?2HIvBUSxQa19a~D;Wv(f%9;I9n|rm@G;D!h2nJhHEfe; z&FQdbCIuz6W{E3?3m!J>sux}sC1U6>x)&m<;3B3#k7zG^+1g%w1G{kKcc=?ofn!lc zJw*Zc5eFOgh)xtV^dqpudZY;B;h-`jfmFD!wUN$-%Mp2uy1)~#3uDt>@^5gRwX$r2 zLtC0D`V3BAAOg3k2oaM)gW)_la1OpmQcz!@5l-!8l;*ZH=Gaw#@Qo-IN^En++ z+S&N|weVs~X?NUG|A4G-4d4*G$KP1hX}JG3-wh0p?D1s^Y^`^v6WT?)0xzi^x0B4` z{)gfL@G8;>Lr%;5K+acHKgCpa%ZMU&v71QOeKYQcH<1N}gq`MvP`k{>_X0)cI}T z9HwA0*LOP5nF3n^1K}HSX2}`{M=?T2i|No5xXRj+&WA5jUoWkz;BtcT-RgoH;S;2F zx+;Db≫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 RUr^KSPU~~ufp}-c{{g$XLOlQg diff --git a/STS/Core/Inc/yunhorn_sts_sensors.h b/STS/Core/Inc/yunhorn_sts_sensors.h index a185080..5de4710 100644 --- a/STS/Core/Inc/yunhorn_sts_sensors.h +++ b/STS/Core/Inc/yunhorn_sts_sensors.h @@ -464,6 +464,9 @@ void OnRestoreSTSCFGContextRequest(uint8_t *cfg_in_nvm); void STS_REBOOT_CONFIG_Init(void); +void STS_Sensor_Init(void); +void STS_Sensor_Prepare(void); + /** * @brief Apply/Process config to board */ diff --git a/STS/Core/Src/yunhorn_sts_process.c b/STS/Core/Src/yunhorn_sts_process.c index 75ad038..56bf761 100644 --- a/STS/Core/Src/yunhorn_sts_process.c +++ b/STS/Core/Src/yunhorn_sts_process.c @@ -2056,7 +2056,7 @@ void STS_SENSOR_Distance_Test_Process(void) rpt++; range_sum += range_once ; } - HAL_Delay(50); + HAL_Delay(150); }while (rpt<3); sts_sensor_install_height = range_sum/rpt; diff --git a/STS/TOF/App/app_tof.c b/STS/TOF/App/app_tof.c index 6d38280..1a3fdbc 100644 --- a/STS/TOF/App/app_tof.c +++ b/STS/TOF/App/app_tof.c @@ -185,9 +185,9 @@ void STS_LMZ_Ambient_Height_Scan_Process(void) uint8_t i=0; uint32_t range_distance =0; uint8_t j=0; - uint32_t bg_distance[64]={0}; + uint16_t bg_distance[64]={0}; uint8_t idx[64]={0}; - uint8_t IDX_LEN=10; + uint8_t IDX_LEN=20; for (i=0; i<64; i++) { @@ -234,26 +234,32 @@ void STS_LMZ_Ambient_Height_Scan_Process(void) for (i = 0; i < 64; i++) { if (i % 8 ==0) APP_LOG(TS_OFF, VLEVEL_H, "\r\n[cm] "); - if ((Result.ZoneResult[i].NumberOfTargets > 0)) + //if ((Result.ZoneResult[i].NumberOfTargets > 0)) { - bg_distance[i] += (uint32_t) Result.ZoneResult[i].Distance[0]; + bg_distance[i] += (uint16_t) Result.ZoneResult[i].Distance[0]; idx[i] ++; APP_LOG(TS_OFF, VLEVEL_H, "|%3d ", Result.ZoneResult[i].Distance[0]/10); - } else APP_LOG(TS_OFF, VLEVEL_H, "|%3d ", 0); + } + //else APP_LOG(TS_OFF, VLEVEL_H, "|%3d ", 0); } //} } - HAL_Delay(50); + HAL_Delay(150); } + + APP_LOG(TS_OFF, VLEVEL_H, "\r\n\n\nAverage Distance==\r\n"); for (i=0; i< 64; i++) + { + if (i%8==0) APP_LOG(TS_OFF, VLEVEL_H, "\r\n %2d ", i); bg_distance[i] /= idx[i]; + APP_LOG(TS_OFF, VLEVEL_H, "|%3d ", bg_distance[i]/10); + } //STS_TOF_L8_Process(); - APP_LOG(TS_OFF, VLEVEL_L, "\r\n ----------------------" - "\r\n------Gesture Mask off above Threshold %d cm--\r\n", fhmos_cfg.th_gesture_mask_off_height_cm); + APP_LOG(TS_OFF, VLEVEL_L, "\r\n------Gesture Mask off above Threshold %d cm--\r\n", fhmos_cfg.th_gesture_mask_off_height_cm); for (uint8_t i = 0; i < 64; i++) { @@ -263,10 +269,21 @@ void STS_LMZ_Ambient_Height_Scan_Process(void) if (1) { // range_distance = (uint32_t)Result.ZoneResult[i].Distance[0]; - range_distance = (uint32_t)bg_distance[i]; - fhmos_bg.h2cm[i] = abs(sts_sensor_install_height - range_distance)/20; // in 2 cm + 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; + } else { - if (2*fhmos_bg.h2cm[i] < fhmos_cfg.th_gesture_mask_off_height_cm) + fhmos_bg.h2cm[i] = 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]); + + if ((uint16_t)fhmos_bg.h2cm[i] < (uint16_t)(fhmos_cfg.th_gesture_mask_off_height_cm)) { fhmos_bg.maskoff[i] = 0; } else @@ -277,7 +294,7 @@ void STS_LMZ_Ambient_Height_Scan_Process(void) //sts_mask_bitmap[(uint8_t)(i/8)] |= (fhmos_bg.maskoff[i])<<(7-i%8); // 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_M, "\r\n"); - APP_LOG(TS_OFF, VLEVEL_L, "|%3d ", fhmos_bg.h2cm[i]*2); + //APP_LOG(TS_OFF, VLEVEL_L, "|%3d ", fhmos_bg.h2cm[i]*2); } else {