From 5bcde789ac72d6ae72a36f262f73fa5d324232f8 Mon Sep 17 00:00:00 2001 From: Dhanya Thattil <33750417+thattil@users.noreply.github.com> Date: Mon, 2 Sep 2019 19:27:27 +0200 Subject: [PATCH] Readoutflags (#61) * WIP * eiger binary back wih versioning * fixed readout flag in ctbgui, added speedLevel enum * ctbgui: fixed a print out error * ctb readout bug fix * WIP * WIP * WIP --- ctbGui/ctbAcquisition.cpp | 12 +- ctbGui/ctbPattern.cpp | 22 +- slsDetectorGui/include/qTabDataOutput.h | 7 - slsDetectorGui/src/qTabDataOutput.cpp | 16 +- .../bin/ctbDetectorServer_developer | Bin 164420 -> 166680 bytes .../slsDetectorFunctionList.c | 181 ++++++----- .../slsDetectorServer_defs.h | 2 +- .../eigerDetectorServer/Makefile | 6 +- .../bin/eigerDetectorServer_developer | Bin 307235 -> 308390 bytes .../slsDetectorFunctionList.c | 143 +++------ .../slsDetectorServer_defs.h | 9 +- .../bin/jungfrauDetectorServer_developer | Bin 129188 -> 130996 bytes .../slsDetectorServer_defs.h | 1 - .../slsDetectorServer/include/clogger.h | 1 + .../include/slsDetectorFunctionList.h | 15 +- .../include/slsDetectorServer_funcs.h | 9 +- .../src/slsDetectorServer_funcs.c | 284 ++++++++++++++---- slsDetectorSoftware/include/CmdProxy.h | 15 +- slsDetectorSoftware/include/Detector.h | 22 +- .../include/multiSlsDetector.h | 16 +- slsDetectorSoftware/include/slsDetector.h | 54 +++- .../include/slsDetectorUsers.h | 14 +- slsDetectorSoftware/src/Detector.cpp | 86 ++---- slsDetectorSoftware/src/multiSlsDetector.cpp | 16 +- slsDetectorSoftware/src/slsDetector.cpp | 107 +++++-- .../src/slsDetectorCommand.cpp | 95 ++---- slsDetectorSoftware/src/slsDetectorUsers.cpp | 29 +- .../include/BinaryFileStatic.h | 2 - slsReceiverSoftware/include/GeneralData.h | 59 ++-- slsReceiverSoftware/include/HDF5FileStatic.h | 4 - slsReceiverSoftware/include/receiver_defs.h | 1 - .../include/slsReceiverImplementation.h | 16 +- .../include/slsReceiverTCPIPInterface.h | 4 +- .../src/slsReceiverImplementation.cpp | 107 ++----- .../src/slsReceiverTCPIPInterface.cpp | 21 +- slsSupportLib/include/sls_detector_defs.h | 91 ++++-- slsSupportLib/include/sls_detector_funcs.h | 22 +- slsSupportLib/include/versionAPI.h | 6 +- updateAPIVersion.sh | 8 +- 39 files changed, 819 insertions(+), 684 deletions(-) diff --git a/ctbGui/ctbAcquisition.cpp b/ctbGui/ctbAcquisition.cpp index aa4634abe..95f6c31ee 100755 --- a/ctbGui/ctbAcquisition.cpp +++ b/ctbGui/ctbAcquisition.cpp @@ -766,7 +766,7 @@ void ctbAcquisition::canvasClicked() { void ctbAcquisition::setCanvas(TCanvas* c) { myCanvas=c; myCanvas->cd(); - myCanvas->AddExec("dynamic",Form("((ctbAcquisition*)0x%p)->canvasClicked()",this)); + myCanvas->AddExec("dynamic",Form("((ctbAcquisition*)%p)->canvasClicked()",this)); // myCanvas->AddExec("ex","canvasClicked()"); } void ctbAcquisition::dataCallback(detectorData *data, long unsigned int index, unsigned int dum, void* pArgs) { @@ -1503,7 +1503,7 @@ void ctbAcquisition::update() { } CATCH_DISPLAY ("Could not get number of digital samples", "ctbAcquisition::update") try { - roMode = myDet->getReadoutMode().tsquash("Different values"); + roMode = static_cast(myDet->getReadoutMode().tsquash("Different values")); setReadoutMode(roMode); } CATCH_DISPLAY ("Could not get readout mode", "ctbAcquisition::update") @@ -1615,7 +1615,7 @@ void ctbAcquisition::toggleAcquisition() { } CATCH_DISPLAY ("Could not get receiver dbit offset", "ctbAcquisition::toggleAcquisition") try { - roMode = myDet->getReadoutMode().tsquash("Different values"); + roMode = static_cast(myDet->getReadoutMode().tsquash("Different values")); setReadoutMode(roMode); } CATCH_DISPLAY ("Could not get readout mode", "ctbAcquisition::toggleAcquisition") @@ -1798,11 +1798,11 @@ void ctbAcquisition::setDigitalSamples(int n) { void ctbAcquisition::setReadoutMode(int f) { roMode=f; - slsDetectorDefs::readOutFlags flags=(slsDetectorDefs::readOutFlags)f; - if (flags&slsDetectorDefs::DIGITAL_ONLY) { + slsDetectorDefs::readoutMode flag=(slsDetectorDefs::readoutMode)f; + if (flag == slsDetectorDefs::DIGITAL_ONLY) { nAnalogSamples=0; adclist.clear(); - } else if (flags&slsDetectorDefs::ANALOG_AND_DIGITAL) { + } else if (flag ==slsDetectorDefs::ANALOG_AND_DIGITAL) { ; } else { diff --git a/ctbGui/ctbPattern.cpp b/ctbGui/ctbPattern.cpp index 9f1113bb3..8f56ca16c 100755 --- a/ctbGui/ctbPattern.cpp +++ b/ctbGui/ctbPattern.cpp @@ -1011,19 +1011,19 @@ void ctbPattern::setDigitalSamples() { void ctbPattern::setReadoutMode(Bool_t) { try { - int flags = 0; + slsDetectorDefs::readoutMode flag = slsDetectorDefs::ANALOG_ONLY; if (cbAnalog->IsOn() && cbDigital->IsOn()) - flags=2; + flag=slsDetectorDefs::ANALOG_AND_DIGITAL; else if (~cbAnalog->IsOn() && cbDigital->IsOn()) - flags=1; + flag=slsDetectorDefs::DIGITAL_ONLY; else if (cbAnalog->IsOn() && ~cbDigital->IsOn()) - flags=0; + flag=slsDetectorDefs::ANALOG_ONLY; else { throw runtime_error("unkown readout flag"); } - myDet->setReadoutMode(flags); - cout << "Set readout flags: " << flags << endl; - } CATCH_DISPLAY ("Could not set readout flags", "ctbPattern::setReadoutMode") + myDet->setReadoutMode(flag); + cout << "Set readout flag: " << flag << endl; + } CATCH_DISPLAY ("Could not set readout flag", "ctbPattern::setReadoutMode") getReadoutMode(); } @@ -1037,17 +1037,17 @@ int ctbPattern::getReadoutMode() { try{ auto retval = myDet->getReadoutMode().tsquash("Different values"); switch(retval) { - case 2: + case slsDetectorDefs::ANALOG_AND_DIGITAL: cout << "analog and digital" << endl; cbAnalog->SetOn(kTRUE); cbDigital->SetOn(kTRUE); break; - case 1: + case slsDetectorDefs::DIGITAL_ONLY: cout << "digital only" << endl; cbAnalog->SetOn(kFALSE); cbDigital->SetOn(kTRUE); break; - case 0: + case slsDetectorDefs::ANALOG_ONLY: cout << "analog only" << endl; cbAnalog->SetOn(kTRUE); cbDigital->SetOn(kFALSE); @@ -1055,7 +1055,7 @@ int ctbPattern::getReadoutMode() { default: throw("unknown readout flag"); } - Emit("readoutModeChanged(int)",retval); + Emit("readoutModeChanged(int)",static_cast(retval)); return retval; } CATCH_DISPLAY ("Could not get readout flags", "ctbPattern::getReadoutMode") diff --git a/slsDetectorGui/include/qTabDataOutput.h b/slsDetectorGui/include/qTabDataOutput.h index 50513711d..d2a373296 100755 --- a/slsDetectorGui/include/qTabDataOutput.h +++ b/slsDetectorGui/include/qTabDataOutput.h @@ -41,13 +41,6 @@ public: sls::Detector *det; // Button group for radiobuttons for rate QButtonGroup *btnGroupRate; - // enum for the Eiger clock divider - enum { - FULLSPEED, - HALFSPEED, - QUARTERSPEED, - NUMBEROFSPEEDS - }; // enum for the Eiger Parallel flag enum { PARALLEL, diff --git a/slsDetectorGui/src/qTabDataOutput.cpp b/slsDetectorGui/src/qTabDataOutput.cpp index 3c27d6255..49df19c0b 100755 --- a/slsDetectorGui/src/qTabDataOutput.cpp +++ b/slsDetectorGui/src/qTabDataOutput.cpp @@ -283,16 +283,8 @@ void qTabDataOutput::GetSpeed() { FILE_LOG(logDEBUG) << "Getting Speed"; disconnect(comboEigerClkDivider, SIGNAL(currentIndexChanged(int)), this, SLOT(SetSpeed(int))); try { - int retval = det->getSpeed().tsquash("Speed is inconsistent for all detectors."); - switch(retval) { - case FULLSPEED: - case HALFSPEED: - case QUARTERSPEED: - comboEigerClkDivider->setCurrentIndex(retval); - break; - default: - throw sls::RuntimeError(std::string("Unknown speed: ") + std::to_string(retval)); - } + auto retval = det->getSpeed().tsquash("Speed is inconsistent for all detectors."); + comboEigerClkDivider->setCurrentIndex(static_cast(retval)); } CATCH_DISPLAY ("Could not get speed.", "qTabDataOutput::GetSpeed") connect(comboEigerClkDivider, SIGNAL(currentIndexChanged(int)), this, SLOT(SetSpeed(int))); } @@ -300,7 +292,7 @@ void qTabDataOutput::GetSpeed() { void qTabDataOutput::SetSpeed(int speed) { FILE_LOG(logINFO) << "Setting Speed to " << comboEigerClkDivider->currentText().toAscii().data();; try { - det->setSpeed(speed); + det->setSpeed(static_cast(speed)); } CATCH_HANDLE ("Could not set speed.", "qTabDataOutput::SetSpeed", this, &qTabDataOutput::GetSpeed) } @@ -314,7 +306,7 @@ void qTabDataOutput::GetFlags() { comboEigerParallelFlag->setCurrentIndex(PARALLEL); else comboEigerParallelFlag->setCurrentIndex(NONPARALLEL); - } CATCH_DISPLAY ("Could not get speed.", "qTabDataOutput::GetSpeed") + } CATCH_DISPLAY ("Could not get flags.", "qTabDataOutput::GetFlags") connect(comboEigerParallelFlag, SIGNAL(currentIndexChanged(int)), this, SLOT(SetFlags())); } diff --git a/slsDetectorServers/ctbDetectorServer/bin/ctbDetectorServer_developer b/slsDetectorServers/ctbDetectorServer/bin/ctbDetectorServer_developer index 1e91ef43aeb1208dca0c90d55de22883b33bffc8..707f30b755e0d8c23a9d78ddd05304cde8c6badc 100755 GIT binary patch delta 80283 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%0D65pOEZNd2j&z?4c8E9?>np;2{Sm2})Y(s!; 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 delta 78019 zcmb4s3tUvy_Wv0`9C6fxB94lBAX7B;j>c6~v;pxEp`ekX*J^xQ`M~lPd96Vsqp|{z zmUXQLv_i8Q(rSjW?r2t2<{b_5ZF4+?_{c^x10T%)yY`tgb3kwY{(e3i&)Sc**Is+= zwbx$zG3#HA+FcmcZ|0cH9FF565YjnanVSpiU(JQ3c{q;e*f-ZP4r#jk=b!ogwI$JE z#**}e3E5@gQg+$z_EFMIe9bJov%)O7vp5PTU$9?oagVgNe`^He>s(zp#~J$ZnbO+6 z1_ZOTzAuN6V;V25@6S(agTE!)2Sjc_?1sK2bpwnW`ld=7`V*wX|1-I}rOdKc2;u-; zlGV{aN^4P`~Ud)iTBggho4lb_+SJ#tM<2eiEQLxarT2g08 zkU**YZW$*}vvTsd0#3d%TW`37S97FFwlbX+e_oiu$qUQOQgs=Jkcw(`RK5IxuE4dz z$yqpgzplW^$@8|VmFhK>(zh6&Ax$3;g}|3^hGd?T{}!eo-$)Hz!kGw^oX!rK*S*g}r-f}aVh`x?s2>&ieL5|^kt_zGILpdKx?L{d?RK;;E;=)F65l7}2!!EBA z3tGfP_Ip<+^?O%*+26}L|2Okd4# zPw=<|ix*wvb?WpnMo19yuYYf!^Q6-+kM~=NYn;U|Kk6s0wcMh&xLx4_hre#8swg^g zW~m0nYTon9Nq&=SAo%Q;r}|AOaegyY0TcIEW(Y39nJOLIs*_>`y*?V^cL}8~y%&$F zjDE8#m6aReH>2GC&9NX}xUZa(gz|W28j6LXm|u?YXS*gclKS|wk@1Vo=xP`5 zo{@igxnI7}Xmgb^bg_OLa=pJCVnCZ$S+puBMNE=~XJzOGV!`Z`hm zbh&u0m9f{=2MZt-M57%w+c#H$#&@o(G=6uTXne3->>D+>OEof7gS4kuGWB#BOCC}# zE{p0L$!*~zZi~1jYH*lIFP@A_3|sr4XlUIx>}mQ>7)%qf4ddyd2MZ?XP4zQ$IqJ|* z;_rXZJSsHyl(>5z6kl#FSU-J}CV=GH<^G|yPx;MK9IA@jk}73x(IIg1OwsG=E7do? zHtnP{%@i;BIgF_{sFlC3QQ}jjY~;<}l4jy$@ok@r7Z88_wP_cSAHDddnoa}$8Kk4x zhTl3+o+;B(J4!hyoU^5`%%aW|plZ;X;8P(tyT z#(~VnD5-wS=jtISEapvW`X;1rV(H$Ju_j@z5}$!e6F{d@n&|xGE#Kc5p^}$p73`W$N_HTd&%YKlR-VX$K6S9sLyp$Bl1y;CnZ|cL%^kR@{##s4lmsG+oPO(`(vE^!%|F+?_+X&-!Ct`LMn#GI9_wbgFfv24u?sO zfz8>Lh|+r%rRNV$*sbujpL%TEv+n6 z^KTKkfv+3Oj7711OwY)`XG%;@ zt1|ldk}7kMZQzrFu|2A`plZw363mSY>eZH))KklQp>@hQrW$TD(h#vhzLYV{ml(6u zCJ^Tpx(H(-Fcxkt1;$bJUMp;Mn(F7*Q`@hXl{g`0*><2&NQf>`i(=uKt!i3AsOVfm zxD^PuZl&qFYmh%?#-9Ua>O>m>4Sopu4uOmMV6Oi4R$}9>GC_Kal<%}@ z%Ky_SE>rnVo~BL;Tpc021caA>(EF#_EiG8JZv^nApzOo|zAgcLgD5V5kDsQ?QWn!N zxd~y!2QcP8@XL-M!sCAufsY0d#-Q-j0K$t?6{4ajE`YFZs@N}9u*LyR+y_pZUtSeN z^gcsmE>q>eVdF)I%{|It7bG9&v~lu|sebv>>)IAl3M70g83pc9K6HvAI6fyY`hvDw z1pEMI$&5P9tj^5-!Ah5~N+Uu2DptjdQ`PP_6t)ExT0e=7Zbd@65p+Q^nln@sQ|7W>Fl@qtbW)?%P51|NUDOk<1WtNovp z>Ag}C+zcRFkwIU5rgjk=HqOuq%3v$XY(<$LFRPtdf0=my5-Ve(GMQAS-BkLUIF(E} zXk*osLl5e~hz9$x3Ww z@~MnDRDLdF&Q+U|>z|kx;Jb(pNsk!SIo4`HF-wpK3hGwve6E2&P8EjZ`woG~9E7i4 z0>$;mS3HZ`5bbltvAEap)kz?y$QpdL$NCceg0D6#pRc_S>kx`Ni?48@eijKVNU@S1 z4IR@49aBGx)(~%C4dJjQ8x|WKHd;97E$g#%`UE3=+3+4QgaBpGG#1yWJ3uXO1$?6bsPzubtTWN?wMk!Sb6h}pgBlzPH8fioFk6H)dkZ7+ zroc5AQ&K2T>n3>=yWsXFISl;0&C#p}8ft;zBMyP4fcAgTXrmR?kUxAx_1i0)OI%R` zoC{a=h6vs_D-S(NaaiM#t`z5W?PDER!AavP)Uj1xT40DZ)|YaIaNdExSmp!&^pBjS zS4#cze=qT_Xx1H1fkMJ8z0KwZrmd{?nYC{j8&+p@L{6i5}a5voy@Q0wXQ011Hz4YL4c2 zv0XwptGNl5ZaN%f)RUNVEYU*8I2?HSReIoD9)TA(>yE|D{Z zMER~u*(g!{meQQ%O`202VdLbDM93)LQ`+X7eu|U#6{^hsn8 zi1*h)(sqNi_pSFS?8`^d{6J;bFRD(kgx_r_`q`U%1Y%!P@h(P*;y`6J7gc50>UTRz zy!ED|6y8;~fa66$szg=8?%SEBe09E0`G4SjCX=|QNB78x`}}faz3A%^6Er*ZriSqf zWp>nK4^Xz@qN+l7UUZ|L$!|WwD7&kPqd}Kzvw}U5sb2cDH@>caL&rF z3&K}qfhsEq{WM1*Z!grVqtuNnOwXy0li!aT$@&kwuBh#CqU39fFKD7k^%^NTu`Md{Q^nV;eYo5f^k5Q0R(FT zq%TE@rGXNW7gQ0r;{u6*``;u2Hsr8b^nmF4K13+t7v2tstGMsN&W)6dS~f#aNpZ)1!r!72@okLd@Y6+KOl{;*^TUHz_d& z6%Ei-^zjYF4i^x8F}<1;`v~rumMg^A+cU#{nlH}2U1&f05zf$>ci1k%9~E#Ky?VP~ zRX!Eh)TEL#u2-P4MF)(!aP&ag{E)#(%Mi*7dtTmw z+<}xj9pW?Ko+1|&8rz198$jXsBPRFiIUtl`gbT#yQgOUEpX?7kd_ryEr&KYBFZ2>3 zl_H|OSFHNEr>T(Y5^kqplaz!cXBah!Z%UQ2yzW{|4!?SJXOopE(% z4X5;Em;kl&c-RR_Iq`wsabZRGipzToR{b_k(r;_9VUyv!YViBdlTfaGos+lBgV#@f zZyvnMHl6+sY-3h1Z12wV+3Rhlim|4Gd3hD&oQjtgM0G+vS@-I(>`9e`Z8`)2v1AT4 z*bkql+bHwvn5NdAS655U^CZs`UKi67*TyXe zwad5dgw9G~8OXq!!7^N4FJ4MajI2S1nr&i2pTxNB_}spY%-Qf@-b9x7^Y!A~K8cZu z+c_z5ySNs4>yfvf<^Aqgbs+urD^*;$UOd!ia9F`yk?(7<9?#O7+)lE4$uiAztrF^Q z5UgZF2OjHIAUAI(zW(D^;ww>F@GJ4PZ5= zGaN&ICBEscK=Qz^#JJyIgJ*AUo@)#y53PW-xru=MF{h=T+)@spb8Pp^9fD0vW=;Iz zH6kb;;!=RlK0k-VMV`Z>%bSjw=n`?!9mcSg6UCxC(&OSjfivKfq0l|M&Z%nk)Hyq7 zTmG6@cSq03NuTJXq)&#Gnz3afNE4z=6|}K+1sr+f9O+Nu$bZg}{>*vp4Pj_$JyP0W z|IFr0Hmot`A^tp86UFclq~;Lx{RGTKbHthbdRp^Qcm5}2=g&E(GWUgZ#M~aQ%@LAe ztD}45fpd~8pljynP06J?{ZwQ9tZcMzFl*l(bA0yXQW9X>ToT~rVNl*ofUC3hhB%%U zILZFh>@=zTlQ4wguOIc{5k59ldmQU*$`zP+U@&fCR$Au zsBMlurwa7ob3SU#s}r5|wlMI3yO!-NFhsEy&t)x6olNabpFpZ6xdn!HT?@E1c5q(I z+s03^Vm5y2mrtKn5w>LrH@-?li~)lBS!T)WSDYFN6GVIeOzUH_ysn;bNgSF3ix=PB z1?KN?brGC4K{8&`WpnbIQ@v1@P8(zwb(m4bT2=-1lk+UmJmJ-Plnp9NQ01^YYz2nD zVgGhI%1r;1M%$A?!ro$~?tE1k&4?%ZejE=ICzHND9#0zevHAGhrj?OmzM`}Y`r0&J zb@!7yN&Obx0}`$Is3#w^{r#*ug-$z59sk=p>=Qs6mH>$^Q~6#zz7HnJ)hMwVCF0Ji zQ)ud0s^q6YiF_&n=NFZpJf5c2O(?O6wIwXbf!?ewJ34AMvm?+cR48}6xcqPDtvgU^ z$EOm6^06~&*Q`H7eCxk1$TQA@Z697o^X#yXao_}HszKYdGiGc&Sop zzK%0I$opl{ha)6>{jB8LhQ`<9`$~0JUz?U@QqQ*-Uv!kN{MszG7}&u|DHyb$>JTp4 z@2tqHNHdXE?oj}*BI>&IsZx5_#tcZX@r=3*8*wHZweDY=ym42Wl7q9*_E^?LJ=11! zpJA|n=9m4aX=Owb(esQ2C7f&Z*hFk-92?Kk|N6#J@o0a6d6z)>2a;QrI9=&U?V zqSI;Zu(Fk3?^>a=j2VS5@y|gMBkNJJ{xfmHoknZyX;p59pY|fVM>I=G4j6Nep&N&7 z^vjW_)!x42H1)PytS@syEgBmOTn%thz6udB-y=vbaL!Ur9)1sJDR$+Tkx?v2YmheR zo=Q|7R-i*X#jQnL;yv}H3iL89DdO)T3PV|n5!dOSJSWy2E0Z_U5<|(n8u6{~DR9zC zX+6GM+~b!w`~32sJ^?#9iCORfy~;YOF}bFpk<^Po>V+v7a@f8B6+>>U-f&}aZH!^M zFtao+2W`!9Knm;Bb~@^)o#Wx><=RBCq5Erw-ZX;^-8~tt1maQ+#jt_?C5u0nv8^h} zsEaf^p_Is~#v6g5uOC!Zn~&@jFK6tUo931_jpY~p=Gy0slM z&0#xFwdxhm^h`yoS!{%pfsKar{ zFLof<^Gdxv-vnz4LLsn@ilZlogFVm5xj&MPG zaKI%R=2-!979i(*S*`pfnJQ0sS@ew@ki4N1XD2IlCcCSpfZ6~d05VJEC|F*3#YQ_- ze-9R(#tQ%Tk~sOUUiYsUtv7j?B}H{VFq-~8F`75+gn$>BDNWt)$Q~V7;Gk)=^uZW6 z=#7F@2zBznX!9s?i7U{Q(FGF-_K73R@hQ7O#BNak(@B;3t0#&2;+LGZE3h$+1pP*b zfN9=nK{|xx?h$<7HCh~OPE0um1m}QYQxL(o48a2d1Sf(Bj-k-sf#4VroWOUR(c&BC zUYRj2_(NPytTZ^mFXx>kev{a*J4vnW`%?X^hFQF+vuTZMqbmioyao9!$dB2VRVg5^ zl~oz@l4wXZCY7YyQE*GT-qb3CzMf}r8NrzZuSn0faPoJr2$C6;(7yeL>0)kbW^OSs z7Y8Y6lvGM?W0W{ntCW1~`qGt#EsJ5LqoiZ5aD*_E&mL_GXS(jBq;j$)qiVxy@mgw^ z!FlO0xv&huHbIYqtkfJ2C~2Ece|v*6T?TzcGPno9Y;UP?l$e>8C>VCYJ-&n1V#J|W zB~_QYBr24>T3nlESztjX%MM~oZjkV&Bw}Iv)eW;&xcXq>Qefy}#Gpsc?K`g6C~sPj z*m;r zId&}sHH%+<$*bzBkG*bW9s8pAZu;Ih_vdgheNL@1dQ}#U@DhvmzaSQm9xy=v1=h@8 zP=?=sR!6nbODy`}g=HV`C3;gHz6Yk!-;6Zz+~{6H(id0^eW6Zc-~6o7f9_|Zf5i*p zpfPJElkV^5Nq>8a)yIYHay7&uaCZJJ_ zW0pa*QyJRx&nK6Di$P$1&;xlFq$?N%i&6!t9)<)VDg|ChA}a&fR8d516*+3%|VK1ob6N?mJHq z?USF!A;($|42Wq>{8&JW&wOTV%A%+kgq`% zHK^i|6KcN~pP+uf{rM&*TA3Y&2@JWfA$JZVh}6=PjG(s9E2!FFquSw@k$)&J<{sZghKQQ?oONI@V#hO5+ zm$D|bDw>3CXb(F`)&`S*`d}Txe&EMyeyrZ)b?URd=rdKSv&MN`Xp7-&2lY5hbcxql zq))sbKFYQ5Sgsw=p(MwaAr<4h7~V_B%xpC)Uy>$W`%f4Gt=zm$W!)5mm0JXB6m1Fh zVQu>2Im~`oqHgO-guFIZ{Q8~&UH|z4j>aRh0j^1ogXSvH8`9ta^~>AEc9{b+Q`{}3 z6t~;C54w#uD8tzXW%;Aj?#;(k{lE7Zady^o?ZDOfZgi|0UZZ2gQzJ0_=NPdx=Q(k8 zW|z6=M&fkpwQ(4BMI0x8J5mwmuOhg*D6SrBnj(%){e(7{^S}dTXDPY_#*cnJ#Lexp z1K~F#^`=xd)4w~C;QtWJX8N~AiiYt**ay?a0pq(^mBT7HHv~!UYowfOkduy)(03jy z`}|0z=4OzZqu4nkGjOPq4p#CdiGxTk(?%w~7K-D+|3JFv!C6Y`zy^!H)t6nhd)?`v z-O-<&WmJey;R*S@sQzw7_#jsKJp?nt`;HVZjTfv#r_%vFifUAL)kRtwtBEc9UCn{ZZ9$|NN*2q)l4o zcDhqX*@?l1cwXC>E=ECm93-3?Q9psC*8wCBH~CKD zhpMt0M@PgIK@m4(B?(hdA8E3{8IZsc5OT&VC&oly)&pUdJTW^PPW7EwJMM%*@f2t1 z3P&-I=5^+v=H`HGQJVhv1 z1w4~+dWy7(!?r@-0n+5GUX!|8OO~lTz^091oRNz7Py|6f#nBu_MGU%PAf8dkS#0o;+L|!Duax7*5q2qN zmkxoT*QWXG${F^Ri*0BPO=!e`nyy}lezuxF4*BD(%?docSV53R7VERTK;$Iv;wZ>A zXs!xI&R3irK^vK1!z9Pv_Kqh22esVoL^1i3#>Y(bTZW#;&C&+sM38?fgew-`2y*-2J*pv`50$NcMvTi5!dg7T?oWNXh~1yEgTwY+ z?EcibFR_~ZQr-GS7Xy!PSAz{)Sw#1z^hno#N$})F*?@Zj?#bW@i|GDTGT>wek6A?b zr!oO&GI-=7x<6$BY+>-=MJB*Y0WW3nfJN;7R1qSISVXTybbo3C;0+A!zKHHm*#X-b z9J`2o&btBcW^mg@bbsm);6n_KToka+*oxdN3A;H8a$Cj{8U}YVmQ=5VdJ0%_;^exv zVG~y}=7cHC$=Qt^w%v?5#b2Q-z6vpCEikU#P0ZM`keIU-@Ky$wEhOet0j^^38w-g! z#{eH=@S26h93NmGgI`!k%!vU0h_49W%7w%nBVZ$gmn~$>>4%7ZEaK6H#2hnVGlL&q zNX*FroWtOm3yC@N0ncafw1vc+<$#wnc+$cUbHbsE74=3#JJRTvpE=-{-#;2I;H=|O zv&4<$5K<+p`zxK~{_0V1u2sHS+R+1k`yQ#12eF>7`XaXR39Jeby9cp{5PRsWL5ThR zi44htA!lLt3sg?GWZS^X03`L8D$O6DL(p4%@SP-}+|VSp7HUJAz8=?DA;XH~Cf7&@WtMN7S3VWHWm8k9yq$-i?2)^qZhR>854TZbV`snYi0Is|nW z++mvu-UPISh>XhTq>>{rGt`!Z1+$1rxq~yWq2UN7pX)Z5oZQzs3V`AO=>Z`C>IldP z2mw%AKms5HK;)-N1eEx-_-SrW>-=xfiQlMFmnxZ%gn*2B$Y=(H0O%n=Ie-uV%>*1fDiyt+j9XS0P=y!;-RTsthrU3lv@?z zfgM>8kcH@V13~}Io?szlG!7_oes!CD1ct2DG0AQ=IfiGm_P2!M!!Vn7Ihh=TQi z5C9Pc<$w?X5yKpS5C9PYZa@ftLc&527$zQ^+Q!O;L{wPZ!~}^%y|zJM`yw1Remy1400_7f???2!Or;lmZ9=kQ>lAKnQ@GfN}sK0QwlvY(NNr z-UpNq2m#P0K&t^E0D993a6Lc-fUg4D1PB4pD}d~P5C9bcasxsDv;vR^5CWiOfa(At z0D272B|r#(766L)UPl4Y96&LE5CA<8Z-oK@hyZX35>o&n0LliG3kU(w-GG(?LI9Ko zs0a`Opy7Zv073wi1ZX=T1VH@(?E!=Us23nFAOt`?;-NDx0Ym_3M5192Zm;ekC>l^t zKnQ@M03`uJ02B^r93TWh*C6J(fDi!v0Vod;0-*DN3IHJhIt6GgAOt{OK-O}A2mlWQ zbOS;Fv>%WM5CWj@0eJx-0NM@62M7Vs=YXyOLICtBpqL-P;2#M32v8y*1VH70k^vzA zDg`vo3UC|)-vBrr5CRfKKuZB309p;G5D)^OX92ATgaGJiKsG=KfSv%f9S{N_Qu|ea z5CD;?1pQX=Vn0T2Qp()&q(5CD-L%?5-3i1g@eKnQ?H zj}`zz07P1B10V!Iq{YesApjyRwtX+&hQJ?yq{ci*L;yr;>>MBjK%~aF|6+*#mmpGO zF@O*Nk=|#nHJENXOt0IAMfLyYy>BgLAi1q-l1 zTR?kWY9?VJY{7+mMJUFN827?#O-#-r7*mUiH8F)taZ_rkM-x;0PgsQiMZ6QR}h^fxc*2Kg;iNgd>7HeYch_OHE z(Zr-LgM)UNm9OPBY%4@$;WEB9S`)ViaeENgUK6+cU!eV8d~F9!Ts7jV5f`J0%PfFV zU%=OP)WmTsU?i^KYhx+S8t5+vA{~hAq{--63D3hyzSgLT%YKHFvY+8=J8R9O3&-!@;%o2J#H~f#TEr!3;tX$N zRK3mD{#_Gys1%F8QohzYSQD9E23aWMYlmp!?1-}?E?E;7w-Li@BVRjI6E_`k(-AjJ z6IX?}D#Q)f#3gNlQ+^X)o1(-)|3O>X5NSi?2u()AJD~aCN3TKCDXU^ zwWBq0IUhhZeZbd_(Zp>)+y=yr)x;@R$@toFnz-^0LG*`w?cG*Qq;egHug%cJ^}`|k zes;e09!=bK#BE1hrY4T7fKsX8YsYKi3K3U`xCxrLJ&4FI5?r-D>=pQ25rPliD4K?prDa1`b*&eHa-lVAXyJ&xhbwgQ zG_X{*N=rSMNOh$B{Tm>A^`# zk8;L0%2bK<>pwJD#|N=K%CL3-R-ApJeW^%>bQtEVz!DbA`*fZTDy145Yz~}E9${3| z^jL%Em+B2Me5m3>sQ8d)c&WptoLW}5h~wsTpvgNx9=9({;`TMkHG=IVx6)8~m0eV% zwhN5Polh!lpO0gGdM>}hS#c#urs$d9(;8xgqfBow^7*B7k7jt;Sk&7RVT{ysUnIg) zWpudo(TZ&qElq7r9pMiAVsQ$F~lxa^@yYuCj% z#cfeu#p<{?xiqmYy;73D55smJ?PlMGtD(uI(O~|#0<=TcTfXSs7(3(T+3gDCZcIVU1?i!P z?YKcktoUP8oI31TvGTr(Tjyd2b@XOZ-Sm) zm?6dOjzZu|e6F!3FK#gijQz^f7+?1fvA>nZuXnS?;RUSOCHxCDD7lJ46a&??N4VHpiBqz(JS5yY1l31Nf#i}pn^asQhYUoQ~7i@LPB zl&FyJ5W^SWHf`Eok4tj3qFDoTz*bbU6_t#>hC}k;l$miV+CopG{L+th^aAa~M(ba< z^6>>?!Qw7Sn*x>1|J{z;1|BCSDS1ObrH%Twk*tL^Ke%zgjN0fx^^X1G-o>$l{;jEv zp3UiojorWE>KzNj*t~?O`vUcK{#{JV>layf0A|MlacSPjo_m0M51O{>s)~j@#$j=< zCz!zdNbtT@Kk=u$N!As^f*Hi%7q(ft@T#!Gd9xqRoBeBMVBh2sH5R8yE~@W^?Yx)` zB{uV)0{$);>ZvrN62Bbtv#0V$$3VO=X817-fyS8*N2GBj_Uhjl8LN$gHLz)_^dn7e zY6VyT|A+PU%q}MH2Ez6 z5et6opgBL44y@A@b>^1`UsSf-aGT{~9?)J}I#Mt@2LkcGj&X*hCWy^Wr$w)C!S|Nz z5ua5?2m&rn*egR-*-@4KN3r11n3UEU%CECah%~b%Tr5BpUoLGCs3PvT85KQpOl4R- z5Y+!DdLE6{%&sa6;3uetpP)KHdW_@b)eo!jcou1=|M(>mHJn@jV5rg;*abzZ z^dojbF?;DCY%TOknfi*h)+W!U`LG{B_$sSx8hGHRuSEsq4WO`od-hPIqy@? z*LAqyL6>ZQ>|Qh{8SiFNRgp%L+>FC|g8^U3hT$wW89U4nL&V~jKJ^63_dYKOTJTsT6T$>kX**q6etzXL)c1ap%0yzEt|{itg9@#MzGv zk;a2q@*fmmczm|ifKS6gdOSyM4vh_E3W_*}JuEgKs52+c2iFrr^B!qv!!0!QOY`ez z*+G*V!3Mf!FuLk(X~5;O_EZS7{)SU4g5BxClri zy8}12ycnpxn=AxMpg1g01Phx!`m|o=!De} zM!=yZH?rESVKtr1p~aEPiJKWJo_Tct)i3VL?`Z9k7&1-T-=f^sdFqifI{8EA6!C=O zIUe^C+AZbh7~H&-!Im(O47OgAZc{`w_PhrUV82{^d92B;u_kFu zOz$mPw#R6+gDPpN0e@~T>lyiB6!tbNJh*qLr*755Rd|>#qBm#g1BUfG6>ODauvjrj z=wL`!jm6?X$2blqNHaN3E}W~9<(GE^FNR9&V(7}e=KMa}D?rvQ#qMbkRoRO(SQ9~2 zT63xbL}|^axI@@iJ#-R`8?GVgu^>t78A(HLAgN3x3B5<&2etiyu`p#M2dPt8o-`L{ zz5Zz4sue1VTed1@F7zj4(RfPaKZ>#5A1tU{t=()C`f%~GAJ{>ClvAtH*!1kq|LUTx z8vjELyGBaWa;sl`Fc0M|i-X9}%LW`aQq;@36YzystKpo zgW&4h>4v=-odx$M&O#`j61-h>N~vWSt-X|L4&SaI&TEmbm}J$(Btw*v4=KsYxvW7`#c>6N(?eRy?xfdm{PM*g2pb(o4b2qh zL*bGc#TT%HU5e#G$Iv{vp`o(tjA|&HIzy_ZXrY+6VwiRJKE0uT6SHKO^G9d4bA~hI z?@>HB3VP*^W(D*4P!)xmDjsLINU5v;&2EvVEW~6mS6PSUmn!S9O}8cEweMs+*G=qC zx}(?>xX*X1C7EfKXjs`L_JJOX9!of5cbS65ihZr-{Jn|-`Og+1y)+u6U6f?yIAk~PF=6QlL0`>+A2xi>J4~_qb$;l^6Fo;QBlS z*XJR!y~0hH<}Z4jCPQKqIe}E}303C2_c)T{CTbL@!9N z9qPc8Ixyvn3pd&d49?HSy5h$DjHWhXLVzQ+;w#T|vbGOEKh=5Q74ys47n*CE zZV7a7S=BMOQi>nW@XG^kz;QKR9n3Uub-*y9LqE_DJ z79x;0qkdK~Gd~qmv;byke84=OiCJhvH$@mMb)L%oc=^oj5;qlQX3jXHH;pw}FuQG; z;db6_(MLr>8Yl)A6?`EwIK%Tyb45YK@jgG?S)^p>b@Qjcb;E?kar*DXlxH(}MOjTT z&14S>H{K_%e>Se)!NWmJP5cffeuYL+UBgJZc1ZL-87*c+y@g7@q^JZ!SXn5&%xVfmP}}{35&%Yz_6o-)h~AnUKLJZ zSA~y1M7I&rku4p3(KEh~sotOQW$!~b5;5HpF5vx@9>K~=+*msmG-LQ}f@YAaCd`BE zMDNX5yd8^l<;bGXUJ&pdlex(W0m%oOqi-SmYaSF$MPsa6x(4)JZMJI@p8voN6S=Gh zXIKnb#ifdHeXF5Obd>gZr5-HH1ut?B^MfA7u?MvAa1=s@iKbK4R!EcP9}YuMboopO zV@^&`P_6QqT6GqEq?Tq;!$X6BD0GHXZ^YS|!#F#0SZB&ZC1zB>A@GBixpqPK6#*(b zOc!qAYiaF9-7%(?Wd78Al5Dj%aoP1j+(Ssi$@-48d{w%@8Zuwf&`0WGQV)S5ducv= zKB2?R&j%q7UMW?(Aj_n~BSLpSsFt2oGR>8(>c3_NDX($gF?-aCA1C?nf#w6|dUvWE zSC14!4M>_VFi`?}i>9vzETH$f)K)4!^p%i>iY~P2r*!U$U+k_+=v+Kh@U^#z3&4s4 z{+f&nkklRXjH|BV+qmF#!l1bM0^cQkSr3PK?Fpqu3GtI2((#_n3k_+cILO;d*8 zhJ+?#Eiz6OvIA&a-UO|`bBN9VMeZ~qH;~)+&5hiv)8uv__Z?ON8u+W`BplFWdk5K! zG_(d_Xt7_GA#+?ku&nAj!vi7ls|>p36-)dsSmGm3Rr$x5$WT=CDSCxhyu0e!=#l%y zr&m86_Dzb|xcbqsm*~G(vFN2kVI7sv{FkSP9UabM&%OM(wf-No@S6<9xW={19L{!k ze*4G0h$(PZnRye*Vt#3Bn6!dXG4g9pCf6SH|1+Mmm@!0fDh%V=c6f?uC8p9(b2*C% zv2<}(hmA%xZ6?yna|dGPDi16Qq&VCOz^LDJ*I^}+-ZA<9r23?Y@1zZbzhn;XG+KC9 zd;p~$@6_YuDJpcJ!UQ0FI#(2mW36-JaC{z_c+(Q6&ZNid4`G_x!;o=Ct`4=Y57hn! zYImb{H!7z%s=V-|`aHtslXg^|!7BISXLpqL&>3vC^3au*zvoJhi-M!CG#hA?tIcVq z5}175;y8IlSI)49_se6&1I6*J>W^Xpy~{5T68*)UGeS!kH`HEvjdn+`8ZE3o43}|s zP{+#MPO2`}w3C?XWO=qK1met+p4NB&tAg6KDCWqZAB~K#wi@R_+!3tPk0eOrIqcg` zql+P`;!MW!Q>_^1WRY*dkzLS6FHcir;XK7|m2xfrtOSj3l~>QES+(#84nx3){h6ey z@naIH@uz~+G9QM~;!HMyagI^w$#4XPb1mUo1~FNdfB=OB#fy_)&6>%?w90%DKHvP( z&diPaWfv00k-vzAYvTT5mn?G{EnFrok5yDDuAAW%C0}4&@K_gmmEMP5uzS?Ci|t6b zWIIACU0u6eIep_=C9jKU-t<=sCXUtH%M_^hl2`FEExHM=VO_*xG4?Oo@a1O|xrHq=SerI|UQ zl~w1#&Z-YIshF+@(vrW;Ej+$+6f#NzWZcKdSfL@~10rL<9+0u;CS+vYgp9{Ji{01# zRnxhm4n+BVkg_kuRNs=Gg#F zJ~2Kd&mMLmo^0(uekOr^b*5fW4Sl=lU)O2SWn(rpOlUUma0}aPRjxSh)xNE^#wh)j zC;sczKGtIPZ0uLspzsT5uHmgGXt@h!a9vC;c>)bPsZ36yrqAjN!sQ=M+=f z+y_n1%%ufVXi&`lDcfmrnVoqqle558>YRk#YtPYe1X|OnL+6uI70xuI_>L|L#~*D{ z`Kg`GK}a$j3rEn7w|}3)ctcedW*RHbsc56%64WkWuXd|S>t+Ua*%Xmq-^J?bpme}m zTz`KOR{-gbFfDEsr@)t;uvy5YC<0RS7aej89dc|Jn7%qQBsEX7oBh-w8&6P&q|X?E zb&b*u0a+x!E%j|k7?&Qy3t7j0Y$l8|G-&T-cl!x#{s|Js&NJFGVZ=|$R2REM=H%K9 zEW3{>yrkXchT5?vq1lRLai;>;fPw(SXmCg0VsQH>W1z)#AguK^GC+F=n0Hou_VxIG z#DH08{|9Cr1GA1XW*xsL#H{}wS2xBkv1{k+EOEgh_K~Q2qr*($IM%AiZ`56%qirM$ zW{vKWV%6ao(p{}@(Y(cz#YO*)wZ7e6k%(D%kKhggdr+~YL}|490%!i&&u~fwZKXkT$QDgqCB3DMGqBR$T@%!thgR&0JV<@V{~zUv}JNS^!X$etELk zV?!s?%ve>;P^aChRlncIT6J5XRi}OyJ znzhPyU#L~}2Si~*thKhI+N@hU5b{x+HWkTwBuyt6uHR9nmLu1U1L4Hiw4YN9MxhhXZvDz*Z@34wcv3XaX$7IyC4g zyU7|)6@S$@kGN0Fe6!1>K>^g4kGh!$F0ZCJ$s;;y{h-a4j?K~T%^|ebYrMi8cL43M z8_>3Fg7ya4Y}SeEb7*IaUc4ohpj?CeE>OqIN9jl%94MhWtbt9012Nhiid%7eE-F#v zpFD)2RqCsOil!Y^yp+{)a~_q(XqbJsT7AzF^87Lgygez z^HJLjmjSpG`6RDnKt{!^w_93=1;}nZV#8x1s)XVR5Y%XCrl8F+HkVBmOZ*%v4fpo9 z*mK#7XQ`uNIK!xDcu_EZEyr=540S1QujpDHwP6U9-7g+{JHcApPLYQ#M@+8U;w_k` zY3l(;K?iaMp^2HG3KTAp9mgfI;}2sAGv{747SEp?q16#hNxP2NQNgVH)y~K-RSw7Y)=Wa6)ZyR?6+fqF|hHkuDk7gyO5T9pK-fz4**%A=x}Q}T3U{l z4m_eh^)&g28+80R{qF+(zMp;)C;yN}4_D_Qwkl2gB=!f%%KLj$%>|+N_pEaJ6kNl{ z`$TxX6UeK9Jp73I=tbfY572x&U3)tAVpfn~G!Va|1&8CJ4scM)&t->FI72&-dkz@S z0ppRwv`iv*mj5sr2)60j_-h?l?3_*e*Tn!{qbPh+!p~#0i1a+})SbYcx)VB+8D29S zi2{TG2(M3^z!i`askC@JtS+{GIP3$KMIc*Q%ZZs~#=qFOei%%9w>@X*2=8FXSw|PH zOF#0<-+n?DuJ?YTA|t<-+EJ=vEo~ndGXHzSy;b0#a?&KW<378sB9e)R6{T7x-KbO- zwZFx>s&OLWYBeB$>!SF|rcPFJo+h`~XoO~dyPMgFRTFVWT58^^j<;@Api$)$NkNhm zFH8J(Wt(1y+9<8ta7bxgY_rydfyR^3w`kp?taZK00=VV|aCyB=IYqd(-U?TWf@?tl zmnnd2%S~`Sek)v&3a-HcTvrY%ZCu(67xjbrR=7ObOd7ZVuH6A#BX5E$Dq8ftqaG2w zStq`pO%n+H<}vi}T$(_VOUYLF)}VC8O9utlZ%zEsxe)PpKftR$e1X*UGZR$Qo%ch> zA%>o|3Atue{f7&yRt&wA6A9A891b>Qs|k1`_@E{5lJ5G0&oi=BM(^RpfA{?#(x}bo$WVA{I&H}+k zRJ=Oz2T5J+nksI1uczf^D2+cyO2(gQSG)iR{hOlPmmWg-Y@5(HkSo&ElrmCL*w!5Y32@KMiStM)LHLVqKnEaF0`}2G|)%)Y! zt9pM{{~Ru@W)-SSSpMgxV~=EfRlBCT#_-oBL%1B9B_?j}-aairN90e%F0;VNDec7E z&2gGD4Jz|erS(7S5E7)8*kSOGQsZ#};DE~1SjN=PawD;_tzg@dAM9<;sV?nA&*r~6 zz_evTUn%jD_BekjVt5?zS6-*~w8Z-|fjpu2s$U7@2_5;TeC{a4O#Pfi14r-tn+=B)q zd_S*&toiJ8rexkI(e{4K1K*t>`-y(9RXeOyJ}Hf&=da(Luo=$D2rq}=mxmr88-ga~ z2M)MVv44tMjo`&uZ0}0;%eMnq6~>YiYN82=CU2T44W`ll@l=1}zfL6K)nQ^C5w&cp z$E9Y@Mdn=Zeun8v8f7-#e^X3vF-&P=kw|#5U+3_`-Zvfa5)G(b3Tk&(t0u(hY8sO- z1gYJQI<^O>b+S5=<4)j|4+?s{E5PBmt5w5bcQuW@IVeh%G{121eH(Gn*1yuQ)8HS9 zkib0&I~@$E0PdAAq=TjicpE5WIp1n)IB7hcK@6?x5-^nJw!+Y~!c*S2+U}Z#F=1)L z8ScZ99Dd8~YS(HV+jI_&HVzf-nJUFeaAr&R&B-)14rjZnRgd|IY7bg}VsbwLXArl0 z(fK$(rKjKG3~9D6op_``IT)2DO_#zD=!B`F066(dY6$VUAJx$p%{cJ!F6~zx?_(b?!2O9@9w@ zNR^zSVu`(j^`q9B+3JR^Xtl+vo5GCO?R7Z8Az`4FYS!d=0g95qWVL&GpnXTto^+{zohCz(p8mSI8JZ7#VzYX@To5 zRw7-k(nQ{pUt8xVa+YLe0~<0(NqOev7wY1nyak5U)A=MHY;} zJ1`@}0hO^<<#XlN9SZ1KsrEQ6RKP*EjWyHH zoJa+)S}O5tT$O4U!I6k3NO7QhL>Pi-+Yw_OHQZb2b#R71I(r=jhG9JJS`Vk!Q{!<} z@lF_YHy^p+yCd(_ID zV8&NJ?{1x%<*D?b33o>SFQUy&h&Bg_js?*XAexBh0>pnk4o?|@_;WRBQrs_L2$$_c z@T);&1Ee|Nd~W1iIt(ya3XL43&t}brBWf6NP7m*XbS3YIm*#N#sN;OJBRUIDL;ixN zA%6+UUkc!qUvN~ok$x?g5dE`}2cqTK`glBTfz)iIrZ&?1x0E`!Q9$a#>;{NJE>d%m zI;hd)qEU`tZ)voeko-XQ86?j~@_Z!U)@a5nx0F1t(Tvor?4wA{LuwvUV;a?axI-JW zk!sG~gVcPa<|DO5qw0m}+h{@R!0gYFT7c97q+Y(R`ct|#<{>p9`$H>|i;!G|(`5s8j)R$)D1}8fYfiVD;nG{pTBNH>K|Dv zkXnw^a->#XSH0#xU$-N*HtSKOZbzzhJCfhOt~#?l*WE}ym^BN@JCM8ssT;1V>zAF^ zJxHy}%0cRGr0z!QOV?Fb&BxchNOfk7M(Q4cWw`2{*LX~c0WZ=Mc znp9)$ffEru3ScJk7M!Zg^gxh}CUsb<^1Cl6zbhxJXt8_(ss zn+;>PL)R*+y~iO`3b^+ue&~)J@OHApcC%{nyX{SejiM{Wi|z#L6UqN;xOkgrW-mPC zOHV;1ouVV!-fOBU*MhObkoEslv8Kfd>NHYPKTkWQgdV8$v6<0(MvX z<~m97=&L%(40?+|Z_z38==Zv+3dTKGNiZgjFL0V%#kfPM%!XQw5Q&oziIaNML~sBi z0BDbufjHy_lM;txyg~x~U8d;$YJx6D{M*-en$*5jHuOS=h#L9gjYZ5Xfu?&Uv zFi+uh#Y6k`#mHb6JA5~^YcA4rS^Bhk8`4XWZmqW=eU&&5>4iuyWa*}QJJKtVeqX&E z>C;6Q(#w%v&e9|6-ALbw^gHU^NFOA&`@Un>Dx_DP9*EfUf2xAiq27b^F5+F^54T=J z`ZZSm%Rjv+FCk~$pI)T@b~ootY#T!-%U(=lpEyztDm*lM1`o}iNkd16QD@&PUrtgJ{qjnnRm9~zhW5j|LkQ`4 zVWr>6Lr)L)hK}WiV`HEyc)V83+|$Jx8WbIoRk0CihqG-^m(=Wew zHI$|&`vw0p;CG5b$Y#F3Hdt6FekkTxooAz`RQ&RbS9?NUL&OBv9~hyYCL`2?5t<7I z=bqUIw*G!uoe7ML6Fu&Jvb3_49&d8kaMM3Xj+psFoUVuX&<_uG-gG8R+H~d*ds4-t zpI21)@I%5;rdaql!$s+buF(fZ;&Se6W#*u_pI#B$?Clo06vJxi0MWE}koq})uSxxU zEBLvsdhcqTRmmJ(GRcNT%w*264krC>P>dkI!_kCFZ?}KPk?=k?7RD{os?Xq;V)!t` zUow%-N`})HzD}ed$S(v}G#{}i)^o?|v3`3J=h}VtV(d-`l1^8il~=)GaaAh*>}g?r z$An*|8J_{7iEv(=Xb*muOvH;+guNcv5#)c+`UEBbCl|2gNgswi1O1_t?pQL}rhd0C zx!2at@?O@kY(sd3tT~CN6r?<}u#K=V%mu7h%qYj5|9}+Ru`$|M5UtTvP$BV(^xMw794NT*Kh9fwZ`& z2VBqKHwMz;!T@}Rb5wrKKw4Y~fCUD>Fpw4(Nr00WymBBG7c-=Bh#1ErmJOuE#dN^a z8T{x#T3qA-&SUVy18H$l2)K~JGY8V*Vm;vX44yVHG_YwT1>`X9$Mnc!=Wq(`oH+MK z!Fp|U<%jjNco7%-Tr-3x%koQg*!q6z4mvL|w5*;%kKds^Gtl*RN^_PfIp;S?do!NW z>Pw+Ho5T<4P7X8WU4sLC@xzLNR8J(7AzqFVTUU3xZAnl1iD~@k7vzzC3{c75R#SAV zcu)21x@d7pb?2~MCf0X`U$O81E9<*)=fS%3p}x!f73;EJiT4kisPAS2p3UHyChEHa zzy%DRW}?1Z3wSMqCz+`4$^n-%IKxDJw*&AF2IDjZU=LsqgNK>WcR5lGB5GK~AQSan zJ>Yr<_cc-989<=nJQ0*&qP`OV3k>dJqP|N4oW$VvCUs%h?x&6|U1RBogNwv(4s>gC z|21%z&O}%^d82sYKquWjVymCJ4uAgt5%)e|RaN=o_gcs8@j!@xBuI!yB_u*TA{r5+ zh-Ai~5t0!xc4QFA7&Rj!B@dbrIgUY?haASx@fu@ZBgX`l*GrCLjzbQ&ag2-%#E6VB zG9xmC_p|l}G^e@u_q@;hJinfnpY>gP{r#@BzI*MpHv8OnXpd)c>@L}MhEhxZcIGahx*t>q)i-7KZpo+*?;W!3hiZPu zrmE!e4=2j!OJ4i%GjkVfi>}cn>l?<#t`FlIxnb&$5j?^p-}G?iG7`L^Y7g_EYUM$d zpFozj;0G*8>Q^XzA222MZ>lc8yFW%rTSL&C{3!K{L3w1B7iKKD)s19??@xrbY?*d* zsM@CBjqXfoH!W1R=tn;q6F%l{73;?8dAzEA2Uh(7G%xmC;>Dgz>Y!>u*g!@0e&lP< z3*$?eVKUK(sQ!{e{duc8H=8$2Z5j)=$-eywe%!XB5B_U`$77W}%eqH>LMHE$30D$y zHo)=wSoI6DXM1CO`M6p;9@1svs!=LCc3#3l9D0%HdDRc7gCa9Qll`72Eg zEBVveJ4_$V&<)~-2_+r>ymjzb92tGZoEq=w;AYuzeM+T$g*Ez0jo|PJYD(oG=jd|C z1U03Kkc)JA>;yHXb|UZ8Wxok(N>w9Q>$2AbHKpp1>vY+5f|^oI$W6Lzn!uE5&bUIr z6+Pf;sG3q1DrD(U6}TL#rj$Rjzb;=4Ra44_Y}4iQp=wISA;;*-L{nzT{?4ln1Ztvh0|4xsZ z9_M0iuCq_E3i+`n=5hPEIm~Oj@mDgxoE~|@thuT12miIAf2Qe<&qIuDqZX*z{&U)H z|C&w5uZ<5WsSj56wnX*xKh!Z|7SebxLjk`Ihi%@bdrKWJ1`eLeE*z#d1h z{!kwr!>KNh4gDWfGJf^6f3(~%pdE~8%Vnn6WqMlAL>*dvqGw``sV=`c39lyHadW5| z(S1{mBCr1f+l^tHSz2yp&-%gg{z+;46l=+)Pu*s_s39%`40BpjeL}(zH??2td_YZnRnT z#OrOBF6zn5(1c24L@UW__H`J)B6dBHAKgkke{c|Yk+z8bi0T*iB-t6sJWBM#@+4K4 z4*gb`_-_;&M~(UwZd9mW=|+W+hSCSBa3flY^}K(09UW75L!heBWxYn5sZoD^9eR!W zk}W+SD9cJp&W~}FF&xUms>_w~%JG+nb?N?{_;-dyZdc(I_$$J4b^jjxd%~)9eOlGz1f}_gj^% znu*KF*hNIX%@G4rF7UFN>yrl_T~hRW_E3IQ?|Q*TK_jSwQF$+XM*hR`85Q>|UT!bh z*WzvJ{=Ot(u&-QH(%drAG~y29809h+?Xq!<@(tUx-(0`7ms5xG%j(X0Bv{?rtC6d9 z`9QF`wVy^lt;>6Z)vdh^xlNaM1*=QY0WY6u$oRGKvgjz{s=mEoKhSnQR& z8aT|h4ud%V`~E&O{tCs~ymlg+Crr5a&7&Uk%T=vkP~^5)4XW)l8tie7qefO&JJKteTnDiqaFL1 z68rlmU^V{gz6n@^zou^j*5a@2n}EmgAJZqGQLFw*XXK-L$ndF2_x3kx(iyp873TBv zgnF)qU(a<;-}F-xZp}CSon?GUj&BdRSujZ_NOU4h{XkTt^}2MCTdmc7v`6znb=K2P z)7!60PdrR(X8)drV9)10MHb_mg!Qxv^y-LP>Jl+xANiTF> zpJg%MisqPa)vQ<-q-I$Pa*8gm3R1Hy2RTQVR|Kh9R)}1v%S(dPEGt7U)8+IaHOnfI zD|IAw`CKa-KmDxn1L1ZEPciNUnP?+-s+hB9S`H*U2k|k@$);2 z*>;oqN?A>SAbq9$dQ=?cRB*jQzy7tp!c^Bs^r{u+%TW>A9ThDbz zR3O*8xZb5-|8F&fL-m&!JM}TVEXtb*Rw`uuPF3LDfl=J5kK)HlzP>ozYz&7I*DpgJ zOe1RAcL%qx;z74~Ao2k{^2DhAp{UHTF$izPXAD7QK#XCn42UtPhZlcdGW42{V^pUa zhrxYcuewF>v_v^Y-(gOA)G3>qbgO&vY0;It(FfNmxHh}T_`$~BmS6Q0ajo_47`vK^ zTYK4%AWjW&ruG;cgKW_EloRJPaU^jHiF2Abr->8j=urn_ZruX4LUN_SM0yL+iHK7d>`x$wtvs} zj^+?Ij<|8e{oxh&{qz?yHn%(+J^Xa>@^f-46d{jqZ z4!^HdpU1Cb*4FhImU{g4eTL;U{?mPir2&6KpJ8dl->3|WgIj(RLX&=Lk8i$!|3X;g zjvH_D8l7UNQn;4s19##KeV*TWcYoo^8X474*67b2${HEPC<~-a&g&i4W{>fFqUE0c zm_EgK^m|pJH-D5!ts7Lb^&PsU(swAIiPQ~BaG-wQ>Se3cB?BcIEfX`0uYzto_t? zf0vrT_2ZO9sY9;QgH|Mk9oZ)Csr96#3nr(Y@U8=Y_1{~!0nAHOns;s>U!(PuwS z|6e~!Z!F;YbLj7u;;#m7AR@Qq;8(XejDhD-d^ZNd(O1HI10|@bZ;URr3FmA3b<8c) z(HMKwG1){{XY{4oGmz@X^;)ji%NWT0qbj~H%`2JzCei#KCF-yK#J*(DL|t!&(Es*U z%_!bpzRKInSNR){0ZVsOw{$O+{GsFCkyfr+xw>@VYKeX|wPeWGV;mp5N7~dL--qrN z+YlZWMh#VOox9k-=I=&)hKiOFcXigwnHfuj%7Yd{BZh6q_}s~#Cz*MPnX~Z27Oruw zd6jd`tNRYta<0jz<9IzoJ;>fZP-?ths^?vm2WQNzJs9&qZS30l^(Ak7Jzmz7{O#*e zjuh&da&=7e388)$*D!VJcX5@e`)F!>a~spWtO6GEEiM3dDKMCqb64Ceht4iu?xS|qq%Un{V-qWn7jP&a*E6=`F}3^+?nR3 z{=AMU62nb4OYLb7vbmwA+FN61h^B%dN_0 z9z#B+%cWLjGaHZ_bh*eHiQJCduFHj1WitikiEfpDzE!uG-UN8-0l8LXGlP+Xb$Pi} z+01CF;!)I0Fs^O#_HAZDieRoVQ^z`yEyMg###nl&j zdt>4)Hr2FS+WYP@`m5cB&8tA4xR&wyO`i9BJX;dJ_tp-*Ka*8fnMyr99jhwB^Vze4q`N;XY+!de?tjz>$)&n{M)WE7h zuF&PS05z~`kZW|gDL@UZdgOXtZU|5V>jLrxU9J!4Q_ zoGzQ+VRU#4zJ8 zmHQ6|jr`xfg->Dm=C)qxeU`YZa52pr$!{b1eW5?fsw%tpHj&>1J-_&754zW5qDP5} z-Bo@E*Ry&Iwq2_{tn%T}*y81@d@QHPt*&QZ=)iM>dfm-B1zW610=UbL&FfUkP_P>!z=_E5>YS23f$B}Xog_*ta;PbvQIuA=2> zAJwi1+7&^&o@FiMKG3eodb^TJCjKze;f=z*CmNe^zW9A78k=$c`28nF>YHv>{ML!N zx<3$q;6#?}+-`&M2T$zM{h|0nC#n^De6tO|ZKAp*8>6;=zrZL<-7gFu2FBL%<`-&_ zXcTQM5{;q_zftt{4Z7Tt?|zuK&?rnj&lyE|6>~5>OuZVSeyPBCebj{h3cl>0HvK>1 z6;CBqMb$FUNXt+045Sl0boCDFZCO(CX7{8pqmt@L(x{z!k~He3N;Yby@-b9W;(E<5 z`U(AxXFNu#9mFB*AU^wce|uF{|3e1$Ya;?`bbF}2qO6prKB02=+pEaHP<6@XYf<+Y z)lxfTMzxeaZ_d@DnB&mJU-QK=-b?QL>5JZ$?@C;Ho=*Ayp8mgeb>4VRVLbNrRqjlW zZDbk)4%ZUUZ@XJ&>ZUujWOVP{ruQc5raJdFL0(k5kvhZOT*!A_wYnm!C4#k;sv{ z+~J3*PHs*hAVCjk^HZkUj%?TECO>7WbC7d%xxr7F>O$l~U9R_2rn(HdOqWmi^^Lh# zOXRYL+HUv@L-mKYN?~g2(1q=ILv0-8mls<624s(758KtnJZ+I zH_rL6loM_-l4Dby0mV)lFjNq{UXO zzq#mvGBJoG|nVM+)(S4>S27gSSsfoiM*Jo;G zP zjeJ^{6Gy5c)q&ih%df}n;bKeeS z5ooAcU9q^h`l?@|>ksoN&VBnfV)Uo&4|iVFq+iW7K5E$2BiHM4o=^XJX^fBlsQBQ9hN=If#QL66!(UF`hL5c#tyIfJqMgJYYMCz^2T z)t>u&LYljK`hIv}0``@pg(P*+ld5%Mn6r0?9B(V-Lg`@s}rDjYFekHTx zVP?m}tbS_p*JDDOo2c20<`}|a%&N9;j?*^=^g`pvI*zP=t#8h%LM!#n+0}Qd7l*2P z=b=+0SNE%ORH2->^PgyY1ZRB4gZZxK=|xhEAQA zU1ZRmjg;AFR;vir;MP&K==kH?xGfR4iF`gE*cNtk&UBR%Z*?2Oy=91c9Qm_;NonF@ z)r+q3H_{w4#HBfANR^+PT<2!aN5~&iwZm7on$5KcwL_{ljh3gp%={fsv#?a9hfAx; zYzgO0hj3?MgbWC1v$JJl&tJ^0k6kvm+4Eue7v(~iu4O<^Y7$~CJ)&tgHP}J z>fhadN1a13=Zxjm>G2j?a(cWocBDvu&`@Ws> zHV-br9>pp9d|%C)JLAri3?fK(Z2V{AhUn)&}RQ&XWTt9 zYQAvcjM3$&T^UMo{tk-}?SoZTydv+SI@Y+VGUm?^ENX!2S76_jmSL9u0u!j@L&a|V z>pXprv<3*5rTbL%RQ|kNJ!Hb(d)>b9>5uL7ik2Dw+l1L1EkhX&`F+Eo>SVOsBh7&> zJleTbcI#XU}xG*X--UlE|fMUyO_~ zjfmja#F`Gjv3+5&$Qoof+duoIM{`7o(=t=OVqQs_4XGi8A}6o06TGc->6;%5!z z;*5`zL5^$}m*#92i%p2xuSrXUH-Dx?%xo9WxchB|cIh(MpP$m1-LcqWzQ5T{T)WGd zecvy0$tJeTH6M26$Scvsm#?$gNoObBOR4je)pnWvDt6n&CER0vaq5GwT9WT4*N(%g zw82)DUbr3i$#Q-bCnt>9=yFT*MwcgSf6kcIywgQw4URCws_=WIO(tJpBwQG8wgmf+ z2!CkDV7FVnr`hgXbbbE(JNuL_%$U#_GSW8K&E5Mx=KpooI}gl~wrT&feM=XE*_eKa zJgUjV?B;TF9)b7C;MD&uk8f*KF3IF#GW}F8>4HJUaNUXR`F61SfSh`K)$Pu%`=qUJ zNU0f{zu2eGvff}LuG}Zb-Y}$`*4c7|eT<>+;;BB&M_Iv5f!MIz)9kv$- zjE*ujN>xK_=?>l6s7b7*uxf9{jcw)rqpXQCBkI1fNZcB3SgyA5Dg(n7se71Vhg4dl zGV_X!_-6Zr@EEHQzOUM5NBOfU5Ny~&54WNIs~MkehVqOKaJJtsBmJ&Naq<6gyQ`+f z%c8;V(IG+^u5d}6qeGmH56DRK`bk5Y*H3c#B}#vD^(0es^(1F>q6{!E_Z-^1+|y}K z#5h!9_9|VRWr^}oOf80vTJdFmQ**7$+N^y|!#&m=ADM6B?Q?9Xb*PEC@rmPA*Rn@e+|t1~}|8pXJ>s&I84 zNs^n1*Kv@I-$_-e^JL>7OWmZIZtNILa!z|#u5oP)-f&o>DUHEZ#~+rR(p==~+FayX zb@UNwF*&*d)a{`wptt4c|NNdmnqC~9v21qbrApU>gR>GVjm}65xt|W=<2oU#Q(W-J z*%s0%X(88dxM?BkhMN=Xf>UE@SaDq6LO^w2R_p_|hiyD>#5OM;%Zuvjx7N+Jg?68+ z`_rV0$&xZGx&GHrN$E| z>StAt2-THF>2&V{F2!qIhI;qcQoj%O)zq12mm!XJYTX{JW?`R?HSI8Orotqq!laPm zSexquXrv`y3=3aU{9xMSYJTc%8(#d{%pVrtnRw!%TQW92G||=Fe`3-j3oWjr6C;PH zI=z*o+BcN6=_0~)xPOFxb;y8jJc2bCEV%EBA-*DZt&(O01=ynl7(#$ci8 zG^l-2QgN)?Ab(7SFeamluWrrhtfQ1&jF`&4$y8^^BAI5sLW(PsoEsO(1@2`b>^m_a z%R<2*CdykTz z)1F&!s(pIfP^O>nV6-$ee4+TMtNu1C>r?B*ShvB{+#_85@dVok8SExy+!*G@AT@MY zRkv84k!Cl{i(7bA#p7~=X4&cCQ7xNydN`w&$^>(@ho!mN!?|&(jKJ@Lzv}o>xxi$8 z!$UN`;o%Ho-)jqzW7U2sO{ z$!L!ZQe=1z<}qq9zQvx-!aQj;KTg`mJ*)QSNxL)~>$58FHPYK;_6Q%^?7_g#mq{UN zQpV_$QccPH#U`ZwNvXosZCQn|!rq-P$A)>6);m0yN#c$L^B&E2+PEco^Oscqqc|Km z8(hMV#{0$*N5eU<=F2c^;Ar(Y6F9oJCB4@pJl5^}XrJHCXbv9zixL$cJlZ*Xt+ZM~ zN5>(Bj&?3batj{)NzH=FzUyUc`30EZ(KC$Lr`O8Bsn?f@>4I3?PJgc+4E68Bs%>H8 z+eVx*F&#a^*`j1D`_krhJfdB1bH5?_cWs_S8`4F8iwE!6+>_+*$Cvj1DmT$|?@><~xfh z7Q3k1U^PsfP0!1~v4)b>X_2-0H`4aDQvP!OOvyJ~eUH?n6d$x+22A~TbvgV$*JIUs zIsc}5?CZIy9+%e3p#Ot6O;0K2RxC63#}_d7UvJ<9KoF)LC+f^8nJMz$X2P+vVt_iZ7R7RdGbC{t@7wiYrC z)u#>2tee+Hk#F7o*`eNw1xdy4x)FZ9GW@1uSyo^tawo-$144&g{W|~TvOpj zqwO^KU#fKBAZJzHx8xsI%RALHwY006Rw%nR@}1oqWbO^M>#y7O?XLf= zb}MhFoeO2_xgPtq49YN+r%LO$8vnjO`J-j}B`20?GxQ=;IHJ!^M)cXqW2bF4;r1u4 z%j!#-MR-i}TE>!*D9-TPiv&u&?R z`Pb9>#sZHE-_d!~EQ7i07^`l#?1}{**js)PwWQIaUL!YZ_)zgfL))lBww_-$`Td^! zMze{Pqle@WvXzh#{&!hD!b4fkbA4j3E?ZJkv_KuM%=ltSF}rCj?sH?E`M=@T zqeqE#?)nXtE{xR}#?F)2g&Xd`RoW(*A``CbwEy|xdQaUvAp2{qPKvMhxbgg;o*k+x zUgpTlE62ELwapToN*Xt=4~k`E>}&?;Y<+d->#bIIoLlNK4ZD|v-D8}!JjjMqUk-h# z)zmlAIul-z^UZz!idUq6-!gY>-!j+9GS|22;wy5inBHP`tM&Kjbg9W!60gX{cV38~uos@x`R$y73#O0v!C=I(E?GGhoy(L>Bg2}lXy zgYhNeOAN1C;glB1#4(1Y8mwx_|9B6W2X=e#tG)@r&UF<=cHOpxG_lz`zA@DF-b0!%i8`)vVS|Thqz;vpk5U4>YM+l1TE=hiE^>e;vCo!X-te1!);?IYnBZY9soyR{F`r2lTk2jmm-cDFH9dz=taa4&A`SRoQ|WjGby4%?l-sFt64wFcwG zUB-3cdV-yE56bXcm)}8)aZ7L+xCOYBs#g!nH%-pu8ktd5U&F|&>i&OZ=`CUI$>fU* z!%f4@#Vx=s#jU|@!fnIt#T`kmI{Fv6QchU;kPrp9Ex28{1GwY3Gq_eLd5ogdT89&l1RR}9C3>S@y$EDyht6nTqXqZMaUH_NWkEk5;AsLx#z!x-&9ou*15HB5>OO9q0JJ zQgG8!x)#^IG>s95rwiAE`zb9b?aavdrS<-$8H;jR*mvd#(Ty`bErbQ8h=t$V@r!sYN+VD}AiR!;|gv(GvU`6+AW!pE~0WiSU9E?v4T$GR{( zd)Y4+<}9)%&6vY9RB^3LRXwrwaaE0~-gELVE>(NJkPR|y_W>ae;ZEYt;x6K@;#{k! z5H184g^S0fR#ol$QhG^;I7AH(|Jdz1Xvl@|gTCwM`@(LH+b;(YFBKR46Z!SW`3XAy zrSPAK^#5C&j(@2f=U+D#=zfzXZoKw?>d*a`Lavvw<>qT6Zz}LupPKg{s!F{iqXvg% zzK`9*72vkucHs`-j^obYT5+8?^C>LTsj8#j$fYu@^KS&y6MzfCO~uW^&BtZpR^ke9 zTX4JTs}_7K&&#mPGhDzG;I`m);SS)AZ&wLukQ0qwH6`VaNaooma0vzrfD+lIKmlR zE3Ok~zCf9{Aly{kEZlrtCT`^gXVNu!&MW3KA?&z(Tsf}xGpFnKa&*Mf=)lVjQtDbAUt2!a=Iil_RhWOYqB z6{h4pH@GnTLEcg%440xB7l2>U+(#v=Ys#rGB{$&jcgKdy=_1oliaOqWQ*ICLXrD{G zK~{bhuCA}U!7cT#YIQdqmk#SFlepH~+nWGEZw~B+8{t)04Le~y`~kK@-iYt@2r!8* z7z)3K$?#ja9G1a+_*+;Gx5EAKHCP8rVH4y(=QlQ!XH~SPDR0yW|6r3y!Y8&Oetm4%KI{hY-F7kF~lw#%W&eX}|pBUs^qvXaQ=QiZQ9pj}4b8eqx@^*eS z*)-f_4RKzYYzi9e`??fcRQ|V_E75c1>&~bMl9!e{7ettX9gi&#;<0p1JhmL>z;&xY6H_4a#7y`K+y?i-0~))SLfZUb zFbvh?q>VyO+6wo;N==5>3mM)3TVcB;fG#LNGX-T3%@m-S4MNBbXmEoS5^rOckQ;O0F?a$tLf)N}B>_T~ zFlb65U=&;rUx8a;xh6Mf3%Pj}TnB0C#JLQ*WXSc274Q^1!{GB^@C86LW(Cnlg zu!})QmxiB)O$@pW##}ZmMKhDB@suW&pXef3AJOq!z^RR=lRlpeA2q|Y~HEb0QIrAcei)j-V3L79b zoWF&^Ma}0QgQplQd5jSE|#$o z4=Z3Lq{8c{@OoOfo)*49U%wCx8T~J;fHdR=2Z~-iYn-~Lh#bz|Mc{!v-n<;oR8ca{dfTcKnqfH+>u+L`f zvl;Vf#ypy_zh>;Oxm$=KLK8zmA+OvH*$TJ8E3iuwmRUT1#luoq2AkjoO}Jn_T`-?6 zc`zRyg~v6)4_gXXU&u4LYnmo*Ss}zND>dP`Wfh(^nsDo4McT~;Dsl@Ix#c)K39-+& zV4vMs?zvsj#87SkL%9JAO^2B<4$g*~;482mp4NmrHx74h93BxuctmQ#(^m*je@%En zFU2G9sOAt}7x7%u#PBE~hEIc;aET_oN$5>N?*h01vI_S;3wwmP)uf4A=fWho4erpy z2nrlQfg^HYE<6G2G~q)&KIG$*1$i0ShYI>oK_43I)9uiNuazx|K$rj%;YL_QgjymT zLq3h%pox*Ra3n1pN%%;@M_z`Vn($-8#xE4M!FEmDmMz3>%ORS)4NczG02?*ozmv5- zFE{(s5Pupn3VD=+fKddDA|QZ(0OSDV0OZjgLX7r?v2Ygr0G`o=RpU9^0t?|rxEt=J zAR2HR4H)Am#Fzj`g~w3gu_iX3%+LlSAY)@JV`FTc5RS3+cu?s$R5}h#j6)Mv+&A2}d*GXkxNS6O*a=WNJQTmk?8S!%lcr6I1Oxnq|OOAgi1yvk6boL}UdYY1*TS zs4^Z@$~Eyb#>CGU6L*gg;%+~}&lBFNiF+Ib+(W=UWN;4|+|vk~G!gC1u7a;7rom~7 z(_kztfEyrPFpVylRt|S+VtTp|(=*|5cv2HF!R&#CLRuO_OJ}&TkK+MjU>u~J8IY166n4RGP5it3*r|yJ z(a3{nf!5if~~CON2S(s4W|H8Bs>%|mtb7Ql2! z%jVItd8c86CXyMX$qdqDT9QmlcvVs)M?m^CnLbTUgvrnjGvIQV1M}f}SOho2a<~&# zGXInJ!u&4>iIz*bcj3w8cbOm_h?nSF&%g3OR}vrA)&! z8z#W{YL6Laz$~}|u7vq;J!CATFcwnEV7W6l&J=G>3Be!cY=|?3I36h#;*l~cnPBVR8;?{S%^nnAq79`TUBwdDc$5q-ND6OnpkvI zh($e`$ehJyQ#?EZk3!U$i8>dr5@PWhSONE7M9ADh=2?4%$l3=RU?aQ&yEO4QwSAo0 zK92StM|(>sbP26pasVFEL^j=(eHL4g-HxY26Td=@ze0^mF-A*mnpieMh-H3|5xa~5 zyQ~9V(Zuo~P9H*G4$Ot9bvbH%GE9gk!{Gv$4(njOCRSL5SP=*bUqSc^%2`1fq2Q$-P=Pa=csfalr{@#iMtHj>R#Nav3SPNHV&R*2$r$SKHakiL7FzAN$op^EL5Wyb!O=g=p|KG`N+Fx03O1 zsnBn!(CgELcs&;Gh5Iy7zL_1v@N9saAbqx-KHE->w^L(!KJOR_f1q#w&;`3SvD+rZ?g+RZ7D6)EO&9KF%tJoJ>qlvd?3-LCZ-ADX=#NXEhFKFVA+l2Vz4o&PQd_Uoi{S>gD z0^T_-#5)aq=GB!iXSu^pcvTZMbA_l$(!_rq72>~+YoeBfwIr-v0++&*@RTM_1PgH@ zlmhlpKqUo?CEp-;0@jiLdGc>1UtjX|*Tg|IchJK8uSuf-I|bBJz-clhVJ!)389cQN zp4tZ3NCEWy3HttzROF9TWPc^g^yQ&aSOyszhZq}& z=&D0>mD+GW)TxQX9zq=UhE(9NssQN@lCCBT&1R$7Ml{=mCb?eA^;!mJErYX`ia2Vi z$)9qB_){*V3;skG91G;Mo56J~7v{k_i0b}KMgL4i|4jTp6aUZj?Vst}gYZ>$Zuc+{^)k6HW1~N_l$~397ag-YY zsX!eSsAC${F^%eu!4sNzpRReIu6dspzE2C^C*J$Sd%qBFgr%?yR=_=w{NE@4_o?vv zRQUY{*a+L0|L?cs>4M#wIA!4^#|`>If5KA;PeaZ_&ez1>YJ~V(EhPTmh+j|qdg9j; zzn=K@!7vm?!e}@fCP4D3C!hK(m<@Ab9%Mg5)NjO73d>*x+(Q9v6wt1T)4PQ@y;l?e zKqLP^BmY3P|3I~8(7+iqaE1)ekl`6JJVS^Z!#jo(uw(!yK3o*Fy^Wl!87j zhdW^<+z)HvF<1{z!zOqEcEBr|Kom_Hatv}DGJ~^;!P#^HGT56#c+({el7I7N=6~}M zJV)VKcuwPYk9oyCL=)#P@ruc1D-CPy5#n=`CO!{@Oz+RBkmGY|^f~kSbLR8srLasB zZ49n923H#@Z9}DBAb)}UMKp|o2`~|+K|9Qb%V8eOhZ|uLEQ95653GbWuol+Adf3SP z|Dp+xKLJ+Q1-muz<#Hju%z+q?FEJqPNxZr+ACj=0g#SDv#6Qn!;u7gDk?s;2x|9hk z;2uqUWfS772$&6*!#tP|H^L%V2Fu|d=KoifcxqrRq=2s|;HyU11lwT;>=vR!XrjXn zdO&|@B|MGmc1?V}M~JV<=Q4xtGK21N9?XXuVG%5Y<&b!nRlFKl3mtWM>hUzfCfE); zV7Cz82u*zB20frZw8Btm<9asnmLta_&xN({m?o|S3vneBGVQJ~?XGZlyu#h_TgJe* zjDhdb==W&!Y9i;Y$;|(&8}SqoPzKB49#{!$V67W(ec-RdUk@80mAu*xJ7BjEKTydZ zi1vdA^oLaPhfrvP(J+R1dBo30rh9*&d%FvHp=2Z6LjQMf#lwj1W<+;igqJjNjSQ}l z!L=rMK@&Y>+(X7ag!d5ML&iO1+>-zkVH&i&M66p1herojxD1=-aV91#fiyG1^1gYBA>?D|S}gJlGagmG{- zWY<@+AumZUNiTC?E?f@_p<^?iQan3h1>6s-;W2muo`wz38~Vaa@UkXNW+6?kFaVB) zOCkH&rXtABzln`>6C3lU4Z$)N1dJy~Fg96!4AC!)V4evoK;VQThvcW#+ z2;^vB5CsmRK#c-53gqu~q&5|@->tE;uhqa>NJTX&I(USTgZ(sVt`^c^Ql1`FHMccLxibpq)%ldeQGHz*W^8kLf(_C$-Di8ygNXX z(`eB&S~LxnPebL?vxS^ai>D{U6i7kS$!9t{_|wxN8k>&BrU$_gm=6m`KaKRU$hFAF zI9{4whv&2=e;y^|&!@qwg1@uTWI`Ye*5sTtA?MhkKSb4RwMe#FWY!rWvl=z|#0epv zsMBP2oRHbGAsWm^gTF%lm6EAIHWhe0M99ZEVt70QW@+-tV?sXZIHAcE91*N&)#Ouj z!Bcd>Q)u8RPJNy_3c3DN1Eip*F2FX}39o80$0TG970sbSIhk-3Tm!elZJK1%dEB|D)qAp%WCatgGLQ=ko;?v!)N zQ^6t2DUO#47@Y<5X+ei3f4fA;->!sI2@6O_hR^Lprps1;0MEmV z94Apg9$lBm^volDo*VSy^v9jkA6UTHDIk6U8Z2P!yhz1gWH!9WUa)-e0-g@oNx_*E zyaKL=SSWWEr0y(8-7!S&7$Wy}*a5L*?pQK^jeUI!>p5@Mb5>SMR#r<^ zZa7wMICH|tIGp%b*mCV++b)M~yIeLas89hF;$Te_(6E9Nu#WZLizXpnG;89;C2%Rb z6sOsxXwbwQznHH+z*#VIh2tvR~b@i=|F zgbbIE;gW9lfCYQO6#N7QKS9AyP;j=!7M%ssm)Z2?uY%dC3xy|O9XngZ|H-*{Nbn>Ho;&~#u}9~|9-RkV z4+~){yvSBv23vJmun{(~HD_UK&JB)$esCi!V(X3yJxzt4rUFk>fv2y+9=7g0*t+wE zjk*=kz0 zIv%2-)zo-3HD1lAUd^ap-2^Xa;<;CZcy0^x*hXJQz*F!8P2?vFk)Hz5Kt38+OMYv~ zZ!LYk_85DM8SE`)5uXEcv93`Q&r{>)sqynv=y@vi{1JE*QnBZ$*m}a(6aGR3n~;%k z8jOYQu!HFr%Jj1_{SugdiI6VE#EL>+W|2RnVK33Jm!e?|q`a5XnEx-8;VEan()Yin z?|*#`o@aA$GnH zP?j(#OD@7oY(iGD3Avw5$Y3@hLz(}tR^ZvgCL}G}Ld&)k!i{V?E@#s*2T}ni6(}X6 zQZg!~qNP;yHO9nijEUFIz_V;V=CS#h59xxfbir?P*o4f5$KVM~l*RCO0C8{+tklHs z(9G`~sOER{?eFN@-?hPZO>9e4FYQA#vklF>PQ=%V_d0#~I(_*%EqR@mlrLcyb15u< z8`!k;W79GK(va;mWIGkwPKCA~g~uUdX8Q#U8V%V&Lw3+rjve&Xj%osGH1YdD{+Kfu zX22|14^L}iXEbl?$3Qf-6HWbxHA9S17xrHW&}*!hE1>;3vI{EM1=S!m-b01=l)^H& z1MY&CVJEw!Y3!2P;Z9fq8FYIYbbGU4Hl*Oa6#SMuyQN-mGxPtgQnpP|StTl~tbw&` zpIX>Hb%PsW5j+hW*hWoZ8#N7ck`m?aI&l7?_N6<&aCY|~s}o2HBTe-;&= zMa5?~Lo{)AH{46c^<;b+qT0Ws+SAnhG&Min%?6ZUBWfjFMM2Dh519oG^ie}483&Vb zD5PsXqHE?Q3NbI4bD>twg)rgU-57)(+!a6Iu6Ty^zwI20OqO7=F}#DsBGbki&&Hy0 z%1+*OVv#sCi|2uCSPA#@E|ZyenOu1{DUNrPh(D9H-AtYf;&^_DOVwoVJ|S}tke7T(s{0r$c~REWi-%^Lf>P7C=6>-|(Tl1d9x6CqDHsYl>3O+FeR%|qzfZm6ikOp;4X-UQYqKL0ik@9mOe_rW4S`|!l-<#2$u1(CF}Hs zWVrAcJONSdLgM`l4gG94f6Ysa7Q|?BX)JF9qS|F1LN24F-0vm#d-?PsA)h{?$(3h? zTzQUFHkx?R4bFnZXUXS~toh_`vV{Ci4o@Vs=;a7amSziCid=?j%jUy1a2-!BD};<+ zL%bdySS+mniNAU(L{qELRNiHt4+PH%u8?*Aa~Y83{BwD5J-otOWL#fE1=j??cJ+E$ z7mvXVDhCPHjumokkS1Rs!V7+yEI{=IsGh@TIe#nM4bi|_G_v*s*a+J+xo#&98hc<3 zL{l%I>KAC(3#%X+Eg*dXgSvq91*FGX%MEB^!|ncff;G93nr>VUYhfL1fK8g*F+#{4 ze$ES-rmwNFVErSZw;O!=L9AE35UR ztk#diI#|z(6PSm1%tQPoc$xPgl33l(=edU2>(1=;#0q#~1w6U8d2(;_WY&8z>%BI> zO|TS}LClvI=4&{&rs3S0yshLP2t!~P=EWPc;Eh@M7z_Mywk8_6TQ_pIZp7>~Vs;vr z!yF360J~#=Jr7XeA&9x~#9Vl}Qh+-Jm?^*&dP85B2JLVc+)aTiC}$_+NK#RR-u@^1&qQzco;5u3`mKFrT zP-r7V4CCB0RFH~&qAFHI`prCuwecX<4(W1W6w)VQtGFc}1rDdc;f#&pjExc8EJuumsc-?RrjHZo z<6(Bb0IDDqosbt^CO-gUFS#F&9S2KKs0Vs7#`;Ndvm#v1b4%|WJvgY!soZbi|`8U z;!)Dfqa+o6cp8l5k&>~oh_SK6#1os<3+ekB zy58{)HGhYiSMBG}w3_uz8S9&JxCd535*#MMUr_B|Q0-sH@GoTems)rXcEYQi3>I=S zxRDb;Z%zPxAsVYgV|ApfBVFABn9f06I0to8S*8TCTnT3WpJpDPW*(nTgvsy>Jj?ne zo%Ks5JPMDqjycOZ<{V^jeaPTypv4WexPb~ZP=SwJSB2_3@MBv1F)jXhC0qq5_~UKx2y`4JViOTBz%JO0VF|#njD_)V zE~Fx#P?1lv;d1T?#E&Qb+2gDPPm&HzG@^+{cjyKEU;sqLjlsk}P5cJppCvvT{CFA# z$HF@1|Ht)sE)dWLJKz-xs-~bCjs)E}67+zm@Ej^Uw;mR9QWwcdT{Q7%;U~1P$&Q?X zT#tO3cxdn(8a#*Q&Y`&`G~9%SKWXH86X6krN5WF(|G6?EBoHBy2yH}Y=K=}Nk>DIE zJ%>u0=5sxj>sPqmMfe`VD>(rS<^(VlE{8dgt~gIuw8n6t7Kcnh=PBqsgZ4awwiS)G zqS5nQKd-KDVg8@r%7tVuq!2(w&Qp=|6nvh7TTy*0sz0BCoQ9l*oQ-@E`4nt`jhyhI zxzEtt=XD&=)pIb%AZufgwK4kJ82xQ|Fdr7c4Vt*<&0o~{LI-_)k-ol21ujy7ixhZ~ z0xvS{E;8-Z-|1cKgxwsp2@c#)?U$(bOB;-!Kq~M#6}Y&QcooPOkm<^cVaVZdDO^D~ z75tnEe(6R!4~Pc7L<5e`$+(S-+tOhs+yc?a#V8U^gVg+DKH(O^-H<8pA_cb5f;QCx z2H`~pVS76#e;u6gF(xiCCN74!W=-AFgNqcNF2-%n>2e;%lbG*L20#bj8;z;7Yh27Qz#-j*~nx_=XIw%;w}S zfs?yPPVS;L(Mdx(X-Fp;>qKLn^mQkF{oPI>zN^qg7cK9i9JRdog z_@%@z?`ZIMH2Av|=Kps@ zyoM^Tp~{{%PWjp)qrQhx-+PYJzVlqCORmu+y(VNcWbpKM5N;Sa|JMqMNDX_bVebaGi3^O0YmABBEaYrR zpZ3zHy_;bv8B8Ms9u-9?729!0Tvxup@q34P-5Zf0MT!I|QX~;; zQ=3W&B@}5T8-f(Kggjp>RZ}+=*A3IGFExqH*sL*bp0C)fO>A*fH@Ha}Tvwx;l~#f@ zZXJrOQruL61X-*NK}5QenBWWV;~!tYcjlh+JLjIccjo@)H||x8d!66pw|Rhv`5XS0 z7x|uI+-Ai%>C6jBncNE(Y+PXtcWAgn!x!6w@Wl?#%g|o9;c=G7*(~6T+C47~d0wjd zS|o>+r@Yp~GQpB9a#lxN_>x@sWzS1FUXyaX*2$kq&_*O^qkNn1$g4`fQ~H@zJiD)W zwjK|EVaG4zHI)~on3v=(Z_8Z{$ZPWDG}}FvsZ}@2Vd~^C5~%-Lm#YSH)oGrQsv7t$ z1HbhK%M9O=5509xza0H?#gTwjjd?78s=njvg{nzUOnXAWY5}X$*wQ?|)e+{$!4n*R_ug~F6oGpj_7zoirK(j+%1)~5+CHSmHgnWe)>1*f5OV0 z&_8Ly$yr}7e6T}RyDxMl{iiFb(xqDI zQmu3XS2}?!kFih2%69JH3w)9FtJJU3dqbu7hRPY9iRsNE1@IUxF{ueLueSYM#>z%Y9cxQ7wc;{(; zhIjBwyqov(oBTE(;=_EBTlpM+##gzYZ}8Xr9pBRFaXhHm90WB_@-w`ZU*ea2 zcGc{)@jAcF2ly}_;Z{DwpYa9m=WF~mf5W%>Z^@LmWU=!&IqF0nz3Pd636d4qZv}q&lZo6{Q+q;9 zEsbB{SJ^-Z4Rr82f5~$^uh! zzGo@@oFRD61m61>FRIyPso7<7As2B6cd`{aY=sWH^bfoAf3rm`?`dx1cDCZbvEmKM zT*bUR8@qWgcX793-X+DntBQDLe8h~86mtn1;D`a<&r!Rxa_`r&m3x1Hhxr@+R?V(S z&90g6@=`oFYJx{i@aRFV;}d++^?%e69d$%UAMxXOa4aJTj%9K=SFi~kGofSiybuqL zKNSSWxA1n}!6tOvgpOb1>%7D(0>AF$dV`%4N#{h;iY2XBb6OBIZ{{klas7Xo83Z3X z8$WcCeCQ-OnNX{1;8s4v3w&3Nu11ZnmQCchCUVLErwnkafg9OUpR&}gJAG}i%hv`D z;Isoc-OW8}bK19Q-{#zCb8h@jyx-Nj{{QEm?-iES;G8TSPL_^Q9#d;8P-`pXeO%5u zeyro!JT-!d;Z+U z|4N**#OEyWxi9&KTAbJJd^0=p^N#$ym*%{erprKG2I?x~eeCM!a&>(As@mLccEq1L z;!iF0rk=$h5&T6mgg)aXjRB;92;MilEt)#h^5=JMEU`UkJ+A69uy zjjlqCu8OVD1uOKqcAsnaxs&wstL%tBcf^16+W&Dysm(+#n#jd*PARb!DzO!Df*W{_ z=at$v{xzbv)P|+$wKRXq34%Z6@<)7@*LXc1T*?T7OPMV2C4n#1a4p~B+x%FqEvDAC zhsC>WpvwljY+{#9?DD#jTcGsT$zAO67ao7HQ5ydu%SJsX)Zz}Q#T||Zed$5am%#?? zGhm;yyU*F(=kn_NR?RI?dyBKn^Up5NKi6_S5Ad)Woc{g#_viC=Zs0~Xp?(wkOSY0+ z4sVpS|59Y5hkMoLiq+;yIK`7{a+zv!COFu|-8|0=YI9cLniaU##{)`e;tYv1nEAuBWN`C-owmvR|e4*d=443d84cr=@jJxG??|I5yd|R#O>!a{;EjFA$ z0~*nUX0)IU?dU*f6kZJwMusH~65wgQd`SP>ezG2DKa1cTlWBZ3p!o6mL+UYxB5^B_vn;S;blu4h4wYUckC- z9@20~!y)a4v>V=qohU*f@=y?kH?_H`%}s4?igi=}aq-5*8;_8V3}hlJ3jf}L&L~X& zy~{>7deDn2=)(YpF@n)3oTx=T5@5&GU!w@9L-c4+R=edbfFtPa3oV#(1!sGV+5lZ!#Gly#586w zi#g0=0e7*4jn{u_6>C_J!s!5UL`X*lGLeOBg1ivc2}BLkT*`^9YJpb#d#Xwr+jP>d27V6hZs*oSgdpb9mpMLkSnG1=fxBbv~R z7PO%q9q2?Cy3vDPTtOcOFpLq5VhrP$#586wi#g0=0ZUlHD%QL|EUsIQ0C7Y}M+P#H zg>2*?7kMZ|5q4r1icx}6lwlvrQGqJdpgszh`Y?cDj9?UFUjL zbXm}4L6-$x7IazAWkHu~A@Fhn4N~BO9n$Z%4|L#VQ z*Z<$WxPm?mU>GA9#Tdqsio(?;tY8&uSdYT{yHJc0>_I8Yun#75zXB$7zXm4sK${2J zJkaKWHV={-Jv8V;gFZCqLxVmv=tF}(H0Z-gOk)PKn2W;oMl_)rEoehKI?#zObfX8o zQTTsrSdYTT0pf^|jtsB=<4hY_$VLuwqgXJ2VT@oDV;DyYlbFT~W-%AVV%o*Di)k0r zE~Z^fyO?${?PA)+HrmZ&A&SK}xQnGI8H=yjSj8IFqu750h$BKeGNRbeN>GIw>_HjI z(S%|o(11qlLoG^CfqJx{2fb)R2f8qt^k)FW7(pklpdH=lLo>!Oiv^hE&sMOCHB4d- zOPIzC=5ZI}NJX(ckMj#rgq_$G#WvZuDXH@&9X1KDN$^dAY!Y~rLDJ$#M<%k7ivkFe zCP2Q&`FZf%HUn=HW1AS;#M@@TJZ-j_bY2t0&C@hc80t3f>yXh0)s t1s;Y#&&Hwivn9~>*>;S;fCUi*EGUEi1)b2Zz`)Px_nZNrv+ucv{|A8(zzhHY diff --git a/slsDetectorServers/ctbDetectorServer/slsDetectorFunctionList.c b/slsDetectorServers/ctbDetectorServer/slsDetectorFunctionList.c index 025c808b0..8404d4144 100755 --- a/slsDetectorServers/ctbDetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorServers/ctbDetectorServer/slsDetectorFunctionList.c @@ -563,7 +563,7 @@ void setupDetector() { setTimer(FRAME_PERIOD, DEFAULT_PERIOD); setTimer(DELAY_AFTER_TRIGGER, DEFAULT_DELAY); setTiming(DEFAULT_TIMING_MODE); - setReadOutFlags(NORMAL_READOUT); + setReadoutMode(ANALOG_ONLY); // enable all ADC channels setADCEnableMask(BIT_32_MSK); @@ -814,61 +814,51 @@ int getSpeed(enum speedVariable ind, int mode) { } } -enum readOutFlags setReadOutFlags(enum readOutFlags val) { - enum readOutFlags retval = GET_READOUT_FLAGS; +int setReadoutMode(enum readoutMode mode) { uint32_t addr = CONFIG_REG; - - // set - if (val != GET_READOUT_FLAGS) { - switch(val) { - case NORMAL_READOUT: - FILE_LOG(logINFO, ("Setting Normal Readout\n")); - bus_w(addr, bus_r(addr) & (~CONFIG_DSBL_ANLG_OTPT_MSK) & (~CONFIG_ENBLE_DGTL_OTPT_MSK)); - break; - case DIGITAL_ONLY: - FILE_LOG(logINFO, ("Setting Digital Only Readout\n")); - bus_w(addr, bus_r(addr) | CONFIG_DSBL_ANLG_OTPT_MSK | CONFIG_ENBLE_DGTL_OTPT_MSK); - break; - case ANALOG_AND_DIGITAL: - FILE_LOG(logINFO, ("Setting Analog & Digital Readout\n")); - bus_w(addr, (bus_r(addr) & (~CONFIG_DSBL_ANLG_OTPT_MSK)) | CONFIG_ENBLE_DGTL_OTPT_MSK); - break; - default: - FILE_LOG(logERROR, ("Cannot set unknown readout flag. 0x%x\n", val)); - return retval; - } + switch(mode) { + case ANALOG_ONLY: + FILE_LOG(logINFO, ("Setting Analog Only Readout\n")); + bus_w(addr, bus_r(addr) & (~CONFIG_DSBL_ANLG_OTPT_MSK) & (~CONFIG_ENBLE_DGTL_OTPT_MSK)); + break; + case DIGITAL_ONLY: + FILE_LOG(logINFO, ("Setting Digital Only Readout\n")); + bus_w(addr, bus_r(addr) | CONFIG_DSBL_ANLG_OTPT_MSK | CONFIG_ENBLE_DGTL_OTPT_MSK); + break; + case ANALOG_AND_DIGITAL: + FILE_LOG(logINFO, ("Setting Analog & Digital Readout\n")); + bus_w(addr, (bus_r(addr) & (~CONFIG_DSBL_ANLG_OTPT_MSK)) | CONFIG_ENBLE_DGTL_OTPT_MSK); + break; + default: + FILE_LOG(logERROR, ("Cannot set unknown readout flag. 0x%x\n", mode)); + return FAIL; } - - // get uint32_t regval = bus_r(addr); - FILE_LOG(logDEBUG1, ("Config Reg: 0x%08x\n", regval)); - // this bit reads analog disable, so inverse analogEnable = (((regval & CONFIG_DSBL_ANLG_OTPT_MSK) >> CONFIG_DSBL_ANLG_OTPT_OFST) ? 0 : 1); digitalEnable = ((regval & CONFIG_ENBLE_DGTL_OTPT_MSK) >> CONFIG_ENBLE_DGTL_OTPT_OFST); - if (analogEnable && digitalEnable) { - retval = ANALOG_AND_DIGITAL; - FILE_LOG(logDEBUG1, ("Getting readout: Analog & Digital 0x%x\n", retval)); - } else if (analogEnable && !digitalEnable) { - retval = NORMAL_READOUT; - FILE_LOG(logDEBUG1, ("Getting readout: Normal 0x%x\n", retval)); - } else if (!analogEnable && digitalEnable) { - retval = DIGITAL_ONLY; - FILE_LOG(logDEBUG1, ("Getting readout: Digital Only 0x%x\n", retval)); - } else { - FILE_LOG(logERROR, ("Read unknown readout (Both digital and analog are disabled). " - "Config reg: 0x%x\n", regval)); - return retval; - } - // update databytes and allocate ram if (allocateRAM() == FAIL) { - return -2; + return FAIL; } - - return retval; + return OK; } +int getReadoutMode() { + if (analogEnable && digitalEnable) { + FILE_LOG(logDEBUG1, ("Getting readout: Analog & Digita\n")); + return ANALOG_AND_DIGITAL; + } else if (analogEnable && !digitalEnable) { + FILE_LOG(logDEBUG1, ("Getting readout: Analog Only\n")); + return ANALOG_ONLY; + } else if (!analogEnable && digitalEnable) { + FILE_LOG(logDEBUG1, ("Getting readout: Digital Only\n")); + return DIGITAL_ONLY; + } else { + FILE_LOG(logERROR, ("Read unknown readout (Both digital and analog are disabled)\n")); + return -1; + } +} /* parameters - timer */ @@ -1520,6 +1510,7 @@ int configureMAC(uint32_t destip, uint64_t destmac, uint64_t sourcemac, uint32_t FILE_LOG(logINFOBLUE, ("Configuring MAC\n")); // 1 giga udp if (!enableTenGigabitEthernet(-1)) { + FILE_LOG(logINFOBLUE, ("Configuring 1G MAC\n")); // if it was in 10G mode, it was not allocating RAM if (allocateRAM() == FAIL) return -1; @@ -1535,67 +1526,67 @@ int configureMAC(uint32_t destip, uint64_t destmac, uint64_t sourcemac, uint32_t } // 10 G - else { - uint32_t sourceport = DEFAULT_TX_UDP_PORT; + FILE_LOG(logINFOBLUE, ("Configuring 10G MAC\n")); + uint32_t sourceport = DEFAULT_TX_UDP_PORT; - FILE_LOG(logINFO, ("\tSource IP : %d.%d.%d.%d \t\t(0x%08x)\n", - (sourceip>>24)&0xff,(sourceip>>16)&0xff,(sourceip>>8)&0xff,(sourceip)&0xff, sourceip)); - FILE_LOG(logINFO, ("\tSource MAC : %02x:%02x:%02x:%02x:%02x:%02x \t(0x%010llx)\n", - (unsigned int)((sourcemac>>40)&0xFF), - (unsigned int)((sourcemac>>32)&0xFF), - (unsigned int)((sourcemac>>24)&0xFF), - (unsigned int)((sourcemac>>16)&0xFF), - (unsigned int)((sourcemac>>8)&0xFF), - (unsigned int)((sourcemac>>0)&0xFF), - (long long unsigned int)sourcemac)); - FILE_LOG(logINFO, ("\tSource Port : %d \t\t\t(0x%08x)\n",sourceport, sourceport)); + FILE_LOG(logINFO, ("\tSource IP : %d.%d.%d.%d \t\t(0x%08x)\n", + (sourceip>>24)&0xff,(sourceip>>16)&0xff,(sourceip>>8)&0xff,(sourceip)&0xff, sourceip)); + FILE_LOG(logINFO, ("\tSource MAC : %02x:%02x:%02x:%02x:%02x:%02x \t(0x%010llx)\n", + (unsigned int)((sourcemac>>40)&0xFF), + (unsigned int)((sourcemac>>32)&0xFF), + (unsigned int)((sourcemac>>24)&0xFF), + (unsigned int)((sourcemac>>16)&0xFF), + (unsigned int)((sourcemac>>8)&0xFF), + (unsigned int)((sourcemac>>0)&0xFF), + (long long unsigned int)sourcemac)); + FILE_LOG(logINFO, ("\tSource Port : %d \t\t\t(0x%08x)\n",sourceport, sourceport)); - FILE_LOG(logINFO, ("\tDest. IP : %d.%d.%d.%d \t\t(0x%08x)\n", - (destip>>24)&0xff,(destip>>16)&0xff,(destip>>8)&0xff,(destip)&0xff, destip)); - FILE_LOG(logINFO, ("\tDest. MAC : %02x:%02x:%02x:%02x:%02x:%02x \t(0x%010llx)\n", - (unsigned int)((destmac>>40)&0xFF), - (unsigned int)((destmac>>32)&0xFF), - (unsigned int)((destmac>>24)&0xFF), - (unsigned int)((destmac>>16)&0xFF), - (unsigned int)((destmac>>8)&0xFF), - (unsigned int)((destmac>>0)&0xFF), - (long long unsigned int)destmac)); - FILE_LOG(logINFO, ("\tDest. Port : %d \t\t\t(0x%08x)\n",udpport, udpport)); + FILE_LOG(logINFO, ("\tDest. IP : %d.%d.%d.%d \t\t(0x%08x)\n", + (destip>>24)&0xff,(destip>>16)&0xff,(destip>>8)&0xff,(destip)&0xff, destip)); + FILE_LOG(logINFO, ("\tDest. MAC : %02x:%02x:%02x:%02x:%02x:%02x \t(0x%010llx)\n", + (unsigned int)((destmac>>40)&0xFF), + (unsigned int)((destmac>>32)&0xFF), + (unsigned int)((destmac>>24)&0xFF), + (unsigned int)((destmac>>16)&0xFF), + (unsigned int)((destmac>>8)&0xFF), + (unsigned int)((destmac>>0)&0xFF), + (long long unsigned int)destmac)); + FILE_LOG(logINFO, ("\tDest. Port : %d \t\t\t(0x%08x)\n",udpport, udpport)); - long int checksum=calcChecksum(sourceip, destip); - bus_w(TX_IP_REG, sourceip); - bus_w(RX_IP_REG, destip); + long int checksum=calcChecksum(sourceip, destip); + bus_w(TX_IP_REG, sourceip); + bus_w(RX_IP_REG, destip); - uint32_t val = 0; + uint32_t val = 0; - val = ((sourcemac >> LSB_OF_64_BIT_REG_OFST) & BIT_32_MSK); - bus_w(TX_MAC_LSB_REG, val); - FILE_LOG(logDEBUG1, ("Read from TX_MAC_LSB_REG: 0x%08x\n", bus_r(TX_MAC_LSB_REG))); + val = ((sourcemac >> LSB_OF_64_BIT_REG_OFST) & BIT_32_MSK); + bus_w(TX_MAC_LSB_REG, val); + FILE_LOG(logDEBUG1, ("Read from TX_MAC_LSB_REG: 0x%08x\n", bus_r(TX_MAC_LSB_REG))); - val = ((sourcemac >> MSB_OF_64_BIT_REG_OFST) & BIT_32_MSK); - bus_w(TX_MAC_MSB_REG,val); - FILE_LOG(logDEBUG1, ("Read from TX_MAC_MSB_REG: 0x%08x\n", bus_r(TX_MAC_MSB_REG))); + val = ((sourcemac >> MSB_OF_64_BIT_REG_OFST) & BIT_32_MSK); + bus_w(TX_MAC_MSB_REG,val); + FILE_LOG(logDEBUG1, ("Read from TX_MAC_MSB_REG: 0x%08x\n", bus_r(TX_MAC_MSB_REG))); - val = ((destmac >> LSB_OF_64_BIT_REG_OFST) & BIT_32_MSK); - bus_w(RX_MAC_LSB_REG, val); - FILE_LOG(logDEBUG1, ("Read from RX_MAC_LSB_REG: 0x%08x\n", bus_r(RX_MAC_LSB_REG))); + val = ((destmac >> LSB_OF_64_BIT_REG_OFST) & BIT_32_MSK); + bus_w(RX_MAC_LSB_REG, val); + FILE_LOG(logDEBUG1, ("Read from RX_MAC_LSB_REG: 0x%08x\n", bus_r(RX_MAC_LSB_REG))); - val = ((destmac >> MSB_OF_64_BIT_REG_OFST) & BIT_32_MSK); - bus_w(RX_MAC_MSB_REG, val); - FILE_LOG(logDEBUG1, ("Read from RX_MAC_MSB_REG: 0x%08x\n", bus_r(RX_MAC_MSB_REG))); + val = ((destmac >> MSB_OF_64_BIT_REG_OFST) & BIT_32_MSK); + bus_w(RX_MAC_MSB_REG, val); + FILE_LOG(logDEBUG1, ("Read from RX_MAC_MSB_REG: 0x%08x\n", bus_r(RX_MAC_MSB_REG))); - val = (((sourceport << UDP_PORT_TX_OFST) & UDP_PORT_TX_MSK) | - ((udpport << UDP_PORT_RX_OFST) & UDP_PORT_RX_MSK)); - bus_w(UDP_PORT_REG, val); - FILE_LOG(logDEBUG1, ("Read from UDP_PORT_REG: 0x%08x\n", bus_r(UDP_PORT_REG))); + val = (((sourceport << UDP_PORT_TX_OFST) & UDP_PORT_TX_MSK) | + ((udpport << UDP_PORT_RX_OFST) & UDP_PORT_RX_MSK)); + bus_w(UDP_PORT_REG, val); + FILE_LOG(logDEBUG1, ("Read from UDP_PORT_REG: 0x%08x\n", bus_r(UDP_PORT_REG))); - bus_w(TX_IP_CHECKSUM_REG,(checksum << TX_IP_CHECKSUM_OFST) & TX_IP_CHECKSUM_MSK); - FILE_LOG(logDEBUG1, ("Read from TX_IP_CHECKSUM_REG: 0x%08x\n", bus_r(TX_IP_CHECKSUM_REG))); + bus_w(TX_IP_CHECKSUM_REG,(checksum << TX_IP_CHECKSUM_OFST) & TX_IP_CHECKSUM_MSK); + FILE_LOG(logDEBUG1, ("Read from TX_IP_CHECKSUM_REG: 0x%08x\n", bus_r(TX_IP_CHECKSUM_REG))); - cleanFifos();//FIXME: resetPerpheral() for ctb? - resetPeripheral(); - usleep(WAIT_TIME_CONFIGURE_MAC); // todo maybe without - } + cleanFifos();//FIXME: resetPerpheral() for ctb? + resetPeripheral(); + FILE_LOG(logINFO, ("Waiting for %d s for mac to be up\n", WAIT_TIME_CONFIGURE_MAC / (1000 * 1000))); + usleep(WAIT_TIME_CONFIGURE_MAC); // todo maybe without return OK; } diff --git a/slsDetectorServers/ctbDetectorServer/slsDetectorServer_defs.h b/slsDetectorServers/ctbDetectorServer/slsDetectorServer_defs.h index 33b5c5e5e..856b4af1f 100755 --- a/slsDetectorServers/ctbDetectorServer/slsDetectorServer_defs.h +++ b/slsDetectorServers/ctbDetectorServer/slsDetectorServer_defs.h @@ -83,7 +83,7 @@ enum DACINDEX {D0, D1, D2, D3, D4, D5, D6, D7, D8, D9, #define WAIT_TME_US_FR_ACQDONE_REG (100) // wait time in us after acquisition done to ensure there is no data in fifo #define WAIT_TIME_US_PLL (10 * 1000) #define WAIT_TIME_US_STP_ACQ (100) -#define WAIT_TIME_CONFIGURE_MAC (500 * 1000) +#define WAIT_TIME_CONFIGURE_MAC (2 * 1000 * 1000) #define WAIT_TIME_PATTERN_READ (10) #define WAIT_TIME_1US_FOR_LOOP_CNT (50) // around 30 is 1 us in blackfin diff --git a/slsDetectorServers/eigerDetectorServer/Makefile b/slsDetectorServers/eigerDetectorServer/Makefile index abd934c8f..989117917 100755 --- a/slsDetectorServers/eigerDetectorServer/Makefile +++ b/slsDetectorServers/eigerDetectorServer/Makefile @@ -3,13 +3,13 @@ main_inc = ../slsDetectorServer/include/ main_src = ../slsDetectorServer/src/ support_lib = ../../slsSupportLib/include/ -CROSS = powerpc-4xx-softfloat- BLACKFIN_CC = bfin-uclinux-gcc +CROSS = powerpc-4xx-softfloat- CC = $(CROSS)gcc CFLAGS += -Wall -DEIGERD -DSTOP_SERVER -I$(main_inc) -I$(support_lib) -I$(current_dir)#-DVERBOSEI #-DVERBOSE LDLIBS += -lm PROGS = eigerDetectorServer -DESTDIR ?= bin +DESTDIR = bin INSTMODE = 0777 SRCS = slsDetectorFunctionList.c HardwareIO.c LocalLinkInterface.c FebInterface.c FebControl.c Beb.c @@ -17,7 +17,7 @@ SRCS += $(main_src)communication_funcs.c $(main_src)slsDetectorServer.c $(main_ OBJS = $(SRCS:.c=.o) -all: clean versioning $(PROGS) #hv9m_blackfin_server +all: clean versioning $(PROGS) #hv9m_blackfin_server boot: $(OBJS) diff --git a/slsDetectorServers/eigerDetectorServer/bin/eigerDetectorServer_developer b/slsDetectorServers/eigerDetectorServer/bin/eigerDetectorServer_developer index 0132d99a8d74f868dc54d24a10d713d804752224..02b9f3b5fd0a53272295d8937f086d4da83f59db 100755 GIT binary patch delta 84629 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 A5C8xG delta 61819 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 diff --git a/slsDetectorServers/jungfrauDetectorServer/slsDetectorServer_defs.h b/slsDetectorServers/jungfrauDetectorServer/slsDetectorServer_defs.h index 09e35a808..086de0775 100755 --- a/slsDetectorServers/jungfrauDetectorServer/slsDetectorServer_defs.h +++ b/slsDetectorServers/jungfrauDetectorServer/slsDetectorServer_defs.h @@ -37,7 +37,6 @@ typedef struct udp_header_struct { /* Enums */ -enum CLK_SPEED_INDEX {FULL_SPEED, HALF_SPEED, QUARTER_SPEED}; enum ADCINDEX {TEMP_FPGA, TEMP_ADC}; enum DACINDEX {VB_COMP, VDD_PROT, VIN_COM, VREF_PRECH, VB_PIXBUF, VB_DS, VREF_DS, VREF_COMP }; #define DEFAULT_DAC_VALS { 1220, /* VB_COMP */ \ diff --git a/slsDetectorServers/slsDetectorServer/include/clogger.h b/slsDetectorServers/slsDetectorServer/include/clogger.h index 4f8c9b707..3bef6cace 100755 --- a/slsDetectorServers/slsDetectorServer/include/clogger.h +++ b/slsDetectorServers/slsDetectorServer/include/clogger.h @@ -47,6 +47,7 @@ static inline void FILELOG_PrintLog(enum TLogLevel level, char* m) { case logDEBUG4: cprintf(MAGENTA, "DEBUG4: %s", m); break; case logDEBUG5: cprintf(MAGENTA, "DEBUG5: %s", m); break; } + fflush(stdout); } static inline char* FILELOG_BuildLog(const char* fmt, ...) { diff --git a/slsDetectorServers/slsDetectorServer/include/slsDetectorFunctionList.h b/slsDetectorServers/slsDetectorServer/include/slsDetectorFunctionList.h index ce91e0f3f..0bf103c8e 100755 --- a/slsDetectorServers/slsDetectorServer/include/slsDetectorFunctionList.h +++ b/slsDetectorServers/slsDetectorServer/include/slsDetectorFunctionList.h @@ -138,9 +138,20 @@ int getSpeed(enum speedVariable ind); #endif #endif -#if defined(EIGERD) || defined(CHIPTESTBOARDD) -enum readOutFlags setReadOutFlags(enum readOutFlags val); +#ifdef EIGERD +int setParallelMode(int mode); +int getParallelMode(); +int setOverFlowMode(int mode); +int getOverFlowMode(); +void setStoreInRamMode(int mode); +int getStoreInRamMode(); #endif +#ifdef CHIPTESTBOARDD +int setReadoutMode(enum readoutMode mode); +int getReadoutMode(); +#endif + + // parameters - timer #ifdef JUNGFRAUD diff --git a/slsDetectorServers/slsDetectorServer/include/slsDetectorServer_funcs.h b/slsDetectorServers/slsDetectorServer/include/slsDetectorServer_funcs.h index 7779308f2..2957cd76e 100755 --- a/slsDetectorServers/slsDetectorServer/include/slsDetectorServer_funcs.h +++ b/slsDetectorServers/slsDetectorServer/include/slsDetectorServer_funcs.h @@ -47,7 +47,6 @@ int read_all(int); int set_timer(int); int get_time_left(int); int set_dynamic_range(int); -int set_readout_flags(int); int set_roi(int); int get_roi(int); int set_speed(int); @@ -109,3 +108,11 @@ int set_interrupt_subframe(int); int get_interrupt_subframe(int); int set_read_n_lines(int); int get_read_n_lines(int); +int set_parallel_mode(int); +int get_parallel_mode(int); +int set_overflow_mode(int); +int get_overflow_mode(int); +int set_storeinram(int); +int get_storeinram(int); +int set_readout_mode(int); +int get_readout_mode(int); diff --git a/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c b/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c index 9d5a2c919..e720749ca 100755 --- a/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c +++ b/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c @@ -191,7 +191,6 @@ const char* getFunctionName(enum detFuncs func) { case F_SET_TIMER: return "F_SET_TIMER"; case F_GET_TIME_LEFT: return "F_GET_TIME_LEFT"; case F_SET_DYNAMIC_RANGE: return "F_SET_DYNAMIC_RANGE"; - case F_SET_READOUT_FLAGS: return "F_SET_READOUT_FLAGS"; case F_SET_ROI: return "F_SET_ROI"; case F_GET_ROI: return "F_GET_ROI"; case F_SET_SPEED: return "F_SET_SPEED"; @@ -251,6 +250,14 @@ const char* getFunctionName(enum detFuncs func) { case F_GET_INTERRUPT_SUBFRAME: return "F_GET_INTERRUPT_SUBFRAME"; case F_SET_READ_N_LINES: return "F_SET_READ_N_LINES"; case F_GET_READ_N_LINES: return "F_GET_READ_N_LINES"; + case F_SET_PARALLEL_MODE: return "F_SET_PARALLEL_MODE"; + case F_GET_PARALLEL_MODE: return "F_GET_PARALLEL_MODE"; + case F_SET_OVERFLOW_MODE: return "F_SET_OVERFLOW_MODE"; + case F_GET_OVERFLOW_MODE: return "F_GET_OVERFLOW_MODE"; + case F_SET_STOREINRAM_MODE: return "F_SET_STOREINRAM_MODE"; + case F_GET_STOREINRAM_MODE: return "F_GET_STOREINRAM_MODE"; + case F_SET_READOUT_MODE: return "F_SET_READOUT_MODE"; + case F_GET_READOUT_MODE: return "F_GET_READOUT_MODE"; default: return "Unknown Function"; } } @@ -279,7 +286,6 @@ void function_table() { flist[F_SET_TIMER] = &set_timer; flist[F_GET_TIME_LEFT] = &get_time_left; flist[F_SET_DYNAMIC_RANGE] = &set_dynamic_range; - flist[F_SET_READOUT_FLAGS] = &set_readout_flags; flist[F_SET_ROI] = &set_roi; flist[F_GET_ROI] = &get_roi; flist[F_SET_SPEED] = &set_speed; @@ -339,6 +345,14 @@ void function_table() { flist[F_GET_INTERRUPT_SUBFRAME] = &get_interrupt_subframe; flist[F_SET_READ_N_LINES] = &set_read_n_lines; flist[F_GET_READ_N_LINES] = &get_read_n_lines; + flist[F_SET_PARALLEL_MODE] = &set_parallel_mode; + flist[F_GET_PARALLEL_MODE] = &get_parallel_mode; + flist[F_SET_OVERFLOW_MODE] = &set_overflow_mode; + flist[F_GET_OVERFLOW_MODE] = &get_overflow_mode; + flist[F_SET_STOREINRAM_MODE] = &set_storeinram; + flist[F_GET_STOREINRAM_MODE] = &get_storeinram; + flist[F_SET_READOUT_MODE] = &set_readout_mode; + flist[F_GET_READOUT_MODE] = &get_readout_mode; // check if (NUM_DET_FUNCTIONS >= RECEIVER_ENUM_START) { @@ -1863,60 +1877,6 @@ int set_dynamic_range(int file_des) { -int set_readout_flags(int file_des) { - ret = OK; - memset(mess, 0, sizeof(mess)); - enum readOutFlags arg = GET_READOUT_FLAGS; - enum readOutFlags retval = GET_READOUT_FLAGS; - - if (receiveData(file_des, &arg, sizeof(arg), INT32) < 0) - return printSocketReadError(); - FILE_LOG(logDEBUG1, ("Setting readout flags to %d\n", arg)); - -#if defined(JUNGFRAUD) || defined(GOTTHARDD) || defined(MOENCHD) || defined(MYTHEN3D) || defined(GOTTHARD2D) - functionNotImplemented(); -#else - // set & get - if ((arg == GET_READOUT_FLAGS) || (Server_VerifyLock() == OK)) { - - switch(arg) { - case GET_READOUT_FLAGS: -#ifdef EIGERD - case STORE_IN_RAM: - case CONTINOUS_RO: - case PARALLEL: - case NONPARALLEL: - case SHOW_OVERFLOW: - case NOOVERFLOW: -#elif CHIPTESTBOARDD - case NORMAL_READOUT: - case DIGITAL_ONLY: - case ANALOG_AND_DIGITAL: -#endif - retval = setReadOutFlags(arg); - FILE_LOG(logDEBUG1, ("Read out flags: 0x%x\n", retval)); - validate((int)arg, (int)(retval & arg), "set readout flag", HEX); -#if defined(CHIPTESTBOARDD) || defined(MOENCHD) - if (retval == -2) { - ret = FAIL; - sprintf(mess, "Readout Flags failed. Cannot allocate RAM\n"); - FILE_LOG(logERROR,(mess)); - } -#endif - break; - default: - modeNotImplemented("Read out flag index", (int)arg); - break; - } - } -#endif - return Server_SendResult(file_des, INT32, UPDATE, &retval, sizeof(retval)); -} - - - - - int set_roi(int file_des) { ret = OK; @@ -2273,8 +2233,8 @@ int send_update(int file_des) { if (n < 0) return printSocketReadError(); // readout flags -#if defined(EIGERD) || defined(CHIPTESTBOARDD) - i32 = setReadOutFlags(GET_READOUT_FLAGS); +#ifdef CHIPTESTBOARDD + i32 = getReadoutMode(); n = sendData(file_des,&i32,sizeof(i32),INT32); if (n < 0) return printSocketReadError(); #endif @@ -4151,3 +4111,211 @@ int get_read_n_lines(int file_des) { return Server_SendResult(file_des, INT32, UPDATE, &retval, sizeof(retval)); } + +int set_parallel_mode(int file_des) { + ret = OK; + memset(mess, 0, sizeof(mess)); + int arg = 0; + + if (receiveData(file_des, &arg, sizeof(arg), INT32) < 0) + return printSocketReadError(); + FILE_LOG(logINFO, ("Setting parallel mode: %u\n", arg)); + +#ifndef EIGERD + functionNotImplemented(); +#else + // only set + if (Server_VerifyLock() == OK) { + if(setParallelMode(arg) == FAIL) { + ret = FAIL; + sprintf(mess, "Could not set parallel mode\n"); + FILE_LOG(logERROR,(mess)); + } else { + int retval = getParallelMode(); + if (arg != retval) { + ret = FAIL; + sprintf(mess, "Could not set parallel mode. Set %d, but read %d\n", retval, arg); + FILE_LOG(logERROR,(mess)); + } + } + } +#endif + return Server_SendResult(file_des, INT32, UPDATE, NULL, 0); +} + + +int get_parallel_mode(int file_des) { + ret = OK; + memset(mess, 0, sizeof(mess)); + int retval = -1; + + FILE_LOG(logDEBUG1, ("Getting parallel mode\n")); + +#ifndef EIGERD + functionNotImplemented(); +#else + // get only + retval = getParallelMode(); + FILE_LOG(logDEBUG1, ("parallel mode retval: %u\n", retval)); +#endif + return Server_SendResult(file_des, INT32, UPDATE, &retval, sizeof(retval)); +} + + +int set_overflow_mode(int file_des) { + ret = OK; + memset(mess, 0, sizeof(mess)); + int arg = 0; + + if (receiveData(file_des, &arg, sizeof(arg), INT32) < 0) + return printSocketReadError(); + FILE_LOG(logINFO, ("Setting overflow mode: %u\n", arg)); + +#ifndef EIGERD + functionNotImplemented(); +#else + // only set + if (Server_VerifyLock() == OK) { + if(setOverFlowMode(arg) == FAIL) { + ret = FAIL; + sprintf(mess, "Could not set overflow mode\n"); + FILE_LOG(logERROR,(mess)); + } else { + int retval = getOverFlowMode(); + if (arg != retval) { + ret = FAIL; + sprintf(mess, "Could not set overflow mode. Set %d, but read %d\n", retval, arg); + FILE_LOG(logERROR,(mess)); + } + } + } +#endif + return Server_SendResult(file_des, INT32, UPDATE, NULL, 0); +} + + +int get_overflow_mode(int file_des) { + ret = OK; + memset(mess, 0, sizeof(mess)); + int retval = -1; + + FILE_LOG(logDEBUG1, ("Getting overflow mode\n")); + +#ifndef EIGERD + functionNotImplemented(); +#else + // get only + retval = getOverFlowMode(); + FILE_LOG(logDEBUG1, ("overflow mode retval: %u\n", retval)); +#endif + return Server_SendResult(file_des, INT32, UPDATE, &retval, sizeof(retval)); +} + + +int set_storeinram(int file_des) { + ret = OK; + memset(mess, 0, sizeof(mess)); + int arg = 0; + + if (receiveData(file_des, &arg, sizeof(arg), INT32) < 0) + return printSocketReadError(); + FILE_LOG(logINFO, ("Setting store in ram mode: %u\n", arg)); + +#ifndef EIGERD + functionNotImplemented(); +#else + // only set + if (Server_VerifyLock() == OK) { + setStoreInRamMode(arg); + } +#endif + return Server_SendResult(file_des, INT32, UPDATE, NULL, 0); +} + + +int get_storeinram(int file_des) { + ret = OK; + memset(mess, 0, sizeof(mess)); + int retval = -1; + + FILE_LOG(logDEBUG1, ("Getting store in ram mode\n")); + +#ifndef EIGERD + functionNotImplemented(); +#else + // get only + retval = getStoreInRamMode(); + FILE_LOG(logDEBUG1, ("store in ram mode retval: %u\n", retval)); +#endif + return Server_SendResult(file_des, INT32, UPDATE, &retval, sizeof(retval)); +} + + +int set_readout_mode(int file_des) { + ret = OK; + memset(mess, 0, sizeof(mess)); + int arg = 0; + + if (receiveData(file_des, &arg, sizeof(arg), INT32) < 0) + return printSocketReadError(); + FILE_LOG(logINFO, ("Setting readout mode: %u\n", arg)); + +#ifndef CHIPTESTBOARDD + functionNotImplemented(); +#else + // only set + if (Server_VerifyLock() == OK) { + switch(arg){ + case ANALOG_ONLY: + case DIGITAL_ONLY: + case ANALOG_AND_DIGITAL: + break; + default: + modeNotImplemented("Readout mode", (int)arg); + break; + } + if (ret == OK) { + if (setReadoutMode(arg) == FAIL) { + ret = FAIL; + sprintf(mess, "Could not set allocate RAM to set readout mode\n"); + FILE_LOG(logERROR,(mess)); + } else { + int retval = getReadoutMode(); + if (retval == -1) { + ret = FAIL; + sprintf(mess, "Could not get readout mode\n"); + FILE_LOG(logERROR,(mess)); + } else { + FILE_LOG(logDEBUG1, ("readout mode retval: %u\n", retval)); + } + validate(arg, retval, "set readout mode", DEC); + } + } + } +#endif + return Server_SendResult(file_des, INT32, UPDATE, NULL, 0); +} + + +int get_readout_mode(int file_des) { + ret = OK; + memset(mess, 0, sizeof(mess)); + int retval = -1; + + FILE_LOG(logDEBUG1, ("Getting readout mode\n")); + +#ifndef CHIPTESTBOARDD + functionNotImplemented(); +#else + // get only + retval = getReadoutMode(); + if (retval == -1) { + ret = FAIL; + sprintf(mess, "Could not get readout mode\n"); + FILE_LOG(logERROR,(mess)); + } else { + FILE_LOG(logDEBUG1, ("readout mode retval: %u\n", retval)); + } +#endif + return Server_SendResult(file_des, INT32, UPDATE, &retval, sizeof(retval)); +} diff --git a/slsDetectorSoftware/include/CmdProxy.h b/slsDetectorSoftware/include/CmdProxy.h index e9e26b225..c552b5d89 100644 --- a/slsDetectorSoftware/include/CmdProxy.h +++ b/slsDetectorSoftware/include/CmdProxy.h @@ -114,6 +114,9 @@ class CmdProxy { {"period", &CmdProxy::Period}, {"subexptime", &CmdProxy::SubExptime}, {"frames", &CmdProxy::frames}, + {"parallel", &CmdProxy::parallel}, + {"overflow", &CmdProxy::overflow}, + {"storeinram", &CmdProxy::storeinram}, {"fwrite", &CmdProxy::fwrite}, {"fmaster", &CmdProxy::fmaster}, {"foverwrite", &CmdProxy::foverwrite}, @@ -144,7 +147,8 @@ class CmdProxy { {"masterfile", "fmaster"}, {"outdir", "fpath"}, {"fileformat", "fformat"}, - {"overwrite", "foverwrite"}}; + {"overwrite", "foverwrite"}, + {"flags", "readout"}}; void WrongNumberOfParameters(size_t expected); @@ -193,6 +197,15 @@ class CmdProxy { INTEGER_COMMAND(findex, getAcquisitionIndex, setAcquisitionIndex, std::stoi, "[0, 1]\n\tFile index"); + + INTEGER_COMMAND(parallel, getParallelMode, setParallelMode, std::stoi, + "[0, 1]\n\tEnable or disable parallel mode. [Eiger]"); + + INTEGER_COMMAND(overflow, getOverFlowMode, setOverFlowMode, std::stoi, + "[0, 1]\n\tEnable or disable show overflow flag in 32 bit mode. [Eiger]"); + + INTEGER_COMMAND(storeinram, getStoreInRamMode, setStoreInRamMode, std::stoi, + "[0, 1]\n\tEnable or disable store in ram mode. [Eiger]"); }; } // namespace sls diff --git a/slsDetectorSoftware/include/Detector.h b/slsDetectorSoftware/include/Detector.h index cf63098fd..55e341197 100644 --- a/slsDetectorSoftware/include/Detector.h +++ b/slsDetectorSoftware/include/Detector.h @@ -154,12 +154,11 @@ class Detector { Result getDelayAfterTriggerLeft(Positions pos = {}) const; /** [Eiger][Jungfrau] */ - Result getSpeed(Positions pos = {}) const; + Result getSpeed(Positions pos = {}) const; - /** [Eiger][Jungfrau] // TODO: create enum for speed - * Options: (0 full speed, 1 half speed, 2 quarter speed) - */ - void setSpeed(int value, Positions pos = {}); + /** [Eiger][Jungfrau] + * Options: FULL_SPEED, HALF_SPEED, QUARTER_SPEED */ + void setSpeed(defs::speedLevel value, Positions pos = {}); /** [Gotthard][Jungfrau][CTB] */ Result getADCPhase(Positions pos = {}) const; @@ -636,6 +635,12 @@ class Detector { /** [Eiger] */ void setOverFlowMode(bool value, Positions pos = {}); + /** [Eiger] */ + Result getStoreInRamMode(Positions pos = {}) const; + + /** [Eiger] */ + void setStoreInRamMode(bool value, Positions pos = {}); + /** [Eiger] */ Result getBottom(Positions pos = {}) const; @@ -852,11 +857,10 @@ class Detector { void setNumberOfDigitalSamples(int64_t value, Positions pos = {}); /** [CTB] */ - Result getReadoutMode(Positions pos = {}) const; + Result getReadoutMode(Positions pos = {}) const; - /** [CTB] Options: NORMAL_READOUT = 0, DIGITAL_ONLY = 1, ANALOG_AND_DIGITAL - * //TODO ANALOG_ONLY, make enum = 2 */ - void setReadoutMode(int value, Positions pos = {}); + /** [CTB] Options: ANALOG_ONLY = 0, DIGITAL_ONLY = 1, ANALOG_AND_DIGITAL */ + void setReadoutMode(defs::readoutMode value, Positions pos = {}); /** [CTB] */ Result getDBITPhase(Positions pos = {}) const; diff --git a/slsDetectorSoftware/include/multiSlsDetector.h b/slsDetectorSoftware/include/multiSlsDetector.h index 0b901e111..6f72663d1 100755 --- a/slsDetectorSoftware/include/multiSlsDetector.h +++ b/slsDetectorSoftware/include/multiSlsDetector.h @@ -778,14 +778,18 @@ class multiSlsDetector : public virtual slsDetectorDefs { int detPos = -1); // /** - * Set/get readout flags (Eiger, Mythen) - * @param flag readout flag (Eiger options: parallel, nonparallel, safe - * etc.) (-1 gets) + * Set readout mode (Only for CTB and Moench) + * @param mode readout mode Options: ANALOG_ONLY, DIGITAL_ONLY, ANALOG_AND_DIGITAL * @param detPos -1 for all detectors in list or specific detector position - * @returns readout flag */ - int setReadOutFlags(readOutFlags flag = GET_READOUT_FLAGS, - int detPos = -1); // + void setReadoutMode(const readoutMode mode, int detPos = -1); + + /** + * Get readout mode(Only for CTB and Moench) + * @param detPos -1 for all detectors in list or specific detector position + * @returns readout mode + */ + readoutMode getReadoutMode(int detPos = -1); /** * Set Interrupt last sub frame (Only for Eiger) diff --git a/slsDetectorSoftware/include/slsDetector.h b/slsDetectorSoftware/include/slsDetector.h index 89031e58b..180d1b24d 100755 --- a/slsDetectorSoftware/include/slsDetector.h +++ b/slsDetectorSoftware/include/slsDetector.h @@ -68,8 +68,8 @@ struct sharedSlsDetector { /** adc enable mask */ uint32_t adcEnableMask; - /** readout flags */ - slsDetectorDefs::readOutFlags roFlags; + /** readout mode */ + slsDetectorDefs::readoutMode roMode; /** detector settings (standard, fast, etc.) */ slsDetectorDefs::detectorSettings currentSettings; @@ -629,12 +629,52 @@ class slsDetector : public virtual slsDetectorDefs { setExternalSignalFlags(externalSignalFlag pol = GET_EXTERNAL_SIGNAL_FLAG); /** - * Set/get readout flags (Eiger, Mythen) - * @param flag readout flag (Eiger options: parallel, nonparallel, safe - * etc.) (-1 gets) - * @returns readout flag + * Set Parallel readout mode (Only for Eiger) + * @param enable true if parallel, else false for non parallel */ - int setReadOutFlags(readOutFlags flag = GET_READOUT_FLAGS); + void setParallelMode(const bool enable); + + /** + * Get parallel mode (Only for Eiger) + * @returns parallel mode + */ + bool getParallelMode(); + + /** + * Set overflow readout mode in 32 bit mode (Only for Eiger) + * @param enable true if overflow, else false + */ + void setOverFlowMode(const bool enable); + + /** + * Get overflow mode in 32 bit mode (Only for Eiger) + * @returns overflow mode + */ + bool getOverFlowMode(); + + /** + * Set store in ram readout mode (Only for Eiger) + * @param enable true if store in ram, else false + */ + void setStoreInRamMode(const bool enable); + + /** + * Get store in ram mode (Only for Eiger) + * @returns store in ram mode + */ + bool getStoreInRamMode(); + + /** + * Set readout mode (Only for CTB and Moench) + * @param mode readout mode Options: ANALOG_ONLY, DIGITAL_ONLY, ANALOG_AND_DIGITAL + */ + void setReadoutMode(const readoutMode mode); + + /** + * Get readout mode(Only for CTB and Moench) + * @returns readout mode + */ + readoutMode getReadoutMode(); /** * Set Interrupt last sub frame (Only for Eiger) diff --git a/slsDetectorSoftware/include/slsDetectorUsers.h b/slsDetectorSoftware/include/slsDetectorUsers.h index c0f5ee46f..3bf71f750 100755 --- a/slsDetectorSoftware/include/slsDetectorUsers.h +++ b/slsDetectorSoftware/include/slsDetectorUsers.h @@ -398,22 +398,20 @@ public: /** * Set parallel readout mode (Eiger) * @param value readout mode (-1 gets) - * Options: slsDetectorDefs::readOutFlags - * (PARALLEL, NONPARALLEL (Default), SAFE) + * false for NonParallel (Default), true for Parallel * @param detPos -1 for all detectors in list or specific detector position - * @returns mode register, - * result must be ANDED with PARALLEL/NONPARALLEL/SAFE to get mode + * @returns 1 for parallel, 0 for non parallel, -1 if different */ - int setParallelMode(int value, int detPos = -1); + int setParallelMode(bool value, int detPos = -1); /** * Set overflow readout mode (Eiger in 32 bit) * @param value readout mode (-1 gets) - * Options: 1(SHOW_OVERFLOW), 0(NOOVERFLOW) (Default) + * Options: true to Show overflow, false to not show overflow * @param detPos -1 for all detectors in list or specific detector position - * @returns 1 if overflow mode else 0 + * @returns 1 for overflow, 0 for no overflow, -1 if different */ - int setOverflowMode(int value, int detPos = -1); + int setOverflowMode(bool value, int detPos = -1); /** * (Advanced user) diff --git a/slsDetectorSoftware/src/Detector.cpp b/slsDetectorSoftware/src/Detector.cpp index 51353ebf2..ce4de21cd 100644 --- a/slsDetectorSoftware/src/Detector.cpp +++ b/slsDetectorSoftware/src/Detector.cpp @@ -1,10 +1,10 @@ #include "Detector.h" #include "container_utils.h" +#include "detectorData.h" #include "logger.h" #include "multiSlsDetector.h" #include "slsDetector.h" #include "sls_detector_defs.h" -#include "detectorData.h" namespace sls { @@ -165,13 +165,19 @@ Result Detector::getDelayAfterTriggerLeft(Positions pos) const { defs::DELAY_AFTER_TRIGGER); } -Result Detector::getSpeed(Positions pos) const { - return pimpl->Parallel(&slsDetector::setSpeed, pos, defs::CLOCK_DIVIDER, -1, +Result Detector::getSpeed(Positions pos) const { + auto res = pimpl->Parallel(&slsDetector::setSpeed, pos, defs::CLOCK_DIVIDER, -1, 0); + Result speedResult(res.size()); + for (size_t i = 0; i < res.size(); ++i) { + speedResult[i] = static_cast(res[i]); + } + return speedResult; } -void Detector::setSpeed(int value, Positions pos) { - pimpl->Parallel(&slsDetector::setSpeed, pos, defs::CLOCK_DIVIDER, value, 0); +void Detector::setSpeed(defs::speedLevel value, Positions pos) { + pimpl->Parallel(&slsDetector::setSpeed, pos, defs::CLOCK_DIVIDER, + static_cast(value), 0); } Result Detector::getADCPhase(Positions pos) const { @@ -265,7 +271,7 @@ void Detector::startAcquisition() { void Detector::stopAcquisition() { pimpl->Parallel(&slsDetector::stopAcquisition, {}); - if (getUseReceiverFlag().squash(true)) + if (getUseReceiverFlag().squash(true)) pimpl->Parallel(&slsDetector::stopReceiver, {}); } @@ -640,7 +646,8 @@ void Detector::setRxZmqDataStream(bool enable, Positions pos) { } Result Detector::getRxZmqFrequency(Positions pos) const { - return pimpl->Parallel(&slsDetector::setReceiverStreamingFrequency, pos, -1); + return pimpl->Parallel(&slsDetector::setReceiverStreamingFrequency, pos, + -1); } void Detector::setRxZmqFrequency(int freq, Positions pos) { @@ -775,33 +782,27 @@ void Detector::setRxAddGapPixels(bool enable) { } Result Detector::getParallelMode(Positions pos) const { - auto res = pimpl->Parallel(&slsDetector::setReadOutFlags, pos, - defs::GET_READOUT_FLAGS); - Result booleanRes(res.size()); - for (size_t i = 0; i < res.size(); ++i) { - booleanRes[i] = res[i] & defs::PARALLEL; - } - return booleanRes; + return pimpl->Parallel(&slsDetector::getParallelMode, pos); } void Detector::setParallelMode(bool value, Positions pos) { - pimpl->Parallel(&slsDetector::setReadOutFlags, pos, - value ? defs::PARALLEL : defs::NONPARALLEL); + pimpl->Parallel(&slsDetector::setParallelMode, pos, value); } Result Detector::getOverFlowMode(Positions pos) const { - auto res = pimpl->Parallel(&slsDetector::setReadOutFlags, pos, - defs::GET_READOUT_FLAGS); - Result booleanRes(res.size()); - for (size_t i = 0; i < res.size(); ++i) { - booleanRes[i] = res[i] & defs::SHOW_OVERFLOW; - } - return booleanRes; + return pimpl->Parallel(&slsDetector::getOverFlowMode, pos); } void Detector::setOverFlowMode(bool value, Positions pos) { - pimpl->Parallel(&slsDetector::setReadOutFlags, pos, - value ? defs::SHOW_OVERFLOW : defs::NOOVERFLOW); + pimpl->Parallel(&slsDetector::setOverFlowMode, pos, value); +} + +Result Detector::getStoreInRamMode(Positions pos) const { + return pimpl->Parallel(&slsDetector::getStoreInRamMode, pos); +} + +void Detector::setStoreInRamMode(bool value, Positions pos) { + pimpl->Parallel(&slsDetector::setStoreInRamMode, pos, value); } Result Detector::getBottom(Positions pos) const { @@ -1056,39 +1057,12 @@ void Detector::setNumberOfDigitalSamples(int64_t value, Positions pos) { pimpl->Parallel(&slsDetector::setTimer, pos, defs::DIGITAL_SAMPLES, value); } -Result Detector::getReadoutMode(Positions pos) const { - auto res = pimpl->Parallel(&slsDetector::setReadOutFlags, pos, - defs::GET_READOUT_FLAGS); - for (auto &it : res) { - if (it & defs::ANALOG_AND_DIGITAL) { - it = 2; - } else if (it & defs::DIGITAL_ONLY) { - it = 1; - } else if (it == defs::NORMAL_READOUT) { - it = 0; - } else { - throw RuntimeError("Unknown Signal Type"); - } - } - return res; +Result Detector::getReadoutMode(Positions pos) const { + return pimpl->Parallel(&slsDetector::getReadoutMode, pos); } -void Detector::setReadoutMode(int value, Positions pos) { - defs::readOutFlags flag; - switch (value) { - case 0: - flag = defs::NORMAL_READOUT; - break; - case 1: - flag = defs::DIGITAL_ONLY; - break; - case 2: - flag = defs::ANALOG_AND_DIGITAL; - break; - default: - throw RuntimeError("Unknown Signal Type"); - } - pimpl->Parallel(&slsDetector::setReadOutFlags, pos, flag); +void Detector::setReadoutMode(defs::readoutMode value, Positions pos) { + pimpl->Parallel(&slsDetector::setReadoutMode, pos, value); } Result Detector::getDBITPhase(Positions pos) const { diff --git a/slsDetectorSoftware/src/multiSlsDetector.cpp b/slsDetectorSoftware/src/multiSlsDetector.cpp index 57ab00c81..0286b70b1 100755 --- a/slsDetectorSoftware/src/multiSlsDetector.cpp +++ b/slsDetectorSoftware/src/multiSlsDetector.cpp @@ -1154,14 +1154,24 @@ multiSlsDetector::setExternalSignalFlags(externalSignalFlag pol, int detPos) { return sls::minusOneIfDifferent(r); } -int multiSlsDetector::setReadOutFlags(readOutFlags flag, int detPos) { +void multiSlsDetector::setReadoutMode(const slsDetectorDefs::readoutMode mode, int detPos) { // single if (detPos >= 0) { - return detectors[detPos]->setReadOutFlags(flag); + detectors[detPos]->setReadoutMode(mode); } // multi - auto r = parallelCall(&slsDetector::setReadOutFlags, flag); + parallelCall(&slsDetector::setReadoutMode, mode); +} + +slsDetectorDefs::readoutMode multiSlsDetector::getReadoutMode(int detPos) { + // single + if (detPos >= 0) { + return (detectors[detPos]->getReadoutMode()); + } + + // multi + auto r = parallelCall(&slsDetector::getReadoutMode); return sls::minusOneIfDifferent(r); } diff --git a/slsDetectorSoftware/src/slsDetector.cpp b/slsDetectorSoftware/src/slsDetector.cpp index 94c151342..a33350d7b 100755 --- a/slsDetectorSoftware/src/slsDetector.cpp +++ b/slsDetectorSoftware/src/slsDetector.cpp @@ -317,7 +317,7 @@ void slsDetector::initializeDetectorStructure(detectorType type) { shm()->roi.xmin = -1; shm()->roi.xmax = -1; shm()->adcEnableMask = BIT32_MASK; - shm()->roFlags = NORMAL_READOUT; + shm()->roMode = ANALOG_ONLY; shm()->currentSettings = UNINITIALIZED; shm()->currentThresholdEV = -1; shm()->timerValue[FRAME_NUMBER] = 1; @@ -417,7 +417,6 @@ void slsDetector::initializeDetectorStructure(detectorType type) { shm()->nGappixels.y = parameters.nGappixelsY; // update #nchan, as it depends on #samples, adcmask, - // readoutflags (ctb only) updateNumberOfChannels(); } @@ -573,8 +572,8 @@ void slsDetector::updateNumberOfChannels() { int nachans = 0, ndchans = 0; // analog channels (normal, analog/digital readout) - if (shm()->roFlags == slsDetectorDefs::NORMAL_READOUT || - ((shm()->roFlags & slsDetectorDefs::ANALOG_AND_DIGITAL) != 0)) { + if (shm()->roMode == slsDetectorDefs::ANALOG_ONLY || + shm()->roMode == slsDetectorDefs::ANALOG_AND_DIGITAL) { uint32_t mask = shm()->adcEnableMask; if (mask == BIT32_MASK) { nachans = 32; @@ -589,8 +588,8 @@ void slsDetector::updateNumberOfChannels() { // digital channels (ctb only, digital, analog/digital readout) if (shm()->myDetectorType == CHIPTESTBOARD && - (((shm()->roFlags & DIGITAL_ONLY) != 0) || - ((shm()->roFlags & ANALOG_AND_DIGITAL) != 0))) { + (shm()->roMode == DIGITAL_ONLY || + shm()->roMode == ANALOG_AND_DIGITAL)) { ndchans = 64; FILE_LOG(logDEBUG1) << "#Digital Channels:" << ndchans; } @@ -804,11 +803,10 @@ void slsDetector::updateCachedDetectorVariables() { n += client.Receive(&i64, sizeof(i64)); shm()->timerValue[CYCLES_NUMBER] = i64; - // readout flags - if (shm()->myDetectorType == EIGER || - shm()->myDetectorType == CHIPTESTBOARD) { + // readout mode + if (shm()->myDetectorType == CHIPTESTBOARD) { n += client.Receive(&i32, sizeof(i32)); - shm()->roFlags = static_cast(i32); + shm()->roMode = static_cast(i32); } // roi @@ -841,7 +839,6 @@ void slsDetector::updateCachedDetectorVariables() { setAdditionalJsonParameter("adcmask", std::to_string(u32)); // update #nchan, as it depends on #samples, adcmask, - // readoutflags updateNumberOfChannels(); } @@ -1350,7 +1347,6 @@ int64_t slsDetector::setTimer(timerIndex index, int64_t t) { FILE_LOG(logDEBUG1) << getTimerType(index) << ": " << retval; shm()->timerValue[index] = retval; // update #nchan, as it depends on #samples, adcmask, - // readoutflags if (index == ANALOG_SAMPLES || index == DIGITAL_SAMPLES) { updateNumberOfChannels(); } @@ -1491,27 +1487,80 @@ slsDetector::setExternalSignalFlags(externalSignalFlag pol) { return retval; } -int slsDetector::setReadOutFlags(readOutFlags flag) { - auto arg = static_cast(flag); - readOutFlags retval = GET_READOUT_FLAGS; - FILE_LOG(logDEBUG1) << "Setting readout flags to " << flag; - sendToDetector(F_SET_READOUT_FLAGS, arg, retval); - FILE_LOG(logDEBUG1) << "Readout flag: " << retval; - shm()->roFlags = retval; +void slsDetector::setParallelMode(const bool enable) { + int arg = static_cast(enable); + FILE_LOG(logDEBUG1) << "Setting parallel mode to " << arg; + sendToDetector(F_SET_PARALLEL_MODE, arg, nullptr); +} + +bool slsDetector::getParallelMode() { + int retval = -1; + FILE_LOG(logDEBUG1) << "Getting parallel mode"; + sendToDetector(F_GET_PARALLEL_MODE, nullptr, retval); + FILE_LOG(logDEBUG1) << "Parallel mode: " << retval; + return static_cast(retval); +} + +void slsDetector::setOverFlowMode(const bool enable) { + int arg = static_cast(enable); + FILE_LOG(logDEBUG1) << "Setting overflow mode to " << arg; + sendToDetector(F_SET_OVERFLOW_MODE, arg, nullptr); +} + +bool slsDetector::getOverFlowMode() { + int retval = -1; + FILE_LOG(logDEBUG1) << "Getting overflow mode"; + sendToDetector(F_GET_OVERFLOW_MODE, nullptr, retval); + FILE_LOG(logDEBUG1) << "overflow mode: " << retval; + return static_cast(retval); +} + +void slsDetector::setStoreInRamMode(const bool enable) { + int arg = static_cast(enable); + FILE_LOG(logDEBUG1) << "Setting store in ram mode to " << arg; + sendToDetector(F_SET_STOREINRAM_MODE, arg, nullptr); +} + +bool slsDetector::getStoreInRamMode() { + int retval = -1; + FILE_LOG(logDEBUG1) << "Getting store in ram mode"; + sendToDetector(F_GET_STOREINRAM_MODE, nullptr, retval); + FILE_LOG(logDEBUG1) << "store in ram mode: " << retval; + return static_cast(retval); +} + +void slsDetector::setReadoutMode(const slsDetectorDefs::readoutMode mode) { + uint32_t arg = static_cast(mode); + FILE_LOG(logDEBUG1) << "Setting readout mode to " << arg; + sendToDetector(F_SET_READOUT_MODE, arg, nullptr); + shm()->roMode = mode; // update #nchan, as it depends on #samples, adcmask, - // readoutflags if (shm()->myDetectorType == CHIPTESTBOARD) { updateNumberOfChannels(); } - FILE_LOG(logDEBUG1) << "Setting receiver readout flags to " << arg; if (shm()->useReceiverFlag) { - int fnum = F_RECEIVER_SET_READOUT_FLAGS; - arg = shm()->roFlags; - retval = static_cast(-1); - sendToReceiver(fnum, &arg, sizeof(arg), &retval, sizeof(retval)); - FILE_LOG(logDEBUG1) << "Receiver readout flag: " << retval; + sendToReceiver(F_RECEIVER_SET_READOUT_MODE, mode, nullptr); } - return shm()->roFlags; +} + +slsDetectorDefs::readoutMode slsDetector::getReadoutMode() { + int retval = -1; + FILE_LOG(logDEBUG1) << "Getting readout mode"; + sendToDetector(F_GET_READOUT_MODE, nullptr, retval); + FILE_LOG(logDEBUG1) << "Readout mode: " << retval; + readoutMode oldmode = shm()->roMode; + shm()->roMode = static_cast(retval); + + if (oldmode != shm()->roMode) { + // update #nchan, as it depends on #samples, adcmask, + if (shm()->myDetectorType == CHIPTESTBOARD) { + updateNumberOfChannels(); + } + if (shm()->useReceiverFlag) { + sendToReceiver(F_RECEIVER_SET_READOUT_MODE, shm()->roMode, nullptr); + } + } + return shm()->roMode; } void slsDetector::setInterruptSubframe(const bool enable) { @@ -1731,7 +1780,6 @@ std::string slsDetector::setReceiverHostname(const std::string &receiverIP) { static_cast(shm()->rxPadDeactivatedModules)); enableGapPixels(shm()->gappixels); enableTenGigabitEthernet(shm()->tenGigaEnable); - setReadOutFlags(GET_READOUT_FLAGS); setQuad(getQuad()); break; @@ -1739,7 +1787,7 @@ std::string slsDetector::setReceiverHostname(const std::string &receiverIP) { setTimer(ANALOG_SAMPLES, shm()->timerValue[ANALOG_SAMPLES]); setTimer(DIGITAL_SAMPLES, shm()->timerValue[DIGITAL_SAMPLES]); enableTenGigabitEthernet(shm()->tenGigaEnable); - setReadOutFlags(GET_READOUT_FLAGS); + setReadoutMode(shm()->roMode); setADCEnableMask(shm()->adcEnableMask); setReceiverDbitOffset(shm()->rxDbitOffset); setReceiverDbitList(shm()->rxDbitList); @@ -2276,7 +2324,6 @@ void slsDetector::setADCEnableMask(uint32_t mask) { shm()->adcEnableMask = mask; // update #nchan, as it depends on #samples, adcmask, - // readoutflags updateNumberOfChannels(); // send to processor diff --git a/slsDetectorSoftware/src/slsDetectorCommand.cpp b/slsDetectorSoftware/src/slsDetectorCommand.cpp index 4c42f8b51..f0fb2348a 100755 --- a/slsDetectorSoftware/src/slsDetectorCommand.cpp +++ b/slsDetectorSoftware/src/slsDetectorCommand.cpp @@ -351,9 +351,9 @@ slsDetectorCommand::slsDetectorCommand(multiSlsDetector *det) { */ /*! \page config - - flags [flag] sets/gets the readout flags to mode. Options: none, storeinram, tot, continous, parallel, nonparallel, digital, analog_digital, overflow, nooverflow, unknown. Used for EIGER only. \c Returns \c (string). put takes one string and \c returns concatenation of all active flags separated by spaces. + - romode [b] sets/gets the readout flag. Options: analog, digital, analog_digital. Used for CTB only. \c Returns \c (int) */ - descrToFuncMap[i].m_pFuncName = "flags"; + descrToFuncMap[i].m_pFuncName = "romode"; descrToFuncMap[i].m_pFuncPtr = &slsDetectorCommand::cmdAdvanced; ++i; @@ -691,7 +691,7 @@ slsDetectorCommand::slsDetectorCommand(multiSlsDetector *det) { */ /*! \page config - - clkdivider [i] sets/gets the readout clock divider. EIGER, JUNGFRAU [0(fast speed), 1(half speed), 2(quarter speed)]. Jungfrau, full speed is not implemented and overwrites adcphase to recommended default. Not for Gotthard. \c Returns \c (int) + - clkdivider [i] sets/gets the readout clock divider. EIGER, JUNGFRAU [0(fast speed), 1(half speed), 2(quarter speed)]. Jungfrau also overwrites adcphase to recommended default. For CTB, it is the run clock in MHz. Not for Gotthard. \c Returns \c (int) */ descrToFuncMap[i].m_pFuncName = "clkdivider"; descrToFuncMap[i].m_pFuncPtr = &slsDetectorCommand::cmdSpeed; @@ -4282,8 +4282,14 @@ std::string slsDetectorCommand::cmdSpeed(int narg, const char * const args[], in if (action == PUT_ACTION) { if (sscanf(args[1], "%d", &t)) ; - else + else { + // if parameer is a string (unknown speed will throw) + if (cmd == "clkdivider") { + speedLevel lev = getSpeedLevelType(std::string(args[1])); + t = static_cast(lev); + } return std::string("cannot scan speed value ") + std::string(args[1]); + } } @@ -4325,72 +4331,17 @@ std::string slsDetectorCommand::helpSpeed(int action) { std::string slsDetectorCommand::cmdAdvanced(int narg, const char * const args[], int action, int detPos) { - char answer[1000] = ""; - if (action == HELP_ACTION) return helpAdvanced(action); - if (cmd == "flags") { - - readOutFlags flag = GET_READOUT_FLAGS; - + if (cmd == "romode") { if (action == PUT_ACTION) { - std::string sval = std::string(args[1]); - if (sval == "none") - flag = NORMAL_READOUT; - else if (sval == "storeinram") - flag = STORE_IN_RAM; - else if (sval == "tot") - flag = TOT_MODE; - else if (sval == "continous") - flag = CONTINOUS_RO; - else if (sval == "parallel") - flag = PARALLEL; - else if (sval == "nonparallel") - flag = NONPARALLEL; - else if (sval == "digital") - flag = DIGITAL_ONLY; - else if (sval == "analog_digital") - flag = ANALOG_AND_DIGITAL; - else if (sval == "overflow") - flag = SHOW_OVERFLOW; - else if (sval == "nooverflow") - flag = NOOVERFLOW; - else - return std::string("could not scan flag ") + std::string(args[1]); + myDet->setReadoutMode(getReadoutModeType(std::string(args[1])), detPos); } + return getReadoutModeType(myDet->getReadoutMode()); + } - int retval = myDet->setReadOutFlags(flag, detPos); - - // std::cout << std::hex << flag << " " << retval << std::endl; - - if (retval == NORMAL_READOUT) - return std::string("none"); - - if (retval & STORE_IN_RAM) - strcat(answer, "storeinram "); - if (retval & TOT_MODE) - strcat(answer, "tot "); - if (retval & CONTINOUS_RO) - strcat(answer, "continous "); - if (retval & PARALLEL) - strcat(answer, "parallel "); - if (retval & NONPARALLEL) - strcat(answer, "nonparallel "); - if (retval & DIGITAL_ONLY) - strcat(answer, "digital "); - if (retval & ANALOG_AND_DIGITAL) - strcat(answer, "analog_digital "); - if (retval & SHOW_OVERFLOW) - strcat(answer, "overflow "); - if (retval & NOOVERFLOW) - strcat(answer, "nooverflow "); - if (strlen(answer)) - return std::string(answer); - - return std::string("unknown"); - - } else if (cmd=="interruptsubframe") { + else if (cmd=="interruptsubframe") { if (action==PUT_ACTION) { int ival = -1; if (!sscanf(args[1],"%d",&ival)) @@ -4399,7 +4350,9 @@ std::string slsDetectorCommand::cmdAdvanced(int narg, const char * const args[], } return std::to_string(myDet->getInterruptSubframe()); - } else if (cmd == "readnlines") { + } + + else if (cmd == "readnlines") { if (action == PUT_ACTION) { int ival = -1; if (!sscanf(args[1],"%d",&ival)) @@ -4408,7 +4361,9 @@ std::string slsDetectorCommand::cmdAdvanced(int narg, const char * const args[], } return std::to_string(myDet->getReadNLines()); - } else if (cmd == "extsig") { + } + + else if (cmd == "extsig") { externalSignalFlag flag = GET_EXTERNAL_SIGNAL_FLAG; if (action == PUT_ACTION) { @@ -4419,7 +4374,9 @@ std::string slsDetectorCommand::cmdAdvanced(int narg, const char * const args[], return myDet->externalSignalType(myDet->setExternalSignalFlags(flag, detPos)); - } else if (cmd == "programfpga") { + } + + else if (cmd == "programfpga") { if (action == GET_ACTION) return std::string("cannot get"); if (strstr(args[1], ".pof") == nullptr) @@ -4528,7 +4485,7 @@ std::string slsDetectorCommand::helpAdvanced(int action) { if (action == PUT_ACTION || action == HELP_ACTION) { os << "extsig mode \t sets the mode of the external signal. can be trigger_out_rising_edge, trigger_out_falling_edge. Gotthard only" << std::endl; - os << "flags mode \t sets the readout flags to mode. can be none, storeinram, tot, continous, parallel, nonparallel, digital, analog_digital, overlow, nooverflow, unknown." << std::endl; + os << "romode m \t sets the readout flag to m. Options: analog, digital, analog_digital. Used for CTB only." << std::endl; os << "interruptsubframe flag \t sets the interrupt subframe flag. Setting it to 1 will interrupt the last subframe at the required exposure time. By default, this is disabled and set to 0, ie. it will wait for the last sub frame to finish exposing. Used for EIGER in 32 bit mode only." << std::endl; os << "readnlines f \t sets the number of rows to read out per half module. Options: 1 - 256 (Not all values as it depends on dynamic range and 10GbE enabled). Used for EIGER only. " << std::endl; os << "programfpga f \t programs the fpga with file f (with .pof extension)." << std::endl; @@ -4544,7 +4501,7 @@ std::string slsDetectorCommand::helpAdvanced(int action) { if (action == GET_ACTION || action == HELP_ACTION) { os << "extsig \t gets the mode of the external signal. can be trigger_in_rising_edge, trigger_in_falling_edge. Gotthard only" << std::endl; - os << "flags \t gets the readout flags. can be none, storeinram, tot, continous, parallel, nonparallel, digital, analog_digital, overflow, nooverflow, unknown" << std::endl; + os << "romode \t gets the readout flag. Options: analog, digital, analog_digital. Used for CTB only." << std::endl; os << "interruptsubframe \t gets the interrupt subframe flag. Setting it to 1 will interrupt the last subframe at the required exposure time. By default, this is disabled and set to 0, ie. it will wait for the last sub frame to finish exposing. Used for EIGER in 32 bit mode only." << std::endl; os << "readnlines \t gets the number of rows to read out per half module. Used for EIGER only. " << std::endl; os << "led \t returns led status (0 off, 1 on)" << std::endl; diff --git a/slsDetectorSoftware/src/slsDetectorUsers.cpp b/slsDetectorSoftware/src/slsDetectorUsers.cpp index acab7f2a9..4ce5222e2 100755 --- a/slsDetectorSoftware/src/slsDetectorUsers.cpp +++ b/slsDetectorSoftware/src/slsDetectorUsers.cpp @@ -167,23 +167,22 @@ int slsDetectorUsers::setClockDivider(int value, int detPos) { return detector.setSpeed(slsDetectorDefs::CLOCK_DIVIDER, value, detPos); } -int slsDetectorUsers::setParallelMode(int value, int detPos) { - if(value >= 0) - detector.setReadOutFlags(slsDetectorDefs::readOutFlags(value), detPos); - return detector.setReadOutFlags(slsDetectorDefs::GET_READOUT_FLAGS, detPos); +int slsDetectorUsers::setParallelMode(bool value, int detPos) { + /* to be uncommented when moving to Detector.h + detector.setParallelMode(value, {detPos}); + auto res = detector.getParallelMode({detPos}); + if (res.equal()) + return res.front();*/ + return -1; } -int slsDetectorUsers::setOverflowMode(int value, int detPos) { - if(value >= 0) { - if (value == 1) - detector.setReadOutFlags(slsDetectorDefs::SHOW_OVERFLOW, detPos); - else - detector.setReadOutFlags(slsDetectorDefs::NOOVERFLOW, detPos); - } - int ret = detector.setReadOutFlags(slsDetectorDefs::GET_READOUT_FLAGS, detPos); - if (ret == -1) - return -1; - return ((ret & slsDetectorDefs::SHOW_OVERFLOW) ? 1 : 0); +int slsDetectorUsers::setOverflowMode(bool value, int detPos) { + /* to be uncommented when moving to Detector.h + detector.setOverFlowMode(value, {detPos}); + auto res = detector.getOverFlowMode({detPos}); + if (res.equal()) + return res.front();*/ + return -1; } int slsDetectorUsers::setAllTrimbits(int val, int detPos) { diff --git a/slsReceiverSoftware/include/BinaryFileStatic.h b/slsReceiverSoftware/include/BinaryFileStatic.h index 49f42eae1..0c829c757 100755 --- a/slsReceiverSoftware/include/BinaryFileStatic.h +++ b/slsReceiverSoftware/include/BinaryFileStatic.h @@ -134,7 +134,6 @@ class BinaryFileStatic { "Period (ns) : %lld\n" "Gap Pixels Enable : %d\n" "Quad Enable : %d\n" - "Parallel Flag : %d\n" "Analog Flag : %d\n" "Digital Flag : %d\n" "ADC Mask : %d\n" @@ -174,7 +173,6 @@ class BinaryFileStatic { (long long int)attr.periodNs, attr.gapPixelsEnable, attr.quadEnable, - attr.parallelFlag, attr.analogFlag, attr.digitalFlag, attr.adcmask, diff --git a/slsReceiverSoftware/include/GeneralData.h b/slsReceiverSoftware/include/GeneralData.h index 9a3c4f422..ca7d04898 100755 --- a/slsReceiverSoftware/include/GeneralData.h +++ b/slsReceiverSoftware/include/GeneralData.h @@ -200,7 +200,7 @@ public: * @param f readout flags * @returns analog data bytes */ - virtual int setImageSize(uint32_t a, uint64_t as, uint64_t ds, bool t, slsDetectorDefs::readOutFlags f = slsDetectorDefs::GET_READOUT_FLAGS) { + virtual int setImageSize(uint32_t a, uint64_t as, uint64_t ds, bool t, slsDetectorDefs::readoutMode) { FILE_LOG(logERROR) << "setImageSize is a generic function that should be overloaded by a derived class"; return 0; }; @@ -576,37 +576,36 @@ public: * @param f readout flags * @returns analog data bytes */ - int setImageSize(uint32_t a, uint64_t as, uint64_t ds, bool t, slsDetectorDefs::readOutFlags f = slsDetectorDefs::GET_READOUT_FLAGS) { + int setImageSize(uint32_t a, uint64_t as, uint64_t ds, bool t, slsDetectorDefs::readoutMode f) { int nachans = 0, ndchans = 0; int adatabytes = 0, ddatabytes = 0; - if (f != slsDetectorDefs::GET_READOUT_FLAGS) { - // analog channels (normal, analog/digital readout) - if (f == slsDetectorDefs::NORMAL_READOUT || - f & slsDetectorDefs::ANALOG_AND_DIGITAL) { - if (a == BIT32_MASK) { - nachans = 32; - } else { - for (int ich = 0; ich < 32; ++ich) { - if (a & (1 << ich)) - ++nachans; - } - } - adatabytes = nachans * NUM_BYTES_PER_ANALOG_CHANNEL * as; - FILE_LOG(logDEBUG1) << " Number of Analog Channels:" << nachans - << " Databytes: " << adatabytes; - } - // digital channels - if (f & slsDetectorDefs::DIGITAL_ONLY || - f & slsDetectorDefs::ANALOG_AND_DIGITAL) { - ndchans = NCHAN_DIGITAL; - ddatabytes = (sizeof(uint64_t) * ds); - FILE_LOG(logDEBUG1) << "Number of Digital Channels:" << ndchans - << " Databytes: " << ddatabytes; - } - FILE_LOG(logDEBUG1) << "Total Number of Channels:" << nachans + ndchans - << " Databytes: " << adatabytes + ddatabytes; - } + // analog channels (normal, analog/digital readout) + if (f == slsDetectorDefs::ANALOG_ONLY || + f == slsDetectorDefs::ANALOG_AND_DIGITAL) { + if (a == BIT32_MASK) { + nachans = 32; + } else { + for (int ich = 0; ich < 32; ++ich) { + if (a & (1 << ich)) + ++nachans; + } + } + adatabytes = nachans * NUM_BYTES_PER_ANALOG_CHANNEL * as; + FILE_LOG(logDEBUG1) << " Number of Analog Channels:" << nachans + << " Databytes: " << adatabytes; + } + // digital channels + if (f == slsDetectorDefs::DIGITAL_ONLY || + f == slsDetectorDefs::ANALOG_AND_DIGITAL) { + ndchans = NCHAN_DIGITAL; + ddatabytes = (sizeof(uint64_t) * ds); + FILE_LOG(logDEBUG1) << "Number of Digital Channels:" << ndchans + << " Databytes: " << ddatabytes; + } + FILE_LOG(logDEBUG1) << "Total Number of Channels:" << nachans + ndchans + << " Databytes: " << adatabytes + ddatabytes; + nPixelsX = nachans + ndchans; nPixelsY = 1; // 10G @@ -692,7 +691,7 @@ public: * @param f readout flags * @returns analog data bytes */ - int setImageSize(uint32_t a, uint64_t as, uint64_t ds, bool t, slsDetectorDefs::readOutFlags f = slsDetectorDefs::GET_READOUT_FLAGS) { + int setImageSize(uint32_t a, uint64_t as, uint64_t ds, bool t, slsDetectorDefs::readoutMode) { int nachans = 0; int adatabytes = 0; diff --git a/slsReceiverSoftware/include/HDF5FileStatic.h b/slsReceiverSoftware/include/HDF5FileStatic.h index 7008478d5..3d69e21ed 100755 --- a/slsReceiverSoftware/include/HDF5FileStatic.h +++ b/slsReceiverSoftware/include/HDF5FileStatic.h @@ -407,10 +407,6 @@ public: dataset = group5.createDataSet ( "quad enable", PredType::NATIVE_INT, dataspace ); dataset.write ( &(attr.quadEnable), PredType::NATIVE_INT); - //Parallel Flag - dataset = group5.createDataSet ( "parallel flag", PredType::NATIVE_INT, dataspace ); - dataset.write ( &(attr.gapPixelsEnable), PredType::NATIVE_INT); - //Analog Flag dataset = group5.createDataSet ( "analog flag", PredType::NATIVE_INT, dataspace ); dataset.write ( &(attr.quadEnable), PredType::NATIVE_INT); diff --git a/slsReceiverSoftware/include/receiver_defs.h b/slsReceiverSoftware/include/receiver_defs.h index e4f6b30e4..973c2aa88 100755 --- a/slsReceiverSoftware/include/receiver_defs.h +++ b/slsReceiverSoftware/include/receiver_defs.h @@ -65,7 +65,6 @@ struct masterAttributes { uint64_t periodNs; uint32_t gapPixelsEnable; uint32_t quadEnable; - uint32_t parallelFlag; uint32_t analogFlag; uint32_t digitalFlag; uint32_t adcmask; diff --git a/slsReceiverSoftware/include/slsReceiverImplementation.h b/slsReceiverSoftware/include/slsReceiverImplementation.h index f80bf91ac..186e5458f 100755 --- a/slsReceiverSoftware/include/slsReceiverImplementation.h +++ b/slsReceiverSoftware/include/slsReceiverImplementation.h @@ -88,10 +88,10 @@ class slsReceiverImplementation : private virtual slsDetectorDefs { int getReadNLines() const; /** - * Get readout flags (Eiger, chiptestboard, moench) - * @return readout flags + * Get readout mode (chiptestboard) + * @return readout mode */ - readOutFlags getReadOutFlags() const; + readoutMode getReadoutMode() const; //***file parameters*** /** @@ -417,11 +417,11 @@ class slsReceiverImplementation : private virtual slsDetectorDefs { void setReadNLines(const int value); /** - * Set readout flags (eiger, chiptestboard, moench) - * @param f readout flag + * Set readout mode (chiptestboard) + * @param f readout mode * @return OK or FAIL */ - int setReadOutFlags(const readOutFlags f); + int setReadoutMode(const readoutMode f); //***file parameters*** /** @@ -902,8 +902,8 @@ class slsReceiverImplementation : private virtual slsDetectorDefs { bool quadEnable; /** num lines readout */ int numLinesReadout; - /** readout flags*/ - readOutFlags readoutFlags; + /** readout mode*/ + readoutMode readoutType; //*** receiver parameters *** /** Number of Threads */ diff --git a/slsReceiverSoftware/include/slsReceiverTCPIPInterface.h b/slsReceiverSoftware/include/slsReceiverTCPIPInterface.h index 48d94ddcb..da40e9ca6 100755 --- a/slsReceiverSoftware/include/slsReceiverTCPIPInterface.h +++ b/slsReceiverSoftware/include/slsReceiverTCPIPInterface.h @@ -279,8 +279,8 @@ class slsReceiverTCPIPInterface : private virtual slsDetectorDefs { /** set deactivated receiver padding enable */ int set_deactivated_padding_enable(sls::ServerInterface2 &socket); - /** set readout flags */ - int set_readout_flags(sls::ServerInterface2 &socket); + /** set readout mode */ + int set_readout_mode(sls::ServerInterface2 &socket); /** set adc mask */ int set_adc_mask(sls::ServerInterface2 &socket); diff --git a/slsReceiverSoftware/src/slsReceiverImplementation.cpp b/slsReceiverSoftware/src/slsReceiverImplementation.cpp index 4bf587362..f6d97e141 100755 --- a/slsReceiverSoftware/src/slsReceiverImplementation.cpp +++ b/slsReceiverSoftware/src/slsReceiverImplementation.cpp @@ -71,7 +71,7 @@ void slsReceiverImplementation::InitializeMembers() { gapPixelsEnable = false; quadEnable = false; numLinesReadout = MAX_EIGER_ROWS_PER_READOUT; - readoutFlags = GET_READOUT_FLAGS; + readoutType = ANALOG_ONLY; //*** receiver parameters *** numThreads = 1; @@ -168,10 +168,10 @@ int slsReceiverImplementation::getReadNLines() const { return numLinesReadout; } -slsDetectorDefs::readOutFlags -slsReceiverImplementation::getReadOutFlags() const { +slsDetectorDefs::readoutMode +slsReceiverImplementation::getReadoutMode() const { FILE_LOG(logDEBUG3) << __SHORT_AT__ << " called"; - return readoutFlags; + return readoutType; } /***file parameters***/ @@ -546,48 +546,23 @@ void slsReceiverImplementation::setReadNLines(const int value) { FILE_LOG(logINFO) << "Number of Lines to readout: " << numLinesReadout; } -int slsReceiverImplementation::setReadOutFlags(const readOutFlags f) { - if (readoutFlags != f) { - readoutFlags = f; +int slsReceiverImplementation::setReadoutMode(const readoutMode f) { + if (readoutType != f) { + readoutType = f; // side effects - if (myDetectorType == CHIPTESTBOARD) { - ctbAnalogDataBytes = generalData->setImageSize( - adcEnableMask, numberOfAnalogSamples, numberOfDigitalSamples, - tengigaEnable, readoutFlags); - for (const auto &it : dataProcessor) - it->SetPixelDimension(); - if (SetupFifoStructure() == FAIL) - return FAIL; - } + ctbAnalogDataBytes = generalData->setImageSize( + adcEnableMask, numberOfAnalogSamples, numberOfDigitalSamples, + tengigaEnable, readoutType); + for (const auto &it : dataProcessor) + it->SetPixelDimension(); + if (SetupFifoStructure() == FAIL) + return FAIL; } - std::string flag; - if (f == NORMAL_READOUT) - flag = "normal(analog, no digital)"; - else if (f & STORE_IN_RAM) - flag.append("storeinram "); - if (f & TOT_MODE) - flag.append("tot "); - if (f & CONTINOUS_RO) - flag.append("continous "); - if (f & PARALLEL) - flag.append("parallel "); - if (f & NONPARALLEL) - flag.append("nonparallel "); - if (f & DIGITAL_ONLY) - flag.append("digital "); - if (f & ANALOG_AND_DIGITAL) - flag.append("analog_digital "); - if (f & SHOW_OVERFLOW) - flag.append("overflow "); - if (f & NOOVERFLOW) - flag.append("nooverflow "); - FILE_LOG(logINFO) << "ReadoutFlags: " << flag; - if (myDetectorType == CHIPTESTBOARD) { - FILE_LOG(logINFO) << "Packets per Frame: " + FILE_LOG(logINFO) << "Readout Mode: " << getReadoutModeType(f); + FILE_LOG(logINFO) << "Packets per Frame: " << (generalData->packetsPerFrame); - } return OK; } @@ -874,19 +849,9 @@ int slsReceiverImplementation::setADCEnableMask(uint32_t mask) { if (adcEnableMask != mask) { adcEnableMask = mask; - switch (myDetectorType) { - case MOENCH: - generalData->setImageSize(mask, numberOfAnalogSamples, - numberOfDigitalSamples, tengigaEnable); - break; - case CHIPTESTBOARD: - ctbAnalogDataBytes = generalData->setImageSize( - mask, numberOfAnalogSamples, numberOfDigitalSamples, - tengigaEnable, readoutFlags); - break; - default: - break; - } + ctbAnalogDataBytes = generalData->setImageSize( + mask, numberOfAnalogSamples, numberOfDigitalSamples, + tengigaEnable, readoutType); for (const auto &it : dataProcessor) it->SetPixelDimension(); @@ -1018,14 +983,10 @@ int slsReceiverImplementation::setNumberofAnalogSamples(const uint64_t i) { if (numberOfAnalogSamples != i) { numberOfAnalogSamples = i; - if (myDetectorType == MOENCH) { - generalData->setImageSize(adcEnableMask, numberOfAnalogSamples, - numberOfDigitalSamples, tengigaEnable); - } else if (myDetectorType == CHIPTESTBOARD) { - ctbAnalogDataBytes = generalData->setImageSize( - adcEnableMask, numberOfAnalogSamples, numberOfDigitalSamples, - tengigaEnable, readoutFlags); - } + ctbAnalogDataBytes = generalData->setImageSize( + adcEnableMask, numberOfAnalogSamples, numberOfDigitalSamples, + tengigaEnable, readoutType); + for (const auto &it : dataProcessor) it->SetPixelDimension(); if (SetupFifoStructure() == FAIL) @@ -1041,14 +1002,10 @@ int slsReceiverImplementation::setNumberofDigitalSamples(const uint64_t i) { if (numberOfDigitalSamples != i) { numberOfDigitalSamples = i; - if (myDetectorType == MOENCH) { - generalData->setImageSize(adcEnableMask, numberOfAnalogSamples, - numberOfDigitalSamples, tengigaEnable); - } else if (myDetectorType == CHIPTESTBOARD) { - ctbAnalogDataBytes = generalData->setImageSize( - adcEnableMask, numberOfAnalogSamples, numberOfDigitalSamples, - tengigaEnable, readoutFlags); - } + ctbAnalogDataBytes = generalData->setImageSize( + adcEnableMask, numberOfAnalogSamples, numberOfDigitalSamples, + tengigaEnable, readoutType); + for (const auto &it : dataProcessor) it->SetPixelDimension(); if (SetupFifoStructure() == FAIL) @@ -1087,13 +1044,10 @@ int slsReceiverImplementation::setTenGigaEnable(const bool b) { generalData->SetGapPixelsEnable(gapPixelsEnable, dynamicRange, quadEnable); break; case MOENCH: - generalData->setImageSize(adcEnableMask, numberOfAnalogSamples, - numberOfDigitalSamples, tengigaEnable); - break; case CHIPTESTBOARD: ctbAnalogDataBytes = generalData->setImageSize( adcEnableMask, numberOfAnalogSamples, numberOfDigitalSamples, - tengigaEnable, readoutFlags); + tengigaEnable, readoutType); break; default: break; @@ -1653,9 +1607,8 @@ int slsReceiverImplementation::SetupWriter() { attr.periodNs = acquisitionPeriod; attr.gapPixelsEnable = gapPixelsEnable; attr.quadEnable = quadEnable; - attr.parallelFlag = (readoutFlags & PARALLEL) ? 1 : 0; - attr.analogFlag = (readoutFlags == NORMAL_READOUT || readoutFlags & ANALOG_AND_DIGITAL) ? 1 : 0; - attr.digitalFlag = (readoutFlags & DIGITAL_ONLY || readoutFlags & ANALOG_AND_DIGITAL) ? 1 : 0; + attr.analogFlag = (readoutType == ANALOG_ONLY || readoutType == ANALOG_AND_DIGITAL) ? 1 : 0; + attr.digitalFlag = (readoutType == DIGITAL_ONLY || readoutType == ANALOG_AND_DIGITAL) ? 1 : 0; attr.adcmask = adcEnableMask; attr.dbitoffset = ctbDbitOffset; attr.dbitlist = 0; diff --git a/slsReceiverSoftware/src/slsReceiverTCPIPInterface.cpp b/slsReceiverSoftware/src/slsReceiverTCPIPInterface.cpp index aa86b5b42..125a4e9dd 100755 --- a/slsReceiverSoftware/src/slsReceiverTCPIPInterface.cpp +++ b/slsReceiverSoftware/src/slsReceiverTCPIPInterface.cpp @@ -195,7 +195,7 @@ int slsReceiverTCPIPInterface::function_table(){ flist[F_RECEIVER_DISCARD_POLICY] = &slsReceiverTCPIPInterface::set_discard_policy; flist[F_RECEIVER_PADDING_ENABLE] = &slsReceiverTCPIPInterface::set_padding_enable; flist[F_RECEIVER_DEACTIVATED_PADDING_ENABLE] = &slsReceiverTCPIPInterface::set_deactivated_padding_enable; - flist[F_RECEIVER_SET_READOUT_FLAGS] = &slsReceiverTCPIPInterface::set_readout_flags; + flist[F_RECEIVER_SET_READOUT_MODE] = &slsReceiverTCPIPInterface::set_readout_mode; flist[F_RECEIVER_SET_ADC_MASK] = &slsReceiverTCPIPInterface::set_adc_mask; flist[F_SET_RECEIVER_DBIT_LIST] = &slsReceiverTCPIPInterface::set_dbit_list; flist[F_GET_RECEIVER_DBIT_LIST] = &slsReceiverTCPIPInterface::get_dbit_list; @@ -1230,22 +1230,21 @@ int slsReceiverTCPIPInterface::set_deactivated_padding_enable( return socket.sendResult(retval); } -int slsReceiverTCPIPInterface::set_readout_flags(Interface &socket) { - auto arg = socket.Receive(); +int slsReceiverTCPIPInterface::set_readout_mode(Interface &socket) { + auto arg = socket.Receive(); - if (myDetectorType == JUNGFRAU || myDetectorType == GOTTHARD || - myDetectorType == MOENCH) + if (myDetectorType != CHIPTESTBOARD) functionNotImplemented(); if (arg >= 0) { VerifyIdle(socket); - FILE_LOG(logDEBUG1) << "Setting readout flag: " << arg; - impl()->setReadOutFlags(arg); + FILE_LOG(logDEBUG1) << "Setting readout mode: " << arg; + impl()->setReadoutMode(arg); } - auto retval = impl()->getReadOutFlags(); - validate(static_cast(arg), static_cast(retval & arg), - "set readout flags", HEX); - FILE_LOG(logDEBUG1) << "Readout flags: " << retval; + auto retval = impl()->getReadoutMode(); + validate(static_cast(arg), static_cast(retval), + "set readout mode", DEC); + FILE_LOG(logDEBUG1) << "Readout mode: " << retval; return socket.sendResult(retval); } diff --git a/slsSupportLib/include/sls_detector_defs.h b/slsSupportLib/include/sls_detector_defs.h index 4edc817f5..0492032da 100755 --- a/slsSupportLib/include/sls_detector_defs.h +++ b/slsSupportLib/include/sls_detector_defs.h @@ -499,36 +499,23 @@ format DBIT_PIPELINE, /**< adc pipeline */ MAX_ADC_PHASE_SHIFT, /** max adc phase shift */ MAX_DBIT_PHASE_SHIFT, /** max adc phase shift */ - SYNC_CLOCK, + SYNC_CLOCK }; /** - readout flags - */ - enum readOutFlags { - GET_READOUT_FLAGS = -1, /**< return readout flags */ - NORMAL_READOUT = 0, /**< no flag */ - STORE_IN_RAM = 0x1, /**< data are stored in ram and sent only after end - of acquisition for faster frame rate */ - READ_HITS = 0x2, /**< return only the number of the channel which - counted ate least one */ - ZERO_COMPRESSION = 0x4, /**< returned data are 0-compressed */ - PUMP_PROBE_MODE = 0x8, /**> $API_FILE