From 9b07df68415f5ca1adf722fe308d0d4e14d116c9 Mon Sep 17 00:00:00 2001 From: mozzanica Date: Wed, 24 Mar 2021 14:12:34 +0100 Subject: [PATCH] changes on Cufluo_expose_script,filename_creator and bugfix in receiver (was crashing in case of two gettimeofday() call returning the same value --- BP_scan.sh | 79 +++++++++++------- BP_scan_JF11.sh | 53 +++++++----- CS_scan.sh | 23 ++--- CS_scan_JF11.sh | 2 + CuFluo_exposure.sh | 6 +- CuFluo_exposure_JF11.sh | 4 +- filename_creator.sh | 12 +-- run_JFCalibration.txt | 44 ++++++++++ slsDetector_bin/ju_udp_receiver_3threads_2_0 | Bin 18360 -> 35 bytes .../ju_udp_receiver_3threads_new_header.c | 24 ++++-- 10 files changed, 169 insertions(+), 78 deletions(-) mode change 100755 => 120000 slsDetector_bin/ju_udp_receiver_3threads_2_0 diff --git a/BP_scan.sh b/BP_scan.sh index 82a794d..c2ede11 100644 --- a/BP_scan.sh +++ b/BP_scan.sh @@ -9,6 +9,18 @@ # - waveform generator is on # - amplifier board is powered and unconnected. +# connect to pc8830 (or any RH7 machine connected to the pulser and, after klog, run the command +# nc -k -n -v -l -p 5555 -e /bin/bash + + + +KILLRCV="killall ju_udp_receiver_3threads_2_0" +$KILLRCV + + +sls_detector_put stop #just in case + + sls_detector_put powerchip 1 @@ -17,7 +29,7 @@ sls_detector_put cycles 1 sls_detector_put frames 100 sls_detector_put period 0.005 sls_detector_put exptime 0.000040 -sls_detector_put vhighvoltage 0 +sls_detector_put highvoltage 0 # configure for receiver on mpc2012 @@ -30,49 +42,54 @@ sls_detector_put detectormac 00:ab:be:cc:dd:e2 sls_detector_put speed 1 +CLI=/afs/psi.ch/project/sls_det_software/serial_control_software/minidelay/minidelay # prepare the AGILENT 33250A -/afs/psi.ch/project/sls_det_software/serial_control_software/minidelay/minidelay OUTP OFF +echo $CLI" OUTP OFF " | nc pc8830 5555 + sleep 0.2 # pulse -/afs/psi.ch/project/sls_det_software/serial_control_software/minidelay/minidelay FUNC PULS +echo $CLI" FUNC PULS" | nc pc8830 5555 sleep 0.2 # frequency 1kHz -/afs/psi.ch/project/sls_det_software/serial_control_software/minidelay/minidelay FREQ 1000 +echo $CLI" FREQ 1000" | nc pc8830 5555 sleep 0.2 # width 40 us -/afs/psi.ch/project/sls_det_software/serial_control_software/minidelay/minidelay PULS:WIDT 0.000040 +echo $CLI" PULS:WIDT 0.000040" | nc pc8830 5555 sleep 0.2 -# amplitude 0.1 V -/afs/psi.ch/project/sls_det_software/serial_control_software/minidelay/minidelay VOLT 0.1 +# amplitude 0.1 V" | nc pc8830 5555 +echo $CLI" VOLT 0.1" | nc pc8830 5555 sleep 0.2 # offset 0 V -/afs/psi.ch/project/sls_det_software/serial_control_software/minidelay/minidelay VOLT:OFFS 0 +echo $CLI" VOLT:OFFS 0" | nc pc8830 5555 sleep 0.2 # edge 50 ns -/afs/psi.ch/project/sls_det_software/serial_control_software/minidelay/minidelay PULS:TRAN 0.000000050 +echo $CLI" PULS:TRAN 0.000000050" | nc pc8830 5555 sleep 0.2 # triggered burst -/afs/psi.ch/project/sls_det_software/serial_control_software/minidelay/minidelay BURS:MODE TRIG +echo $CLI" BURS:MODE TRIG" | nc pc8830 5555 sleep 0.2 # cycles 1 -/afs/psi.ch/project/sls_det_software/serial_control_software/minidelay/minidelay BURS:NCYC 1 +echo $CLI" BURS:NCYC 1" | nc pc8830 5555 sleep 0.2 # external trigger source -/afs/psi.ch/project/sls_det_software/serial_control_software/minidelay/minidelay TRIG:SOUR EXT +echo $CLI" TRIG:SOUR EXT" | nc pc8830 5555 sleep 0.2 # delay 1 us -/afs/psi.ch/project/sls_det_software/serial_control_software/minidelay/minidelay TRIG:DEL 0.000001 +echo $CLI" TRIG:DEL 0.000001" | nc pc8830 5555 sleep 0.2 # slope positive -/afs/psi.ch/project/sls_det_software/serial_control_software/minidelay/minidelay TRIG:SLOP POS +echo $CLI" TRIG:SLOP POS" | nc pc8830 5555 sleep 0.2 # turn on burst mode -/afs/psi.ch/project/sls_det_software/serial_control_software/minidelay/minidelay BURS:STAT ON +echo $CLI" BURS:STAT ON" | nc pc8830 5555 sleep 0.2 +if [ "$1" == 'Y' ]; then +echo "started with Y argument, skipping manual checks" +else echo "It is now safe to connect the cable between the amplifier board and the readout board" echo "Please do so and press any key to continue, or press q to exit this script" read -n 1 -s input @@ -80,13 +97,20 @@ if [[ $input = "q" ]]; then echo "Exiting script" exit 1 fi +fi + # high voltage -sls_detector_put vhighvoltage 200 +sls_detector_put highvoltage 200 # output on -/afs/psi.ch/project/sls_det_software/serial_control_software/minidelay/minidelay OUTP ON +echo $CLI" OUTP ON" | nc pc8830 5555 sleep 0.2 + +if [ "$1" == 'Y' ]; then +echo "started with Y argument, skipping manual checks" +else + echo "The current on the amplifier board should be ~0.035 A" echo "Please check and press any key to continue, or press q to exit this script" read -n 1 -s input @@ -94,22 +118,19 @@ if [[ $input = "q" ]]; then echo "Exiting script" exit 1 fi - -echo "The receiver should be waiting for data" -echo "Please check and press any key to continue, or press q to exit this script" -read -n 1 -s input -if [[ $input = "q" ]]; then - echo "Exiting script" - exit 1 fi + +$TKBPG0 & + + # the scan for ivpulse in {10..1000..10} do vpulse=$(printf %.3f $(echo "$ivpulse/1000" | bc -l)) -/afs/psi.ch/project/sls_det_software/serial_control_software/minidelay/minidelay VOLT $vpulse +echo $CLI" VOLT "$vpulse | nc pc8830 5555 sleep 1 sls_detector_put start sleep 1 @@ -118,7 +139,7 @@ done for ivpulse in {1050..7000..50} do vpulse=$(printf %.3f $(echo "$ivpulse/1000" | bc -l)) -/afs/psi.ch/project/sls_det_software/serial_control_software/minidelay/minidelay VOLT $vpulse +echo $CLI" VOLT "$vpulse | nc pc8830 5555 sleep 1 sls_detector_put start sleep 1 @@ -126,9 +147,11 @@ done # high voltage -sls_detector_put vhighvoltage 0 +sls_detector_put highvoltage 0 # output off -/afs/psi.ch/project/sls_det_software/serial_control_software/minidelay/minidelay OUTP OFF +echo $CLI" OUTP OFF " | nc pc8830 5555 + +$KILLRCV echo "Finished scan, please wait for capacitor to discharge" sleep 20 diff --git a/BP_scan_JF11.sh b/BP_scan_JF11.sh index 7343d9d..e016908 100644 --- a/BP_scan_JF11.sh +++ b/BP_scan_JF11.sh @@ -10,6 +10,13 @@ # - waveform generator is on # - amplifier board is powered and unconnected. +# connect to pc8830 (or any RH7 machine connected to the pulser and, after klog, run the command +# nc -k -n -v -l -p 5555 -e /bin/bash + + + + + if [ "$1" == "" ] || [ $# -gt 1 ]; then echo "Parameter 1 is empty specify G0 for normal, HG0 for HG0G1G2" return 0 @@ -21,7 +28,7 @@ sleep 3 sls_detector_put setbit 0x5d 7 sls_detector_put powerchip 1 - +CLI=/afs/psi.ch/project/sls_det_software/serial_control_software/minidelay/minidelay #sls_detector_put setbit 0x5d 0 @@ -36,13 +43,16 @@ sls_detector_put highvoltage 0 sls_detector_put rx_udpport 32410 sls_detector_put rx_udpip 10.1.4.105 sls_detector_put rx_udpmac 3C:FD:FE:A2:14:D8 -sls_detector_put detectorip 10.1.4.9 +sls_detector_put detectorip 10.1.5.9 #wrong on purpose, so we send some packets to nowhere sls_detector_put detectormac 00:ab:be:cc:dd:e2 #sls_detector_put configuremac 0 sls_detector_put speed 1 -sls_detector_put start # this puts the chip in a known state. +sls_detector_put start # this puts the chip in a known state. packets to nowhere sls_detector_put stop + +sls_detector_put detectorip 10.1.4.9 #now the right one. + sleep 3 if [ "$1" == 'HG0' ]; then @@ -79,44 +89,45 @@ sleep 1 # prepare the AGILENT 33250A -/afs/psi.ch/project/sls_det_software/serial_control_software/minidelay/minidelay OUTP OFF +echo $CLI" OUTP OFF " | nc pc8830 5555 + sleep 0.2 # pulse -/afs/psi.ch/project/sls_det_software/serial_control_software/minidelay/minidelay FUNC PULS +echo $CLI" FUNC PULS" | nc pc8830 5555 sleep 0.2 # frequency 1kHz -/afs/psi.ch/project/sls_det_software/serial_control_software/minidelay/minidelay FREQ 1000 +echo $CLI" FREQ 1000" | nc pc8830 5555 sleep 0.2 # width 40 us -/afs/psi.ch/project/sls_det_software/serial_control_software/minidelay/minidelay PULS:WIDT 0.000040 +echo $CLI" PULS:WIDT 0.000040" | nc pc8830 5555 sleep 0.2 -# amplitude 0.1 V -/afs/psi.ch/project/sls_det_software/serial_control_software/minidelay/minidelay VOLT 0.1 +# amplitude 0.1 V" | nc pc8830 5555 +echo $CLI" VOLT 0.1" | nc pc8830 5555 sleep 0.2 # offset 0 V -/afs/psi.ch/project/sls_det_software/serial_control_software/minidelay/minidelay VOLT:OFFS 0 +echo $CLI" VOLT:OFFS 0" | nc pc8830 5555 sleep 0.2 # edge 50 ns -/afs/psi.ch/project/sls_det_software/serial_control_software/minidelay/minidelay PULS:TRAN 0.000000050 +echo $CLI" PULS:TRAN 0.000000050" | nc pc8830 5555 sleep 0.2 # triggered burst -/afs/psi.ch/project/sls_det_software/serial_control_software/minidelay/minidelay BURS:MODE TRIG +echo $CLI" BURS:MODE TRIG" | nc pc8830 5555 sleep 0.2 # cycles 1 -/afs/psi.ch/project/sls_det_software/serial_control_software/minidelay/minidelay BURS:NCYC 1 +echo $CLI" BURS:NCYC 1" | nc pc8830 5555 sleep 0.2 # external trigger source -/afs/psi.ch/project/sls_det_software/serial_control_software/minidelay/minidelay TRIG:SOUR EXT +echo $CLI" TRIG:SOUR EXT" | nc pc8830 5555 sleep 0.2 # delay 1 us -/afs/psi.ch/project/sls_det_software/serial_control_software/minidelay/minidelay TRIG:DEL 0.000001 +echo $CLI" TRIG:DEL 0.000001" | nc pc8830 5555 sleep 0.2 # slope positive -/afs/psi.ch/project/sls_det_software/serial_control_software/minidelay/minidelay TRIG:SLOP POS +echo $CLI" TRIG:SLOP POS" | nc pc8830 5555 sleep 0.2 # turn on burst mode -/afs/psi.ch/project/sls_det_software/serial_control_software/minidelay/minidelay BURS:STAT ON +echo $CLI" BURS:STAT ON" | nc pc8830 5555 sleep 0.2 @@ -131,7 +142,7 @@ fi # high voltage sls_detector_put vhighvoltage 200 # output on -/afs/psi.ch/project/sls_det_software/serial_control_software/minidelay/minidelay OUTP ON +echo $CLI" OUTP ON" | nc pc8830 5555 sleep 0.2 echo "The current on the amplifier board should be ~0.035 A" @@ -160,7 +171,7 @@ for ivpulse in {10..1000..10} do vpulse=$(printf %.3f $(echo "$ivpulse/1000" | bc -l)) -/afs/psi.ch/project/sls_det_software/serial_control_software/minidelay/minidelay VOLT $vpulse +echo $CLI" VOLT "$vpulse | nc pc8830 5555 sleep 1 sls_detector_put start sleep 1 @@ -169,7 +180,7 @@ done for ivpulse in {1050..7000..50} do vpulse=$(printf %.3f $(echo "$ivpulse/1000" | bc -l)) -/afs/psi.ch/project/sls_det_software/serial_control_software/minidelay/minidelay VOLT $vpulse +echo $CLI" VOLT "$vpulse | nc pc8830 5555 sleep 1 sls_detector_put start sleep 1 @@ -179,7 +190,7 @@ done # high voltage sls_detector_put vhighvoltage 0 # output off -/afs/psi.ch/project/sls_det_software/serial_control_software/minidelay/minidelay OUTP OFF +echo $CLI" OUTP OFF " | nc pc8830 5555 echo "Finished scan, please wait for capacitor to discharge" sleep 20 diff --git a/CS_scan.sh b/CS_scan.sh index 15ea318..854c3e9 100644 --- a/CS_scan.sh +++ b/CS_scan.sh @@ -6,6 +6,13 @@ # - setup_env.sh souced # - the hostname is set # - detector is on +# fileneame script has been sourced + + + +KILLRCV="killall ju_udp_receiver_3threads_2_0" +$KILLRCV + sls_detector_put powerchip 1 @@ -14,7 +21,7 @@ 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 vhighvoltage 200 +sls_detector_put highvoltage 200 # configure for receiver on mpc2012 sls_detector_put rx_udpport 32410 @@ -23,16 +30,10 @@ sls_detector_put rx_udpmac 3C:FD:FE:A2:14:D8 sls_detector_put detectorip 10.1.4.9 sls_detector_put detectormac 00:ab:be:cc:dd:e2 +sleep 3 + $TKCSG0 & - -echo "The receiver should be waiting for data" -echo "Please check and press any key to continue, or press q to exit this script" -read -n 1 -s input -if [[ $input = "q" ]]; then - echo "Exiting script" - exit 1 -fi - +sleep 3 echo "recording G0 pede" sls_detector_put start @@ -167,3 +168,5 @@ sls_detector_put period 0.002 sls_detector_put frames 1000000 sls_detector_put clearbit 0x5d 16 echo "Script finished" + +$KILLRCV diff --git a/CS_scan_JF11.sh b/CS_scan_JF11.sh index b99316e..feb7fa9 100644 --- a/CS_scan_JF11.sh +++ b/CS_scan_JF11.sh @@ -6,6 +6,8 @@ # - setup_env.sh souced # - the hostname is set # - detector is on +# fileneame script has been sourced + if [ "$1" == "" ] || [ $# -gt 1 ]; then echo "Parameter 1 is empty specify G0 for normal, HG0 for HG0G1G2" exit 0 diff --git a/CuFluo_exposure.sh b/CuFluo_exposure.sh index 3cdb415..0d763ef 100644 --- a/CuFluo_exposure.sh +++ b/CuFluo_exposure.sh @@ -36,9 +36,9 @@ $CLI HV on $CLI shutter 1 off echo "warmin up the board" -#sls_detector_put frames 100000 -#sls_detector_put start -#sleep 210 +sls_detector_put frames 40000 +sls_detector_put start +sleep 81 echo "end of board warm up" diff --git a/CuFluo_exposure_JF11.sh b/CuFluo_exposure_JF11.sh index b54face..85b6f49 100644 --- a/CuFluo_exposure_JF11.sh +++ b/CuFluo_exposure_JF11.sh @@ -59,9 +59,9 @@ $CLI HV on $CLI shutter 1 off echo "warmin up the board" -sls_detector_put frames 10000 +sls_detector_put frames 40000 sls_detector_put start -sleep 21 +sleep 81 echo "end of board warm up" ##if false; then ##### temporary diff --git a/filename_creator.sh b/filename_creator.sh index f51f0f0..f6d4568 100644 --- a/filename_creator.sh +++ b/filename_creator.sh @@ -13,11 +13,9 @@ datafolder="/mnt/pcmoench_jungfrau_calib/data/Module_"$1"_Calib/" datestring=$(date +%F) echo "mkdir "$datafolder -echo "./ju_udp_receiver_3threads_2_0 S "$datafolder"BP_M"$1"_"$datestring"_ 10.1.4.105" +export TKBPG0="ju_udp_receiver_3threads_2_0 S "$datafolder"BP_M"$1"_"$datestring"_ 10.1.4.105" - -echo "additional lines for JF11" -echo "./ju_udp_receiver_3threads_2_0 S "$datafolder"BP_M"$1"_"$datestring"_HGOG1G2_ 10.1.4.105" +export TKBPHG0="ju_udp_receiver_3threads_2_0 S "$datafolder"BP_M"$1"_"$datestring"_HGOG1G2_ 10.1.4.105" export TKCSHG0="ju_udp_receiver_3threads_2_0 S "$datafolder"CS_M"$1"_"$datestring"_HGOG1G2_ 10.1.4.105" @@ -25,6 +23,7 @@ export TKCSG0="ju_udp_receiver_3threads_2_0 S "$datafolder"CS_M"$1"_"$datestring + echo "exporting the fluorescence receiver commands " export TKFG0="ju_udp_receiver_3threads_2_0 S "$datafolder"CuFluoG0_M"$1"_"$datestring"_ 10.1.4.105" export TKFHG0="ju_udp_receiver_3threads_2_0 S "$datafolder"CuFluoHG0_M"$1"_"$datestring"_ 10.1.4.105" @@ -75,10 +74,11 @@ done echo "----------------------------------------------------------------------" echo "---------------------START OF ANALYSIS CLI commands --------------------" echo "----------------------------------------------------------------------" -echo "./CuFluo_analysis "$1" G0 "$datafolder $pgofile $cgofile -echo "./CuFluo_analysis "$1" HG0 "$datafolder $phgofile $chgofile +echo "M"$1 echo "./BP_analysis "$1" "$datafolder$bpfile echo "./CS_analysis "$1" "$datafolder $csfile +echo "./CuFluo_analysis "$1" G0 "$datafolder $pgofile $cgofile +echo "./CuFluo_analysis "$1" HG0 "$datafolder $phgofile $chgofile echo "./JFMC_CalibWriter_wBP" "$1" echo "----------------------------------------------------------------------" echo "---------------------END OF ANALYSIS CLI commands --------------------" diff --git a/run_JFCalibration.txt b/run_JFCalibration.txt index 2e7289d..85769cf 100644 --- a/run_JFCalibration.txt +++ b/run_JFCalibration.txt @@ -1585,3 +1585,47 @@ M342 ./BP_analysis 342 /mnt/pcmoench_jungfrau_calib/data/Module_342_Calib//BP_M342_2021-01-18 ./CS_analysis 342 /mnt/pcmoench_jungfrau_calib/data/Module_342_Calib/ CS_M342_2021-01-18 ./JFMC_CalibWriter_wBP 342 + + +M243 +./BP_analysis 243 /mnt/pcmoench_jungfrau_calib/data/Module_243_Calib/BP_M243_2021-03-22 +./CS_analysis 243 /mnt/pcmoench_jungfrau_calib/data/Module_243_Calib/ CS_M243_2021-03-22 +./CuFluo_analysis 243 G0 /mnt/pcmoench_jungfrau_calib/data/Module_243_Calib/ pedeG0_M243_2021-03-24 CuFluoG0_M243_2021-03-24 +./CuFluo_analysis 243 HG0 /mnt/pcmoench_jungfrau_calib/data/Module_243_Calib/ pedeHG0_M243_2021-03-24 CuFluoHG0_M243_2021-03-24 +./JFMC_CalibWriter_wBP 243 + +M339 +./BP_analysis 339 /mnt/pcmoench_jungfrau_calib/data/Module_339_Calib/BP_M339_2021-03-22 +./CS_analysis 339 /mnt/pcmoench_jungfrau_calib/data/Module_339_Calib/ CS_M339_2021-03-22 +./CuFluo_analysis 339 G0 /mnt/pcmoench_jungfrau_calib/data/Module_339_Calib/ pedeG0_M339_2021-03-24 CuFluoG0_M339_2021-03-24 +./CuFluo_analysis 339 HG0 /mnt/pcmoench_jungfrau_calib/data/Module_339_Calib/ pedeHG0_M339_2021-03-24 CuFluoHG0_M339_2021-03-24 +./JFMC_CalibWriter_wBP 339 + +M341 + +./BP_analysis 341 /mnt/pcmoench_jungfrau_calib/data/Module_341_Calib/BP_M341_2021-03-22 +./CS_analysis 341 /mnt/pcmoench_jungfrau_calib/data/Module_341_Calib/ CS_M341_2021-03-22 +./CuFluo_analysis 341 G0 /mnt/pcmoench_jungfrau_calib/data/Module_341_Calib/ pedeG0_M341_2021-03-24 CuFluoG0_M341_2021-03-24 +./CuFluo_analysis 341 HG0 /mnt/pcmoench_jungfrau_calib/data/Module_341_Calib/ pedeHG0_M341_2021-03-24 CuFluoHG0_M341_2021-03-24 +./JFMC_CalibWriter_wBP 341 + +M368 +./BP_analysis 368 /mnt/pcmoench_jungfrau_calib/data/Module_368_Calib/BP_M368_2021-03-22 +./CS_analysis 368 /mnt/pcmoench_jungfrau_calib/data/Module_368_Calib/ CS_M368_2021-03-22 +./CuFluo_analysis 368 G0 /mnt/pcmoench_jungfrau_calib/data/Module_368_Calib/ pedeG0_M368_2021-03-24 CuFluoG0_M368_2021-03-24 +./CuFluo_analysis 368 HG0 /mnt/pcmoench_jungfrau_calib/data/Module_368_Calib/ pedeHG0_M368_2021-03-24 CuFluoHG0_M368_2021-03-24 +./JFMC_CalibWriter_wBP 368 + +M376 +./BP_analysis 376 /mnt/pcmoench_jungfrau_calib/data/Module_376_Calib/BP_M376_2021-03-23 +./CS_analysis 376 /mnt/pcmoench_jungfrau_calib/data/Module_376_Calib/ CS_M376_2021-03-23 +./CuFluo_analysis 376 G0 /mnt/pcmoench_jungfrau_calib/data/Module_376_Calib/ pedeG0_M376_2021-03-24 CuFluoG0_M376_2021-03-24 +./CuFluo_analysis 376 HG0 /mnt/pcmoench_jungfrau_calib/data/Module_376_Calib/ pedeHG0_M376_2021-03-24 CuFluoHG0_M376_2021-03-24 +./JFMC_CalibWriter_wBP 376 + +M379 +./BP_analysis 379 /mnt/pcmoench_jungfrau_calib/data/Module_379_Calib/BP_M379_2021-03-23 +./CS_analysis 379 /mnt/pcmoench_jungfrau_calib/data/Module_379_Calib/ CS_M379_2021-03-23 +./CuFluo_analysis 379 G0 /mnt/pcmoench_jungfrau_calib/data/Module_379_Calib/ pedeG0_M379_2021-03-24 CuFluoG0_M379_2021-03-24 +./CuFluo_analysis 379 HG0 /mnt/pcmoench_jungfrau_calib/data/Module_379_Calib/ pedeHG0_M379_2021-03-24 CuFluoHG0_M379_2021-03-24 +./JFMC_CalibWriter_wBP 379 diff --git a/slsDetector_bin/ju_udp_receiver_3threads_2_0 b/slsDetector_bin/ju_udp_receiver_3threads_2_0 deleted file mode 100755 index ae95630e9f1c7aa0fb3a5c243e6ebb391cb61dfb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18360 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 EKcI*t=Kufz diff --git a/slsDetector_bin/ju_udp_receiver_3threads_2_0 b/slsDetector_bin/ju_udp_receiver_3threads_2_0 new file mode 120000 index 0000000..1c1eefa --- /dev/null +++ b/slsDetector_bin/ju_udp_receiver_3threads_2_0 @@ -0,0 +1 @@ +ju_udp_receiver_3threads_new_header \ No newline at end of file diff --git a/slsDetector_bin/ju_udp_receiver_3threads_new_header.c b/slsDetector_bin/ju_udp_receiver_3threads_new_header.c index a9c63f8..0965988 100644 --- a/slsDetector_bin/ju_udp_receiver_3threads_new_header.c +++ b/slsDetector_bin/ju_udp_receiver_3threads_new_header.c @@ -167,7 +167,7 @@ int main(int argc,char *argv[]) if ((argc>2)&&(strcmp(argv[1],"C6")==0)) { top=0;bot=0;chid=6;} if ((argc>2)&&(strcmp(argv[1],"C7")==0)) { top=0;bot=0;chid=7;} - int kkk=0; + chidy=(int)(chid/4); chidx=(chid%4); ipxoffs=chidy*1024*256; //offset: zero if in the bottom part, half image otherwise @@ -326,17 +326,26 @@ int main(int argc,char *argv[]) gettimeofday(&tsss,NULL); tdif=(1e6*(tsss.tv_sec - tss.tv_sec)+(long)(tsss.tv_usec)-(long)(tss.tv_usec)); rpratio=(totalnpacket/(float)128)/(float)(packetframenumcurr-packetframenumold); - aimageration=ncompleteframes/(float)(packetframenumcurr-packetframenumfirst); - - npri=(int) ((float)(500000)/(((float)(tdif)/(float)(packetframenumcurr-packetframenumold)))/50.0 + 1) * 50; + aimageration=ncompleteframes/(float)(packetframenumcurr-packetframenumfirst+1); + + // printf(" \n %ld %ld %ld %ld \n",(long)tsss.tv_sec,(long)tss.tv_sec,(long)tsss.tv_usec,(long)tss.tv_usec); + + if (tdif>0) { + npri=(int) ((float)(500000)/(((float)(tdif)/(float)(packetframenumcurr-packetframenumold)))/50.0 + 1) * 50; + + } + + + //printf("npri = %d %f \n " ,npri,(float)(tdif)/(float)(packetframenumcurr-packetframenumold) ); if ((rpratio!=1)&&(printeach!=npri-1)) { printf(A_C_RED "Average hardware rate = %4d Hz, Average Rcv. image ratio= %1.7f Rcv. pck. ratio %1.5f , ringbuf max =%4d/%4d Fr#: %ld \n" A_C_RESET, (int)( 1e6/(tdif/(packetframenumcurr-packetframenumold))), aimageration, rpratio ,maxringsize,RINGSIZE,packetframenumcurr-packetframenumfirst); } else { printf("Average hardware rate = %4d Hz, Average Rcv. image ratio= %1.7f Rcv. pck. ratio %1.5f , ringbuf max =%4d/%4d Fr#: %ld \n", (int)( 1e6/(tdif/(packetframenumcurr-packetframenumold))), aimageration, rpratio ,maxringsize,RINGSIZE,packetframenumcurr-packetframenumfirst); + // printf("%f %lu %d \n",tdif,packetframenumcurr,packetframenumold); - printf("timestamp: %lds.%ldns SC= 0x%x 0x%x", (packet.timestamp)/10000000,((packet.timestamp)%10000000)/10, (((packet.debug)>>8)&0xf), packet.headerVersion); + printf("timestamp: %4lds.%6ldns SC= 0x%x ", (packet.timestamp)/10000000,((packet.timestamp)%10000000)/10, (((packet.debug)>>8)&0xf)); // printf("SC= 0x%x ", (((packet.debug)>>8)&0xf)); @@ -444,8 +453,7 @@ int main(int argc,char *argv[]) if (strcmp(request,"give\n")==0) { - // sc_tolook_for=15-(kkk%3); - // kkk++; + sc_tolook_for=13; while (frametosend<=frametosendold){ usleep(20000); //TBC @@ -455,7 +463,7 @@ int main(int argc,char *argv[]) //if ((((ringbuffer[localpt].bunchid)>>8)&0xf)==2){ frametosend=(*putpt)-ib; break;} // replaced with 'timeout' if ((count_since_scfound > 100 )) { // tunable - printf("Receiver to online disp: going to look for sc15 any SC instead of SCX\n"); + // printf("Receiver to online disp: going to look for sc15 any SC instead of SCX\n"); intimeout=1; }