#!/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. KILLRCV="killall ju_udp_receiver_3threads_2_0" $KILLRCV if [[ "$0" == *"CS_scan_both_speeds.sh"* ]]; then echo "script changes env. variables: should be invoked with source, not sh " exit fi if [ ! -v $1 ]; then echo $0 echo "printing filenames for module " $1 source filename_creator.sh $1 N 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 udp_dstport 32410 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 udp_srcip $SRCIP #10.1.4.9 sls_detector_put udp_srcmac 00:ab:be:cc:dd:e2 sls_detector_put readoutspeed half_speed #sls_detector_put readoutspeed full_speed #sls_detector_put dbitphase 125 sleep 3 sls_detector_put frames 10000 sls_detector_put start sleep 70 sls_detector_put stop sls_detector_put frames 640 $TKCSG0 & sleep 3 echo "recording G0 pede" sls_detector_put start sleep 4 echo "recording G1 pede" sls_detector_put gainmode forceswitchg1 sls_detector_put start sleep 4 echo "recording G2 pede" sls_detector_put gainmode forceswitchg2 sls_detector_put start sleep 4 sls_detector_put gainmode dynamic # 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 1 # 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 sls_detector_put start sleep 4 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 sls_detector_put start sleep 4 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 sls_detector_put start sleep 4 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 sls_detector_put start sleep 4 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 sls_detector_put start sleep 4 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 sls_detector_put start sleep 4 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 sls_detector_put start sleep 4 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 sls_detector_put start sleep 4 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 sls_detector_put start sleep 4 done echo "Finished scan at halfspeed" sls_detector_put exptime 0.000010 sleep 4 $KILLRCV # source filename creator to save data in fullspeed folder source filename_creator.sh $1"_fullspeed" N sls_detector_put readoutspeed full_speed sleep 2 sls_detector_put currentsource 0 sleep 2 $TKCSG0 & sleep 3 echo "recording G0 pede" sls_detector_put start sleep 4 echo "recording G1 pede" sls_detector_put gainmode forceswitchg1 sls_detector_put start sleep 4 echo "recording G2 pede" sls_detector_put gainmode forceswitchg2 sls_detector_put start sleep 4 sls_detector_put gainmode dynamic # 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 1 # 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 sls_detector_put start sleep 4 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 sls_detector_put start sleep 4 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 sls_detector_put start sleep 4 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 sls_detector_put start sleep 4 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 sls_detector_put start sleep 4 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 sls_detector_put start sleep 4 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 sls_detector_put start sleep 4 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 sls_detector_put start sleep 4 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 sls_detector_put start sleep 4 done echo "Finished scan at fullspeed" sls_detector_put exptime 0.000010 sls_detector_put period 0.002 sls_detector_put frames 1000000 sls_detector_put currentsource 0 sls_detector_put highvoltage 0 echo "Script finished" sleep 4 $KILLRCV else echo "Specify module number as a first argument" echo "Script finished" fi