From d87f1483112dd05cdbf5ca44219108dd1daa6cd9 Mon Sep 17 00:00:00 2001 From: carulla_m_ Date: Fri, 20 Feb 2026 17:26:06 +0100 Subject: [PATCH] CS_scan_multi_ROB.sh, Current source scan for all the JFCalib ROB simultanously at half speed. CS_scan_multi_ROB_bothspeeds.sh, Current source scan for all the JFCalib ROB simultanously at half and full speed. --- CS_scan_multi_ROB.sh | 292 ++++++++++++++++++++ CS_scan_multi_ROB_bothspeeds.sh | 461 ++++++++++++++++++++++++++++++++ 2 files changed, 753 insertions(+) create mode 100644 CS_scan_multi_ROB.sh create mode 100644 CS_scan_multi_ROB_bothspeeds.sh diff --git a/CS_scan_multi_ROB.sh b/CS_scan_multi_ROB.sh new file mode 100644 index 0000000..990e4c4 --- /dev/null +++ b/CS_scan_multi_ROB.sh @@ -0,0 +1,292 @@ +#!/bin/bash + +# to run do: bash CS_scan.sh + +# prerequisites: +# - setup_env.sh souced +# - the hostname is set +# - detector is on +# - fileneame script has been sourced +# - source pccalib.sh [pc] (pc-jungfrau-01/pc-jungfrau-02/pc-jungfrau-test) +# last file should have exactly 4194368000 byte in it. + + + +KILLRCV0="killall ju_udp_receiver_3threads_2_0_jfcalib0" +KILLRCV1="killall ju_udp_receiver_3threads_2_0_jfcalib1" +KILLRCV2="killall ju_udp_receiver_3threads_2_0_jfcalib2" +KILLRCV3="killall ju_udp_receiver_3threads_2_0_jfcalib3" +KILLRCV4="killall ju_udp_receiver_3threads_2_0_jfcalib4" +KILLRCV5="killall ju_udp_receiver_3threads_2_0_jfcalib5" + +$KILLRCV0 +sleep 1 +$KILLRCV1 +sleep 1 +$KILLRCV2 +sleep 1 +$KILLRCV3 +sleep 1 +$KILLRCV4 +sleep 1 +$KILLRCV5 +sleep 1 + +if [[ "$0" == *"CS_scan_multi_ROB.sh"* ]]; then + echo "script changes env. variables: should be invoked with source, not sh " + exit + +fi + +if [ ! -v $6 ]; then + echo $0 + echo "printing filenames for all modules " $1 $2 $3 $4 $5 $6 + + source Multi_filename_creator.sh $1 $2 $3 $4 $5 $6 + + sls_detector_put stop #just in case + sls_detector_put powerchip 1 + + + + sls_detector_put frames 640 + sls_detector_put period 0.005 + sls_detector_put exptime 0.000010 + sls_detector_put highvoltage 200 + + # configure for receiver on pc-jungfrau-01/pc-jungfrau-02/pc-jungfrau-test + # source pccalib.sh [pc] (pc-jungfrau-01/pc-jungfrau-02/pc-jungfrau-test) + sls_detector_put 0:udp_dstport 32411 + sls_detector_put 1:udp_dstport 32412 + sls_detector_put 2:udp_dstport 32413 + sls_detector_put 3:udp_dstport 32414 + sls_detector_put 4:udp_dstport 32415 + sls_detector_put 5:udp_dstport 32416 + + sls_detector_put udp_dstip $DSTIP #10.1.4.105 + sls_detector_put udp_dstmac $DSTMAC #3C:FD:FE:A2:14:D8 + sls_detector_put 0:udp_srcip 10.1.1.9 #10.1.4.9 + sls_detector_put 1:udp_srcip 10.1.1.10 + sls_detector_put 2:udp_srcip 10.1.1.11 + sls_detector_put 3:udp_srcip 10.1.1.12 + sls_detector_put 4:udp_srcip 10.1.1.13 + sls_detector_put 5:udp_srcip 10.1.1.14 + sls_detector_put 0:udp_srcmac 00:ab:be:cc:dd:e2 + sls_detector_put 1:udp_srcmac 00:ab:6b:03:5a:d5 + sls_detector_put 2:udp_srcmac 00:ab:d9:ee:bc:bd + sls_detector_put 3:udp_srcmac 00:ab:1d:4f:bd:6a + sls_detector_put 4:udp_srcmac 00:ab:d3:ae:0f:1f + sls_detector_put 5:udp_srcmac 00:ab:f2:a5:c0:a2 + + sls_detector_put readoutspeed half_speed + #sls_detector_put readoutspeed full_speed + #sls_detector_put dbitphase 125 + sls_detector_put 0:txdelay_frame 0 + sls_detector_put 1:txdelay_frame 0 + sls_detector_put 2:txdelay_frame 1 + sls_detector_put 3:txdelay_frame 1 + sls_detector_put 4:txdelay_frame 2 + sls_detector_put 5:txdelay_frame 2 + sls_detector_put 0:master 1 + sls_detector_put sync 1 + sls_detector_get master + sls_detector_get status + + + sleep 3 + sls_detector_put currentsource 0 + sleep 2 + sls_detector_put frames 10000 + sleep 2 + sls_detector_put start + sleep 60 + sls_detector_put stop + sleep 1 + sls_detector_get status + sls_detector_put frames 640 + + $TKCSG0_0 & + sleep 3 + $TKCSG0_1 & + sleep 3 + $TKCSG0_2 & + sleep 3 + $TKCSG0_3 & + sleep 3 + $TKCSG0_4 & + sleep 3 + $TKCSG0_5 & + sleep 3 + + echo "recording G0 pede" + sls_detector_acquire + sleep 1 + + + echo "recording G1 pede" + sls_detector_put gainmode forceswitchg1 + sleep 2 + sls_detector_acquire + sleep 1 + + + echo "recording G2 pede" + sls_detector_put gainmode forceswitchg2 + sleep 2 + sls_detector_acquire + sleep 1 + + + sls_detector_put gainmode dynamic + sleep 1 + + + # turn on current source + # bit 16 high bit 17 low = automatic cal col sweep + # bit 16 high bit 17 high = cal col selected with bits 26-20 + sls_detector_put currentsource 1 nofix 0 + sleep 5 + + + # loop 1 + for tint in {50..450..50} # 25 is too small here, 50 min + do + tint_sec=$(printf %.9f $(echo "$tint/1000000000" | bc -l)) + echo "setting integration time to (s) " $tint_sec + sls_detector_put exptime $tint_sec + sleep 2 + sls_detector_acquire + sleep 1 + done + + + # loop 2a + for tint in {50..100..5} + do + tint_sec=$(printf %.8f $(echo "$tint/100000000" | bc -l)) + echo "setting integration time to (s) " $tint_sec + sls_detector_put exptime $tint_sec + sleep 2 + sls_detector_acquire + sleep 1 + done + + + # loop 2b + for tint in {110..200..10} + do + tint_sec=$(printf %.8f $(echo "$tint/100000000" | bc -l)) + echo "setting integration time to (s) " $tint_sec + sls_detector_put exptime $tint_sec + sleep 2 + sls_detector_acquire + sleep 1 + done + + + # loop 2c + for tint in {225..450..25} + do + tint_sec=$(printf %.8f $(echo "$tint/100000000" | bc -l)) + echo "setting integration time to (s) " $tint_sec + sls_detector_put exptime $tint_sec + sleep 2 + sls_detector_acquire + sleep 1 + done + + + # loop 3a + for tint in {50..100..5} + do + tint_sec=$(printf %.7f $(echo "$tint/10000000" | bc -l)) + echo "setting integration time to (s) " $tint_sec + sls_detector_put exptime $tint_sec + sleep 2 + sls_detector_acquire + sleep 1 + done + + + # loop 3b + for tint in {110..200..10} + do + tint_sec=$(printf %.7f $(echo "$tint/10000000" | bc -l)) + sleep 1 + echo "setting integration time to (s) " $tint_sec + sls_detector_put exptime $tint_sec + sleep 2 + sls_detector_acquire + sleep 1 + done + + + # loop 3c + for tint in {225..450..25} + do + tint_sec=$(printf %.7f $(echo "$tint/10000000" | bc -l)) + echo "setting integration time to (s) " $tint_sec + sls_detector_put exptime $tint_sec + sleep 2 + sls_detector_acquire + sleep 1 + done + + + # loop 4a + for tint in {50..100..5} + do + tint_sec=$(printf %.7f $(echo "$tint/1000000" | bc -l)) + echo "setting integration time to (s) " $tint_sec + sls_detector_put exptime $tint_sec + sleep 2 + sls_detector_acquire + sleep 1 + done + + + # loop 4b + for tint in {110..250..10} + do + tint_sec=$(printf %.7f $(echo "$tint/1000000" | bc -l)) + echo "setting integration time to (s) " $tint_sec + sls_detector_put exptime $tint_sec + sleep 2 + sls_detector_put acquire + sleep 1 + done + + + echo "Finished scan at halfspeed" + sls_detector_put exptime 0.000010 + sleep 1 + + $KILLRCV0 + sleep 1 + $KILLRCV1 + sleep 1 + $KILLRCV2 + sleep 1 + $KILLRCV3 + sleep 1 + $KILLRCV4 + sleep 1 + $KILLRCV5 + sleep 1 + + sls_detector_put period 0.002 + sleep 2 + sls_detector_put frames 1000000 + sleep 2 + sls_detector_put currentsource 0 + sleep 2 + sls_detector_put highvoltage 0 + sleep 2 + sls_detector_put powerchip 0 + echo "Script finished" + sleep 4 + +else + echo "Specify module number for each jfcalib board after firt argument" + echo "Script finished" +fi diff --git a/CS_scan_multi_ROB_bothspeeds.sh b/CS_scan_multi_ROB_bothspeeds.sh new file mode 100644 index 0000000..578a558 --- /dev/null +++ b/CS_scan_multi_ROB_bothspeeds.sh @@ -0,0 +1,461 @@ +#!/bin/bash + +# to run do: bash CS_scan.sh + +# prerequisites: +# - setup_env.sh souced +# - the hostname is set +# - detector is on +# - fileneame script has been sourced +# - source pccalib.sh [pc] (pc-jungfrau-01/pc-jungfrau-02/pc-jungfrau-test) +# last file should have exactly 4194368000 byte in it. + + + +KILLRCV0="killall ju_udp_receiver_3threads_2_0_jfcalib0" +KILLRCV1="killall ju_udp_receiver_3threads_2_0_jfcalib1" +KILLRCV2="killall ju_udp_receiver_3threads_2_0_jfcalib2" +KILLRCV3="killall ju_udp_receiver_3threads_2_0_jfcalib3" +KILLRCV4="killall ju_udp_receiver_3threads_2_0_jfcalib4" +KILLRCV5="killall ju_udp_receiver_3threads_2_0_jfcalib5" + +$KILLRCV0 +sleep 1 +$KILLRCV1 +sleep 1 +$KILLRCV2 +sleep 1 +$KILLRCV3 +sleep 1 +$KILLRCV4 +sleep 1 +$KILLRCV5 +sleep 1 + +if [[ "$0" == *"CS_scan_multi_ROB.sh"* ]]; then + echo "script changes env. variables: should be invoked with source, not sh " + exit + +fi + +if [ ! -v $6 ]; then + echo $0 + echo "printing filenames for all modules " $1 $2 $3 $4 $5 $6 + + source Multi_filename_creator.sh $1 $2 $3 $4 $5 $6 + + sls_detector_put stop #just in case + sls_detector_put powerchip 1 + + + + sls_detector_put frames 640 + sls_detector_put period 0.005 + sls_detector_put exptime 0.000010 + sls_detector_put highvoltage 200 + + # configure for receiver on pc-jungfrau-01/pc-jungfrau-02/pc-jungfrau-test + # source pccalib.sh [pc] (pc-jungfrau-01/pc-jungfrau-02/pc-jungfrau-test) + sls_detector_put 0:udp_dstport 32411 + sls_detector_put 1:udp_dstport 32412 + sls_detector_put 2:udp_dstport 32413 + sls_detector_put 3:udp_dstport 32414 + sls_detector_put 4:udp_dstport 32415 + sls_detector_put 5:udp_dstport 32416 + + sls_detector_put udp_dstip $DSTIP #10.1.4.105 + sls_detector_put udp_dstmac $DSTMAC #3C:FD:FE:A2:14:D8 + sls_detector_put 0:udp_srcip 10.1.1.9 #10.1.4.9 + sls_detector_put 1:udp_srcip 10.1.1.10 + sls_detector_put 2:udp_srcip 10.1.1.11 + sls_detector_put 3:udp_srcip 10.1.1.12 + sls_detector_put 4:udp_srcip 10.1.1.13 + sls_detector_put 5:udp_srcip 10.1.1.14 + sls_detector_put 0:udp_srcmac 00:ab:be:cc:dd:e2 + sls_detector_put 1:udp_srcmac 00:ab:6b:03:5a:d5 + sls_detector_put 2:udp_srcmac 00:ab:d9:ee:bc:bd + sls_detector_put 3:udp_srcmac 00:ab:1d:4f:bd:6a + sls_detector_put 4:udp_srcmac 00:ab:d3:ae:0f:1f + sls_detector_put 5:udp_srcmac 00:ab:f2:a5:c0:a2 + + sls_detector_put readoutspeed half_speed + #sls_detector_put readoutspeed full_speed + #sls_detector_put dbitphase 125 + sls_detector_put 0:txdelay_frame 0 + sls_detector_put 1:txdelay_frame 0 + sls_detector_put 2:txdelay_frame 1 + sls_detector_put 3:txdelay_frame 1 + sls_detector_put 4:txdelay_frame 2 + sls_detector_put 5:txdelay_frame 2 + sls_detector_put 0:master 1 + sls_detector_put sync 1 + sls_detector_get master + sls_detector_get status + + + sleep 3 + sls_detector_put currentsource 0 + sleep 2 + sls_detector_put frames 10000 + sleep 2 + sls_detector_put start + sleep 60 + sls_detector_put stop + sleep 1 + sls_detector_get status + sls_detector_put frames 640 + + $TKCSG0_0 & + sleep 3 + $TKCSG0_1 & + sleep 3 + $TKCSG0_2 & + sleep 3 + $TKCSG0_3 & + sleep 3 + $TKCSG0_4 & + sleep 3 + $TKCSG0_5 & + sleep 3 + + echo "recording G0 pede" + sls_detector_acquire + sleep 1 + + + echo "recording G1 pede" + sls_detector_put gainmode forceswitchg1 + sleep 2 + sls_detector_acquire + sleep 1 + + + echo "recording G2 pede" + sls_detector_put gainmode forceswitchg2 + sleep 2 + sls_detector_acquire + sleep 1 + + + sls_detector_put gainmode dynamic + sleep 1 + + + # turn on current source + # bit 16 high bit 17 low = automatic cal col sweep + # bit 16 high bit 17 high = cal col selected with bits 26-20 + sls_detector_put currentsource 1 nofix 0 + sleep 5 + + + # loop 1 + for tint in {50..450..50} # 25 is too small here, 50 min + do + tint_sec=$(printf %.9f $(echo "$tint/1000000000" | bc -l)) + echo "setting integration time to (s) " $tint_sec + sls_detector_put exptime $tint_sec + sleep 2 + sls_detector_acquire + sleep 1 + done + + + # loop 2a + for tint in {50..100..5} + do + tint_sec=$(printf %.8f $(echo "$tint/100000000" | bc -l)) + echo "setting integration time to (s) " $tint_sec + sls_detector_put exptime $tint_sec + sleep 2 + sls_detector_acquire + sleep 1 + done + + + # loop 2b + for tint in {110..200..10} + do + tint_sec=$(printf %.8f $(echo "$tint/100000000" | bc -l)) + echo "setting integration time to (s) " $tint_sec + sls_detector_put exptime $tint_sec + sleep 2 + sls_detector_acquire + sleep 1 + done + + + # loop 2c + for tint in {225..450..25} + do + tint_sec=$(printf %.8f $(echo "$tint/100000000" | bc -l)) + echo "setting integration time to (s) " $tint_sec + sls_detector_put exptime $tint_sec + sleep 2 + sls_detector_acquire + sleep 1 + done + + + # loop 3a + for tint in {50..100..5} + do + tint_sec=$(printf %.7f $(echo "$tint/10000000" | bc -l)) + echo "setting integration time to (s) " $tint_sec + sls_detector_put exptime $tint_sec + sleep 2 + sls_detector_acquire + sleep 1 + done + + + # loop 3b + for tint in {110..200..10} + do + tint_sec=$(printf %.7f $(echo "$tint/10000000" | bc -l)) + sleep 1 + echo "setting integration time to (s) " $tint_sec + sls_detector_put exptime $tint_sec + sleep 2 + sls_detector_acquire + sleep 1 + done + + + # loop 3c + for tint in {225..450..25} + do + tint_sec=$(printf %.7f $(echo "$tint/10000000" | bc -l)) + echo "setting integration time to (s) " $tint_sec + sls_detector_put exptime $tint_sec + sleep 2 + sls_detector_acquire + sleep 1 + done + + + # loop 4a + for tint in {50..100..5} + do + tint_sec=$(printf %.7f $(echo "$tint/1000000" | bc -l)) + echo "setting integration time to (s) " $tint_sec + sls_detector_put exptime $tint_sec + sleep 2 + sls_detector_acquire + sleep 1 + done + + + # loop 4b + for tint in {110..250..10} + do + tint_sec=$(printf %.7f $(echo "$tint/1000000" | bc -l)) + echo "setting integration time to (s) " $tint_sec + sls_detector_put exptime $tint_sec + sleep 2 + sls_detector_put acquire + sleep 1 + done + + + echo "Finished scan at halfspeed" + sls_detector_put exptime 0.000010 + sleep 1 + + $KILLRCV0 + sleep 1 + $KILLRCV1 + sleep 1 + $KILLRCV2 + sleep 1 + $KILLRCV3 + sleep 1 + $KILLRCV4 + sleep 1 + $KILLRCV5 + sleep 1 + + # source filename creator to save data in fullspeed folder + + source Multi_filename_creator.sh $1"_fullspeed" $2"_fullspeed" $3"_fullspeed" $4"_fullspeed" $5"_fullspeed" $6"_fullspeed" + + sls_detector_put readoutspeed full_speed + sleep 2 + + sls_detector_put currentsource 0 + sleep 2 + + $TKCSG0_0 & + sleep 3 + $TKCSG0_1 & + sleep 3 + $TKCSG0_2 & + sleep 3 + $TKCSG0_3 & + sleep 3 + $TKCSG0_4 & + sleep 3 + $TKCSG0_5 & + sleep 3 + + echo "recording G0 pede" + sls_detector_acquire + sleep 1 + + + echo "recording G1 pede" + sls_detector_put gainmode forceswitchg1 + sleep 2 + sls_detector_acquire + sleep 1 + + + echo "recording G2 pede" + sls_detector_put gainmode forceswitchg2 + sleep 2 + sls_detector_acquire + sleep 1 + + sls_detector_put gainmode dynamic + sleep 2 + + # turn on current source + # bit 16 high bit 17 low = automatic cal col sweep + # bit 16 high bit 17 high = cal col selected with bits 26-20 + sls_detector_put currentsource 1 nofix 0 + + sleep 2 + + + # loop 1 + for tint in {50..450..50} # 25 is too small here, 50 min + do + tint_sec=$(printf %.9f $(echo "$tint/1000000000" | bc -l)) + echo "setting integration time to (s) " $tint_sec + sls_detector_put exptime $tint_sec + sleep 2 + sls_detector_acquire + sleep 1 + done + + + # loop 2a + for tint in {50..100..5} + do + tint_sec=$(printf %.8f $(echo "$tint/100000000" | bc -l)) + echo "setting integration time to (s) " $tint_sec + sls_detector_put exptime $tint_sec + sleep 2 + sls_detector_acquire + sleep 1 + done + + + # loop 2b + for tint in {110..200..10} + do + tint_sec=$(printf %.8f $(echo "$tint/100000000" | bc -l)) + echo "setting integration time to (s) " $tint_sec + sls_detector_put exptime $tint_sec + sleep 2 + sls_detector_acquire + sleep 1 + done + + + # loop 2c + for tint in {225..450..25} + do + tint_sec=$(printf %.8f $(echo "$tint/100000000" | bc -l)) + echo "setting integration time to (s) " $tint_sec + sls_detector_put exptime $tint_sec + sleep 2 + sls_detector_acquire + sleep 1 + done + + + # loop 3a + for tint in {50..100..5} + do + tint_sec=$(printf %.7f $(echo "$tint/10000000" | bc -l)) + echo "setting integration time to (s) " $tint_sec + sls_detector_put exptime $tint_sec + sleep 2 + sls_detector_acquire + sleep 1 + done + + + # loop 3b + for tint in {110..200..10} + do + tint_sec=$(printf %.7f $(echo "$tint/10000000" | bc -l)) + echo "setting integration time to (s) " $tint_sec + sls_detector_put exptime $tint_sec + sleep 2 + sls_detector_acquire + sleep 1 + done + + + # loop 3c + for tint in {225..450..25} + do + tint_sec=$(printf %.7f $(echo "$tint/10000000" | bc -l)) + echo "setting integration time to (s) " $tint_sec + sls_detector_put exptime $tint_sec + sleep 2 + sls_detector_acquire + sleep 1 + done + + + # loop 4a + for tint in {50..100..5} + do + tint_sec=$(printf %.7f $(echo "$tint/1000000" | bc -l)) + echo "setting integration time to (s) " $tint_sec + sls_detector_put exptime $tint_sec + sleep 2 + sls_detector_acquire + sleep 1 + done + + + # loop 4b + for tint in {110..250..10} + do + tint_sec=$(printf %.7f $(echo "$tint/1000000" | bc -l)) + echo "setting integration time to (s) " $tint_sec + sls_detector_put exptime $tint_sec + sleep 2 + sls_detector_acquire + sleep 1 + done + + + + echo "Finished scan at fullspeed" + sls_detector_put exptime 0.000010 + sleep 2 + sls_detector_put period 0.002 + sleep 2 + sls_detector_put frames 1000000 + sleep 2 + sls_detector_put currentsource 0 + sleep 2 + sls_detector_put highvoltage 0 + echo "Script finished" + sleep 4 + $KILLRCV0 + $KILLRCV1 + $KILLRCV2 + $KILLRCV3 + $KILLRCV4 + $KILLRCV5 + + +else + echo "Specify module number for each jfcalib board after firt argument" + echo "Script finished" +fi