From 17ff3173c9154aa9b2a576aff4b2b2db47a8d859 Mon Sep 17 00:00:00 2001 From: Hideki Shimizu Date: Fri, 7 Jan 2022 16:29:24 +0900 Subject: [PATCH] modification to tell babies stop.sh in absolute path --- .stop.sh.swp | Bin 12288 -> 0 bytes bin/cribabies | Bin 42592 -> 42704 bytes json/project-run-summary-e411fb11bcf9.json | 12 +++ obj/cribabies.o | Bin 10824 -> 11992 bytes obj/lib/libbabies.o | Bin 34976 -> 35024 bytes send_all_data.sh | 22 ++++++ send_run_summary.py | 87 +++++++++++++++++++++ src/cribabies.c | 22 +++++- src/lib/libbabies.c | 2 +- stop.sh | 12 ++- 10 files changed, 151 insertions(+), 6 deletions(-) delete mode 100644 .stop.sh.swp create mode 100644 json/project-run-summary-e411fb11bcf9.json create mode 100644 send_all_data.sh create mode 100644 send_run_summary.py diff --git a/.stop.sh.swp b/.stop.sh.swp deleted file mode 100644 index b8edc28c4c23735656ba91363c2ba114b5369cd2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12288 zcmeI&O;6N77zgkN58}m_pcfC4hutQi$#!5Nh=;`h%O*_}l2yFA({7h-DBYzq#u((~ z#N7`8pMon_J^|o&P(A=pOC`h$hQtHOf0BP@Iy;?Cf45B^fBcj8o?p9DB<%^&-j5^w z_UQTUVNBH48` zvM=!^S~4#gmb{P*NghZBCHEyii@i^?{m~!*0SG_<0uX=z1Rwwb2tWV=|3{!~x~#gr z^-$%t=Tdmyw??JrTM|_BD)dBOmY;_~x5v(hg(h8&yrsr6kzChWuJWTq_0uS^NnnDM ztL!wrdgF7$d$-u4Y~}Su9ogsF&vZ4ewPM4SIJNB5=RVHWy{3BQrct}Y-`VOY=1Rg7 zGS*+$cyu#=9y@QgMq5&?n;)ulRX5Mhrj6FaEzauaOFTQvu8MoBRL*8=&X`o>hc896 Ycuq~;-fCr{>a>>G@<{$hzLvuK3(A{+CjbBd diff --git a/bin/cribabies b/bin/cribabies index b16881967d74e8f8057b884eaab596ad5f2c7c3d..1f660f2f0990480d559c24574db840db3d207267 100755 GIT binary patch literal 42704 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­0__ZmZ=YC(`ebAgf22bY~}{hZCL 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 F{BPjK!G-_; literal 42592 zcmeIb3wTu3xjw#g8H`+#phV-9T@5y7pj(~-tv3jZ>=@iGi3hf{4dY{ z`Td@!n_~C*0}DJhn@QmxA@a*v$m6-a$r*5Q8>R%0`) z6D_ZGwsn>@0*D8HUdbUW@ba{1B z(Z}i)Yp7+}0guhEw}UlIuee$Xthm}M2}5_&aJURL<*r0Iw)1~_WoyADy1ry~ z$=2;RRCm{!+)%%I`qaq{HIo|Zo7y`jbR%)IH`J72nY(fMzEv!8jT_@fT?YfG=4Vx@aeBsL#^KK#v@ z_riO>{qtQnAG&eHnU8M$Yvz&XKFkC>?DY$vCk>PHA{sUven}GfQo08N! zDT(~sN#waM4QGehN%S-)>DSUE_-je@A4-DXoJ3D&68WDbX=i>CJ>DeveM$5@m89PH zljwN`da|uttG~4p5<}Mqf}dt}uB{vbk$O|(iSpBscak;Avd4Kv{zm!4en{GrY296> z@YtG;^|mEg*BYp*;UZgTt!u3h2CTL~Q;kK?YFpnH3^ZC=#^2Z;40QPGo9cteu3npf zH#Aq@U{zID2U>zwZFN(yA(meaWzcKXe66{@$*OK{Y6?^bW1!OA-XvPgMxcK6+>&`$ zEMGJa&9ijUU(w#s7FgUKY-tZJ39P9{3tMA(O9Mg4Zk^lQR2xIf*kV&0BC2q_$dW6s zu5w9TO-syOU)>Oh6p^sEU4Tk319 z8|oWGL9qD->IpVCShdJ%vl;`9ZD`2qdKks;uSdIP&h*!|Raap+kjMIJs~eiz=w(5+ zx*6WmSk-`Gx1gY|xh=SQeNz=0)1t)M+ZqCa7OPhG#_#WF3swc8o1OO~-5T^aR>7g# znoNgV0|Cn)sHqB8L2Pwfo00+~ZCcaV+@#C-tp(*}bLRS|6ig|Y7E2dRjU_Ku6DSqC zO7(|{hg3TL$P*o+%wsMu=BQ6qf^y9BXv*}E#E{I8Htto2IPO`^Ka*z6Q0rs+>GdZ{ zZF(P{g8F+g=gofn?mO?nl=oPf$R~Dcef=2jm`~HZDvuWF@&nD4kWzc(36fGDxh<8F zI02tfAG>T9&c2u{--T<{l2z!!xoWUcAM?8KSnNU}p9^Q3%vIsS&Ak)zR=98& zEOu48@R2dpvg%y;C>P%1!biLC4i^ps$F5En?!KAW;=;3H(zsuA;bsh(z0HMl4{fgP zF5JB??{MKK8)49$E}ZvF=IU|bIR*snb>XMD@B=QKdv0^}yYO5Cf*x|=r@8RMF8p*C z?zr$XT=-EJZtmroJ>bI6a>-jaRtiTSIopM2xbX2VJlloaEW3BJkN#CaN+KG=XK%dx#WE={Hrd!!i95BW3Cl0e4+tCD_!{cF1*f#U*N)9T=<19 zyu*c0a^amWyugKTap99)c()5Lbm7}vc##X=?!u?I@EtDvA{V~Xg->bIiQX#qhE_{Yd{*Viw>B0}Y@L4Y0ap8P+V6LMs{89sg4!H1Q7jEf&CH?<0 z7oOq5XS?uh7w&c8xh}lKh1)KCjtkFs;d5QMuj{=GU)b~emA2*E)Eo3TE3s<$x*p5e zuY?At?L*e!gvaoiHQtL9`8sAs4-ev+u!}sGplHAF50U566YUlLXXLr$M0X1RWAa>T zqT7Z4K6x%N(Qe`IBG08I+9~|E$kSZW7U921o=ZuzQuv$5a|wx72;WMcOGnfz{MX2H z$%qyTznVOkil{C8wdA=(M6-ooLY_-Q)DnInc`gajqhA7;Fo!&sg6Lu4XOSOEzF+t$ z!=F_-MEACy{4pk9G<_k~~9tv_<$-@(ktCO5s1f z7Cb|Ev_klg$e&K$EBw3U&mdnY{F~$%s-w2>FOz48j%EvgkUT?k)Dr$F@(jt*qhGN9 z`^ekm4-3DGJVS7_U-*Z}GxSD#h5s3OhTP~*;eSk?p*Ff*`0tZvh>dm&e;0X%)@Y~j z-y+YD8f_8&o8%cvqm{znM4lluS|NNZd4|rYSNN}yXUL2e3cs2>LuJ$!{#x=3kkpQ^@xUe?EDJyy#Bh&mqrH7u_!W z>Es#WqTRxuM4q87+9~`<@(gLw7U5ILGn7Ruh5z&#@C;$m3gJH@Ka0Fq_;<-)LcUP= zH_0LKs}2HXq0 zXwaF7X;<`qS?Jm8eW5pfU2h$&SXS28+YJd{-(FitUuQ1lIo_Yt7G#azh~`)b&!v{t z^AhU1$~TG6BYa&0nZD55>r$`V-$MZg_)o5jFl+E|*7#0hJ>-o1-hnj8`$GGCd*7Yy zOX>GLJJ628yC~?}bP$Dop(j-NH+A{W;`J+R%W5BsfqvV$1rBoE6P{W?DIf3Wdg1FT z?pO+e;MuVzjJqmgHKBE(w+H*Li+&wNvc_A{HbvjpQW|$ckbsD?sfhEdpWxhNsjC^{c*mI=56Y2&r+lJAk-ZB4(t0kgLrq=rh{yS z=L~crXGE{%e1_B>E~o5!w(~SBWmuT{zrZ>JXHobB2tVT%ww)ikg>9#s!oQ=iP0c@Y z3s*P~!Im-270$oYwEsroTxt$dnB%}^c%2DYu$@liIxEq=h~S1<+o7um)Ey8alfHW5hlbeZmez78>%>OLD*`dw`|!pJ{%{T)$qPX#I} z>RsyF@ScN|FZ36u7o~k$m*rLXLhmT^6<`cE^C&Rk^fIf#Og4DEOBMh@bgFZ6h@ z+!yK#y}ak<#S-Ih!1($?A3En!*@nlcJ9G#kSjRJ}{&d}V&_BGEJ!`9-fB z*@fQ4&4(4H3uuY%h2xRE|?q1AEi%W!Uk z@rw>(l*Weo)x3x;B73-V5A``4(cn$JyD;EZ@a4!$sKvPw)fXM4e5fC4)%+~MfPGrj zTNe7;o+A({S#}jiECXvDyL&x~NZZN$l{Vmz?9bZxp!9Kf9z6={%^rSd>~yoc=)(c_ zWvj~Ev;1mQ{Z6cCaBb2164$FA=f+{t)|yRF@P_kiDf@a!C_OLosT#i-H&`GtbHT5DMKU%I=6 zy$QYJe8_2kuxr2yo`1`^T~3NG^k?7JhK=d)knkm9Szp)wbSIx}oq44Fh?o}@vV5o? zPFULw;~8x~f;OGW;G*i|;133`UAjwI?qgr*OB7MeUz|N3!QR>EEbaYER)Zzq7JG%B zpqc&)0!2#1xl`r0zlBPupofFK^5gwO&VqI`{$@oEW<`!Y+JK#cb1zJ2{9<%u2C8yG z)Ok>Q5(h=*=8?z6^T-zs9_cadhrZmLIi<2T6wDiq3XA=wsPiP-%L$lE zdyD*KB2Se@yf7yI{ULGKqwB*Hy9TGP%NWf2Vg)+i-RJr83L9_BV2-K&_Np1z=XnSC zY~V-Uqy76lFM=OM{#C_40Unz}>&VlJe;9lg`Q3`YAN)k}4=DZ~@RP{jtN6{}x$Qr4 zyW-b^zXW`g>tW1a`aIVIFD70Eoc+amzXX_5gpT!j<|2uVK@|tO5syB0ZiDBA(il4| z;TM3fC7|s!B0Od^iqWhYpc0AHh=dS&oVve?Iu4+WN7f@K@X8`p;3ZJkkk_I_rZe4? z=-#?`Q2g+@!(E4O4S61idel1PlHq9&0SXs)LrwJC=s`k!3s1XC@>`hy2dGWRUt07E zOpqNeUM%eh=8bYfM+XNxZ_XQK1xJQ+mZ9{fgY6kGM>f`l{o&&Cbc09l!D?^)D#a;- zJe>~l^N*2itSZiJA7T~%z0^eehCU5XqkY1~@0P>Pl&5u%bSZn}ho1F?KJslX%{!A8 zd;&5hkJ9%_dgvcMgfQnSRmYhqmmk-E@z>(JP-b3HZ_$%-^RxwK2p8WngvplHxl!OX zE?DN+wE|bL)*e1)p^`m(KI3>LXS%C^OtOgrj|bdWnwJ4VYgax#`qJ~5mb&H@J&EQ> zC!B>Jur)_7x2;_)E>=S~a-$nC8r@ls{5@R!95SO1z0duD>d!s^N|1}1^B1Z>qNsP% zLA6%WmpWM;?Hk$7UFmA5lT@E)9fpWL>|92(c~*eM;H(N4H!(Gswdoru87^KWTzkM5 zE^bGXfz;z%f@Xw^qv+kH!S=b~;y?XFXC!9@g!3ZXmbSsgZ226>Ud5-Tv(PKGgWCbJ~QA=?3ZZ zEWszQ2@u9j^0*f|gOw62z7k4b=&Sb3S7oX}!ebsK6Hb4eGNJN{^l;8%;+_(Gru2t| zhCP$P!IPFM<4vHU&YBBM@g8_Ewywc!>?}sp?@hc``>YWVCyMfjoFT3{k($M@&luVV zWpX2pV6l(;{Jp`!l@ZRAXbO_uksB5M)({>&;)+ik&v4E$j6d!#$L{eg^jeXiD)LJd z@nODWs3M)LtP|D%@I3;X2{bF9lfdl+u2+Dcz?}pZDPTT| zVxB~HD4hNhhxaR-{u0Ao^JQuHtQ+Ypue9exez_O}ItuMo4%^Abg^Smg+178_ednlT z^?5Eu0bcaql4V5)OG2MWZ?Sd#LdJwv%XW&;M6t~cxIgge@J7=~%yZ7c2qOk$Z45z` zuexHKFYL|b?mXQWE_6zfD;6say`xOF_nC~)8{B@RVry8-px&a4b0PZ0wFMi={oRoP z)!$F3eF%@O-x1#ubn->yhTeb~&*JE~#Ne+VL~Mv4Z$lK3=HC<7J9aI6RxunCJsC|i zz;-jU9+~#C4|C#k`mTfJ9Ub>v3Z#8{RwO5a#2#ivI#_!?6zfX&N4BZT?skSS&XA%f zRkYvEAk?Sqe;6|1;&&FiN(AeRe zZy+CQ!N#q$eb$~g!o}a#YR^RIdySz_w;;@*IonFUwIfxW5CH$(gg>CNlF%L#N--Q9g zoPj`=l2-Sm57qV6Cz6L&_7s4jpR%aTT8Tpd)=2jnL6^pkeS7D#R}+>@~t&_Hg44NTDUPym*@vOr)NW~JoJ~3eLqJ) z_~l5@aPgV*Y|B}Po-tBnZ7EJ?@dxsHAzE~7mql%OxG%A6+1j6WX5&6v?~5YKn12QGi+W*W z84?(H4~G`KGY&aD3?{yfp zcmUOeM@U0LC%`;!qHJ76&jN@(hETyc5c#3>A5h%5j)9dif_q@^K2LCtjm`jw8_UE# znz3v(^$m@sACMZ$X&5&>mJ6X(LhV?LUv#Q&PuMdO_;F?wH<6pVlaE(#0g8SMqj5cd zmi@Wq&DcFi&6fZdOyS$F~+aQq8-j!He!Q3oXpzvEOH|@8{wz$ zKCnaaC~^tgag4@QQz`a@NzWsPG50(c451+QFY?5x8-0d7yqs8B8?U76c{YFx=Zwdv zZ|kbO?3w$r7VRr~zjSM53heSIgBgNs$oZUcY|Ju<$tI{Y^p~wAvo}4NRknBUzzAP; zf9Sy8f$@8t(^K|#{b}~Zy}r;<-*bn}9SjE&?voP{=0{&gQrX+N9HSO}27IKBL-xQMGBUKcY}l5{<4m*EfVxQQh&No9THlWg1-E!S8%7cM@s1vW=xvOH?J0*!5V$(^n-Ssk_92#tN>lKbd& zRj(|LTJCj)InyB@TO2#l7i$k!_((A~pS{ikWOJE>pKM)#tsWm?6n_b+tlK_;y(HdY z*;Enu@9>{cPU&T~Rl8x|$EAIq5R!wqYC}0&kd)h}z7tqUWG^gU8!B!FEL%l`=6XXF!{z2j_tR{;kTYC&dso3)+3&)0Br5~7~RQwWYD<{Peiz3&Js0`LJ+rsvX}fXRDrZS zp!g-yD)op-^?9DY6m7!gdhCVixjQB5( z!}lOBC31j{J{GkU^&a_&(qq9DA1aUL!P@TqWS?ixB{mgeJ==j4JG0+)KiB8EL+7J) zFmKrNP4Gj{yThKf;IVrchxJfP;+ZB=)D+HHfmGOY1wQ*cx%gy^TMzRsSbQ@#^!uj+CnZ z5K>{!Gx+TDY{MsaNuivB!as&jZZ)O;{{$2A`~;s}`$mRxwj+W1zaeDIk4ci$zZQ9T zgCgW^V6G0U=M&az5sBI&rj(rD{~#O)kB5q4_EhlwBKBBJY%|1^s(X=x8`ML*-(*M%dlo_p8z7JK zEN-8}o;Eh3I;T{~n0k;t&v<sW{Z~r;AA?2xj|mwQ1?ltr5TCmKTix|{j#c%4SC!cf5+1`k+_hq; z)~Wn^Ny1}p1nKkKhEHBb)Q3lVqr;v$!0!1I_M8s{_8AfVCGKOpi}?M6tNrjCc>>^> zEMlBSleFeOd>8+*ng#b+5AA%s}<cQH|&`MdP^l-U{Icvo{Q#<2ZY&uAxNL+*mPS; z82?a1^EpsRo(Pffm}U|DTTIaPOx5!tP|S>&{*#aVo4UV$6B(?3AE?wnoAvje1Fb&< zg!&%<>GQ0`C$ISWZx)f95J-3o>*({e#{}K=Hv?7mEBz;#`d1@E`VV?b3)&Z9{oZr2 zU;P|IaRy*CB_9L>^?9G?gK4H6TK(vXu+*swyo-Dk_&bOy@OEMWnJRApRqavroy_7# z?oiHl4>D!Wo`pvUVNVy>u7Q-Sjd!5`T?46E8~+7~uxE|I?@@TL3VT{$sJ;e7Y#lQf zw%?&tbZ8-R!a0vo%s5>|I`AnjBy6EIaJN~+;7mjD-1!}%3j$nA^x zn=|Tj@Krn!3a*C&B^P9_Qg!QZ`#g&v#tWTQ z-UGo?U!DCcA(!Z~9Nn}LL@{2z;?{0Ahi@{nMBuJ$~t@}Eh_4}H4# z-SH_eg>!y`jAsW^J`Lsk9I0^5f8aCarBLyYK=$VQ1?B$k{hSpB4{i8t5MF)Db}l}=MUUAB@nA#WjBHo}6KS-w z8zuP$!)Td_c%KQcznUKHL={`dJ;>>yI`$!&7ut_$@GvXqo+pD-;n2!w2k3Z{Sq6?rew6-0!huz?FiRLvWCWw^`GV3gP^TCb1CcR za~^m7%7XHK4faD@BU4}=d4Ythm6%AGbTJBV{q0m^XJ_z|R$s107NmBWu-s6-{Fv8lo#flm7Wtl8vFT6%ea&sx> z8OqqLG9Z+Y@$Zt6Yf3oZ0k3SIxSvI1D5ZzaRcR%P@VPyDXJKtj?;03?>qXj5PTQyA zYUzj!TX%nlds`csrY`233#^V8$= zPaVofeAyZ)M7Da-M&|iQ=iyfn6(hmCk&zi!%M+&;p2h>Ib1b&9G;btEnBFit^dW=x zdIarhbXCC0Cb(21}Ngg^rb6RTg@oWLf#v2|al>UWwm2iF9fC#JBOv z(B3c7pgP0({ZpuV)BC}*&3aWHdbd1utQ0y1$GwWT`%?H~-@B+IL%k?ia(#*4eZThc zerY7%FOr{FrN}J}456=i{Jr>+KtnTr^1qb7sK#%)@tHqymc6zy;BS`S+WTAhyZfP> zn!xJzHARqbZn4_x?1IT{NENizS*xp7*9Y3{dGoKZM5ex}wt1G#-)QGgv~O&$4;BoA zONGN{KMQ}u;kW$lEwE*rzB5){G^Nqj7Jxh+Z8ijI3INY+#KUCy{r`3L zavH!^9kkm5_{qMFAMsZ;tqIJsIi4+Su(DnOIw*b7JjQXo-PYW&Hed(q>Q#5#?bO4p zeSn-@+ul?itZ!~Ijfv|&I#OTNP=C`&{3F19Ds6!2M=%kEl#)oQff4mP9R za8xu3^{7Ed_)oP`I=NYs`v`niAjv;KsWy20S@=uE(v^Zgi+?j#*H6O12D9vnvQoRY zz5zqgX5$=%wxB(sZKSo%nowh{UM&)HtD3$Vw0Qyo8aKHOM;%NC-dqboYtkfq+LI=Y z#DNPnD<{-khb}+}74R~3C=EPMVW>LRGIFFnk0&(P%%Vktbpg93u(rNBAmuC1^~TXH z3H-JMen$eISpNSszURN`&w>9Y|Nm`&4<+b#5_l^wetbG~{^BKeP4l`Y%vy=3)jS~t z$EfHj%-B>_3&u8we3X^Uy5z-on8}Yv#w~4 z@$@&D6joCkDAI_}Dq2}OE?9EDhEYJri&ZlV6K{##)Eu<+`7D8&#LU(}u)VcOCTCnh zC~qoe?Ji}l?M*gL-GGvU$vU32Rx1H45wmR9L};z%th1E=!%$UnkPMp9$jKe2b>33{ z(s|4La~EGRziffKI%F(Jma$}B`QnmNf9aCt2_=?Xb%lTFvXUjs67VaQCd*Oy;)BEUi%XWwyJqoKLnw^7)PLnwWr>>6a6inPAXr+qG!boTW;CH)Mp}jTr4ke`wWmy* zX2EbAq{gZn5QnQ<5Rv8l7l{rMX8;y7-hfZ$7(gWPjAsG|1ag#0Wn50 zpE=}pIG3nqz0m_N)t5_8OI2%CBj=_Zjl|g}ZmI-ba!cUpGVKC27uu__HgR}(&=Kb> zR`jMI(E0{dg{vIfpsM<4 z+pX3>jlDWh+uRy3a-2|7-c^tEGr*44wl+8FPR6{9$Me`cPzRl;t%Xoq{Y?Rx?1_5L z$Aw_mjsuU3Y;Ai(gH7C8QRo%66H_xQF8O^|V!7D&#fOddZfI6TZpt--p1A5SW z&>f&NKzl*!Ko5a#13e0Q05k(HYz%bwE4F<2|8n&;y`5iGv;>{%1U^BoE5(?6%;Yvs};}poO4yZ^Qn?L3u(+ z243RpBoDd`G#9VF?gSkG?Por|Y�t0h*l&y`Y7l`R}4#pmm^?pgTZ2m=D?wnsEg7 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 literal 10824 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 delta 1195 zcmZ9LUr5tY6vuz}SHdiFu77v8Nz)M8FQ~M_VL?A9Mn+cpP%rr)AyJ}kYYF1hrknGj zVCxh_1zAKOLAibqVMz3c5(=6RMNkhL^oK=|P`yZG=bl~Z$1dFOJ)H07oO^$FyVnZlmJhNvF3}(;jO$z$45xk6xC^SdO;Q=k8}tZ!-kNVb7Mu#YLw# zD)aw|!dlFxteoi3t>$X8%u3hREVJ&_m6ugI8IrA)HTv}xm5zPZ3uCx~IU&%vS)_z) zqG_SxqIE9UwAC8o5NqTjw4s=8Qf^SWQ;d8q|h3yF>ha8H*W3u0%qTIYqvK7?K|$gZhQ^JJtRoT_DxL73Qo0 z^2m4~fbk}Zw?a6~g{gi*c_&A3F5P@P+(7aeX&3Q5q`jmO>N8C7i0s48QGAK?Dx}YF zc8k;^a+>l_iF{4*Thb52d?NixRO>mGy9Nb`?uOY!v@I>Z*L| zNy;meGX$AYeqc(u9VPD48|f*@*Q;kSRFV&YE6znqxf3OB76S1f>^(Fj{Cai|^d|PQ z8kkI&ED8luW6Ug{-H4~caT&s6e%1|>V> ./log + +RIDF_FILES=`ls $DATADIR/*.ridf` + +for RIDF_FILE in $RIDF_FILES +do + +INFO=`./bin/prinfo $RIDF_FILE` +SCR=`./bin/printncscr 2 $RIDF_FILE` + +python3 send_run_summary.py $INFO $SCR + +done +#sh /home/daq/scripts/rsync2cribana.sh + diff --git a/send_run_summary.py b/send_run_summary.py new file mode 100644 index 0000000..83e46c8 --- /dev/null +++ b/send_run_summary.py @@ -0,0 +1,87 @@ +import sys +import re +import gspread +import json +from oauth2client.service_account import ServiceAccountCredentials + +def connect_gspread(jsonf,key): + scope = ['https://spreadsheets.google.com/feeds','https://www.googleapis.com/auth/drive'] + credentials = ServiceAccountCredentials.from_json_keyfile_name(jsonf, scope) + gc = gspread.authorize(credentials) + SPREADSHEET_KEY = key + worksheet = gc.open_by_key(SPREADSHEET_KEY).sheet1 + return worksheet + +jsonf = "json/project-run-summary-e411fb11bcf9.json" +spread_sheet_key = "1jIoGg3r5ZYtU9enfzA5iV45d7WRtI2jc94a0XOy9Ayc" +ws = connect_gspread(jsonf,spread_sheet_key) + + +args = sys.argv + +#print(args) +#for i, arg in enumerate(args) : +# print(i," : ",arg) + +run_name = args[4] +run_number = args[8] + +start = args[12] +stop = args[16] +date = args[19] +header = "" +header_i, header_f = 0,0 +ender = "" +ender_i, ender_f = 0,0 + +scaler = [] + +for i, arg in enumerate(args) : + if arg == "Header" : + header_i = i + 2 + if arg == "Ender" : + header_f = i + ender_i = i + 2 + if re.match('SCR(\d+)', arg ) : + scaler.append(args[i+1]) + if ender_f == 0 : + ender_f = i + + +#print(header_i, header_f) +#print(ender_i, ender_f) + +header = args[header_i:header_f] +ender = args[ender_i:ender_f] + +print("RUN NAME = ", run_name) +print("RUN NUMBER = ", run_number) +print("Start : ", start) +print("Stop : ", stop) +print("Date : ", date) +print("HEADER : ", ' '.join(header)) +print("ENDER : ", ' '.join(ender)) +print("Scaler: ", scaler) + +run_number_int = int(run_number) + +ds = ws.range('B'+str(run_number_int*9-3)+':R'+str(run_number_int*9+4)) +# 7 * 17 = 119 +ds[0].value = run_name +ds[1].value = run_number +ds[2].value = date +ds[3].value = start +ds[4].value = stop +ds[5].value = ' '.join(header) +ds[6].value = ' '.join(ender) + +for i in range(34) : + l = 8+int(i/5.0)*17+i%5*2 + m = i%5*7+int(i/5.0) + if m < 32 : + ds[l].value = scaler[m] +# for i in range(32) : +# ds[65+int(i/7.0)*8+i].value = scaler[i] + +ws.update_cells(ds) + diff --git a/src/cribabies.c b/src/cribabies.c index 564a361..cfebc98 100644 --- a/src/cribabies.c +++ b/src/cribabies.c @@ -22,6 +22,7 @@ int efn = 0; int mode = STAT_RUN_IDLE; unsigned int scrbuff[32] = {0}; char pidpath[] = "/home/daq/run/babies"; +char runend_script[300]; // address of VME board const unsigned int scraddr = 0x38000000; @@ -62,6 +63,19 @@ void start(void){ v7XX_intlevel(qdcaddr, intlevel); */ + sprintf(runend_script,"/home/daq/exp/%s/cribabies/stop.sh", getenv("EXP_NAME")); + printf("cribabies: Run-end script is at %s",runend_script); + + FILE *scrtest; + if ((scrtest = fopen(runend_script,"r"))!=NULL) + { + printf(" (Exists).\n"); + fclose(scrtest); + } else { + printf(" (Does ***NOT*** exist).\n"); + } + printf("cribabies: Warning; the script does not run for nssta-stop\n"); + printf("debuginfo: start() clearing modules.\n"); v7XX_clear(adc0addr); @@ -120,6 +134,7 @@ void start(void){ void stop(void){ + char cmd[310]; vme_v2718_output_pulse(output2); madc32_stop_acq(madc1addr); @@ -131,7 +146,9 @@ void stop(void){ printf("Stop\n"); if ( mode == STAT_RUN_START ) { - system("sh ./stop.sh"); + sprintf(cmd,"sh %s",runend_script); + printf("Executing: %s\n",cmd); + system(cmd); } } @@ -254,7 +271,10 @@ void evtloop(void){ // int wcount=v1190_get_word_count(mhtdcaddr); //printf("V1190 #Words: %d\n", wcount); + v1190_dmasegdata(mhtdcaddr, 256); + //v1190_segdata(mhtdcaddr); + babies_end_segment(); // End of event diff --git a/src/lib/libbabies.c b/src/lib/libbabies.c index e967f2f..cce684f 100644 --- a/src/lib/libbabies.c +++ b/src/lib/libbabies.c @@ -237,7 +237,7 @@ void babies_flush(void){ d = dbuff; pthread_mutex_unlock(&dbuffmutex); while(d > 1){ - DB(printf("libbabies: **** double buffer full ****\n")); + DB(printf("libbabies: **** double buffer full **** dbuff=%d\n",d)); DB(sleep(1)); pthread_mutex_lock(&dbuffmutex); d = dbuff; diff --git a/stop.sh b/stop.sh index 820d9be..c6f7752 100644 --- a/stop.sh +++ b/stop.sh @@ -2,18 +2,22 @@ DATADIR=/data/si26a - +BASEDIR=$(dirname $0) #time=$(date) #echo "cribabies ${time} stop" >> ./log +#echo ${BASEDIR} +cd $BASEDIR +echo $PWD RIDF_FILE=`ls -lrt $DATADIR/*.ridf | tail -n 1 | awk '{print $9}'` INFO=`./bin/prinfo $RIDF_FILE` SCR=`./bin/printncscr 2 $RIDF_FILE` -echo $INFO -echo $SCR +python3 ./send_run_summary.py $INFO $SCR + -#sh /home/daq/scripts/rsync2cribana.sh +rsync -auv /data/si26a/ cribana:/data/si26a +rsync -auv /data/si26a/ intra:WWW/si26a/data -- GitLab