From 6f806e0e6b37c9d65a2abdc3f3de87d8c731e98f Mon Sep 17 00:00:00 2001 From: YunHorn Technology Date: Thu, 2 Jan 2025 23:27:44 +0800 Subject: [PATCH] revised for enter/exit potential state and theshold --- Core/Inc/main.h | 26 ++++++++++++++-- Core/Inc/sys_conf.h | 6 ++-- Core/Src/sys_app.c | 21 ++++++++++++- LoRaWAN/App/lora_app.c | 12 +++---- STM32CubeIDE/Release/WLE5CC_NODE_STS.bin | Bin 182516 -> 188048 bytes STM32CubeIDE/Release/WLE5CC_NODE_STS.elf | Bin 271176 -> 275912 bytes STS/Core/Src/yunhorn_sts_process.c | 32 ++++++++++++++----- STS/TOF/App/app_tof.c | 38 +++++++++++------------ 8 files changed, 97 insertions(+), 38 deletions(-) diff --git a/Core/Inc/main.h b/Core/Inc/main.h index 75fb4b1..2f74eef 100644 --- a/Core/Inc/main.h +++ b/Core/Inc/main.h @@ -64,8 +64,8 @@ void Error_Handler(void); #define LED1_Pin GPIO_PIN_15 #define LED1_GPIO_Port GPIOB #endif -#define LED2_Pin GPIO_PIN_9 -#define LED2_GPIO_Port GPIOB +// #define LED2_Pin GPIO_PIN_9 +// #define LED2_GPIO_Port GPIOB #define BUT1_Pin GPIO_PIN_0 #define BUT1_GPIO_Port GPIOA #define BUT1_EXTI_IRQn EXTI0_IRQn @@ -128,9 +128,31 @@ void Error_Handler(void); #define BUT1_EXTI_IRQn EXTI0_IRQn #endif +// GREEN LED #define LED1_Pin GPIO_PIN_2 #define LED1_GPIO_Port GPIOB +// RED LED +#define LED2_Pin GPIO_PIN_7 +#define LED2_GPIO_Port GPIOB + +// GREEN LED +#define LED1_ON HAL_GPIO_WritePin(LED1_GPIO_Port, LED1_Pin, GPIO_PIN_SET ) +#define LED1_OFF HAL_GPIO_WritePin(LED1_GPIO_Port, LED1_Pin, GPIO_PIN_RESET) + +// RED LED +#define LED2_ON HAL_GPIO_WritePin(LED2_GPIO_Port, LED2_Pin, GPIO_PIN_SET ) +#define LED2_OFF HAL_GPIO_WritePin(LED2_GPIO_Port, LED2_Pin, GPIO_PIN_RESET) + +#define LED_GREEN_ON LED1_ON +#define LED_GREEN_OFF LED1_OFF + +#define LED_RED_ON LED2_ON +#define LED_RED_OFF LED2_OFF + +#define LED1_STATE HAL_GPIO_ReadPin(LED1_GPIO_Port, LED1_Pin) +#define LED1_TOGGLE HAL_GPIO_TogglePin(LED1_GPIO_Port, LED1_Pin) + #define LED1_ON HAL_GPIO_WritePin(LED1_GPIO_Port, LED1_Pin, GPIO_PIN_SET ) #define LED1_OFF HAL_GPIO_WritePin(LED1_GPIO_Port, LED1_Pin, GPIO_PIN_RESET) #define LED1_STATE HAL_GPIO_ReadPin(LED1_GPIO_Port, LED1_Pin) diff --git a/Core/Inc/sys_conf.h b/Core/Inc/sys_conf.h index 241072d..c8e4d0f 100644 --- a/Core/Inc/sys_conf.h +++ b/Core/Inc/sys_conf.h @@ -47,12 +47,12 @@ extern "C" { /** * @brief Verbose level for all trace logs */ -#define VERBOSE_LEVEL VLEVEL_OFF +#define VERBOSE_LEVEL VLEVEL_L /** * @brief Enable trace logs */ -#define APP_LOG_ENABLED 0 +#define APP_LOG_ENABLED 1 /** * @brief Activate monitoring (probes) of some internal RF signals for debug purpose @@ -75,7 +75,7 @@ extern "C" { * @brief Enable/Disable MCU Debugger pins (dbg serial wires) * @note by HW serial wires are ON by default, need to put them OFF to save power */ -#define DEBUGGER_ENABLED 0 +#define DEBUGGER_ENABLED 1 /** * @brief Disable Low Power mode diff --git a/Core/Src/sys_app.c b/Core/Src/sys_app.c index 19dbe29..ec9012e 100644 --- a/Core/Src/sys_app.c +++ b/Core/Src/sys_app.c @@ -133,7 +133,26 @@ void SystemApp_Init(void) #if defined(STS_P2) STS_TOF_VL53LX_PeopleCounting_Process_Init(); #endif - STS_Lamp_Bar_Self_Test(); + +#if defined(STS_T6)||defined(L8) + //STS_TOF_VL53LX_PresenceDetection_Process_Init(); + //STS_Lamp_Bar_Self_Test_Simple(); + // STS_Lamp_Bar_Self_Test(); + LED_GREEN_ON;HAL_Delay(50); + LED_RED_ON;HAL_Delay(50); + LED_GREEN_OFF;HAL_Delay(50); + LED_RED_OFF;HAL_Delay(50); + LED_GREEN_ON;HAL_Delay(150); + LED_RED_ON;HAL_Delay(150); + LED_GREEN_OFF;HAL_Delay(150); + LED_RED_OFF;HAL_Delay(150); + LED_GREEN_ON;HAL_Delay(50); + LED_RED_ON;HAL_Delay(50); + LED_GREEN_OFF;HAL_Delay(50); + LED_RED_OFF;HAL_Delay(50); + +#endif + /*Init low power manager*/ UTIL_LPM_Init(); /* Disable Stand-by mode */ diff --git a/LoRaWAN/App/lora_app.c b/LoRaWAN/App/lora_app.c index 382ab01..6b10a6a 100644 --- a/LoRaWAN/App/lora_app.c +++ b/LoRaWAN/App/lora_app.c @@ -1285,7 +1285,7 @@ static void SendTxData(void) status = LmHandlerSend(&AppData, LmHandlerParams.IsTxConfirmed, false); if (LORAMAC_HANDLER_SUCCESS == status) { - APP_LOG(TS_ON, VLEVEL_L, "SEND REQUEST\r\n"); + APP_LOG(TS_ON, VLEVEL_M, "SEND REQUEST\r\n"); } else if (LORAMAC_HANDLER_DUTYCYCLE_RESTRICTED == status) { @@ -1398,10 +1398,10 @@ static void OnJoinRequest(LmHandlerJoinParams_t *joinParams) APP_LOG(TS_OFF, VLEVEL_M, "OTAA =====================\r\n"); } AppData.Port = 1; - AppData.BufferSize = 10; - //AppData.Buffer[0]=0x38; - //AppData.Buffer[1]=0x38; - UTIL_MEM_cpy_8((uint8_t*)AppData.Buffer, "YUNHORN168", 10); + AppData.BufferSize = 16; + // UTIL_MEM_cpy_8(AppData.Buffer, (uint8_t*)"YUNHORN168", 10); + UTIL_MEM_cpy_8((uint8_t*)AppData.Buffer, (uint8_t *)YUNHORN_STS_PRD_STRING, sizeof(YUNHORN_STS_PRD_STRING)); + AppData.BufferSize = sizeof(YUNHORN_STS_PRD_STRING); LmHandlerParams.IsTxConfirmed = true; LmHandlerErrorStatus_t status = LmHandlerSend(&AppData, LmHandlerParams.IsTxConfirmed, false); if (status ==LORAMAC_HANDLER_SUCCESS ) LmHandlerParams.IsTxConfirmed = false; @@ -1414,7 +1414,7 @@ static void OnJoinRequest(LmHandlerJoinParams_t *joinParams) APP_LOG(TS_OFF, VLEVEL_H, "###### U/L FRAME:JOIN | DR:%d | PWR:%d\r\n", joinParams->Datarate, joinParams->TxPower); } - UTIL_TIMER_Start(&YunhornSTSWakeUpScanTimer); + // UTIL_TIMER_Start(&YunhornSTSWakeUpScanTimer); /* USER CODE END OnJoinRequest_1 */ } diff --git a/STM32CubeIDE/Release/WLE5CC_NODE_STS.bin b/STM32CubeIDE/Release/WLE5CC_NODE_STS.bin index 976e2241f7db334444f9d9f98a62c02581769df0..0ec03a8691fd1717ad6ce92593ee58d4b74a2f14 100644 GIT binary patch delta 19716 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 K+UwtD@Bcqvl9(_6 delta 13913 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 G+W!GDe*SF$ diff --git a/STM32CubeIDE/Release/WLE5CC_NODE_STS.elf b/STM32CubeIDE/Release/WLE5CC_NODE_STS.elf index 24c17c46f763aab6f6f3d9d5cadee14c5f9906f8..b55485c514c9cc11c1810760b9064e43e914d649 100644 GIT binary patch delta 64948 zcmb4r3tUvy_WwC&1{e@!c&Lb^hd~WNZA3IOEnZH*fS{n6SptHB4;&tLM}O9kS=Szx zdCW1jvaBvzw-6-4G`%^}Pc=35y4=b13^{}uQpCXVu;A0z8F%`S$4At<{4HV#7j(%jG}cufz5M)GR4 zeDVFJjbRV@3tPLJf`(k-)dS_7&L(@5S`dOOC0BF_B9?VYrMI+c2g<50PN&|O6604t zQ10%OGKRGY5tY)Q;S0g^z&@#N_?d`-@-Gfud3gC9hLH1VhGfG)`JzLr6eoe>Q%6(1 zm`^#xI3#CG5;AB?)Moqo7}W>*_j@So|F?BkpUe|cC}Kha;#h039Z0SFE1qU$sT zhafbdi>^}@tVPJbODn1x9;bK1%pYw=`R?6AHSeRr<`ZL*3#Y zAui(Ja+z22BmCv$Zs~-+QtdDQ?34`SA4K3wr&K?_HY!|R-X;T>udQq z1E=$s&v(Zec%3%JUq0K->+-JE73awtQvBr;-TbJO>uXiq2-MglewPp%XZYf>Dm_nD zY5e6^oO#zW2J^d!7xcfXHv7vjATFhV-$i`znge}p&(U2jux077;rc1Vkp;)hvWWCT$TO(qu;AituRN4UdJK_A+s#-z9rN$zAF z7o({Umv3{&m+OsN)9!Dti`7V)dXzhMfD|DA(Ji@>lFjsPrD)! z5|H~7t^j$MU79i}!xA7@J2ZQ$-*a{3#eQ*F(0_4R&3$p%pA*0sAiH4rL>o%>*QIIp zgI&69&2G0X)#bLGg?rS=$${OR{HdFhzjQl0h?{F(-!KMQ@yKetYjEaZqpE0l>|;fF za$Oo1d+4%y!lBCnv5ys_wIuf>KYbNyj!Y^zGeEYwDSXbICvydyE2_W8^=@7H5Y*t9c916sl7Kp_s|f)^t5d4JU2n;R+4{+UadWzOG1TBE zr?}&Rm%FtM+5_A{E{;nv-NSKIrjI+-Mqd2LzK%O^NrOs!;~?m2ZjPUPa39h4ce-tF zbh~YLqr5+M5f3N-{2@{5I|=bI9GYeFLDM~^dt4pfKT8Ke`ooBif{lgHYbs9U!TR_I z0;{dUKcb{vG;ge|ePy881+IyS(a-FE0Dd39$Ohl@3Wgd6aOrTN*Q26qX#2rcZv2 zzbgGUIaM7d^WD;m%`;qcF!m(G@wZi>MMDTzWMP6wLz%wZwQkQb{}vA>;1Di zNgE?<6AfAvZ+)qTm1|@MLk( zPAa%NeJXsbU|Xk8g_8>Y71*P~mkRFa43n34jW)!g)}B`U1DEV6VZ-F*A1K`>vkuKv zJciS7Dcqbec>|^_bRX%CspA9Qv-4YAwqmJj>d*mix%~`kd9T|qLoL7MmbOkUvedfO zi292=BSkH*!gWkhGWArGdpI8>h+(q455pJypY~A~5R8##8gZLjP4`fiYZ~|s{1%~s zlQZ|p&AMz|&N2H2efqV!^d}qsiI7^J?N-b4;7Z(ltXfjV`b*qMv}wBE3jr^jS(+v- zxodptF_&tWXi#nTlfQ7q8}2ZO7&(4%#~a2gq08>T2AOoyaC0z1WNMq$u#unK0mhw0 zDSw2BE?d6z^<675cV2Tyg?Cp5VgSMr>bB{n&+m>w^c;sI-<_Ns=<@fBLSy(8ZL?Ol zy@4CS#q_@_aN+V;N3<@+psB|cn4#JfE{}910f(S-i4LhKCGvqRWr#f4iSe!=Hd8IB zcWLAYFx|LqM>~h3=T|87Pdd2~(Z2OchDI*M8pUnGCEKrFH*QSN&%@8d8;%vb%{DajFu-;lfUTV(P5{+ zeB8D>+^V5Zr*X$=khgV&$ust2QQhpHBcN9W$j>^2n6zloK(l3lT-PcErN>(W<+l_S z|KjL}**Z{;Rtj%&1Sn{tf+`$p46wgCd}B^=tHv|IW?&v^-rV4Ch`@}est=Q&^-l6( z@{{hw@>?-QWw#5;BtOy^B>BtJmDw)UL6*mj+`24AYD&NJEjXm$<6kWnA0xUr7;DLHHPLy7Gb0c=Op2+a7_B5ArNbv*zz+K z?JDPqGZixh=T}?HHJNGG>V&ODfpVO~KTDm->jLG?c1{!&6V``vBF#C;(l;6X_@UC} zjH$Qz$u;&+?$!E|F$U%S(oI()J+fOEQz;Xyh2| zop3`xfKli}<(Cd(t~2twD3j@)JHR8IpBA|^pxNKZ>4whZq)>y}D2So*B$qPUcX0>b z#K`>&oTgb2xtLJ-PPZ~=W1ueDCx>Awi{ZhqKd5a^`(0b3$>HK652_3SnXwq(`OcVf zH8>x~Jg-d=5HjqOQVfxn5O+`}4U>Md;DniAfb^5Q6;0JZG{5@Ee_}j*275djC0l2u-wP#2&JmG`&;VzD;S#Tk~EelrEiZ#cMC*|f>w zr{|?j4z-?>INbnas6mDDztD|&@c^gm2Tb+1zWYkY6jX1Vw*b3QgV6{dgnzEm!fPA| z3|Y==I5=2WmdloMfWyk()I1CpLN)VH*HDD0lvQ1{FW`y?qurNu4MsKQI0EGor`nLe zhtoxPvn=dBaLJSs3hL9Xp}C<(3@?f*nb=2!7{{4t)lI6UbO&3|7r*X|GmnSCCfHR- zQtde3;hBD@P1B&189r5i5yG`_R1!Uw!*1I{owOuYV~h=x_1%H8+Cht$741U3+cvpN zQ!mJOI*r*zW0?8A@)Fr11exZR&w>kxdERtiIj{T7B>i%a&N7N?tD0N>lKoarTm6zf zj?2e&G`9iQ5nLOtiJZ3PCHn*}za~6pi0LK!L~aA{c#e-tYk$dJz_ryJu+QYQwGmsm zpnP06)CL*ia^{+1&9SY4a!0qOm5+@zjmTNBYQdgB`8hiur)d{4>F%(LWMdY^$lmK5 zW{k=_ZRXG^>+QVZ{nnxA98^uOIJpr+P%}^3hZqNE4k>>%E%{&!k_S2>5PQ@<6swvL z-6tLXG#9qlQ{l!^Jdo{qcv^z)7$Nd6n}F>UJ%xfh>SJ9a)BSG*e@d zP_b0uBS3f!VP5`yzo}W9tIZr^9%mjA7$#@huQv`bX0*nchnU^A7wpu=fl%P7_XBg| z%|WgHa)^3}nHF4swI`S#lX+Ew>8B1J^6IH`!e0+3czZz_rW)!`T(ioszJasEjcH3U z3voehs<`;JK^OzbdiyK8F8_zrvv~lYrfg9&OqS+YrNWjK35BqQ2`mo=| zx#jAOXUbI@B}arPY;1CbiTuW)tEo@;!5~Ai_fh0@sf@=_`a>w(*Kk=T6f!PP=7ivb zf^nG2YrB^|CINFVLglp|P~9!1#)GDZ;r@hs4(?evp^Ddp z!zDxE{ultM$GU8@yY#K`=y|Hl1DBFhT(-h}%AyQCU5k7n@_ z@Or*oFkb7>9kPDP`{<7Vov;ztw4np|jg(1|(UY*dGZ1GDf%4Cez-?z5Rm9VW^Ik9KrOsK#*_qrX zogwd9W>u(caupa08C>p~VVnsZ@1+;H@{IWk-Qr0w$CYcGt}vwjzHWS|obRID#V*Y0 zF56~jrjf&vEbm%p@jbALG?yXUGb{a%a~eWa@`s%12&oaOa;71qL1?LyxB_LZ<1S+~ z_8=d2PR+UtBjXguR9r{f$3fN+i|bA!7lWm;ys~?;aY*@OWQ8tnN=@f<$zTX}O~SR= zH7SeRG|3oPJ_%z>sLZ>P5WCyO$qTy^k)0OVO>~Y&s16~$^EQN15K3^4GmgXH5)Y|7 z(*4+-fOOBgLUDcC6^5&2ovR<#%rsr(!3Lg(YlJ%vcMWb}HLrQ#c1}Y^nG3%V{;tWK zhDMlK@M#d30e=Jh{-D#SKI15-X;0=f4@}`S6XDZ{#BnM<1p@_*@-*sig1el;X%1PC zfJUbSlQ?ChdUzVAiOJzK|A4<8@uxsfiKF?qqRsCVkD)|}o7hH^VZ)zXUT6ChWvy|& zqZ5n!gYL=3$+_o>Vhps4R?9!Qlc&d-63q$bt!Y2Dak>OEb-^U1JGVP{`3~o3vt_(7 zF?&Xf}|tPb8V zD05J*T3+w&XN)tQE8^u^XL$B#bGZ4%w5Qv`j6=;_%-Kdk3^xfFColucPwZPW5LJpz z&X1@e3&MAxnWWcqMp$Z^qjI>|ZyI-{g`SEuil$=IAZ7N^$T{7-p{O-NnSFeMQd-N( zPtN? zLuFN`uv?9;;SnzCe^rpZHvcEYZJ!BwO5$=(IeaX`Ny8%y+_-+68kzqagD_ zlqtS7$UD^(*}v-0z>sVm;|y&b7V4jxa89hP;WhQ%QojKI6}SP$@MaE2&}u`pAs8he z?~E}7!Ebg3;%au%2)C*x)Udbfk83!a!;k?UyJs7*;|ZRl8vPY=cyNdB=MGZW)HaXM zZET>OF&Bf?n#CSaA1XiE8L&NU3JvjS+pYoIRKG8+@ss**<0q)4;B6`?aGM|nZR0U{ z_S;4!RiOp7vJ>0KFlEm&7|K&7w|O%Oz&_*O4h>FiR#guzZ|eH}56@((Mh$7@^KRc( zVg&Bdh#5#M?U=q;_k@$*m2CLJuC7zdbvRT`#cc(({3=evbvQ0i%iD3Dl{ZSat{ZDJ znoMV?+U=P?f zVTEYWpliy1q^{6R^7b*f`kySYtaF`7)bZNEDpD?&%L^0TX~ruczjeT+-|r7n4HVT4njr zZIipj*8Z6(x(WlrPC9!H%8A8F=$E!1R&xng+ai#(U%gho?vhM1b;5-YrA;%pW0aYk zo3L{6%G~&~jdR;Sx~dA_#swuL9}J4+bkSIqh8iXqCrqbCUDZuCwIF>$(OWC8DE!%8 z{xR9%MV@9%P@1u<`vvYxGSb<`!zQZ#LSQgbiH zIs~Y(sG@fu{BO9L=CYi!tQ0hGx9xMx3@X{pC$ugw2P6pXJJEsrV+wi@-Ihna{OWYu z7P(M2CYS9WIDq`4TW6jl%_z*{S4poHK4+nIrD%-K6_r}7MBf~)EM>KFIra?^a)_XA zpJ1TXv{s()9BAk7q_yZ^g@;el%Cnp)W3IN7lyIeUC*-C zKoN@RLq;Cy@EiF_$EWD$XHa|Up`7@36esS7yLAPx$%NaBu(p|(KevY%Em7vVdvHK# ziZS#z>XeGD?4otIR$lE4#FWS<1fg{`-WDyw(FV>xp#8*y+5>N)4J{BznY|2OJ=)Uj zZ&0;qMr+#Cm`px0XJqT|q>dAAzTWYXxiI06cE6SSsXsRcj{W6S`pUyARR(Wg(kH2} zKBj(bCHDgLEcMlNHK)7KNJpPZ9#fmDrMs_VHK)G2bxe#$mxbHhZiT zcyGF8ne&#+IxH)+*s_f`L}hApF#oQ|Yz=07+WDAL+_ooM!;JGxpLA%A+f5&Jgc#46 z4t4Z5Mpqr^2sX~E+Sd_e++Nkv5okPDwHM()of`K$qD=ElzVzEZip5o{tXu3K+G4~hy( zK$amQHc*HT)e{QShZ)I?VXjI)+KTHy#f%3jW;|Fi<4CU=4}lp+>BC37*HMS%X4pf# zhN_opBMxCQT@z~LeVnrf8>m)>)JLLL`ghjpETauCVlLNos&P~^-Vlk&_z(g z1Wul{=Dvj6+fox2;>4v`pPo?CK4?r)`?ERye=Amn+xgo{X7Ljv#yZ+j+Ri79_dm=h zU~8{Rk?&gb*R1d79f{;89BYh7sKc7l*8Uh)K~bimSZo`s-L|Bz|MAq_Ox!;lq>J2T zM&-TN`B3(tn7^N=%rfpAl#l?k4VM@2@!VZ-g>as~1cWAf(P72k>!l3lUb2@+?e~RS zCg*E3njkpMU%7&WA#KU%Sw-0q$};vAJNAl2-L@>8AIw8Xp=HVv++Cx%yK#5pu|LAs zxowpg_fNWJ8HcVbh1JnOI33g38cb#z;b=V1^Y-stoU?!2`9%jeLQ}uqF5+l>w#Ajg ztTRP@p|Z}TRijDbSj#Yo-`tsj(=0A_fr%d# z5WCZK(KM>68&i}^S#7IhcUHm1V8vuYWXHunAfl)$wpwQhM43PCxFtIm%iiG_n+i;^ zxJo8f%heb3H&Ku7jWKf`^s_E z8)HAk>8didF)F#jwanX>7vuSa$XyjM$NL@S=*u$|iFYJ?e`+DlV~MxGRf=6cg)Gxu zUlCcKYzuh}y}*)l}hFV^kFs5$9G-%?>jIRVOL_-0BxEX2u=D z-T&f}{Y(+=zHWNArx15vuK?;P#@*M8-yNkCqb9M?DhP;Z{%y zWL9EM;Nnx{zt=%=k+UFJU-y-Loqm2cW$-a>)c&wiNJwb^%DzDxu9V@$v=OK0W~*X< zs3K)GQ1-U-v$F~_`5uNHXHS^A6D`SIJiVs(~RG*B>f|vpO)t-!IRMU`;}3q zG-Y*^BL9a+Z=tA41KIyB&pmG!E57|?KPV-eqmLDBM$mMdgfJp3at zwCCaf3;qT88{j@ccs1tS=MerF;b-CRM%syg;Whm-sG_!{#U7`X{+(E}gvdi(Dh$>x z+n;#YOI)CinUtxLhdSw8I|-pd&IwQ?UACm4of16;#K*Q$X+!adkg9X%%E{&}c1}Ac z7tiiw!`LvW?_7DO=|z+%%p8}qjZ43hsv2+Zm!5v*pDG<@+pTE{ripFC(8@Te!qQ1p z)Hv0hV8(ocLoh$u8s~+`|M`&Dg=bPNp6L4A(!pb|SW=?R+F7-rR%?th^@AI6?YnOS4cPB7f@^UUu0=cMrCppJBrUefG5uggzd1?(PmZ4l8@0YCzFRbkxlv}(l5?gt z-i(20KBOHPe(xalvobQe-NG^KXg z1xM|)*sC#ZoL)j$)7)+Q6dPu3%pi1`x=umtwi!EVZVm%BD>xn7L>v$m)3J<7u2kag z08dX`sSg*9hQVBeTZixt_+3!! zmX*|QavrB!iP)IyOD^}R3Xh3@L#LrM%Fw)i*ye^(H3AQd=336(U>^h zBV%qCNmY3dYe?#ht|c5VCRwoWqRmT^JsfjXh${Vx5MDBbR{wQa{VPrsaLR*wo`IfI zGTd807KvTr*puy%*fVTv+<7%n6{Mqm!`VhuzaCX@+6%u^quLmNqF|d|je1hU5L!Ke`u66Nd zLykduvGg`xmOd>V$&ZzOEqz#Da3Js6y9+uxHcx&&?chNzM($Wsxarr90bU&fXIxL+VI??g{TPer{>RBgheeVv{@W$cXH zBcMDYa+rB+W9g8{`JuWi~Ay?Xvx$JdEPDUB%-vo=&!C zIy#xfFbchF57Wy^a=)`b^L&D7iRmrVRZ~LMlB&0=u2!|8t2~&!tuefaLh}%!fgrrd zZTraWQHt+W8zT4I3$@;aTC-83bN57=W+`=d))BX-;6_V4g~!b^UY(w|)$Xsicy^uN z*{AIBb^-^THU{wXJFy6A4>DvMRnL=s_$7b&uJ1h!ck7T{)#e_Yw!j7}TEBuGH2( z6DE71)m$5V-2d13!NtQ-2cpiCh49c*f<}s7v?XjtCmzJ+V97{;H%#!RNz*5b-c$u&7;{xn^rnE1n^VZ0)oy?3S*tnHfVHi-IEDEfCe`h3tZI z+9>qGQpIDp3U}C>Ha-?Cs5@=NZt1nh^AWh+-E{r&C?TxV7Kg`+W6QUd-yd-Gt4>>t zOVX{Y1;dZs($;m+2z=Eo?OXRH7?*Z?7|#a$2*xtdpKMS&Y`;32raz_QM|9fE&HzZ- zT7E1*bK*>SV)~h)oy%fnm5P*nrK8hU?rhrh^eR7Lw?ooCA2;9y2RF1n?fP-``A*w& zjwZwN`&7v8f?HC*a0PPja7(|x5Fh5S>D>N?gz{|_+x%ZU;jj&LOXD_YgMQ5=t=??t z@38&bRR=lzDQ@gfQjB$|bY*iq$Zxu&NNbAloI{#x-66b>w@$1@h!$K;MOzwpgyOoJ zBDU^RB|B_cU6g@J4p41R^KVC0VoK#>J8)8SrNe=zmFk8Half2aiNC{sOzncE4Q}-^ z$^Yf=1yj3p<>gUATe}qY%37hcQ`+)MhLGMVef!EoX#t%9hLiS9`WFLIetVfCbSL%IEs|p`ungr0Q37+C@s# z{eG4|CxfrZA-(?UxJj7~f5X>MZEHXzI8z;uL9y$n4IQK|ZTLQc@32ioQi|CY;P;io zHqIewUW*;B)(-p()dTJKc8CVf)xFoq0_huvdw?e!3M=@7N{H&S>Ek zyEJO2IPO`9Y)ZR+S^{OA!u8$h^%sN3PHz)%h}e)$RaaLXRWtz^ne9^T&Xl-&(Lvm{ z15Pe(4I=aH+|Z!7>!)WyK(;*v;eVgbLpZ}Oo!c2H+-{ey?_4{{ZuDPA6_|qys zB>vDXU3z_()^7W|B5|7%`8T&T=nWB(FDQ}sDUr{)CBqx>YCG;?Nwsh2BJH*^WYJV! zf=q%{O;^{1oIp1ByQO#D&_~#9sYn{@&HsH6sC>C^WQ7quv}wp5e_o5cVIJ^xB&l z2pn)pSKf?6;BT&`L4Q;82*tXjVf9;tRJ-(keH=s{LWlmLe49W26^5<@cH8^i(zW_g z(RSO;?pQ;B;ivKlIYrI4tFT>#9Re;1*E-B~jw}s-)rp~uD z0cxA=V^@>^-le<{XK$))&hQJm`yEd67Tk~TH2rhmFG5i0`<&)JxU%=9eFxHz;FPQJ z!*~?}som1JeG3m>rCE(lA)s*zb7`0(Io}L*3H})pZ_<8U6aE6D{_}qk}O>ed@ z7KEoeo5D^!!3)X9q^)0726Z3dG?5tZPk$JZdudD@2&_!!)fV}@5c#`9+Terew6V1 zG3n&@*}|*GB;60$!aK*BDu4Jz;d$`lTw>jK@g%&ajU5|#@<(0%o;SSlBd7T{+!q&7 zH*hr_oaRM1H{7k4IL+VTZU>zlf4L{T3*mOSz$=_)>XoMHS3eVk<8~?Pm&w8h$C_sU za?+2o7S4dy zzV764p!KUQrZWcDVV%F)v<|gA4*pM$mND`CIewJpgrM1hR0rYkT8o@{wj&;L`17f%Wr@hdo_)-)&YQD^&QX^T$jIC*a;7Q6=p(b-{! zV)gU}|A=3=G$!%ik{PsYoW$?rgI0enX!gO`ziyeG%#RaR)Zu`>h-92Q2%6m!)>je!Osz*oYtc=__e~)fUldJvxg&FHAYp^3H6q`LD)9 zeE%u1>gMn!_0P6%x~-e%Am`PUE&rUuXY!Fh+eYFka=KHDx2HagUVu&4eAH*9RX3M^ zQ;4jzem0kXO8DuFb@u&yB?KJnYB_R0f0P%dR9ZJbz-N>H{R5B)f53x$8u>FHWN2M0? zngwv%;10r>Q8po4m8Ht$jeVogx zt-#IbpKPOUgq+>JxM+uUbp@ZuU$MSh!N&~H+EB?SA|}rpV{u!5sl>zmS8U1M)`;c24z!V8+AMbqp1QA83tXkOv4&5y zlqF)|n}7ijeklB};NJqDvU(ihsc?aC{}_*X1^!sLFA#2r`w{N(i5Q>Z#>3qLSMZmL z+6Coe?Q$`FX>m=BIC6nly1cTie-M|Nmd^DLidBB%R53d*Yx=Yd3qqjei&Jm-iu*o{>>T2di1c2oC8Jr2Z__>WEIX& zPtD0mL(`2B#f;_4tHqky;@UECD#`<ErQesHGY#fYP&hLyy-;cXnFc(g9uy>I zPD34yh4~hWWOp;su}78$p<|&v@(czDP(srY@HTS>dZoqFE&tbcF38D4%h#Zt``S6= z#KQ;+#LTkd>e{rj;@bSO>Wby16$>hAS5oFH#5i;@>Rhu5(-oa2!_-U5>9UM2HR$CQ zGXK)syq6^E*Fhe!h35ZN-gqvNOP`;c&gIi(As&${hcn~xxW(}Oun1ZX|GpIyD#vFg z<&B>?arzwviG`C2@@LPPGl%L5Jvr%1W}(P>L-f&NuvICQJ*a8?-0l9#qs0C@rmO2 z3F7!9as0#}4pluzTUuuJS~G-E5)0CJ7?Em>SW~g8OkqZ4{QqR<5ur>ANH)upv!QtD zQp_gQg$h@i%Ea;1i~5i)_mtJtuBi5MBzic~4fo7X&&?3Cy!wt2XQ$@OnkG)wD}%JJ zLk214k9npbZ>E?vy`T`iR~c>47qjlkEL8ZGE%Ve|L0M%DOsS$2vHB!4WfX)s3q@vC zqN79C%(99_<+WhIpo?@|%zY~=GnZFaD*4PTd#K`}vKT4=qRV~J(=pqL9vaP+id=;s zg;0!o>|J7S6@A(%lZ7Qi87IWjWpU&63zm(>DB+p4{;Q|nq@z;rM_2OoQ&{?f^5V)x zWu?^o-o8X;qcntPEQ5XD<>?QYe-LFsC3B^q388w z6Z0OzilVT*x~!&r`BK!q-mI9S#}F{aTB@;5T3!Q{Z$wp#d8V?;8!-iW1!CHY+FGng z@>kT9BR*sKUn+^6C={h&6s)jf88U+k)wPpRe2+jT`OLDVWyL*NT)8+9x^RoLA^oY8SWzRUR+klvOrJ-gt&ie8 zMC+5ad~gi%?Wx#IST5P^7*aqnU?1<_Yx(|`)nwA#YUEDikD0>?A+dBm+ygh%U#h6D zBwer!g+-C(n^%&;b0*(MMw(cPg&SQxWmb&J*LzDmqt88Pw`%lvZ?%v$tf+wq%NSAV zaZuUk`|7B--`_g|_Y@5IFIYBqtdeK`@)`{AFocEG%a>s^rz!gW172*U=XyTGX z5YA1XS-1eCSIkIyA& z90>mk_ZxVAhP#Sz2i)_JbpY-gge%f{%?$WM;O;>9Pw*YMgV#*Eo!2}*gYTz#dImB? z*1NIH}rvUP#IQcr4Dd;QEi_G%MjoC*w^xybbpiUUHjwr)Q6~ z3~$Rlj_{MIIP*e$E8e180skAgN8#4P&A8M0)Oq1!@M&U9}V}buE{5=af&BKd0&F64`z&(!mf#p!6+&b<*LU#1T<52Y& zj@RJNI_Xhu;8z^ZmpIMydm=}jNA;(E&1tGYdl+t)mj}_@i->;`IPh%CvHu8(yui)3 z`u`vd3tKv$*F=H=Z-^vSwcp5{0!z)<-S~QG&kM>iSU_WNo-0XoQqv>%I%ZD50d- z`aS$xw&D-~Pw4qFQZm^KtNjr18Y_QM2)CN92x|W+0>^z)Y)$)7xXUl21m{TBn2W-2 zlBxEu2Td-qzVjpGY8O~flAp1FG94xqF0c-}D3l1b3#{*46h`^it2l0p5{~!VzW{k# z$6pa*H+KkXzw>~>l;vQn2rT@xz&ff!m@FifT1z^FyM#%l*4Nf@~H;Ht#d95BZM7`tdCq4biz-Itgl^0)0LJhwH4?D@49kcBU<-d z6k`430`Mt5nBx^8-tP#agKlK25l)r2thyq+Bb3mMd8o{(@JGLV9RHB7!U-Pz;&3cO zzRL3*KL#T+{OHJrd=-b>@aw@!G?#SF`qa|*eE z;7$fl1rEYT`QYIva9OyHVDOMW_+C;kxWu~k7nszy8*RT>>6UvNm@KZtID$stD^5 zr_hEY!&uL4yIAt`%`njxv6y55_(FH(s99KdN9$o)**uGHcJWRpFU@#XZW9C=)}K)!6dH%V>3Mb1kUQmS^p)dLM?}wNJ@0L z55Cq12V-DYWO$XVWiX{TGng{n!C<1l-W#WJZ}*Pi_V&T=GnfP(W-tjnVtrAix-IMk z6HRPIw^`4qRKs-TxAoR{1A{5~j@ztJYSpmR*ZagD>VrS&gWLMx6V{b#)$p)WOf;#X z(OY+`Rq?YI-o#8I^}SUyGniCc%V3gqg26;TrMIr~S4CMf{8UMyhj2KFIQ%@ubHw_j zpK7?Z-d`2HkeDwpbi&sd9Eic8r5BvXdF(1jGw1H$1s@E=^0Gv%nbfH z5p=v#O>+#-^`na8)-rVBf1SZkV-`;8%^$?Q?PIXc2vUX5CK=~^QC^*#3?{mIQg59j z8BBDM!Af;avOX248i#v5)_w59<}q~QUp&d$8K@d&sb%5|VC%Htqy?96pk2+-7l2Nm zZot%WqwIAIeNHIH(L$9?zmB0-BYhlHrPTq?1yS7%;+|m`9)bW`Ex8>$BH~>o-`Zx#6U(V1;!KEw)KW#hqGx9lXO#tym0H#pA`?OgbBVY;W z^l6bg)S*v695zmnr-*zAbo$T(YqR+beJ$wpxf1Hnl%5nU^w5z%BI?0F-!&=pGEnE* z!U*^r^m<0Y^T6v-Lu{MYGyE4or|+e(O|+MxlLGH6nDU1Lb|j#!;A#bVj3~~#WhA;% zr3~(mveT9l%>=54Ka-&oe?Eh60sjo(B!+)A(UttY8LVXzBp?CpQyZ8BTI^*3m6#-i zmNGV@D9F(72A%f4aSFFb!8r___~!w8@`nPmkbpiNqh}JV?UUdc22&HQy{ku|5~Qck zVEBx9A08#8&(rwuGSE}dWI0GjMqLMdIfb*}9W754?mz^6>%y0y75Ef`Nn`Quo(xF= zeM%1|dO3rMeuBY7zry67(CLF89)(qkjo?$h zh^3#W%J(yv6ga|QQlQN`Izkn~pRnE$p&FhzCcSs+BnDIJWCl~}qIBzIt!goU$@+#? z)np-M5R0EmnYHPQBnre7dfiJQ?As=k_Yr4iuz*9Qbx2P=$TtPAX6TfCU2kmtSE#E0 z#C~)d<^B0GTFWq=#vt%GFx8rGEZA2rGkO<4g~3$(%sx1$56> z=wk!9bf4NcDrhakKm|U}V8xsmO!N`ctXINR@e@;Tl9_%QQ#jDa1G95(j`c~ZgIb1- zvRKVv%3?2riGGN|M8CvfqRR{>I=*Lj!$66SC+u%v&@EibJv|Y`P{?2sFpt4RFJds! zw=kIK^$aGu%wVG18GJ7dhZiz?D-fL3gGs>a**%y99Az-kxt!i~j5urwxl#sG`dS9x zOT*zgHUfA{ZjXS)XgPW>wGQ#VZqdNdNdYH=DFgNNp7aWx!9!A-KhNDabF?8lx zKO2ZG1JO3k=wT+>eg+dgxUe@pnZZO~JG+Nog~HHVe7G2rJh$ogj0Ex`0nq?c~t z-a*6$hT$V%dQs9R;50D3FzFNU3oyMr>7%Q0a!M~!`sh@Eql`kN;E{WK6dVG6dcDxY ze{Vl79ubFcMD*iQfa$$MUj`)bCq@7XoHvIN2wclxqMx^39;zCyn{!`pHWP!1&3T`- zbCBv;{nbj)_=<1Wy99D?H8pJp$=g0KIVL8_nBdFuDWNhTCVxBN%=vfcAl&^nZhVdR<73 zQy&jMI!Xq^KndPvFxAL@1{2->V2?nei}QOh(F++&^f?SBdMSg4Ohd#{HUfApgDF8A zb0|mxO$;XbpC&&3A6nG;t-p6+Oh@Pr%<6jki-oPtBYFuAADkb)}mH zCSYI9lO8`Y>7j>(i&)T;0Wshq!CpgF27`&7!(b{%ErW@^n!!YWoxwzZo5Ad zCW08wF_;9XOM4U|dN6~Dj#KrgqE*?JV7lex{rL=g3d2ijOZ(tQ`rx&F@a8`Fa34IS z?1pX@W!ZD6CxROch3MTLEIMGgDlP{2K?ajTM;Lx8OeyZ&z{3ykw1WS98Yd#@jgC^z z(33&005&Mx)?>p}gDmDnJ?UqIz5&gjf1~4|br?G3x1GVH&yGI$vp)FuJ~#sRm5>ZS zWuFqxCH0QrO3JOPhN&i79)L2wpRaYcGrUVde+jr+5#`zRXe)YzKLL6ua4Cjc->_s_ z+(RejYZ?41_*Vc2d-y%AQ@f;hg1SEVy*^mCv^Rg!vfg-eAG~^b51ndPH2E;L`lR8A z8xbCy*$1nuddpV)eaPW}ox1Nkq4X^~zA&U3s zE6A8Watj$u1)I|cFYJSB8BBVuW-z6%>%pErv92dVG0|rjOaeABm;`KLu+nl2CVD-C ziN2S?M1TJV)_6?v@Wa+CI;=1U-=sE<++fCV2>PeMRE@sPTN^{C%nn(4T8%Pm>x0+U z^`<}5gFUq|Voh&`DShx322+N~kM-uy>4WS0VC~u-ex-J9VDAXA|3-wsW#6Pm>AQ9p;FlLB)XObSG=>q$@aDGVn1Q3ezJk_Xf7%cFql z$=(9a^uZZV_0UP+1qOd`lM>4ey&d%5fb~jlo(>TGG|8j3c1A~eFK7)yl&ogT{>%*f|gDn?sqJJEbm7ho76b38mFqp)hVsQ6Or`mZNS+KJ>~hH8rceZDzNW7o6>J$=!7S2?BOR|?!_=dPa8*W>dg?%V5-8l z7kblA^}*jVxETuhe!gk$dxlO5jN7cp^K`rJ(vV+XE4$8cl4&uV=&Rp45sv} z8BFvoJDBAHMXbhqhVbxHadoH>-_K{o+Zh2?&|d;3HeZwNX6U;?cner$=$|q4k3j$2 zf`}-F;R3^;DD+xS3BRSByg#2pbqt;OWd>7;uQ8bDBX;)4BYIXG6G04x3?_y-3?}*x z1{3{tAGQ|jRk41=@{ILUy=wT3`qz81qG;zEJ^1&V6h-}J51sg@Fqm>mv5p?EN>I)v z>-&)2?t|aygZDEy@Fvfu9A)St=wATSX_aqyKi5O|Ojzf8BDkqY@Si>jWQI<GXfKv=6`uRTi)Slkye_}ADAJf#Et_Swy?`?t{hJg|UH}_63q7RN^ zF!4vc*PB0*!RJurzMpTjjed`ruttn_QJ6Lc^~y=7;(5aKGFv#e%zbBiNQ*SpY*10XE4#vv3Lq1wD_h8 zJp5GLrzoNC=j$ftnFRj<{Xf7s_vZxb_{pkpOBbT(vnV8kj>!Y?j946lsZ~e(tG7<0 z`rx=eIKB^luMhsd2YY64-I3lIlrVT86!QIiWqO^V$AJC@a2%L?W_E<3PX#>*A6Ox~ z_TBJ0dV`J`JP!=?^%dV^2}&*BU=TQZtS%Y?h)x3NaTfZhi|59I=P|bn4F597`>~I_ zYYd%g)ak>%bDzVX_SAp`0p)mMfVLm>yv)nM_Gvx0I#uIwBMG05VHG&Vq^ANn8B7^+ zpY_Q9IvjF=OA(#wtFk!^!{3o%G8FJsndiB=QihIab2$2zjWYIG|1kw-^eOhkIY>hL zbkg}fh|r*t$RMfGjsVNh*;k3mV8MtaoewjZ=tufsnZd*#`T319dCVxfCqh}5?Pai1 z>kK9V$wzMp;7&uqt56VQgQ76;=QDKTf1SZZZ@7WI3&G?sdIS=~ls>qW!TYEZfwzFq z*9bo`bVXqXlLB#H_Le`!hkXmd9A5-PQi2Qr?n!VJC7i?9F=e1`>!B0>90p&4ojYK5 zza!q)ah5W4;y>ZVuI=$uPJ3^qePKJIr=|h_UH4J@my&Z3Xv4a7&P&Kk)x) z>s;V;EYrvTjCW|9wjs(P3=M`HMh(&OYcN7NW@MadWG16#-^_kKtM7eX_xZZ7`|v#P{bZ1lHKz5844Z2QFp6c1GX6X_}?J897Acktv-c-vn5+008OqP^?7^bw z7w?bV(T%62zaq1LwsR+{xYaOp`FWo1oH8YEfxMiy4%#-DA!aD~waDeCeLDUeCl8$2 zJQv{Q5Tph<+)6+>Scm_6+vFD9|KFiwml~* zxfHNeaR!QV5u4VZqvZ8vYdKE^T!ZFAaHh(jT*)PajfzL0FSoyGcXU9>MgOScGW5TM zWytsykga8%!-*YQPw^u}s1LtyBk=DoC6^2iD}Dj}Bd{*ec_kP9=$k~SOn{D% zt`sCf8^s@@FZbJN4_2(?`;ebvNa)$HOv(R+T<*v-@h1c;7^QFqh4Y~?^}do{K)xM5 zgN<7on19sOND5r8IHj)Vt%pYu&hKD*;pJ1mbn3qpvO$Fph?xJ$2sy0elH3W!X(V?N z&QrUqHeb2)u0zhZz~vJQ@#RFelHXVto9j+MAC+O5QjiSiDJ~>IxoA-9?@)5l->dju z^yN~*K`Q-v$6Nt@n@>{#i-^z^KC2>}RdUIo&T*H(di3kUMGR8gVxyE?^j9jD7F}_| z#s7>Ci+XRf_X0;VqmqmMR>hSr^*p(*aiY=p zk8{(%P0S!uu@oRru_TzUSmYBGi@a2^$V~vjxQDVdiA)XlG$ssNcaakfqy?YV^ycr?BFU0qU z_<;~V9O6eq{CEP>)r%7XSgwb7Nr;z)ctwa;hWN!0uhA^i`&u0UzZ~M%L;PllH-`8v z#n)BPrJI%9cXgksfWbuQJe)%pW>34@J)q=bRRt-DHZf7L$hRsMt9)Ov$PYU(%|ON z6*Z^Qoq~J|oJA&f<~gP04w-p;ddjS4RA9tvy~c3K@!MSED0=BEb_&QMLxe)?2dt0Nt4R}^JnL(g|%Gfe&K67ZeM}^ zzm#0`Z@9$i_pCray-r*{%(se67vK#hLNQh$J8L_%vy^-o;kk+>!#u?zFRBw8fh&mS zSCDzJ(v`TSA$}ml3q$-=h}VR;+;K1jwz>d+3>^sZi4c2rgu`Z zG8T(+33_1S5pM+%VoBhH zVv(OxEb^TCi5U!1Eb@#7iSlg4{^ZxEVWPq)#gf2|%M<0hLR_g)qC7>h#P6e6D$vhy zFjxk;0N*oYH%?5jk77yijABXftYVR;HA#%09^w^o?i>t`WAT7s{y3*N1DlYG`Ljt_ zjB*fsePJ*g{4JI0*7GxXKi)~MZQ+C z$Tuq%`BuZ&f8dA@hZK$~ZcB_W;axH^eqmEmAMbb>|`Ea+7Rl)gt|r9I-dZvW%GT2$Ab&^_X946_87WjfyW2unFd| zTf9rQDtR?tBbV!P^#i^GN?srNJ$&g#Dj2mh+hL_}1qyO6ZZ(y`*Gk?Ax!j?vTj(1l z?~7dS+12vzlzcRDxs#U>AoUMwcupydL*Z9A#}vRH0UccvON(?>JPUof7+7bRt>g=l z%VoeBD!l?#D9C-t_JD?O!+LVxvUwutd%3eJL1}?=ilx9cu5kqxd2Pia&sHq*oNJQY zuRdy%pB%L|=hP#?6S-<+i?N~Bp zjw-p-IE!npZ4G9lFJH0xodA3I(ND=2AeU>gPnirQer8V>e;M-VEF6Itjr9YamBNcC z$bHy$^&|=8E4j2tk>c0Um%Frgs1{kMt}&puunR!T1OK9TJgIS#{St^I6IVXAH{`TJg>oMJ3^{^7q`TXD<=I)UcXr1 z@!ViLPsNjb=PUk%d>6nOgxir?uH@2)ClpKkQ;J2N(%ZF%$ZI4rx09&=iI5#zeTO-c zE>I$gTclW2=O`BWJjEhksaWKzLR_v`^!GXrmcO650N-nzQ7j3bRV)dl_erd5hGLNq zQY`Uv6^ndEoXuoDD;^LGvc-xe!e+&i;MNdl^mPRi{ZWcVKVPxP7hATEP?y*MW6o<8 zO9HQk_^lAXAL7Fyu5p7aprqH%FwQ)vaX+OXC0wakB5Vxt;Sg83F)@Qo#gg7K#YeIC z8jKU>-l*?}&Je&QK54;J6TE=7N=1+a4l9-d9aAjw8vPOrkQ(CT{!T9Xt$p?tXMKQ8shVcMZfdF z!~$i9xKy#|AA`+L>4E~B8W_7{5(|9EtjD0l#QG?f$b%G%ey(DXk5Vl1e8nO!QY`Xf z$L6L97vL{v=PQ;3mME44mMIqbO2r~yrC8*zDi(QpoXu+$o8tkddlX9oI}}R-yA+H3 zfMSs!RxEOFuxsIqv5&5Nv+z}dlj?I2BoUI8f<%}xIQGr>NMk1fCx#$XLw=(wd{_@gesH??DmC4qWFV{es2T1WR+P}uaL zuCS7LXT|>t>3;`LRE7N+W=miyQ_cGw=AN^(G}4jERcXWu#mS>yDgnhRfy>|`#ZBP? z#hGwdSo+Sc%DbupO6BquO9hHTd`Fxw3*1$4JRs=$Rk2M|xIA$2&4~?Bu2}NfdvomC zyCM%qyHFT(o#%-tMqF>-RSQjpH0lo#C zP%IHnDVD-#<+%(+-dVBVh>HCT6^ndjoXvn;6%Pm+@tk5w;Jjiny z;~aZ^a-?>2b_E@>Ij$45@7Y^i9!o0F_ilCaRmhXzV)C*cIZw%@O!DC){^5@~DZ3R9 zi3u>1l-~$tPQiC_a}=*7gSl|FL^lSoQOP9(`GOMv@K?!u3;peISD#FU;_|$po4kA% zL0TzAu_RbSvB>Kv7I{6zBG1l`H7Jc-d+9$aXe~a`^uMKiX=ILyBWYyv)g}JnFDPW! zF|h_y`5HmC3KzZGLM&f#@}m(?y{f8=Zqa+QL#?nK46{GSNoFIb3vTHa4_#|qN(zv<;i z2*zf=aq;+p8<&rI*#vu4kiZHhmjawpd~*f*1w}4BslXh?whN<=)bS{feQ5HlVdjhWm+CJAF(>16ePhN<6VSxI)c?#a%qucipwj|Kdj`U zf5Nc;yN$PFz3z#$Px?4Em47-NBD(t^Sc>;8>^=l`k@tH7r+Br~L>@bIPh>zebAl~) za8x=!#A`y#=i*Jf1o}^ecx#A@CMN1Xn#fVF>7+!3fg$cPIZ=K~h^L15$q;`Z;>)J! z^w_K9Oo`oaFZ0gr2?7phJ+?{yU$tPR5|Td?;*}x(EyRaPb;e9IQxiDqy^|Q=od|L5 zyAvXKeL`GwTB7{<5Pulrv@)$vOWaWwd+OfEGdF#nAn?53Lfm7zj>w)p#5+Q~cY5rG z8NALUHysBp8rY89bgcQd5Z@W%Cqn%6%*6QPW`{W8LRDsVxidm%D0fO|?i}LTAzl>X zXG8pQh~;-uE`3^9UR9rotsO}a1TTO&#o(nu&GOQqW_im{v%KY~c}0l-naEL3KH#b& z_;26%0YTUJZ|7*1*LyU7p2#yoEZ>9G`j;m>k>T-YhlBum&>UNHA1$*s6uwJsro_!2 z4)G}t&~!%U6=$SzpW4g8?=@>P&-Q?qX9PcK79IvSzb*K^Z8Nwi4I3HWIQTiGD3qbl zv;&{7^ms@KKL*RKz5L_V;=pb>{~@1P&45L|4nE!?_^yxe2k=l%0BaceQTV4TgP+uj z{Cl`2KPZ(N2-j#D<;QX3f{Ps`pkY%^47tD|-zcJ?QGx^ zSZpZO&yP2=juG(Xy);nw1wWva4BmlW ziI4}MzSK(@Axs|@z*}Ant~C_-G`Jg=f@B!|h47eqNhvoQeh!{Wde+9u;R|^@38jUi zlE8KXYW8*t2jC+eU4qBp4XV#Cz@t|L_a;jG+RYQkb#u7m1Fnm%g=Z@LfpD)!{L6Ks zehqIS;Aysvr0etTaD7HWrr`;2q*3r5iDdW?{2}@?jQk0>>8;N3Y=Rpqqx~5Ec7~VI z!svei-&!|`dmS17lHd;n^kR)}9Y+$HB{Z3gW09vyOacB1vh<3gyryRx

}5q<@pdX*cudqiHzOL@S^ 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 GzyA+a$AMb_ delta 58462 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 Ih@|}aKeF5P3IG5A diff --git a/STS/Core/Src/yunhorn_sts_process.c b/STS/Core/Src/yunhorn_sts_process.c index 81454dd..1ed3b80 100644 --- a/STS/Core/Src/yunhorn_sts_process.c +++ b/STS/Core/Src/yunhorn_sts_process.c @@ -131,7 +131,7 @@ volatile sts_cfg_nvm_t sts_cfg_nvm = { fhmos_cfg.th_head_level_height_cm = 70; // default 700mm fhmos_cfg.th_fall_duration_potential_15sec = 4; // 4*15=60 sec, 1 min. - fhmos_cfg.th_fall_duration_confirm_15sec = 8; // 8*15 = 120 sec, 2 min. + fhmos_cfg.th_fall_duration_confirm_15sec = 4; // 4*15 = 120 sec, 2 min. fhmos_cfg.th_motionless_short_15sec = 8; // 8*15 = 120 sec , 2 min. fhmos_cfg.th_motionless_long_15sec = 20; // 20*15 = 300 sec, 5 min. @@ -144,7 +144,7 @@ volatile sts_cfg_nvm_t sts_cfg_nvm = { 0x46, // uint8_t fhmos_cfg_1; head level height cm 0x04, // uint8_t fhmos_cfg_2; 04*15 = 60 sec, 1 min. Fall potential - 0x08, // uint8_t fhmos_cfg_3; 08*15 = 120 sec, 2 min. Fall confirmed + 0x04, // uint8_t fhmos_cfg_3; 04*15 = 60 sec, 1 min. Fall confirmed 0x08, // uint8_t fhmos_cfg_4; 08*15 = 120 sec, = 2 min. motionless short 0x14, // uint8_t fhmos_cfg_5; 20*15 = 300 sec, = 5 min. motionless long @@ -2329,6 +2329,7 @@ void YunhornSTSDurationCheckTimer(void) (15*fhmos_cfg.th_occupancy_overstay_15sec)); #endif + LED_RED_ON; sts_lamp_bar_color = STS_OCCUPANCY_OVERSTAY_COLOR; // APP_LOG(TS_OFF, VLEVEL_M, "\r\nSensor1 overstay set color to %d color:%s\r\n",sts_lamp_bar_color, (char*)code2color[sts_lamp_bar_color]); over_threshold |= 1<<0; @@ -2350,6 +2351,9 @@ void YunhornSTSDurationCheckTimer(void) fhmos_data.state_human_movement = STS_FHMOS_HUMAN_MOVEMENT_NO_OCCUPY; sts_lamp_bar_color = STS_VACANT_COLOR; + LED_RED_OFF; + LED_GREEN_ON; + } // tag for upload states or not @@ -2489,10 +2493,11 @@ void YunhornSTSDurationCheckTimer(void) case STS_FHMOS_FALL_STATE_POTENTIAL: if (over_confirmed_threshold) { - APP_LOG(TS_OFF, VLEVEL_M, "\r\nFall state enter Confirm state .....\r\n"); + APP_LOG(TS_OFF, VLEVEL_L, "\r\nFall state ---> Confirm state .....\r\n"); fhmos_data.state_fall = STS_FHMOS_FALL_STATE_CONFIRMED; fhmos_data.time_stamp_fall_confirmed = STS_Get_Date_Time_Stamp(); //uint8_t datetimestamp[8]={0};; - + LED_GREEN_ON; + LED_RED_ON; over_threshold |= 1<<6; // upload state confirm message @@ -2517,14 +2522,18 @@ void YunhornSTSDurationCheckTimer(void) // do nothing, wait for rising up or out of window or door open to release state // if (sts_fhmos_bitmap_pending == 1) //APP_LOG(TS_OFF, VLEVEL_M, "\r\nFall state KEPT .....\r\n"); + LED_RED_ON; break; case STS_FHMOS_FALL_STATE_NORMAL: if (over_potential_threshold) { - APP_LOG(TS_OFF, VLEVEL_M, "\r\nFall state enter potential state .....\r\n"); + APP_LOG(TS_OFF, VLEVEL_L, "\r\nFall state ---> potential state .....\r\n"); fhmos_data.state_fall = STS_FHMOS_FALL_STATE_POTENTIAL; + LED_RED_OFF; + LED_GREEN_ON; + over_threshold |= 1<<7; // upload state potential message UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_LoRaSendOnTxTimerOrButtonEvent), CFG_SEQ_Prio_0); @@ -2538,21 +2547,30 @@ void YunhornSTSDurationCheckTimer(void) } else // sts_head_level_low ==0 { - //APP_LOG(TS_OFF, VLEVEL_M, "\r\n HEAD_LOW_LEVEL_STATE=%02x , door read =%s \r\n", sts_head_level_low, sts_hall1_read==0?"Door Closed":"Door Open"); + //fhmos_data.head_low_level_start_time = 0; fhmos_data.head_low_level_duration = 0; fhmos_data.state_fall = STS_FHMOS_FALL_STATE_NORMAL; fhmos_data.state_fall_released = 1; sts_fhmos_bitmap_pending = 0; + over_threshold &= ~0x40; over_threshold &= ~0x80; + if ((last_sensor4_state > 1) && (fhmos_data.state_fall ==1)) { + APP_LOG(TS_OFF, VLEVEL_L, "\r\nFall state ---> Normal state .....\r\n"); + } + + LED_GREEN_ON; + LED_RED_OFF; } + if (last_sensor4_state != fhmos_data.state_fall) { sts_sensor4_changed = 1; + last_sensor4_state = fhmos_data.state_fall; } @@ -2651,7 +2669,7 @@ void YunhornSTSDurationCheckTimer(void) //if ((over_threshold != 0 ) && (last_sts_cmb_result != sts_cmb_result)) if ((last_sts_cmb_result != sts_cmb_result)) { - APP_LOG(TS_OFF, VLEVEL_M, "\r\n Over Threshold =0x%02x \r\n", over_threshold); + APP_LOG(TS_OFF, VLEVEL_L, "\r\n Over Threshold =0x%02x \r\n", over_threshold); last_sts_cmb_result = sts_cmb_result; UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_LoRaSendOnTxTimerOrButtonEvent), CFG_SEQ_Prio_0); diff --git a/STS/TOF/App/app_tof.c b/STS/TOF/App/app_tof.c index 51a98d6..ba7506d 100644 --- a/STS/TOF/App/app_tof.c +++ b/STS/TOF/App/app_tof.c @@ -40,7 +40,7 @@ volatile uint8_t fhmos_fall=0, fhmos_human_movement=0, fhmos_occupancy=0, fhmos_ volatile uint32_t fhmos_fall_counter=0; volatile uint32_t sts_low_threshold=1500, sts_high_threshold=2800, sts_occupancy_threshold=2300; extern volatile uint8_t sts_head_level_low; -volatile sts_fhmos_sensor_config_t fhmos_cfg={70,4,8,8,20,80,20,25}; +volatile sts_fhmos_sensor_config_t fhmos_cfg={70,4,4,8,20,80,20,25}; volatile sts_fhmos_sensor_cmd_t fhmos_cmd={0x0}; volatile sts_fhmos_sensor_ambient_height_t fhmos_bg={0x0}, fhmos_gesture={0x0}, fhmos_net={0x0}; volatile sts_fhmos_sensor_data_t fhmos_data={0}; @@ -222,13 +222,13 @@ void STS_LMZ_Ambient_Height_Scan_Process(void) //STS_TOF_L8_Process(); - APP_LOG(TS_OFF, VLEVEL_M, "\r\n ----------------------" + APP_LOG(TS_OFF, VLEVEL_L, "\r\n ----------------------" "\r\n------Threshold %d cm--\r\n", fhmos_cfg.th_gesture_mask_off_height_cm); for (uint8_t i = 0; i < 64; i++) { /* Print distance and status */ - if (i%8==0) APP_LOG(TS_OFF, VLEVEL_M, "\r\nPosition from Floor [cm]| "); + if (i%8==0) APP_LOG(TS_OFF, VLEVEL_L, "\r\nPosition from Floor [cm]| "); if ((Result.ZoneResult[i].NumberOfTargets > 0)) { range_distance = (uint32_t)Result.ZoneResult[i].Distance[0]; @@ -245,28 +245,28 @@ 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])<<(i%8); // if (i%8==0) APP_LOG(TS_OFF, VLEVEL_M, "\r\n"); - APP_LOG(TS_OFF, VLEVEL_M, "|%3d ", fhmos_bg.h2cm[i]*2); + APP_LOG(TS_OFF, VLEVEL_L, "|%3d ", fhmos_bg.h2cm[i]*2); } else { fhmos_bg.h2cm[i] = 0; - APP_LOG(TS_OFF, VLEVEL_M, "|%3d ", fhmos_bg.h2cm[i]); + APP_LOG(TS_OFF, VLEVEL_L, "|%3d ", fhmos_bg.h2cm[i]); } } - APP_LOG(TS_OFF, VLEVEL_M, "\r\n\n ------- Mask off matrix \r\n"); + APP_LOG(TS_OFF, VLEVEL_L, "\r\n\n ------- Mask off matrix \r\n"); for (i=0; i<64; i++) { - if (i%8==0) APP_LOG(TS_OFF, VLEVEL_M, "\r\n"); - APP_LOG(TS_OFF, VLEVEL_M, "|%d ", (uint8_t)fhmos_bg.maskoff[i]); + 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]); } APP_LOG(TS_OFF, VLEVEL_M, "\r\nmask bitmap \r\n"); for (i=0; i<8; i++) - APP_LOG(TS_OFF, VLEVEL_M, "%02X\r\n",sts_mask_bitmap[i]); + APP_LOG(TS_OFF, VLEVEL_L, "%02X\r\n",sts_mask_bitmap[i]); #endif @@ -309,37 +309,37 @@ void sts_generate_fall_gesture_map(void) else { fhmos_gesture.h2cm[i] = 0; } - if (i%8==0) APP_LOG(TS_OFF, VLEVEL_M, "\r\n"); - APP_LOG(TS_OFF, VLEVEL_M, "|%4d ", fhmos_gesture.h2cm[i]); + if (i%8==0) APP_LOG(TS_OFF, VLEVEL_L, "\r\n"); + APP_LOG(TS_OFF, VLEVEL_L, "|%4d ", fhmos_gesture.h2cm[i]); } for (i = 0; i < 64; i++) { - if (i%8==0) APP_LOG(TS_OFF, VLEVEL_M, "\r\n"); - APP_LOG(TS_OFF, VLEVEL_M, "|%d ", fhmos_gesture.maskoff[i]); + if (i%8==0) APP_LOG(TS_OFF, VLEVEL_L, "\r\n"); + APP_LOG(TS_OFF, VLEVEL_L, "|%d ", fhmos_gesture.maskoff[i]); } for (i=0; i<8; i++) - APP_LOG(TS_OFF, VLEVEL_M, "%02x",fhmos_gesture_bitmap[i]); + APP_LOG(TS_OFF, VLEVEL_L, "%02x",fhmos_gesture_bitmap[i]); - APP_LOG(TS_OFF, VLEVEL_M, "\r\n"); + APP_LOG(TS_OFF, VLEVEL_L, "\r\n"); for (i = 0; i < 32; i++) { - if (i%4 == 0) APP_LOG(TS_OFF, VLEVEL_M, "\r\n"); + if (i%4 == 0) APP_LOG(TS_OFF, VLEVEL_L, "\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 = fhmos_gesture.h2cm[2*i+0]; l4 = fhmos_gesture.h2cm[2*i+1]; fhmos_gesture.cube[i] = ((h4&0x0f)<<4)|(l4&0x0f); - APP_LOG(TS_OFF, VLEVEL_M, " [%2d_%2d]", (fhmos_gesture.cube[i]>>4)&0x0f, (fhmos_gesture.cube[i]&0x0f)); + APP_LOG(TS_OFF, VLEVEL_L, " [%2d_%2d]", (fhmos_gesture.cube[i]>>4)&0x0f, (fhmos_gesture.cube[i]&0x0f)); } fhmos_gesture.head_level = 0xff&((sts_sensor_install_height - sts_fall_head_position)/10); // head level from floor in CM fhmos_gesture.head_xy = head_xy&0xff; - APP_LOG(TS_OFF, VLEVEL_M, "\r\n Head level =%4d cm, Head_xy=%d X:Y = %2d : %2d \r\n", fhmos_gesture.head_level, head_xy, (head_xy%8), (head_xy/8)); + APP_LOG(TS_OFF, VLEVEL_L, "\r\n Head level =%4d cm, Head_xy=%d X:Y = %2d : %2d \r\n", fhmos_gesture.head_level, head_xy, (head_xy%8), (head_xy/8)); #if 0 for (i=0; i<64; i++) @@ -352,7 +352,7 @@ void sts_generate_fall_gesture_map(void) #endif sts_fhmos_bitmap_pending = 1; - APP_LOG(TS_OFF, VLEVEL_M, "\r\n Fall Gesture bitmap Generated\r\n"); + APP_LOG(TS_OFF, VLEVEL_L, "\r\n Fall Gesture bitmap Generated\r\n"); } uint16_t MX_TOF_Ranging_Process(void) {