diff --git a/.stop.sh.swp b/.stop.sh.swp deleted file mode 100644 index b8edc28c4c23735656ba91363c2ba114b5369cd2..0000000000000000000000000000000000000000 Binary files a/.stop.sh.swp and /dev/null differ diff --git a/bin/cribabies b/bin/cribabies index b16881967d74e8f8057b884eaab596ad5f2c7c3d..1f660f2f0990480d559c24574db840db3d207267 100755 Binary files a/bin/cribabies and b/bin/cribabies differ diff --git a/json/project-run-summary-e411fb11bcf9.json b/json/project-run-summary-e411fb11bcf9.json new file mode 100644 index 0000000000000000000000000000000000000000..af780dea4f0cc5a26f63b635f7be4c163745a334 --- /dev/null +++ b/json/project-run-summary-e411fb11bcf9.json @@ -0,0 +1,12 @@ +{ + "type": "service_account", + "project_id": "project-run-summary", + "private_key_id": "e411fb11bcf961b7ae9b966bf94a8e96fb307c3c", + "private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQC1OopnHQHxmruU\nGfSz2rJ8kQWkrEMRNQSWZ+JquyV0pZYAieS3Rs9V/mcdf9sZ+on03h8qw a+IJgAq\n7rs1Tydvxby6dTPDaorJzcMrNljYFeRQxn8HJ6j/a4JbR97UQEhJcNfjXDUX+vK3\naJPHxck+ln3k0EBMw9166hUAhj2QaD9SS7CgU2updVqAqGsuxDyBCM7vyl2Qfqx9\n9w2hHAkvsGvFbjl21VH4Q+sUfAml3 XJmj3ELAsEWe20UmANEZ/lIDSfejaeDm3B2\n/x1UKxSOUS/2jbCk9obDrMWz8W7sobzkeGS9yHp5NVPNdB31l/k3Jb+pb+77bf0o\nD9QZIkk5AgMBAAECggEAL5Lyiib/P6FS5In7xsr+V9zqElR2NqooTiNvOH1wU7K0\nM egA9mvMOdLS1tedeLBgTruQivTVU3RGTv7kfhYNUDYkWP4zXHU3gcpWFZ3qrK7y\nhJHW/tXWc1aRncy8HhPR5hWNVs350hW6aZM2WBb/wUJYQhy5BG3WUlHouX6D4shJ\nwiKp60IMcp5t9VYQJzHx65b5PtivTR64BqHDnOH 6sq1sm738ASo0KwHBgIRVMCbj\nRuczvnTf0I/j5+niQsjI2KjXbKctn57xH43Ybw3zk0H6hX7lf5K9rPrd35/H2srC\na+iLCjz7MUMLXkDT7CCgqP1msmR8tvkbWUP+8M5mUQKBgQDhit5RNKN0K38TL8bQ\nYjBWD2rj8Aa ocT3LVsxk/h/eE8Ju/+AsxU+gr0hgfMW8m1qSKcj/KWBZP41qSA7s\n60CcB753tJG1DhSLhjnPVVBkQFIWjvE+mzNiFdiII0wFSaz/wUDrHPBdaugJ13wx\nKR15BfwkpW6Cm/jooihwmmZzGwKBgQDNs7gwm8fmCt1zIH2HF DW4pjhc1fO1gwpI\nGrM541z0snTfaRSC6jaCe8jw4B82Dwig0iLXdYj00tPBVChGEv4fJjZIhAAy4PQ5\nL2b2yKeUnAFk4p645BT3VAD1NbufKs28BsfyxZGAEMS8/uTJT1trRq2v+FoBAUSY\ncicStotmOwKBgG7rAmZhQ rlQ4s+mwVmd0DOipWivlDamakNjzmUkbLukcAxyneam\nqoBVc3ywH/afWC1li0mhKZb6oCtSgLSXBVE2pb7s+HNYF1Z+jlOem0iSMUySw6WM\nYfqsz64z3aEEGKY2fhyiQLtQZgjhBlyO4cWw4c2L5gspdYHCrayi4htdAoG AcStn\nMpcCK3Xez/AYH7DmvWf1ql2rbzlg9rp50GdeROHJmwBc4Imq467mpl8nzL4IqTHz\nKUboyokTJ1H9tk/Mr6Z+RvcYhOVud+e0ZiGO0RvjSHXFjUMupcP5ou6lArSx67hv\nWQmJO0P+eVxi0r5uNV71P9MK8XKZIqX rCUiU+PECgYA+Td8uy9vZjW2VOEHrehgH\nfg1MpwaE7jo+CxMC+d7d4tOvSpI3lPz/dMhltF1DKQg+72GW7j7aHvh4JT2qoNBf\n6Yo2sZjkX8PZ4mOb7hHXS8l7AMM/jIOxk66puhWlalrRkxkVQDFZUndb7T8UltkY\netE 1TeY48d/jOwbh9RffzA==\n-----END PRIVATE KEY-----\n", + "client_email": "run-summary@project-run-summary.iam.gserviceaccount.com", + "client_id": "105056464669762860561", + "auth_uri": "https://accounts.google.com/o/oauth2/auth", + "token_uri": "https://oauth2.googleapis.com/token", + "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", + "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/run-summary%40project-run-summary.iam.gserviceaccount.com" +} diff --git a/obj/cribabies.o b/obj/cribabies.o index 637e6311b7a3ceacf901c87e140ce478a86705df..ce20d4538cf2bdff942468750f6b4ab7c4ff9407 100644 Binary files a/obj/cribabies.o and b/obj/cribabies.o differ diff --git a/obj/lib/libbabies.o b/obj/lib/libbabies.o index e76f2c18bb5ef093edc37bb977764fa81a54ca1d..e1c1e93159608a62f4ffb57f4b7c7bda489ea3b5 100644 Binary files a/obj/lib/libbabies.o and b/obj/lib/libbabies.o differ diff --git a/send_all_data.sh b/send_all_data.sh new file mode 100644 index 0000000000000000000000000000000000000000..f9aa27c06b8fefc3bcc1a09b2d9abbfd3eedbf63 --- /dev/null +++ b/send_all_data.sh @@ -0,0 +1,22 @@ +#!/bin/bash + + +DATADIR=/data/si26a + + +#time=$(date) +#echo "cribabies ${time} stop" >> ./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 0000000000000000000000000000000000000000..83e46c855f2b5e1728cab6c55693de52f40f2b6f --- /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 564a36152d06f6e53cce4d066f851a34147f1db0..cfebc9878e992a21060cf74f1877e164baa3c952 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 e967f2f368f46138f98426bb285c2cedce3d8e51..cce684f086965ec9d2084fbc3e628c75894ae51c 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 820d9be22a6b1e8e5d164a6e585667175788d022..c6f77523cbe7867505bd431619ab0666029a51d0 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