From 686bc48d61e60e334d1bcf6ad989556e8551148d Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Thu, 19 Feb 2026 16:33:10 +0100 Subject: [PATCH] refactored m3 vth --- .../bin/mythen3DetectorServer_developer | Bin 306076 -> 306088 bytes .../slsDetectorFunctionList.c | 255 ++++++++++-------- .../slsDetectorFunctionList.h | 14 +- .../src/slsDetectorServer_funcs.c | 85 ++---- slsSupportLib/include/sls/versionAPI.h | 2 +- 5 files changed, 182 insertions(+), 174 deletions(-) diff --git a/slsDetectorServers/mythen3DetectorServer/bin/mythen3DetectorServer_developer b/slsDetectorServers/mythen3DetectorServer/bin/mythen3DetectorServer_developer index 3f838315f6154e5ab9a1f0d4cf68f4c7668a97d7..33c2903d57d0b70fd411a0b44cd72667a16e7a77 100755 GIT binary patch delta 77360 zcmeFad3Y4X8a~=pnS?APnE;cS>%C1ajZ1{${492?5T}d(XYkbN{I1?YF<$x39jc zu37qRmDS%?c{Y`mJeM{s_)w4%dg!@1W5d1+QhvWA+-A;}1@V1dH?OoLGv4s)%{zmm zIIrAQ{i4!UKKtvqit*@*Wr-EVY_=~$&7xWhG*xp&(-|wO#B^!zh9_xvIqL! zf2E$o`{QbQ?b_@owM*^lz!PdWW51~DYY${s)TlZ=*sn-va<<3Y7#xbVH5!3!=86LW zjpFPARyu ze(rYH)7eUE^e)dU*~;$tT;aoRy^+pE8fD9?>-Ha$+jcuqFrZ9KuTVQ?D}BEJ-CjPb%~PP%@pRo zqf(&oNYM%Ok`{q^GJ*r&4^^y|dQ8^bT?ky(7M^8|h9bQE!7^ju7561S_EZW%O^3ln zD2gqly6?fcwvxoo6JgS$az}{%zq5L^UVIgIk?r%}l z0`l%$6B?M@Tr_uYIpm0}p=@8DX|;>~j;Sif>BPy2{K{|TZQAX~#D z6cJ7`NA^=WQxYQeRL=~R>F~6utc1iU;Fx-$ey_+wWk+l^JV$NSm7|vG>fH?z+T<;? zhH%AKxuV=;A-zgk?9F-jy92`^ZvZf`Ip z?C0VVi}NwX_KRAOm%_r;0eQ``eg!uf+==26+tI?35Gw}0qs1lpvuC1;W?C(W%LH~< zDyuv5nuYxa>8g-EsfIL6VNq&E!)9?m7MHZSy%S4x~y6CDi|%RDJ%3omnKJ18ONaJ!R&xv;IVQA zzVZt^9w4y)NL|(XyhYvDyl>EVv0}nVRJ$z-z5_*NN%arWyU!OZ`QvDK1}{6j;k_O6 zgm3t!_sR@)Zi_tRe`kw(gGy!CX=>+!PH`s;o#E6%nH<>}{-aKDrl_A6R1*`1cX+X1 z)k`Tvvo;4$?=cPU=gC9ol{ZC-8s%z2t_H~sWtG(UzIo_5UHYbT=ZEUtuAS5!ecP&a zTUu??G8A{?5XFYs+IC5FyD&vcXzH&m?_uNBg0|Aj^iJc{s{>-yv#omaYIe*W$x)aE zMH8@$mBp)--OjVsq}H`~a^UN6dew^-f((S<5k;cSThG$8)D1i`>_TCQ?P6hx;#Tjz zBd3aIn;1dUP{`FC_P+{C-QnuuJLd5WyE=ASQV6B4OPh5fuPMFK)ugtmdr6NN2Eu0!dQacXS8k+S63`&_wl@j+hD6s~u}2S=pVsBf8DgJJn|1 zv~<wZ2Yz64b$WHW5WIz0=FuA5&P>N;1oXWbwK@ zuhmm*my1iBTksz}#15PhjX4S0wU~aDJ1YeaP`%K`^#M$2E#7aW0St4M9KgEZ{oEA? zgnv1}nfq+DN=6mMx*JM|O>rNzUoL}RH?xe_>RT>3nH~C! zQiM4k|JB64X?+)ptdeeCWY_hAKT)QCx=Ka1q+al+t`}HR5hfb0{epi$v|Kd|h~VYa zBHyb~ciCfzQD#)qd*#y@yppTf{=lq0Qh^o)1>+BBMt`Uy?#dPodO**~THTF2EETcH zaV!F3NTkF52gVR+Wzxgn<#}jutq12fA&UJEXc%Jl$A5tj04L8cM4;5^8x>k3XhzwG z+SQ(2&uXadUcr2UUCo`I1kFLJidOgC4Hes^;*#BEg-mH4p>FS$#63sU?|OCUp;(|M zUex=B=ODyn5xGh&;V3@wjB2s}jjBWyNtJ4e=2y#>YDi18sJc@71*(P@?dnt~mPoy; zVH#W8J3-9y`Xr=&);lH3_mm-9$?n39zDbg%B(HRApOpHL4yhs9oWIT{oh?>&iVUz8?0I$BV0-d& z^%Q%EyF`wC(7`jRqN_!DN@QIg*0kJ#JYGFDxJJZ-3UZ2;ovA3Qb4YBs+ggHBPR8hk zM_WpiTa1iWF&|!|BM#8L^mL1my(*$E>M)IGT~V1RPuZ&RU*LKcwCZo5jz%fh4k)b@ zb;*#eGTTd#BVPLnpGo)Nh97 zS5tnB&;=rB4RaNf<$ceksdo%Z#oBhnuqH8?-!!!c6_@VjP9{pr^S!!$SOVLxelqL{ z9_dhf46j@Dnow*GRULkWrK<%~Q`F~1)C$US2!$|BJv^dQtT#6Mi%whG_#UoQ#y!y__<}oPtGM{E{RiKqekIINSh7uhsRsghYx*thQ*0xRM zaj}=K9J{pXH$#T1nLZWG>h)LNvl2yNU*7OcKMCbx>S zPnZ%SW;hg%9n*pGjmpQi;mQ@Y!`MP?=1Fdiqe%iIUOgK!DJD(Xaz%u-3w{#%5Y}kH zC<4V}71OD2oO*wef1KL6NFS%J6pKa-Tb05rA2`IK#O05h8jyE77cCXDr|lPgn$Ezq zB&KS+oU+gY51Zs$LHma+RRv~VJx|WFCb_1xq!lInTbWvYOoFSd#Qsa6oCw9rQ#i{{ zVnm)ZbuZbgOcO|7sEK3Q@=OrqW}@ZVworL4q;l9B6FtaytQOoC#? z`xAP4B>Z5_ny)5(Z?7SICNsCgxhGVzvWMcWka$+iJ7@J(p4MVLPf*(m_;4;a3gkFef8lc>Zem=(b}%MN=4C%=C}gW zd~zt7BJd!Qf?&deM`IAGK}bCX#a&opL6Lj4OFOE_)6|r!4CD%_6UCkS?&H>E8^VGg zkxTEe!7aawp{?uXvJzcXiIHjyn+1_QC~V2VK^O2FFtYrS0 zBLVPd$e)E-ewX7wtnBOP8FCD%VHnnuT^7*S?bc$xK^lF{_~$Z#9TrS#dNZcs_b-R8 zor)pi7ty(4DHK*KbbMj85?v)E4E6DAS&98bVX2{z)wT;7k23YJo2uTLdJ*_W#NZeF zBVyD!h`yYgrj6e#EC_2E6cl&%N{ICLo_$Y8j|FzcacTW)2VnA`z4HeNGm#! zw!aiher73H(0%zg)IJK}wn%a8GojeUuKL*qNl+Iz9eY1pB$L&&2 zPsmW~O^xLBAvZOHT~$X+P3KCfI%jGwzpbyjed?$nN2a2coZw07Gp(zJSVEw-j#dXe zdN)^&tM5G8k+&AXCU>~#*C2Nn8?=7#(l9ef_|tV#qnX44Uc3+KMl17fqJYv1gkj04 zcN6=~25}n&(LYYzuLmK6SL0^SWKrr#>gwrP zF$khEGGY@QQ*dDqQ=Nq)EBNnX4c z1?(*~ue=C5fG58egq`QD5sSxPW8#IZG5nVvG5L$;OS~$qbKTrwd{!K`YSN=tz>I*r z$yGu^q_FwaY=%KH)mG+`bCqb}_n?^f6~gZCUE`p4_)O2}HNM{QOq|-aZ&HG=O=MuO zl)Xa?0A*#mR`UD{+L(#3C9Yi`_Y9 zdGiJJ*o6A(ilH{`#r4eo-xtF!y%^1a0H5JTwIbq*$(3?H5H;N{d!@1-7Na<}B+bd|%OhJNN%rzOgzJ&G=A&XLWy0 zO|{RAH9Rz43~s?NFksN@Ff$=a3{|j*$w4A6UhP_xj#c=PB6|bzqP0HXhl=^s+tjlc z`Mczjw87=|sIB|HZz+6LLjQM(k)w!qXSnZ;f{Qwp96G z5oXf!vxB`s8qE%-ATwsCc#Q;uXV>8O#j8)uZoo&!Z{9vTgf+EgC`ISdgO5QS`?0LF z$fBRHjN| zzSpPANi+e;)tRV3p`yrl>WO&?kzj;zjF>9Vw&m}{t0|8pX3l{Hx1lBN&( z4V4x8ppR!cJ;UZH8&yz(djIpH&Ch*4!HVR0JzVsyb+)jdw{<6Z$5F!{Vic#A3i-tS(!aCld{=)0b#yxZXtnwy+ED zo1iw+T8KcWXnBZ#y;d84ztegL-HSN&{i@2`y!#wU%Gd+NLPyr(`~-FAV!djx@#>4=q(7Id z7Wd*y64bKA^|^bg+F(gXZ1_!IV&|(8RBcJ$AZ+2NDNEzk$feO7+c(Ke3!>x>6LvCf zKa`bt_Nt?n-p$=b>W52Vx&1~xw=~_3O?E|WBHMp-m5M!fnUYNjYV8+i@plkx({%Og z7xP4P;maoTT?y)pW$n3Vg8JFAenFr63r_94{62m-K^msMS{}oXCrGu{vLc3`0-Tnl zHe6u~`cryHQ%A3e=AMJ<^c6Wlo<^0`4J#J%E5bvvI{c;9+>)rSd+7((Po2AR7q65E z%TcmA{^h6HLG|j(6Vb>gyfQGTYN9kaMHx>Ar6$TaQ~wnihk>Jx2i8(yyAz7J7!2?q zgGHNvRmVW5l`Z61`VLI3MD@2?Nx5PG@^+iMyb37wGmAyA>?7)#c67h0ano86 zkx*r%8nr5y-;VNG6`1^LFedn=FdCGTd~tqg^{P0rRV;Q{k}nlvbW)h5O(Im_6m|Wp zb~S9ZwTei+cm6zh4u_rzgS~n9pYj#B~nSgTxfNEr(Rv#gD*@}d#p?6OA^(|>pDauC1TeJHUuoxic7Qu z?O3XMc3otW+ps-=?rXb(g*Ao}p{rthApW&Y(Mp`y?@zNTHvGSBrsnDmh2)Rd=3Q$E zU74tAujgRj@x#}fs6h7=5XEMhQaxCj$Mh@9@qPr zxCREf1H{pBJ=gD|MSM-9@x0!5#8o$VK1!UiNB&5h@wncv#8or+Jx!ePxZe51T6(ID zOSp?92xY;SyDN#l^LpXDf0nQ@xa&u%#T$pP-7$j$J{sjIf9r`c=Z zR32!!s9-lv;=yY}jN&5&*P_(DP(87|cF4*ainCfBHR0WKmaG=MTRr{<3UL<1W=)fG zxUBA3E!2UR;?kW7RrJCLta7A#7;CusH8KPTYI%OT4qI1S!yE1VB!*&dj#$h{_IODLL zK%8;dP9-kRkeHgp8Hep`;*7&~Zb~`Bc0&?04%XVNI;|OmB9&K^yxqlZAqv*v>;Cl)0 z0UkzpAMjwpp92pd{0(qF!bgGo5dHI#XZhllYZobYtuN`z+s z!$KibJqwr-eiHa{2Xi@Nkk|yaD_x;cdV_ z5#9lOjPM7*C4@f#K1_H&@OOm22FBMIGSP>Czao4T_;bQP0)OVBhhOlpm+)!ej|iUw z{($fW;GKjo0~ZqxddV8{F5z(Cw+UAPev5EC@Mgm4z#9p>vhnabJv0DbOE@2R72yKl zR|vNReu;1!;AMo{14F5oIqm|yh;VmcD5;X~1^hhWe!%mB6qkH47!Oa=ixI$2622dJ z7U9vrGYC%rb`zcqJdN-);308b`78+a1oXMo2Op8t}|8UiD{OvDR#aX;bZ!1odU z7w~YxtAU3QUI#po@Fw7U2)_;7m+%hYUW9i6_aM9nxSPN(biYsW(3xI*3EYA3zk%Bl zJ_?M5lT7H3z_%0r6}W)#8Q^Aw{{X&?@Fn0zgv)>%5VowuNSaFzVR)!RI0`t6a8+RJ z0LzFSz|{#S0jCm92TmfK2^>$jF0h?&9&k0nO@U){?6MT%A&OqK296-y9ypY67vNyR zJ%BmkKEP#MPh5ZC%Y=sj|3&y-;6DkE20l-CBJf%6(mg+nhg0-o8t@6iMZiB3eiHac z!gGO339G z9C$imC-79lt$-gU+y?kT!kvL9NR09SPCSgI7d?R=AlwglB;mopBM9FMJe2Tg;6a2Z z0QV<685n16WUqM?xHsX)f$t*x1n`|MdUy&CT?ju1+>!7C;C6&x0KS9pa^RMPUj;5C zycW1Q;q|~x32y>!On57B9%0wJc&JAY?*rE*{2_2Q;eEiFguei;LHJwXG{WBlY5i zD@>Ph0AC`U1bl&T8u0IgGhV^?{~vm&jTfg0*8~2IaAV+K2sZ~lPPirT4}{wSA0^xg z_<6Ap_-o*&2p`;vE_xV^htCO50{)EfRN%dY9|!)3@RPtF5PlYTCt(e^nD8>-cL~1= z{5IkBz;6+Dy^V*>^spOvBjLTkuM_?PcrD@YfL9Uz0r(ZdCxBlfd=7XS;lF{G5Dr>} zbphcB-~~9OE{mlq9-gNc3BdCRrvX1rI1~6u!a2aR2sZ?tLAV*Pn{Z3uX@uJYPa)h5 zcrxLht1$jgqKA9%Vm#p?z+(vC2Yf%_F~Ii`eh_##;c37_2p0hlB>WWcJ%pbF?o0Ru zU>r!($N!h`(1TvA0>+_QSt_pqcP6|UxC7yLfZGy&9~kEbr2Hqqw-f#nxPb6?z|9CB z1-^~&Pr$B5^l%yv*ffv<{Rx~)_$n~I(Ug4fYOD(gM*!oTljLK7v1cH$12~m%3UCtP zEZ}&;dBAoZ_qH^{12zq$XD2XjKajW$a1`Orz_{;0@^=A;67C0#Jp;)P1?GhBTdfu! z%H~C@)!z=i5bbUph28o{{XUA(_o-!vW2@AS!o3IB`1c+<$Iim`@8fxJh8jIFUVHIQ z7XAF;;Mm2r(%eE)9uc79>5xn~+_|dc=}?E*QpVnd=K6?WA1f>@L3X_a7h_7R;1! zaF4>xhMNz!0`4_9S;k)?9B*BH4eYI}Z-Kpa^>1KrT^$DY)>SF6x2}!>qpm__pn8H5 zRd;Em>*0?a;)@W;v)R^3ibt`m1IJ9p5rMXBYmXKeGe|m z#N~eKu;E+cfE*tMXEkw8e&(>nn7E(8RWWg^T?ZVtswVPHaMeuQZ{TbuF648EE!MADb1vE7 zUILlwCndKFT$+iC_|joZH*v3nt8U^x1y{qw#ee0n)iiPWU%4E%3={bT1T#(C%iwC6 zxIN&qOx!VW*(R>i*A8246IUHv9l?p!h`0FLf~;#2ycb-KiF*QEJrlPITzwO_2V4Ua zcMM#ffpdxeUIwzEffQWIHx64P6ITeXv56Z9u8D~|4KClr_4w9dYi8mmeCu%8nw!W< z2OYK+Caw{<0u$F4T*Ui#>7P*a@g7$ITwmL7i2pl39b*g_9ku`xDF=nWpEu$+{fTLnYiD; zbvAL)-#cusE+(=z$gU=?54dh7ZUVSFP26wbx|_J9!wy>y6W0OUT{`FT75^}hJxzko zf$L@B)`9D7;&y@SW8w~h>uchiM;x}h131+GaFG21NX0S-+&w041GxSs?kjKuOx$1K z2Aa6!qYm336E_yzV3&#f6yy*ScMjZ8Ket76&-fCDZJ3Gc18%s9dj#AF6ZaXodx>+Q z^~(UyfV|Hn7*^`AjWlsN;6|Ca9^mdbaSwufz{EWVZge2$vg`mkCXloo1UJ^i1^?i% zjWcm6;KrLcC%6eFuJD+{HqpfGJMOSe^0<5hh%AM|pB%OaO@f2KJ!ImZ1vlBm-S?xz z_OOZD0`3tL_cgdFUd~0uAA;0O^^(NBhDaVYac99zGjTCLJ8aWU-0k2DZA)e@6>+#t za;`xjA2X4UfqUGB(F zafiUECN9Z!!eN_lBCG%Auq`lgqrojSaT~yCCT`40hi#FGdmY>hChkjci@|yIKUw^j zKrS%});Z;{Ej4lNz`bbV27y~<;vNRK+{En#x5Cf4WW;MhzT_t*r(!@_Y2vnkd)dVO z2*0nGxP;RV+rLa)V{osUxbCN24%;dd`49wGo4Dt}tub+@!L2oMZ-HB9;#!_@*j_Vn zY2aQL9O-{D$NfOAHwjJ#x532C1Gmw{-F4n!d&9(y0k_G-y$o)%fs^{*4vZ8LGLz`bqa#{B{P?;R8Afna67UMEYY+Mf>Fc9YyN zaPOM9MHd{l_e|VYa63%g=irJZr|W+*lB*y+CPBwVhwXh6cL%tgChh@nyG-2k;C7q1 zPr!X(-fSnYe!7_M5o3z#TAgpM(3{#HC+$*uKy?ssG91Zvpa4li*-*Uzxa>;J!9- z%fNkO;)=n2YvO(YcQAlM{YPAJ*!~?rDwdkyzB6%8fIDR3Y*!t&?@e3|xWgu{2e>09 zZY;Q?<~dpgSz;1=9bBo2+Yjys6Zb2)V#B zrFPt_C_Yo@cPWEc8mZ2>)PRSM+`RSD02Uifl7B(+ujyXfzFPZodaRvZUBs)4{y>Ia zem*>5jecW!`be>Fkt22^0(TvJpORv8L2PpUye9@b5%L@5klONcznNDiwY*$I ziQ@Ruu$oogI^ba$inuGu5-hKyV)Codh=Nkj*D;FVESEgsBCWqOm9 z_K+d41-UGivy268SvJp?Vakmgd|z$<+ZX17C9HsAlyBu#BEGj;5Myn4YrkiCQI-Go zM8+EMo@=yKjHT(DI&{^ecT?vOV;Ovm-#@;JxBun$Uz@Y~na(NUinz}bInk@<&$1G6 zsT0D$_3O$(X`!FIMw@q%B?tY0uh~}wF`FpBu3cFNEjWldlKmy9h`lsXHu9!H8)}PX zXw8CH{akUkxxBqt7F+}rc6@(1JuA)gX^gxFP~K(DgZBn9T}(at-#6!mLHw`_Vk1 z!Ywhhnhx6MA*^BOT-{IW8~YhsgAK_rmP?4DI6sI%Bi9>xYePfNEo0qd@y^0L4EL9o z8s3TT__cANEX`H;RKRxEIC0JauB0xuy72#IT_4EKz6E)2xC6Z4X8-R)!oGq#33n0B zf=I1!iEy>xhQW1$bHY8Eqm2n;--fGta}XEEZ+I+TT$ZLi63z;_`%~?maF*dxO2y^* zm2^YXX7OdEM_$zxGE6i&+%C1ZioBgpHd(wEpWw+)yfJKuE4@PQh8&u#qbqtwC&NH zMyJ3It97-qWYHbVI`a(enI~8+ZCWK>%b2XaQ7k!5jPo^7Sr<{p;{M)cxbHyxU!w77 z)|LOuKfDEwtykRjU-k`bRkNX}z4nK#YxHH8aJB_Ts)@3vQVa zBaYJ%TJA8gJ%%O6HmIpY*%h>KD1fD(V6z=c#hx|VnHW}IAEW600q+Q(SA~t%6NTRs z5Q$n>#gwQsRZNNMU6s}B9hfNn%6<1UH5J=`Fh#&cg`mXG>hqobjQ(HFye&{}c;Buv zT4RhUp`T%N#w}6W$*Qbc1PVkECoaSc5K)Z{vDFsY4(z<1z1ri|Sf&`CQ(QH*1Jzhk z)KQuf^tnLJ{$e2Ld^@YIjT^*5wQe?MYig`YoEz~?IYL1Y4W_Z)yJb(e>R6P$@}joP z#;V)!6B*^Cqp|Gnu0K-)qFKC1+=)>w z3O$+hhA?r&1Jm9quQsJm$38h+`6KVu5E*z-v1%(mU|H05dtwd{D-B(^4r1{Se4Ii6*(Q`$0!@H(Tk?Fo3y z)vgL3dE|q1A4-hYF@e?P&Xd}d1WYjbx|gOXiID!+NgNe`FL4;|MP?{*@rf*j4{4~D z-EPymB{EBpvaGV43baQOnU&wZRy*3rTa+kkF=0rb7+;DLQP%B!iH=XgsOUVeBj!dWIZ3g)SIIaV@Gfh`h>@Umaj=jZsW$Dk z1Ia8j$oXMqZNq%1tkf4*B%!ONrm$e{sj4eaDXd+PGblt;Q&>SzaEAPm0_{I3Y)}0TKV2Fg~9td;eD0gJN=-5w>9?8LgG-nxc={M z-q_!sqO;kUfTonAH>G*m%qB0FGS4BnkxCm|hqdHe{BfB^-a~bCrDWh8>~6MKTUMJ@ z7g1LfRjmH|P=N)5sdG#n){4J>!S$yvd*2y0-h_(S%oiyoJy!~AQBOCi~m_RtSJ98w1o_9T0_<@ zVCg*W8a+lk){xy1gx?d>r;^T%FqM4nuW(a`d;&8}kmpFSRvg0{@bB~~C$FNVvbcZF zeg(rI7CXMR{ts*AT0ahJ{c9HNKW7W2e^g_=$78&0uYKQ`#Tk2iSz|V*OBQbCLh8gq zN{-~e(IiX;3{tIe!?#H@I!kh7$MCA)-!{Q~eo?#HM2}aPakO!_VPQY8p?A^}E0y+| zvl&ZkV4RLJt|?O`IYHM4W5dMVE`{RfGql2{%$5nDI78#G3X`O64KbI_AA0EoSVAD5 zrG4L&HR6BE%Bfj_r7I*EDH2CvXKG#YSso8w=bx(Ysz|?6mf>gJFqru2sq#9kNA+J+ z!5v_@U)qWFUxzGN-kXEdoTxvs=+(yE#YP5{iB&I?Skjf{ViogXl*O+nyHDACOTd40 zi0~?mS=yE6%xP>lZCkMJ=`po+&G9r9M2&b=BP{=Y_4{bytf_u8IT#;*U6tWs@ zvUp_|L0d(rsAHpbPjfl-iEZ!g=yXb+^x23zt7})CdLymCLpocjoxUBa>hpE9GAB%Q z(moZdwRi9yTD{6FM$2l!szn;xaaV1JgC}dDt#&HnN@HyUXsisp-o-{$H5OSV z-Qwo6SHcW1p`uyNV0IH$$D5YD6@Bfd`jRmr!ozjv9avz8bT?)hXWE5*%Qx&gsXNg^ z%s1@PLhO1)S&^2DTE~i^Ba16AMvO&MK*a4SVp8*b5z|Uow82)L(GPpbwo#5@Tzk1Q z`jvBDWqmRmv`+gQM3agJNO6ka{ZwV$Y%g?rukrf+by}H)C&ywy^e!VzMchUF#)bPS z?Yk~m#ZA=X($`H?a$Zd_x2tZlx?#yr|L05ohH=jR$K#Y%nbc=l4eh|4SR*RgXMe2r6_hU8r_v^I%KYJ5|{w-`S7TvVu``Rh!9_-FxZo^kk zqi%L?sAzQ5HPimg_W!!TZdmj;6u|h?K^s4aIV#HAO)nL1IGX+PkB??z$Fk!2^3*>c z=ResZ#Fg7x-(l=7{>M7;>q6Aoq{-fIPdqk^HD<@O_~EQNJE#>5XPMcSI=WhojSKr} z`XNPOm_Ds9zbx2Pzzk<~r$uP;&sMlz3^z#px&0s}53;$>RG5t224al)SAnrG` zx?Mqv1$Gsm?vX@siaYer_~O(ik6^uc#sk{^5$w+(EVghVeogJvy{uC&V+XH7155;# zB+ua|r?FI%>zbT8Y0g6qx$iHg6x*Zt8Bla>+q4x2+zTDoo8GhVQ;ym@_pvrrl{>9M z2*2+^3#JAS_)L^EM0ltAW+T}se)|L3Q=?dXY-h?0_S(c1maTQmzV_`%me0GGWGEc3 zOsi4Y!|!X7@hW5#&UPU)%p^n8qBoqp``M7NpON>v*y4cU=zeTUjC)Pne?M!~Ob*t8 z>4!c>Yis#IBdn11vdtTDket7pen;w3Nx{`lmWEM}K1_)$=NSxG!}e zepgZ^z|aEb1V-pn0!jOX5~w7{8!J}JAI8(;a0aRJqG#a-`5dC`RLajp8T6uCJ{ax5Nqp%H*>NY#`tAnwC4!I}Vy`%J`wk zUdBR`Qt^t9#gYD38SMHn8*-@F=iPXe*q?d1d90j zCIBV538r@xtI!`jCxWH!p}n^fw!9x3vBZjZyKx_b`+~N3I!Y~DmRiNeD=~Wnxi19Y ze8DyO=L_zJl~wT1#|gE5Km(3-)RkLXN6Dr9=*L+*XF5N` z0vv5x9#iS`x>eYxCGHB07A$f1*R`n-mYsA4dnjN-?YM4_{B{OwQ_xd{D^AGKg$;Co zOYVPvCIQ3kB676jbp;F!oYx z#}EB@Bu zUVCeScAde}v~5qao&il{soq3V=CJtSbu#dRIjljh@0W(~}-Zn<9!Z!f_MAa>JsD9Av)N@cf@szKTWQax* z*z^?paq<-jUldEnr&+e$Y}?fJ9Q};Onx|PGW93IY!;*tP(kmY@6G^?LUVJOYambF) zo|(%k-^esC&SF>7lAdFgjY(}b5Bk`C>ZLcKj~S=1YfR^cmp;Sh^-P&J6!0EQzD}AC z{LMWZidE(jxw3$swd{ z3RQ%;we|Cv+#b57xXrrp|L~ZB+^Du{fk#uiYAilLC9kY~7RBPP*CNCYU>8m7D=u8b ztk;#wT!gLa3tE>&D3uE}ZppBCb_&jzgf*GjI zT^cC1XDN1N^>oS5?Jov;8~9?m-nPEz^HxF++#e{HeccW>!In%?P|S&3gy=ow-x z9GRKlUS*pC3TuF(XwNQVwg9plNJB4{K66+5ib1c=28ypbm9BJ3RaWOYe|7F(?JLVn zS$41@+RshLDH9lLF42r}9-n-jpDusYOB|H1y@m})7DhdM=^=g(t~@KAzOUbhCFL8} zjt;5gDdIr6cRi?d#wJfsoYWKx;j4z-T+4c`?OL3aH)}kGS&5_k=q&3^oJtHE<6Cr_ zEJ!$&m=XU?2r?3Q_D&p16m{357R?M`LG-!_epqq#Qd#~`uAkBM$Qs}p$^rT)W}FPbBWB?C+Lq1Ck#G3ULkWq)@2-fW^R?XK;~{K!W5aSeekM%xhESvni*Ik( z&Kxadi##HErder7*A~3V7Bx0@k|2!2XkpU+gatj~(SQHbD04~XO&j_a z>k!+PN}9HZ*3P_zB`l6vSKW#PoYC^PvW~2yHswQ>uJ7Ywkz+sQ zUkGjAijLQv!o_09e$s{0r21zvXSTBXdEyH!xhkT?yX?_FQ|9}SNBjV+{WrhI9^2R` zY*g*o#v1DtE7mTUQOdTlAyEU?`xo?s*K1?nX6dm*C>+|&@+M%_+brptjGcK~W-Rs{ zmg_sSKKvav?EknOPozZLT08zf>pN5byEt!p4R+HTmHfN>mN{2KR{W1vtFDSNsym5m79yIAF_-n!&geqZTeXgcGNIL zQ3sTY9fmirpM)GIAzV|hk!z)IG;@Cw#G-lL!P1k*u&cqqTcbNUa~{*;sE zd|4~_h~<=%}gv@oODZ zo^t8bnaEQ`hc67PK}~KHOwaY{K|Z5>K%q3!3*`yUTk`Yk7o6cYK4RyYU+>x@c9+&y zc*IUx-{H}h8Vn#Ew7Q?N#0t$q|E=xXTc6iAib#oZw{T8JCRlvzUSWcD?e^5kFBJ zBY49-4{2AwV9hFwyRwYCyo(Q9U$UD1Onm(1&1WKTs8{TNd5>>}vjuIY9-SlfQNkfYQI4{bd;rKOZDqV_{Sa{P3G7K zqwS6^Vowm3hyJ-Z|Ft!vgw3&V_ZDp~4!7|U8*mAIoZ(w%)9y|5ahBeAJS7ktKVr9q z)(qHr(IXI_{gk7pN+ZAa=5g3^m5thG$MF^6BQiG)%KcJ84-22zm58f6#KjQC8ClN2 zLKkcD3?-(bt?@faJ6s@gj8k8o6{|Y#NHy)`PtYeQ>tRbb=;!nzwDpX|m#dNV{+Xqx zdvlM8!;TAWe7UC&tUY_fg;B2oU%kO_WY(mF7!<2JgFHL@M-Y%Neb@}pEO7IMXdOYn z!bGw~mRWaEW`Tjqg|hr49Ot%V1$!vFMoZAna0T&Qt90zyP@&QxhjU%i(yd$#_-7jo zpJ4|kMe{0I-ZSjAHS2H87Lcc5dY+p6#u@~FlPh+?$NYxL*3*KFXm9=o?eUPmxl?g_ zRns%SvA7_zxcSneFFUT8diADs&9`|!YI9Fw-@1I;m)A(rjc?AR4+c-cNc*cc;1tUY zJEymm-I0d2VnKVb__~|6{gnK=LF|1kJk9Wndir_){u0bPjn0Z1{q{8bAy%oU_xCgS zweU0g@01G*;Qli#BVf=vgXKCW*|U&6tN*gNkZp37HEv)W(DuMA`M0n#)4o(F`TGz2 z{m1Wb`B~PotI^+D_+titmC4^Z_&ewG2kRw%Fnu5nsX|un_r{Eq2UnGq*yK2{lcj~) zH|o7fD?Q2*a^-k*9$}oAcQ%RlmQqq1BMXhU;U4`RXLj%Rzb4C%_w~R(^p)*X z_%Hj5uy~!&Td=Ui?fCI(jALN#s z^mgtk#q6Vh;5cQR{(&Qmbk4Xe`MF-Yyhg&qEUvRnVS8ehDI4qCgPlHuo6=FrrD@GC zVD{=-OL~flMj8!5o^Q0rFR<#tGwX?Nz4n6Cd$m0mPcLuH@!miDa4hPf7es; zJr?V}LhOlcoR3mMH03WCJJN#jZ_e7N@#(HA*aZ2v*6T7_%-W6G)XUem_v=f`*8-N7Lk1Yfha_Er_l+y-si#o! z`VM5!i8yJ-5a-T?sfP;1`)w^+yw#H(9$-8W)xo#iLi}(3pT+NP6Bxf<0Q>w2kP}!W z=gk9-=Q&NKu$@vtGmozn=tQC{g&Zmclbp=SHn~B|fVaSIab(V`N}6^-t;8 zIPmN%$5!x(cGbeKH;0Ksoj9oHxz+6Kzs2kf(X$i!t==YgYtJRJgd64u>AF@8Ia*1>JCC6p(GiMzIbmv?PV2<5%`dH+NbxK)Nbj=bw^bFA~i^jJ59A=baH8*43iHr0KGwDLd4?QQDp$@O)0?fMH2Eg_m`^XjskqzVw&tF^Jw zJQh1&J7Rbq&wE4O>85{-8>r*LHbv!$-tTNvU7jnmUo~vs-u8ypvC8#7#+CW&a;y2v zzsdX+R-C^(_55{x!*7qhaVEQzlgXYHW>QTltcm-_uuaG?-#VMKS`oG@g(YHt0jzek z3dePFX%RxqBE-}chvT%!99A_zY+zMgOmkJ`gRgrW=|WX5jw2;kGP8n{Rwv&Zli$_n_J>+hqT52vTm9{T0Fk4k7+*=jnV` zIaf`{1s5)DxX-xe+3tWeM%kmduK`yyTy^kPxT2wD96C;)H{=x!*W71CM;9=1W<>}a zqg@c#0Tsk`YqslVURSHvlE=BK&cnLJ|4Vp};y09^g?j~V8{9s)61d;tLR)Yp5w0Fw zYq&me;)6E1_8wS2&557855dyi#|2QBd=d;ca4*!?#sb zk4WOK8~Wbo_ien`*RwSznO9}E;vLsd+W(-1zDJvr!p}#puV1A9=A>e=Y}DqY@=V*; z7)C`#$%>~Zb?b+zJeQfo(ZutT4v*K@V#mo_DIzKLMbbT;XS!ma3uv0pw&6-DeiGd1 z9K@Z)&x5aStG~Oi966((ZFnCF*^(Q`xs0CvpT-B;a#ui3%?Y?jxi#~*@?5WiF#5E` zFSJ(_n3IanjX-24{twlp@z{r_x?(>?lRB&rQtnTZqZ1f>^3&;d24P;Ap*>qK%@NzV8+ zi%6jNy9H^jK?&MO&iHM(kQ0~3YU49_A69?sCmDPzt7{r+eGBq93W3fr$fc-f>-t)} zHh#NRJ2C~wLLOPmt=gw`c?4IgYsoo$^K}DDrofDPsYkn-!!zrf;fgu%q)*_vLD4`sG{=pB`( zxO^9L)#CbGoK)UfpSQIQA_?3lY(I}LM|6qg2D~~XS~h^hD3bUc62JQ-mgy2Zg~SAs zpozg7MxGu<9wera1f5DGiDkOPP9gC)NzmNn4WpqRMngzENfI>odBe~pb_$8-NrFnk z8%85Nj7E@nfh4GAykRurdC2V-jd-)<6(m6wp-Z3z>PtIqe{-JIz=NGPo47j}Bgbl} z-O1swZJZ>zS;FFpit5sY7dCpAUU}6EtogC~1xD5eux9q6Lai^_9!o&L+riF?pp^dlYK&Z77h-TFcuY@d-)LP0%E< zOqbXxB)%jGZv)X&mfTbiqbVf5Ckbx@(IuAY5<7*&agy*h5DFt-4%1Q-wz#Nk`icV?LG)dtX~6IeOHInn zN0&mLAhwpr7Vvm2DHAu{JzL2C;vFVxPdWKA-hHB0`*x1&cPDD|Zs+Ogy(VUf7A9}# z5Cx*&J#1AT2*PCPWERMM2|3oQ74}9+T1pLARDcnZo^aXFRCq{2f1Z!@ibD~(Uv#k zqw#S&)_M_MKg!4qaVxskxgEcaeWA^2$A{WhBZ0jUDUBLp3UwD~SKILfwqA>GkM8sa zNf=fFkQmUOZ?91Nk9YI zIGQWF;SR!`gj4XfOf|S#aLwVm!3~3Z8188}UjsUbD9j7eBg7dS&~f4d8qf(MjSc7w zamEJpJ8{Ma^cQi)26UA;V*?6ms3*|afI=IVvmlKmL1P1|(oil)!|jt~3sSz4El7K& zGp}LGY?$UbiTb3$uLuf)@|E^sXFi$dZP5z5@Z=cr+Mwj%^_VVDJ$h#<@+U9E{uXX2 zkR81Fq%3JtaEYl0jZS!_;Yw6CydLSot7mkeNNF$@HHt(@v#8iOl|gl#q-A#H8EM_h z3DPjwiqv%FDSW^rZC+R2J$>LLeW{pGIZaucrKb?rTG+ALmdC}1ZV|Vj#x0Ct!R2JE zK{wu{sW)T3+x%&PKB}CQ1ZHk!H(vXeGWT#fL0&g=*;-Kk{~B?|Hva~3#y0;}d2N0>2^!nHhuZuHdYgAP$`qrf_EHc2sO{^9X-XITT86>Q z;%v0F!CibFuV0F=#s|?meDIAeUonlzwcc^^XPAJUjkI&Uc-uy2QIWWEQf%>yF9CfW z;y>VFs1`G#_}LX0s7vjasI#2gI;J;PE9`eIqc49d^wJj8Ynaudow71}6`8=L7}=NV zDXagc=fne^lCC*O*Z6mvbugsuJ%F!)@Ysk^H6QtJ-i+7 z@}Rco9-f}o=fN!d6}_y*e_4Wt{)rL{@6Y$}!4GO*_UDb$9=M@+_5gki2Q8uoVtje% zP4QbZ=?$h)%19>`qna%LbNZrocUiF#vIrH818{N}b3Lfd7>ErI@_&cdzu_u1=^r0@ ziJ?#We;EG%q&DZK_{h8<#%E+Cb`am|4btWf(y%UuNc>=|<7R0s2lLulPavz}@Q4_e zVVr9y%&1;p1_K9tEgZ~KY#POB`0NF*J{io1_I;6Fk&!@*+%oxOB(T65AsVs!g9b{n zm>8~5TYnWPpnf3!%epZbBoO?pAy_zH$_w=NW;xyr79MyzGK43@fAFTfpjwzyMbEQe zfzBghd9RiTUL78~;?hQ%;iEdTPF#X?%hMZ+qUN}5tlt*BHUdCIRxB`tpM^S$TZ@0sTJ=e}OYywCshIiK@6 zf4=8??{K5QXtIPWGIjozo0rl=ShQ^M<#~Kc9-sR1FuSLT4;>fGi)kV}S~m3Z*vE){ z%pbddIy=FyRU>K%s`WL(T$?W1wfVOugP)Os+>Oh+?==t45Pi*nX~^I|D)|wTAMqup zEk_#4V9qqr@y7qJ3|`k|U>=@EqyASBc$!QXw>kpq`?0twxxXsR%*+tc;zD1(vkwV2 zCKJ_g@31r9%)pFXRE_$CMt$OIl-YcSSmGC#lB8E#%_nCduE3qP%KS-O_g;T(d_zTS zzTnULn@xe){{FdVrkE<)EHGc6DW*lYYb5%7qR;n7zhxF%!$JMM#(W+@^ZZp`JWH6} zZrXXh>p~Knc3yqr<@n$WoFvF~%+G2aGh(MTTO5#A$gVM~XN!PVa!NCJQP%MOY$Ai> zzD&_YRDWc)pCiI=pXkj|8UmT4^;agj#67M{-g{iufVkwn_hl*ei|UAOx~k~U#QoWO z(~azZ$`mCXXYZ6RB3gHts~4*|L$7G|PIKdIR*|x(izL73E6V(Mwq>C%&SnSlu-QIK zbg&}*L8L$Ykw$0PP3Zje6`D{_l6rrVZCRpI=q6QTb*oKv{pl>O2KWTB{R+ALPHw;Z za$|J-t_g%^Kk?Ff?o-)wF)sXqUmy?75lcE(s~}}P{U%Z!SzCtYZL`Z<(JA^J)Px@x zv+Oc|Ejy#Vn~R8N&J`YQd?d~jtD{del1kfbk?NOuV$xsFH4^O#vzFD@@?OIC7>@I5 zg1D&Kq3!g@dc%CNPBitHH)o6X(ajhBc~mq-1DpCa@S$vP_ifDk1rMvhOSaU z_0+H4Z!^0u5xt|=(UJf20&wvXmN%PJ4r-&NOvBbCVho}!ne$M%8J5rf_9c(~ymq@s z?jSix*>4}@zpS!R3a_$xC|``}u}@37-xKT#986NKrWn<=tWo3_j5%D@UNthuW{c41 z*Z)@)?7!5jg7+-Nl)ta#e}w!6d5h{=@Aa4JTKR=jvbt6|AO4@z_06TCL%++i{ZotU zREry`bKCpHc=t6G4K}6uW!wzFmE(5d4&hGV&fx-|;bs6X4mTV(0q5T?d^O3X)eF+F=tMb!1| zEv09Nyn1HL>TVqw|M8HBbcEI=L{~qEhG-8#jag=|BGJQ|=woD!n?El*U!I;`sTF^2PmN^NoLqZlS-bNb0GNHFU-_`Smp1cH$`IsjFLO<)^D# zcjc$6TW{s3t6RMC)75RD^7E@(PZqg@m8X8;X_)fU)os*3uUWfok@tML&QdqC<#G`c zdN-0khqmo!y58?S$ua88{>w$z=IOh=Z!}~qGN&&Wo59_6i6Rc(eDYvwhFRJHlzJlfc3c6prj zdc`9D^DXO{ifkB0Ej-X4d*1{g5q1#t(DmKsyfH%g5%y5lNI;)5bMav z+K~KWUR5e?xc%2giqI}wS;_b^NO@9a72(?sH5ugXWp$s+8i}&SC#+M+-K8QTw55uo z{gY7ZaM0@n=dXA z9nGHWIgY<&YXcK8VK=4$SAZ+URp6>{HMon)1|5#0=%9n}{ssr<;gu<)@p7JmsgGh^5NUZz8Y|4-9H#<+Dsh)J;V3Ag_sd zY_azt=JFoaaeTkkBBtjvd+dew`aMWfoism7J{x=ZpFPQbEm&?ov|4l+cv+J0ohNF- zjcR$9(wd1ZwXaagwJC(;Uy%I9#*#O^Ecpv6xi(D}EbqY#W*>wO zyzrFh)c;cz)Ib6>foV<_lGH4=p=IR(MfJ%ZC6jV^($vAxqNK8u%Pd|aI)|QYw2U{` zh#sN8G%Q0E-{fi0H#F#m2K}dkMnBCX-D_2luRUJLJp8m+*gZxCDY^S4qgD=<+3AR6 zn#Gzu){4P5#x_<8jZ~7fR3TBt`I8_@EhBd;Dx zO|ViIt`j{&M_)O0%Kw-;rcCq;op{C6p{b3fHlHjL8(VjaHNtn6)v!xD5!$pmI4L%^ zr1$vPHYcim0Zj{nLun2HSegANN}}8`CDol>*Z3pIl!1+<3~ZRv9J^h_nsFvKz^{I( zfwjv#fThEg;wo@exEkC^+<9Ek8(2DAJZ==uZ|$bhu9cVF0MAr@y0yzzehsW$p7PYK z-BRVJTe}C8pKk4zDL>uX6)Qj8+C8THbZhs-4UJg4r&L7U+Lhg4S-WP>E%EO2hM2v| z#gLYpd-8neW{35J++!{-7qbSwyrjXAMZttvzrB+xSUrTk(``Z^iyuY;w>jEBCzd#h zO1?)hXI4(1GUKb~4b?-;E*p3m?hy+3YzQZ;G86vKfqLk%OXe#t zh?~qc8$?UTXXYm2@fB@{cZqhE9Wc*s5VwmG?_H1^x8hq+DWV6R_Wc?X!QO{p!%bp6+H`>Vmv+x== z`KsqdyXGEbh|FZc1Ge!f?wWk_-seRx$5-a^=f(Jd$i(P^3FhFJS>_Ef#U^pH;Mz;? zKJC42pF6`5ATNc+MPEm0mkU^1Fi@#?HX*ng^R)bP%xu0{JR*v^lzgAu#;n{d`VsQ& zW-MlcEbsDe_H@}IS~#MIH&RB!7L9vB^loPKw2XK`jrs5kygPT57n6>eTL~58^UdQg zh@svtyxE+wRYV3%vKrZIx7ElETRG~YKV>67e}YS0Q7?)S0W+*9Ghei#JoKV?MHoFx zI^5CGOs^D)19KaZwK{@pR8duL8$HcWE5#hH7Fkc?=;Fla!bY-c*t`2)5}p29QiZ8$ z7F^h}fNf$+xh#l+Ba#-fU_*QVtl)I>r`q%x$xyk(LonI(HzOhbQk(wU*ylcD-Y5Sk z1$e%J0&EwhyW{ZR zyw7~lk6t^F?QHXw9b8KsZ)QPl-mUUIhKlk%xwIPjmAQTgHT=*#yhDUHjxm^k!wBO25|OOX+T%FdcZWyZ938au&%;DLn)51(xzEG+*ld2`5nY=U z^pxhvoV0;kfgP5by?2Q|bjy9a!~oHCsri%_u|$&sdfzCAsnXzEc8l@y^4e}Otj|p{ zfbpbF?v~l4HL{hi*VzKTR^X8RFZChGYsgA^P7XG2+#>>&4c)t2#DxB(v8>Fkd$<5VKGV6hJGq}irCtNduM0)=oFST1c{Fc<6CKk?{X-q7UQ zj_?1j0&m=8qae8bg(2SS8+WSw)yl-5KPP=M|B{UJZOmh@h*6=FR7BO?-iT)ZDlw+b z)Elko*17?;>F+$2XXZzd3#OQBt3)`z;kL6%e8+DcuiYyy@g-7g_leD%xZSd!3xj>l zP4drrvw5{JdChEnwRkjihAK+ww_Fm@|07>zBR<{p(5rNgW4!0n*Lb+=Sm^0;KyoK@ z@f+e5$Kz)IH^qL(>z-fUly_ein_CYe-FZvRcMpp8cg;t6cz?l~#P}TyYw@;3m9>YR z;2w2KDdoFou&u?*SX%IHK34ptDt;yLEARJy1^Fj?7ua_Y=n@f-Idcu11<0FJTXZ~`8G!ORik#(sNKFsnSDMKbKI$W8!X8xf94J(t`>I& zXZ*sQFkClWB5o`$4VQ;2#>p{Z$?a{gjx=~F?|tQ`FUdYuehrpnpD9m$Np?c{=}WS2 zl%KvNJFWcmCE1V4PhXOqQ-1oA?6(^mS(05;5%ndRbFg;<8hF3=j4Gvf$^Oa?C0%A+ zWtM#;{&3`a)_yFeJ6h%THbU#L+I8+P4+Nmqxt_3E>A&bQ|3#kV$HXI!P!+$4i`hn| zagk<`r`Knsapam`d@jO0FVu-Rhhvckm?ZxWI&KAe)}KI~;L~4v|MvNsE8L+GgQKf6 zDNK8x$Vl<5Jt;Z_^z5|H-YIw4XPFbL>#kF2w7sg4Vs1UnQZ3-L$iHH`o>xj|UNK3Z zDQGh4^rZ}p2I(j!45O&KO%rW*>{#%*zz0T@T@+^gHmtEB5%kd8QU8Y zuhI^)|5~Ag9ZlHV(9h9{wP8Cgu(De9_c7RfOiMN^5o<<-4P~b6JSvJ@bq9&drYZJP&tp zHg)j#@hB&)e$Vr9w9^z~Q(w=V80URW+a9@oC=Vl#^F3R2gNk}?Sr_9JqPm9W#6P2Bw6E$^CZdOkE{HWPevS&%ZxV+AJe33_qvt67Idqv$b zC38kv)PgCQx#`(aQ|6~f-It!TFg-mhDlTeDR+=}BVR#PT;JhWkjJwI1cUQA<>9f;k z-%ya9U?acSrIdAGt2A$J-MU79-$&m$4 z&6qJaDm!ONPHuM8{PgKFvSkaWS?xA|Sm*5Mi$5%P{`~YT>LFVeH6xo$nj4+7qsHdW zo*OlG{+#>Lo16Q}oNdk0GUxCfvYP+bQeG)@UfbT6pwVIs&o9HAN5_~CFLSo?JX`8) z)gs(i{kgLExw7~{QJr&}d%iDoUX{@D8ac2GBktBqmsVZlX?4sw-)ZK3;f!n=GZJlR zYMA$gx@MXI$DKn&##nRYapy&M*%GG|p7qJ#-wKTvz?HDfQ-0>+c4^^K><2VXgAZw( z3m?^Z27D6sICoqYe$<4 zzICn?6(h`+-#Och`VnSN`8Q^yd7Jzjf15e`I~rLr!n5@|=lw1jvDX>r^+fbcIU_wt z@#R@OVn%vG{>%BROD1jki*vdt8|hi_i?c33=8;nGOcj*1v)QbGPIZw>@#u*+vA7Hrw$xGL|+pXBiUc zxWmB{iJ%l_Wk=+A8Wn$=XY561txNpoG$R9C*P2N#*KZ#FY1dS?;_eo%SB0#7)K#u( zA#43ru&afGN_u{5<+{!(8`w6~Wl3U?{7Z8thPobV9e*3cocv|i9K=zvpF&;JWQ8Y& zxkk!{91e4JY|dK63a=gQfw#5mm@(F?7fz!kL58u)&wR%SpK}*H>-)HRiPpg?fCDar z7mJOQvF2CtuFxyP?;W|@>g-m!-eevIGBz_W0ZCyf#SX%qyo0$V#DROYVHo!IJ zdd9f41`gvYBT|lwt64f)pH@asSdRI4Sn9?AnBg`w!8IiEg3o4MZRFv7BE*}_VT2kB z&8HJwG43L-lC>rw(l(OAT_}`c@GT$4HaKO9Fp?-(h988F1`8uX@n`U%F&G=-%kb~v zEn&X&Va8AJ`6|Q6RN;ckoZ~CK<)=078rV!4=n8g6Y%>hm!7`T{@QwY8!;m&s@;JEe zw8I)Qk~84ojyx|@;hgLk2AALC6h8zXLJ??~mA(w#a>ij)E8YzUHs{j3;x}SZ^?0|# zC{-SB5y2I07gz%ye8R5KmvBU>&FA16e&Z)arI)MvJbvJ*T5%*?gP4*eiy)&D9E81= zA1Q|ZE>tbJpYUgpM1%+}!d-AxC7Pimlm*xBc388Fl!zNX*V~rJGC1-XhhIWZ!bMuY zY=Lt&*bUe#Gf3@ZXHWwd-)R@{9UNF=7;;jP1^y_*58DO&0mphAmhF_`L0Idu#~enS zs&IR_=vi(+sPz5dD)u0?irvHT2t-aHc(gJij4|-8^LCfq4VPB)CATWUJUB*^P$3+f z>@bSZI9Y)eaNup|jjBK;9H+&99bR>v!y0SEcN-t!QF@LHRDy5dm_oY(f|JSQW=;cb zwhFikc15|20$MIB90L13QT!(kKKUw-H~7D-&{O=Xoe@lAK2bDtIN^!=97YJ+($M${TttOG3U3)^cfndXQEOo(Tze0{8l@Wa4m?T= z{}-G=mst6^so^CV!RG;ovZa{2*1_+_cq`NuE@fEyhSgwrIKSQHDt%wG{3@5qU^|>R%9g-UxCpJ@p~Am~(-<{%iqFgR zUpkCcikk)+M!`ylQK&c^K6}7Bh05}}!jrFc7!^*&zx3#j$Cd>SBUL2`WZAsyQ?7z3 z9!7Xhj$MI!;rKDuH$PkHXTte6aehKYWPVHFxkqGwd-)N#8|IZimU(@e|D3GhY{kL& zmkD;@5&4V5NKjgQ0M3}oETl3x43GW6?t)`*x53yA43JEJ5{~X46fm&{WssvGV$=GRj zcn>%=&d#tee9mv_!i^+&vNogf`!9Y|+!0eelJG+bd=HLKNhacv%wj2DRbV!p_6ndX zPzYyg5_$q&5pSFBr{NH-zzVn$9mr7W`JQMaf*}*H@;?HX4rcNRqGnR0-{4Ug1E54w zot19peoc|_oi7MU$8|OJa?E)8S;Wxp%Ua~VB507QgN2&^Ez>z8T6>?x9<)0)vcK;mj6Je}ik>c$~SL2}nga0k6?&SP$1uVESc_ zkP>Om&ZeFUCaL(H;gqXb2y#Fx!xQ27k8mn{C|s;5s7Ka-T z!WCMDR>Kpt@OAJGEqohXt??Uh=AB4LS=J9_`W*DgTS2$+6&`BqZ>`b3hlewNm#G$9 zf{lOJlhM`8+qGzDg3jKJXTX&<@4PaM@6M+}{I74B{Gul^zw%!y_iq z)`5rNIF!nl!IN;l*5Vy91BRWi!1v+6XKh>m4K4NUOk0bV#wo%_edRDts0#fCAM!~^ z+W+8Sb`is9m5R^?E}jLe7RJC4`Rp&02nWHZ{9P7qjDq9uw8wGCcVLLaIO4#R1vG&86b{ux~Vlfx)h z;XlCVSaNwMuMp!BT({Sr-or3Z`9+pp@Xr5T@CY1i&)5Co0!(L-%5WTfZnnL^xCcJ@ z74x^6?`OcZK9Q0pA6|pF#wrOu3RiEZ5-Pt6c*{brzxd|=?RaENb>QJ`(P8*pckZDp zu7yu(1)PQhy9xgi?Gilph~0o-tjp0UEMisqXt?5YVZ^8k#KXl5;{@OQpNvNe%Wj`i zO@wzHWUQ(LIdI`>Uc^ut{v9spYD;J}yyKttR_g_LuBNna!m%EtqPpyTxb!_?xMNj@ z-{Nryr6^DZI<8^OrnR^ooR29zs=~X%r&!TYM@t6=!QGNsDJ%X996<#$6yFV>V3bTy zoCDYQ$NtL?WgCy-k^F!?Sv(Imj+j?u!r$1_|*0G z#wHss-r_Krku8Zm2%m6ovXy2H9<>i*NK}NE;a#sd{FBE)xbPNx@;L#o_=vec#lHy0 zq}v6AaipJchznk-!b9M)*5t3&kYiwXpgOvgU63v#d|+p=1P;-{SHSV_quDCM4RCB% zdp)odj?&`41G^I0>nWxC08T-JeZ%@+q4a;*lUx*65iSwoOeLAB76paze=Wm~aMfa4 z2YSLq|8W@QszOQd$-miiMGBnpkuBj289s*?OEz25*0<1pD9$zQwUh@jLLTkw`^V;Bz=(0D)FG(t*phC7mMzJHr`}B~iKm zZ;i)rEkR%SM6|8-N$^-Le7t0)MxWMChHKfHWm*LW8EG@bBMS!H1~L3RR(N;Z$b7QpG)C*BxlKs?ZJaL3U2Tif@H0 zd6L`W!Mj@8raS|#e$KZ2i(v0F8^)@%e2?JadK9s%49ekTHj6tH zZ-;|((Pm#C!;P|><3A=d;^2b$b_S#1U4^zz+yf`o*rs_NoT`n2#qddX%dx7wLUeIL@I-WlK)|ce*&Lky%n!o_#<4t5h*E&)x&Gn*_QC? zNWuqb^M5oRRlnIS9ss9e%L`S3x57cJIBONB!bg=BO9^Je8C0M^g%`q6x7aJDN8!o` z$V2JSYB-^s{ePxPuvtdXx?mq{VA*n1_z^hPaQLU^@8R<-C^A&|IXH8p!*2-#`FW9= ztAycF5@-w8ud*A|6Yl2LX0t(fRQ(+hs{|wANRDQGXFzwtC!fX;sqp(`e67McaMa88 zuq>3}jFKo-!4>dPbOQTh9dJAayQ?zo>2oU{nT%`Ss&zN)`*h?#2jSt&G}ZiHiu_Z! zfDBP)G7L9Dt@LCj8#lHs5?Cr9;NS?5?Yft}2-f1tPdK2NGX1RvIlbNrJ zR0iYV^M{%Jlmw>0JGR;Tf_ZSa!S?j(hL7@VRW*!pS>aN+=w7bBtNb>$NB;{cP<~p8 zFk=T1cC@!G->Y!s9kxnPorRBTUDT`tMr*yTGws}X z9Q@GX-h&EYo$cO{Z4I4Xv7L1idDlHpn(o`S1y zL9*prX5`R7=}pY*8|>?ttueT|3~2wH9+`9ItgBLgWYFy z;o%$_`C70PuH9oFD6D`Z*%$cwxB?C-vUxvzMr*(kxb8*osIun&(|8 z?P1vpKCfla8D67}ilOkCrS=NyuW(HOI>6#q>QEZ&yA~m5+dOy|O34o0JO3BrF@gEn z*McYD(#iIsbOT&*FB6gy@pd>k0kD|L!-fB4&mEt@M^kP70glw-i%zVrjxlWI^FLX` z7I?&Tu$R#haPfFMgX`e5Dk^0a$O8*FuNe;<6pxbexyG0AU(n7@p;Nc7GE-U1i zE=j9U3gM&Z&*4sQ1Mh{CweVax^PimmcXN3o`~#1g$8E#$luWRVE>R*ZhbL$m?1PW~ z-B!}0aKRCKdj1-AVMc?fu$1UeaBwGkmE58;U22`bSS>P)Yw?(?6%Yqke`Ieo65-S@ z?8D^oaFiy}RM;57!)u4PL37|VZOOF&&e!sP7>;!RVcYUG;Yfh3SE^N^AZwlvN^(Ke zoEEGhL7-;Iw!*7!;AJfp-vfv6q*Rt6mAVEl)~4rw!9^Fbv`V7C!|n`@R!dbMg>|7u z<7|<3fpfGLCcqUMC&I;9_Vjx@+-<$R3}45ZFLscuzPCct2+wErvPyAb7xb@46Uizf zocB)_;l@VT#dONb*=o^lxM(MbNJ_*9;IvBnP^k_+(93>|$Jdz}Nzd4uQ%6^Za6gCt zSTCq6`d_M5paT&?o?z#qMARFuFLwA&tBnzG!DC2Cg(t&nb}%KY3jK@Y`Z6uQdkC)% zw@1wqIHTN-U*yIk=}EhVYv2@3#GBxHnp>bGuph4UODN1Z43GVm^@6Iv7jVq|_A2>1 zxSR!tZ%OwX9LoZyNag2tbi)v61zrVLGUm>z2%C6l6#16D0O>;b7OjOh!m-iz+3^_o z#0=l|I>@*iF4yLUEcn2+{&PXMu>g-*! z{@z~o9&1GbT7GX4evk(G?7#=`QGb4%zkGv7jh5g%Y(J$6H(b{tQe8rD1E$13|6%`63zI^uk5 zJkDudkPYV#M~tchOJHLlj*pDL93I6roD~)a8BfDOV>w<|I;s>nOCw-8 z84ZEc_R9UAiZBk339(#nR(vmf?yTLyEchUs)iM?ChGVn}Jr28GVVJ5GJ_j3%?DK(b zaGbWHs)8d~;JAIJ^*ubI-nIMebNC>o<*5R{gNrn!lI?5)*uc$AjmQ*iugo|3ijD(Pmp zn90niBd@>)3!Jm6ytm=1EyzF4&@&X3e8+=K8uHyy?~lQpac;W3JJy|2c%!Ue1C?e;^_FNEx0duEl8I};C@Nd|2RiUTh6}k4f z-vb9?$$aDb5L~C-30WJ&sHwI0jvo+S?>9u@#xXcmE3aODZO$40I1M*~dNExd<|>w| zKtDKB6WM6Eip`}@>F$Oz3LM6H)xtS&&UCs&rC$c0DqxCM;ZMTnSV8&tgp(;=bulcK;pZhgD3ODlzMkP27k7ehQq7s~fb4KD6UxcflvMt-ynw<{10*F0b=;XrteKSRS9 z4OeJ96^^;izRtHm@+j<#%wO*Ri}48Zw>aD=fzwXeB7GJvBOIM#@(4FxfzRHIwNn*5 z3g-{t7OYar0aP@pwK7cDLfJH&lx7UDjnm4O>J-okvU43@)5`>^MjWLdyAI6oCVQt@Af%SYKd z^A()QMB_Wk{SA)0nG+DEbSs1AbY`t40lv@JsHFnF8ppwjC}D;wU<4d=tG(O39nM*f z9Z({l3iAque@T`F@2I!ayWx|RNBd<37!r8YMcRhpS-8+;-|5&27gX8z{a%wSt&D2G z2k;85z*;zwF3D6CJ_Dze*q2f+!Mnmae{m5(c0ucYC<)`-*TN{c=24`eG8hQE%Iuv^ zGMw_fZCbP7Gp+31b3UBb+^+C)IEdY^Z&H6trK6st625=GCT#39Vq-aB1C^A;-CG(jCOGHChmNw{QAP(+)S^&7LUQBaD~Hv z$K!4|wvR2s3^;NsEm9SB!y$rew2IfkXEhz#2G^poz6QPuCv##_q~d=9yAy9^!9X8K zEk1!q(L7sZXW+oz_U_fm8DPCufV>;vDzGKe6^?z!p1w!HaUAmbbYK#^ioGOiW|fyK zpZ~1z*r(qQ5#bDbxoX23;VF0p&+)n`ei5$Y2*xKd`Sc?))!v@J2alzTe1_)}xR?g` z;{O0wN7)s!?%$-cQ}NZXeF9sp<8}dk;FD|Z0!F}@<7kD_5qTgL=s)2wjGGurNt!8_ z=Sh(TJm*vKAArlt?G;t28;{aaEHqUM<>5gA$7~ocOGI*Ke3ZE$P>t(1;nWj$2A{(D zW9(zPui+4_LchXw8|=xg1>F~=h4*idM>p*WhFpSg>1eOZE*2^EO`6yeTU!Wyb9Eaq6{3&(D8%bqMmbf82E_pd~TM#d>ctJ$8>YbW>=?xl5&@kY_{6$y5_$DB)9E5 delta 76686 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 H%N72=Yx^7? diff --git a/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c b/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c index ce717bf5a..8c7f107aa 100644 --- a/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c @@ -504,7 +504,9 @@ void setupDetector() { initializePatternAddresses(); // enable all counters before setting dacs (vthx) - setCounterMask(MAX_COUNTER_MSK); + initError = setCounterMask(MAX_COUNTER_MSK, initErrorMessage); + if (initError == FAIL) + return; initError = resetToDefaultDacs(0, initErrorMessage); if (initError == FAIL) return; @@ -608,8 +610,11 @@ int resetToDefaultDacs(int hardReset, char *mess) { } } - // set to default (last arg to ensure counter check) - if (setDAC((enum DACINDEX)i, value, false, true, mess) == FAIL) + // set to default + if (updateValueForVthDac(i, &value, mess) == FAIL) + return FAIL; + + if (setDAC((enum DACINDEX)i, value, false, mess) == FAIL) return FAIL; } return OK; @@ -911,10 +916,10 @@ int getNumGates() { return bus_r(ASIC_EXP_EXT_GATE_NUMBER_REG); } void updateGatePeriod() { uint64_t max = 0; - uint32_t countermask = getCounterMask(); + uint32_t mask = getCounterMask(); for (int i = 0; i != NCOUNTERS; ++i) { // only if counter enabled - if (countermask & (1 << i)) { + if (mask & (1 << i)) { uint64_t sum = getExpTime(i) + getGateDelay(i); if (sum > max) { max = sum; @@ -1102,35 +1107,52 @@ int updateVthAndCounterMask(char *mess) { if (interpolation) { // enable all counters - if (setCounterMaskWithUpdateFlag(MAX_COUNTER_MSK, false, mess) == FAIL) + if (setCounterMaskAndTimeRegisters(MAX_COUNTER_MSK, mess) == FAIL) + return FAIL; + if (setVthEnabled(M_VTH3, false, mess) == FAIL) return FAIL; - // disable vth3 - setVthDac(2, 0); } else { // previous counter values - if (setCounterMaskWithUpdateFlag(counterMask, false, mess) == FAIL) + if (setCounterMaskAndTimeRegisters(counterMask, mess) == FAIL) return FAIL; } + if (pumpProbe) { // enable only vth2 - setVthDac(0, 0); - setVthDac(1, 1); - setVthDac(2, 0); + if (setVthEnabled(M_VTH1, false, mess) == FAIL) + return FAIL; + if (setVthEnabled(M_VTH2, true, mess) == FAIL) + return FAIL; + if (setVthEnabled(M_VTH3, false, mess) == FAIL) + return FAIL; } else { - setVthDac(0, (counterMask & (1 << 0))); - setVthDac(1, (counterMask & (1 << 1))); + // enable vth1 and vth2 as per counter mask + bool counterEnabled = (counterMask & (1 << 0)); + if (setVthEnabled(M_VTH1, counterEnabled, mess) == FAIL) + return FAIL; + counterEnabled = (counterMask & (1 << 1)); + if (setVthEnabled(M_VTH2, counterEnabled, mess) == FAIL) + return FAIL; } + + // normal mode, enable vth3 as per counter mask if (!interpolation && !pumpProbe) { - setVthDac(2, (counterMask & (1 << 2))); + bool counterEnabled = (counterMask & (1 << 2)); + if (setVthEnabled(M_VTH3, counterEnabled, mess) == FAIL) + return FAIL; } return OK; } int setCounterMask(uint32_t arg, char *mess) { - if (setCounterMaskWithUpdateFlag(arg, true, mess) == FAIL) + + if (setCounterMaskAndTimeRegisters(arg, mess) == FAIL) return FAIL; + counterMask = arg; + if (updateVthAndCounterMask(mess) == FAIL) return FAIL; + if (getCounterMask() != arg) { sprintf(mess, "Failed to set counter mask to 0x%x\n", arg); LOG(logERROR, (mess)); @@ -1139,8 +1161,7 @@ int setCounterMask(uint32_t arg, char *mess) { return OK; } -int setCounterMaskWithUpdateFlag(uint32_t arg, bool updateMaskFlag, - char *mess) { +int setCounterMaskAndTimeRegisters(uint32_t arg, char *mess) { if (arg <= 0 || arg > MAX_COUNTER_MSK) { snprintf(mess, MAX_STR_LENGTH, "Could not set counter mask to 0x%x. Valid values are between " @@ -1149,6 +1170,7 @@ int setCounterMaskWithUpdateFlag(uint32_t arg, bool updateMaskFlag, LOG(logERROR, (mess)); return FAIL; } + LOG(logINFO, ("\tSetting counter mask to 0x%x\n", arg)); uint32_t addr = CONFIG_REG; bus_w(addr, bus_r(addr) & ~CONFIG_COUNTERS_ENA_MSK); @@ -1157,6 +1179,7 @@ int setCounterMaskWithUpdateFlag(uint32_t arg, bool updateMaskFlag, LOG(logDEBUG, ("Config Reg: 0x%x\n", bus_r(addr))); updatePacketizing(); + LOG(logINFO, ("\tUpdating Exptime and Gate Delay\n")); for (int i = 0; i < NCOUNTERS; ++i) { uint64_t ns = exptimeReg[i] / (1E-9 * getFrequency(SYSTEM_C0)); @@ -1164,10 +1187,6 @@ int setCounterMaskWithUpdateFlag(uint32_t arg, bool updateMaskFlag, ns = gateDelayReg[i] / (1E-9 * getFrequency(SYSTEM_C0)); setGateDelay(i, ns); } - - if (updateMaskFlag) { - counterMask = arg; - } return OK; } @@ -1327,11 +1346,12 @@ int setModule(sls_detector_module myMod, char *mess) { } // dacs myMod.dacs - for (int i = 0; i < NDAC; ++i) { + for (enum DACINDEX i = 0; i < NDAC; ++i) { if (myMod.dacs[i] != -1) { - // set to default (ensure counter check) - if (setDAC((enum DACINDEX)i, myMod.dacs[i], false, true, mess) == - FAIL) { + if (updateValueForVthDac(i, &(myMod.dacs[i]), mess) == FAIL) + return FAIL; + // set to default + if (setDAC(i, myMod.dacs[i], false, mess) == FAIL) { return FAIL; } } @@ -1485,8 +1505,7 @@ int setSettings(enum detectorSettings sett, char *mess) { // set special dacs const int specialDacs[] = SPECIALDACINDEX; for (int i = 0; i < NSPECIALDACS; ++i) { - // set to default (ensure counter check) - if (setDAC(specialDacs[i], dacVals[i], false, true, mess) == FAIL) + if (setDAC(specialDacs[i], dacVals[i], false, mess) == FAIL) return FAIL; } @@ -1631,8 +1650,7 @@ int getDAC(enum DACINDEX ind, bool mV, int *retval, char *mess) { return OK; } -// counterEnableCheck false only if setDAC called directly from client -int setDAC(enum DACINDEX ind, int val, bool mV, bool counterCheck, char *mess) { +int setDAC(enum DACINDEX ind, int val, bool mV, char *mess) { { char *dacNames[] = {DAC_NAMES}; LOG(logINFO, ("Setting DAC %s: %d %s \n", dacNames[ind], val, @@ -1650,30 +1668,12 @@ int setDAC(enum DACINDEX ind, int val, bool mV, bool counterCheck, char *mess) { if (convertVoltageToDACValue(ind, val, &dacval, mess) == FAIL) return FAIL; } - - switch (ind) { - case M_VTHRESHOLD: - // all threshold dacs: - // store values for all dacs for pump probe and interpolation mode - // only set for enabled counters - return setThresholdDACs(val, mV, dacval, mess); - case M_VTH1: - case M_VTH2: - case M_VTH3: - // threshold dacs: - // store values for pump probe and interpolation mode - // change dacval for disabled counter to 2800 - return setSingleThresholdDAC(ind, val, mV, dacval, counterCheck, mess); - default: - return writeDACSpi(ind, dacval, mess); - break; + { + char *dacNames[] = {DAC_NAMES}; + if (LTC2620_D_SetDacValue((int)ind, dacval, dacNames[ind], mess) == + FAIL) + return FAIL; } -} - -int writeDACSpi(enum DACINDEX ind, int dacval, char *mess) { - char *dacNames[] = {DAC_NAMES}; - if (LTC2620_D_SetDacValue((int)ind, dacval, dacNames[ind], mess) == FAIL) - return FAIL; detectorDacs[ind] = dacval; // validate settings @@ -1683,6 +1683,7 @@ int writeDACSpi(enum DACINDEX ind, int dacval, char *mess) { validateSettings(); } } + return OK; } @@ -1706,46 +1707,17 @@ int getCounterIndexFromDacIndex(enum DACINDEX ind, int *retval_counterIndex, } } -int setSingleThresholdDAC(enum DACINDEX ind, int val, bool mV, int dacval, - bool counterCheck, char *mess) { - char *dacNames[] = {DAC_NAMES}; - uint32_t counterMask = getCounterMask(); - - int iCounter; - if (getCounterIndexFromDacIndex(ind, &iCounter, mess) == FAIL) - return FAIL; - - // if not disabled value, remember value - if (mV || val != DEFAULT_COUNTER_DISABLED_VTH_VAL) { - LOG(logINFO, ("Remembering %s [%d]\n", dacNames[ind], dacval)); - vthEnabledVals[iCounter] = dacval; - } - // if counter disabled, change value - if (counterCheck && (counterMask & (1 << iCounter))) { - dacval = DEFAULT_COUNTER_DISABLED_VTH_VAL; - } - // set value - if (writeDACSpi(ind, dacval, mess) == FAIL) - return FAIL; - - return OK; -} - -int setThresholdDACs(int val, bool mV, int dacval, char *mess) { - char *dacNames[] = {DAC_NAMES}; +int setThresholdDACs(int val, bool mV, char *mess) { int indices[] = {M_VTH1, M_VTH2, M_VTH3}; - uint32_t counterMask = getCounterMask(); + uint32_t mask = getCounterMask(); for (int iCounter = 0; iCounter != NCOUNTERS; ++iCounter) { - // if not disabled value, remember value - if (mV || val != DEFAULT_COUNTER_DISABLED_VTH_VAL) { - LOG(logINFO, - ("Remembering %s [%d]\n", dacNames[indices[iCounter]], dacval)); - vthEnabledVals[iCounter] = dacval; - } - // if counter enabled, set value - if (counterMask & (1 << iCounter)) { - if (writeDACSpi(indices[iCounter], dacval, mess) == FAIL) + if (rememberValueIfVthDac(indices[iCounter], val, mV, mess) == FAIL) + return FAIL; + + // set value for enabled counter + if (mask & (1 << iCounter)) { + if (setDAC(indices[iCounter], val, mV, mess) == FAIL) return FAIL; } } @@ -1754,13 +1726,13 @@ int setThresholdDACs(int val, bool mV, int dacval, char *mess) { int getThresholdDACs(bool mV, int *retval, char *mess) { int indices[] = {M_VTH1, M_VTH2, M_VTH3}; + uint32_t mask = getCounterMask(); + int retvals[NCOUNTERS] = {0}; *retval = -1; // default to mismatch - uint32_t counterMask = getCounterMask(); - for (int i = 0; i != NCOUNTERS; ++i) { - if (counterMask & (1 << i)) { + if (mask & (1 << i)) { if (getDAC(indices[i], mV, &retvals[i], mess) == FAIL) return FAIL; // set retval to first value @@ -1788,18 +1760,71 @@ int getThresholdDACs(bool mV, int *retval, char *mess) { return OK; } -void setVthDac(int index, int enable) { - LOG(logINFO, ("\t%s vth%d\n", (enable ? "Enabling" : "Disabing"), index)); - // enables (from remembered values) or disables vthx - enum DACINDEX vthdacs[] = {M_VTH1, M_VTH2, M_VTH3}; - // disable value - int value = DEFAULT_COUNTER_DISABLED_VTH_VAL; - // enable, set saved values - if (enable) { - value = vthEnabledVals[index]; +int updateValueForVthDac(enum DACINDEX index, int *dacval, char *mess) { + // do nothing if not vth dacs + if (index != M_VTH1 && index != M_VTH2 && index != M_VTH3) { + return OK; } - char msg[MAX_STR_LENGTH] = {0}; - writeDACSpi(vthdacs[index], value, msg); + // also validate index: only vth1, vth2, vth3 allowed + int iCounter = 0; + if (getCounterIndexFromDacIndex(index, &iCounter, mess) == FAIL) + return FAIL; + + // remember vth dac + if (*dacval != DEFAULT_COUNTER_DISABLED_VTH_VAL) { + LOG(logINFO, ("\tRemembering vth%d\n", iCounter + 1)); + vthEnabledVals[iCounter] = *dacval; + } + + // set value for disabled counter + uint32_t mask = getCounterMask(); + if (!(mask & (1 << iCounter))) { + *dacval = DEFAULT_COUNTER_DISABLED_VTH_VAL; + } + + return OK; +} + +// from user setting dac individually +int rememberValueIfVthDac(enum DACINDEX index, int val, bool mV, char *mess) { + // do nothing if not vth dacs + if (index != M_VTH1 && index != M_VTH2 && index != M_VTH3) { + return OK; + } + // also validate index: only vth1, vth2, vth3 allowed + int iCounter = 0; + if (getCounterIndexFromDacIndex(index, &iCounter, mess) == FAIL) + return FAIL; + + if (mV || val != DEFAULT_COUNTER_DISABLED_VTH_VAL) { + LOG(logINFO, ("\tRemembering vth%d\n", iCounter + 1)); + int dacval = val; + if (mV) { + char *dacNames[] = {DAC_NAMES}; + if (convertVoltageToDACValue(index, val, &dacval, mess) == FAIL) { + LOG(logERROR, + ("Could not convert voltage to dac value for %s\n", + dacNames[index])); + return FAIL; + } + } + vthEnabledVals[iCounter] = dacval; + } + return OK; +} + +int setVthEnabled(enum DACINDEX index, bool enable, char *mess) { + // alsovalidate index: only vth1, vth2, vth3 allowed + int iCounter = 0; + if (getCounterIndexFromDacIndex(index, &iCounter, mess) == FAIL) + return FAIL; + + LOG(logINFO, + ("\t%s vth%d\n", (enable ? "Enabling" : "Disabling"), iCounter + 1)); + int value = DEFAULT_COUNTER_DISABLED_VTH_VAL; + if (enable) + value = vthEnabledVals[iCounter]; + return setDAC(index, value, false, mess); } int getADC(enum ADCINDEX ind, int *value) { @@ -1956,6 +1981,14 @@ int setInterpolation(bool enable, char *mess) { LOG(logINFO, ("%s Interpolation\n", enable == 0 ? "Disabling" : "Enabling")); + if (getPumpProbe() && enable) { + snprintf( + mess, MAX_STR_LENGTH, + "Could not set interpolation. Disable pump probe mode first.\n"); + LOG(logERROR, (mess)); + return FAIL; + } + int csr = M3SetInterpolation(enable); if (setChipStatusRegister(csr) == FAIL) { snprintf(mess, MAX_STR_LENGTH, @@ -1965,8 +1998,10 @@ int setInterpolation(bool enable, char *mess) { LOG(logERROR, (mess)); return FAIL; } + if (updateVthAndCounterMask(mess) == FAIL) return FAIL; + bool retval = getInterpolation(); if (retval != enable) { snprintf(mess, MAX_STR_LENGTH, @@ -1978,9 +2013,17 @@ int setInterpolation(bool enable, char *mess) { return OK; } -int setPumpProbe(int enable, char *mess) { +int setPumpProbe(bool enable, char *mess) { LOG(logINFO, ("%s Pump Probe\n", enable == 0 ? "Disabling" : "Enabling")); + if (getInterpolation() && enable) { + snprintf(mess, MAX_STR_LENGTH, + "Could not set pump probe mode. Disable interpolation mode " + "first.\n"); + LOG(logERROR, (mess)); + return FAIL; + } + int csr = M3SetPumpProbe(enable); if (setChipStatusRegister(csr) == FAIL) { snprintf(mess, MAX_STR_LENGTH, @@ -1990,8 +2033,10 @@ int setPumpProbe(int enable, char *mess) { LOG(logERROR, (mess)); return FAIL; } + if (updateVthAndCounterMask(mess) == FAIL) return FAIL; + bool retval = getPumpProbe(); if (retval != enable) { snprintf(mess, MAX_STR_LENGTH, diff --git a/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.h b/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.h index 2ef5e2911..09f49d589 100644 --- a/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.h +++ b/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.h @@ -107,7 +107,7 @@ int64_t getGateDelay(int gateIndex); int updateVthAndCounterMask(char *mess); int setCounterMask(uint32_t arg, char *mess); -int setCounterMaskWithUpdateFlag(uint32_t arg, bool updateMaskFlag, char *mess); +int setCounterMaskAndTimeRegisters(uint32_t arg, char *mess); uint32_t getCounterMask(); void updatePacketizing(); @@ -143,17 +143,19 @@ int convertDACValueToVoltage(enum DACINDEX ind, int dacval, int *retval_voltage, char *mess); int getDAC(enum DACINDEX ind, bool mV, int *retval, char *mess); /** @param val value can be in mV or dac units */ -int setDAC(enum DACINDEX ind, int val, bool mV, bool counterCheck, char *mess); -/** @param dacval in dac units */ -int writeDACSpi(enum DACINDEX ind, int dacval, char *mess); +int setDAC(enum DACINDEX ind, int val, bool mV, char *mess); int getCounterIndexFromDacIndex(enum DACINDEX ind, int *retval_counterIndex, char *mess); int setSingleThresholdDAC(enum DACINDEX ind, int val, bool mV, int dacval, bool counterCheck, char *mess); -int setThresholdDACs(int val, bool mV, int dacval, char *mess); +int setThresholdDACs(int val, bool mV, char *mess); int getThresholdDACs(bool mV, int *retval, char *mess); -void setVthDac(int index, int enable); + +/** If 1 */ +int updateValueForVthDac(enum DACINDEX index, int *dacval, char *mess); +int rememberValueIfVthDac(enum DACINDEX index, int val, bool mV, char *mess); +int setVthEnabled(enum DACINDEX index, bool enable, char *mess); int getADC(enum ADCINDEX ind, int *value); int setHighVoltage(int val, char *mess); diff --git a/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c b/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c index fc9fe182a..0a43561c2 100644 --- a/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c +++ b/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c @@ -1223,20 +1223,30 @@ int processDACEnums(enum dacIndex ind, int val, bool mV) { return retval; // set if (val != GET_FLAG) { - // ignore counter enable to force vth dac values - ret = setDAC(serverDacIndex, val, mV, false, mess); - // changed for setsettings (direct), - // custom trimbit file (setmodule with myMod.reg as -1), - // change of dac (direct) - if (ret == OK) { - for (int i = 0; i < NCOUNTERS; ++i) { - setThresholdEnergy(i, -1); + if ((int)ind == (int)M_VTHRESHOLD) + ret = setThresholdDACs(val, mV, mess); + else { + ret = rememberValueIfVthDac(serverDacIndex, val, mV, mess); + if (ret == FAIL) + return retval; + ret = setDAC(serverDacIndex, val, mV, mess); + // changed for setsettings (direct), + // custom trimbit file (setmodule with myMod.reg as -1), + // change of dac (direct) + if (ret == OK) { + for (int i = 0; i < NCOUNTERS; ++i) { + setThresholdEnergy(i, -1); + } } } } // get - else - ret = getDAC(serverDacIndex, mV, &retval, mess); + else { + if ((int)ind == (int)M_VTHRESHOLD) + ret = getThresholdDACs(mV, &retval, mess); + else + ret = getDAC(serverDacIndex, mV, &retval, mess); + } return retval; } } @@ -6681,20 +6691,7 @@ int set_counter_mask(int file_des) { #else // only set if (Server_VerifyLock() == OK) { - if (arg == 0) { - ret = FAIL; - sprintf(mess, "Could not set counter mask. Cannot set it to 0.\n"); - LOG(logERROR, (mess)); - } else if (arg > MAX_COUNTER_MSK) { - ret = FAIL; - sprintf(mess, - "Could not set counter mask. Invalid counter bit enabled. " - "Max number of counters: %d\n", - NCOUNTERS); - LOG(logERROR, (mess)); - } else { - ret = setCounterMask(arg, mess); - } + ret = setCounterMask(arg, mess); } #endif return Server_SendResult(file_des, INT32, NULL, 0); @@ -10159,27 +10156,7 @@ int set_interpolation(int file_des) { #else // only set if (Server_VerifyLock() == OK) { - if (getPumpProbe() && arg) { - ret = FAIL; - sprintf(mess, "Could not set interpolation. Disable pump probe " - "mode first.\n"); - LOG(logERROR, (mess)); - } else { - ret = setInterpolation(arg); - if (ret == FAIL) { - if (arg) - sprintf(mess, "Could not set interpolation or enable all " - "counters for it.\n"); - else - sprintf(mess, "Could not set interpolation\n"); - LOG(logERROR, (mess)); - } else { - int retval = getInterpolation(); - validate(&ret, mess, (int)arg, (int)retval, "set interpolation", - DEC); - LOG(logDEBUG1, ("interpolation retval: %u\n", retval)); - } - } + ret = setInterpolation((arg != 0), mess); } #endif return Server_SendResult(file_des, INT32, NULL, 0); @@ -10216,23 +10193,7 @@ int set_pump_probe(int file_des) { #else // only set if (Server_VerifyLock() == OK) { - if (getInterpolation() && arg) { - ret = FAIL; - sprintf(mess, "Could not set pump probe mode. Disable " - "interpolation mode first.\n"); - LOG(logERROR, (mess)); - } else { - ret = setPumpProbe(arg); - if (ret == FAIL) { - sprintf(mess, "Could not set pump probe\n"); - LOG(logERROR, (mess)); - } else { - int retval = getPumpProbe(); - validate(&ret, mess, (int)arg, (int)retval, "set pump probe", - DEC); - LOG(logDEBUG1, ("pump probe retval: %u\n", retval)); - } - } + ret = setPumpProbe((arg != 0), mess); } #endif return Server_SendResult(file_des, INT32, NULL, 0); diff --git a/slsSupportLib/include/sls/versionAPI.h b/slsSupportLib/include/sls/versionAPI.h index 9198a7b63..97427dde3 100644 --- a/slsSupportLib/include/sls/versionAPI.h +++ b/slsSupportLib/include/sls/versionAPI.h @@ -9,4 +9,4 @@ #define APIEIGER "0.0.0 0x260218" #define APIXILINXCTB "0.0.0 0x260218" #define APIJUNGFRAU "0.0.0 0x260218" -#define APIMYTHEN3 "0.0.0 0x260218" +#define APIMYTHEN3 "0.0.0 0x260219"