From 9ca0718edd18eab5da548195df3683813351c6e1 Mon Sep 17 00:00:00 2001 From: Hades DAQ Date: Tue, 12 Mar 2019 13:30:15 +0100 Subject: [PATCH] updates of control GUI --- control/gui/50_Reboot_TRB3 | 18 +++ control/gui/Buttons2.pm | 2 +- control/gui/daq/20_Reprogram_FPGA | 8 +- control/gui/daq/30_Reboot_OEP | 8 +- control/gui/daq/35_Reboot_MDCHub | 6 +- control/gui/daq/40_ReSync_Missing_OEP | 10 +- control/gui/daq/41_Resync_DiRich | 8 + control/gui/daq/50_Reboot_CentralHubs | 19 +++ control/gui/daq/50_Reboot_Dirich | 18 +++ control/gui/daq/50_Reboot_Ecal | 19 +++ control/gui/daq/50_Reboot_RICH_Hubs | 17 +++ control/gui/daq/50_Reboot_Rich_Combiner | 18 +++ control/gui/daq/50_Reboot_TRB3 | 18 --- control/gui/eb/27_Start_TDC_CAL | 15 +- control/gui/eb/28_Stop_TDC_CAL | 20 +-- control/gui/eb/29_BEAM_Files | 19 +-- control/gui/eb/50_COSMICS_Files | 13 +- control/gui/eb/52_TEST_File | 21 ++- control/gui/eb/55_NO_FILE | 14 +- control/gui/eb/60_Restart_EB | 6 +- control/gui/eb/65_____Stop_EB | 18 ++- control/gui/eb/70_Set_1_EB | 15 +- control/gui/eb/73_Set_4_EB | 13 +- control/gui/eb/75_Set_8_EB | 13 +- control/gui/eb/76_Set_12_EB | 14 +- control/gui/expert/90_MDC_HighVoltageRamp | 2 +- control/gui/expert/BLR_Reinit_FPGA | 12 +- control/gui/expert/MDC_LV_Turn_On_ALL_Relais | 2 + control/gui/expert/Nxyter_Rescue | 11 +- control/gui/expert/Reload_RICH | 7 + control/gui/expert/Reload_RPC_Thresholds | 8 +- control/gui/expert/Restart_BNET_Control | 10 +- control/gui/expert/Restart_Hmon | 4 +- control/gui/expert/Restart_Rawdata_Mon | 9 +- control/gui/expert/Restart_Sequencer | 8 +- control/gui/expert/Set_ECAL_Thr | 20 +++ control/gui/expert/Set_RICH_HV | 14 +- control/gui/expert/Set_RICH_Thr | 10 +- control/gui/expert/Start_Speech_Output | 2 +- control/gui/expert/Stop_Speech_Output | 2 +- control/gui/monitor/10_CTS_Mon | 1 + control/gui/monitor/20_Hmon | 3 +- control/gui/monitor/40_BNET | 2 +- control/gui/monitor/80_Daq_VNC | 2 +- control/gui/monitor/91_Hmon_Snaphot | 7 + control/gui/power/00_Powercycle_all | 9 +- control/gui/power/10_RICH_Powercycle | 5 +- control/gui/power/20_ECAL_RPC_48V_Powercycle | 14 ++ control/gui/power/21_ECAL_Padiwa_Powercycle | 9 ++ control/gui/power/22_ECAL_Rack_Powercycle | 9 ++ control/gui/power/40_Start_Powercycle | 2 +- control/gui/power/50_MdcTofCentral_Powercycle | 14 ++ control/gui/power/90_HUBS_Powercycle | 15 +- control/gui/power/MDC_LV_Powercycle | 3 +- control/gui/power/RPC_special_PwrCyc | 18 ++- control/mdcHVgui/Buttons2.pm | 3 +- control/mdcHVgui/S1/Plane_1 | 4 +- control/mdcHVgui/S1/Plane_2 | 4 +- control/mdcHVgui/S1/Plane_3 | 4 +- control/mdcHVgui/S1/Plane_4 | 4 +- control/mdcHVgui/S2/Plane_1 | 4 +- control/mdcHVgui/S2/Plane_2 | 4 +- control/mdcHVgui/S2/Plane_3 | 4 +- control/mdcHVgui/S2/Plane_4 | 4 +- control/mdcHVgui/S3/Plane_1 | 4 +- control/mdcHVgui/S3/Plane_2 | 4 +- control/mdcHVgui/S3/Plane_3 | 4 +- control/mdcHVgui/S3/Plane_4 | 4 +- control/mdcHVgui/S4/Plane_1 | 4 +- control/mdcHVgui/S4/Plane_2 | 4 +- control/mdcHVgui/S4/Plane_3 | 4 +- control/mdcHVgui/S4/Plane_4 | 4 +- control/mdcHVgui/S5/Plane_1 | 4 +- control/mdcHVgui/S5/Plane_2 | 4 +- control/mdcHVgui/S5/Plane_3 | 4 +- control/mdcHVgui/S5/Plane_4 | 4 +- control/mdcHVgui/S6/Plane_1 | 4 +- control/mdcHVgui/S6/Plane_2 | 4 +- control/mdcHVgui/S6/Plane_3 | 4 +- control/mdcHVgui/S6/Plane_4 | 4 +- control/mdcLVgui/Buttons2.pm | 5 +- control/mdcLVgui/S0/200x | 2 +- control/qa/Buttons2.pm | 2 +- control/qa/QA/10_Start_OnlineQA.png | Bin 0 -> 2211 bytes control/qa/QA/11_Stop_OnlineQA | 3 + control/qa/QA/11_Stop_OnlineQA.png | Bin 0 -> 2246 bytes control/qa/QA/15_Vertex_Reconstruction.png | Bin 0 -> 16532 bytes control/qa/QA/screenshot_QHF_1.png | Bin 0 -> 29765 bytes control/qa/call_programs_local.sh | 2 +- control/qa/call_programs_wrapper.sh | 2 +- utils/ECAL_5V_Entrance_Powercycle.sh | 17 +++ utils/ECAL_LV5_Powercycle.sh | 21 +++ utils/ECAL_Powercycle.pl | 17 +++ utils/HMP_Powersupply.pl | 116 ++++++++++++++ utils/HUB_Powercycle.pl | 18 +++ utils/MdcTofCentral_Powercycle.pl | 17 +++ utils/RICH_Fan_Powercycle.sh | 17 +++ utils/RICH_HV_Switch.sh | 8 + utils/RICH_Powercycle.pl | 20 +++ utils/RICH_Thr_Call.sh | 4 + utils/control_gui_logger.sh | 11 ++ utils/mdc_lv.pl | 144 ++++++++++++++++++ utils/odroid_HMP_Powercycle.sh | 34 +++++ 103 files changed, 919 insertions(+), 224 deletions(-) create mode 100644 control/gui/50_Reboot_TRB3 create mode 100755 control/gui/daq/41_Resync_DiRich create mode 100755 control/gui/daq/50_Reboot_CentralHubs create mode 100755 control/gui/daq/50_Reboot_Dirich create mode 100755 control/gui/daq/50_Reboot_Ecal create mode 100755 control/gui/daq/50_Reboot_RICH_Hubs create mode 100755 control/gui/daq/50_Reboot_Rich_Combiner delete mode 100755 control/gui/daq/50_Reboot_TRB3 create mode 100755 control/gui/expert/Set_ECAL_Thr create mode 100755 control/gui/monitor/91_Hmon_Snaphot create mode 100755 control/gui/power/20_ECAL_RPC_48V_Powercycle create mode 100755 control/gui/power/21_ECAL_Padiwa_Powercycle create mode 100755 control/gui/power/22_ECAL_Rack_Powercycle create mode 100755 control/gui/power/50_MdcTofCentral_Powercycle create mode 100644 control/qa/QA/10_Start_OnlineQA.png create mode 100755 control/qa/QA/11_Stop_OnlineQA create mode 100644 control/qa/QA/11_Stop_OnlineQA.png create mode 100644 control/qa/QA/15_Vertex_Reconstruction.png create mode 100644 control/qa/QA/screenshot_QHF_1.png create mode 100755 utils/ECAL_5V_Entrance_Powercycle.sh create mode 100755 utils/ECAL_LV5_Powercycle.sh create mode 100755 utils/ECAL_Powercycle.pl create mode 100755 utils/HMP_Powersupply.pl create mode 100755 utils/HUB_Powercycle.pl create mode 100755 utils/MdcTofCentral_Powercycle.pl create mode 100755 utils/RICH_Fan_Powercycle.sh create mode 100755 utils/RICH_HV_Switch.sh create mode 100755 utils/RICH_Powercycle.pl create mode 100755 utils/RICH_Thr_Call.sh create mode 100755 utils/control_gui_logger.sh create mode 100755 utils/mdc_lv.pl create mode 100755 utils/odroid_HMP_Powercycle.sh diff --git a/control/gui/50_Reboot_TRB3 b/control/gui/50_Reboot_TRB3 new file mode 100644 index 0000000..47c1ce7 --- /dev/null +++ b/control/gui/50_Reboot_TRB3 @@ -0,0 +1,18 @@ +#!/bin/bash + +export myvar=$(/home/hadaq/trbsoft/hadesdaq/utils/doyoureallywant.pl "reboot the TRB3s in the system") +if [ $myvar == "256" ]; then exit; fi + +notifyall.sh "DAQ" " The TRB3 in the system are going to be rebooted." "STARTUP" & + + +xterm -geometry 80x24 -bg orange -fg black -e bash --login -c ' + ssh hadaq@lxhadesdaqp " + source /home/hadaq/.bash_profile + ~/trbsoft/hadesdaq/nettools/reboot_TRB3.pl + sleep 10 + " +' + +notifyall.sh "DAQ" " The TRB3 in the system are going to be rebooted." "STARTUP" & + diff --git a/control/gui/Buttons2.pm b/control/gui/Buttons2.pm index c6c839a..4ced96a 100644 --- a/control/gui/Buttons2.pm +++ b/control/gui/Buttons2.pm @@ -373,7 +373,7 @@ sub make_subroutine { # make subroutines #sub slot0Pressed { my $c = buttons->[0]; $c = "cd ../control; ./$c"; print "will execute: $c\n"; qx($c); } - my $str = qq|sub slot| . $i . qq|Pressed { my \$c = this->{self}->{ra_buttons}->[$i]; \$c = "cd $dir; control_gui_logger.sh \$c; ./\$c &"; print "will execute: \$c\n"; system(\$c); }|; + my $str = qq|sub slot| . $i . qq|Pressed { my \$s = this->{self}->{ra_buttons}->[$i]; my \$str = "\$dir/\$s"; my \$c = "cd \$dir; control_gui_logger.sh CONTROL \$str; ./\$s &"; print "will execute: \$c\n"; system(\$c); }|; # my $str = qq|sub slot| . $i . qq|Pressed { print "$i pressed\n"; }|; #system(\$c); }|; #print "sub: $str\n"; diff --git a/control/gui/daq/20_Reprogram_FPGA b/control/gui/daq/20_Reprogram_FPGA index 0fb05bc..fba434f 100755 --- a/control/gui/daq/20_Reprogram_FPGA +++ b/control/gui/daq/20_Reprogram_FPGA @@ -1,6 +1,6 @@ #!/bin/bash -export myvar=$(/home/hadaq/trbsoft/hadesdaq/utils/doyoureallywant.pl " reprogramm the FPGAs") +export myvar=$(/home/hadaq/trbsoft/hadesdaq/utils/doyoureallywant.pl "reprogramm the FPGAs") if [ $myvar == "256" ]; then exit; fi @@ -12,9 +12,9 @@ xterm -geometry 80x24 -bg orange -fg black -e bash --login -c ' ssh -X hadaq@lxhadesdaqp " cd ~/trbsoft/hadesdaq/main/ ./startup.pl -f main_hades.script -o file -m TOF -m RPC -m WALL -m RICH -m STARTCTS -m MDC -m MDCDATASET --eb off - echo \"First config run\" - bash startup_briccolage.sh -" + #echo \"First config run\" + #bash startup_briccolage.sh + " ' notifyall.sh "DAQ" " FPGA have been programmed and DAQ is started." "STARTUP" & diff --git a/control/gui/daq/30_Reboot_OEP b/control/gui/daq/30_Reboot_OEP index 6a1ec2c..1ab4e9e 100755 --- a/control/gui/daq/30_Reboot_OEP +++ b/control/gui/daq/30_Reboot_OEP @@ -3,11 +3,11 @@ export myvar=$(/home/hadaq/trbsoft/hadesdaq/utils/doyoureallywant.pl " reboot the MDC-OEPs") if [ $myvar == "256" ]; then exit; fi +notifyall.sh "DAQ" " OEPs are going to be rebooted." "STARTUP" & + xterm -geometry 80x24 -bg orange -fg black -e bash --login -c ' -ssh hadaq@lxhadesdaqp " -~/bin/rebootoep_x11.sh -sleep 2 -" + ~/bin/rebootoep_x11.sh + sleep 2 ' notifyall.sh "DAQ" " OEPs rebooted" "MDC"& diff --git a/control/gui/daq/35_Reboot_MDCHub b/control/gui/daq/35_Reboot_MDCHub index cb5b1f9..7c20ef3 100755 --- a/control/gui/daq/35_Reboot_MDCHub +++ b/control/gui/daq/35_Reboot_MDCHub @@ -7,11 +7,13 @@ export myvar=$(/home/hadaq/trbsoft/hadesdaq/utils/doyoureallywant.pl " reboot the MDC-Hubs") if [ $myvar == "256" ]; then exit; fi +notifyall.sh "DAQ" " MDC-Hubs are going to be rebooted." "STARTUP" & + xterm -geometry 80x24 -bg orange -fg black -e bash --login -c ' trbcmd reset trbcmd reload 0xfe11 + sleep 8 ' -sleep 8; -notifyall.sh "DAQ" " MDC-Hubs rebooted" "MDC"& +notifyall.sh "DAQ" " MDC-Hubs rebooted" "MDC" & diff --git a/control/gui/daq/40_ReSync_Missing_OEP b/control/gui/daq/40_ReSync_Missing_OEP index cc2c59a..e58656e 100755 --- a/control/gui/daq/40_ReSync_Missing_OEP +++ b/control/gui/daq/40_ReSync_Missing_OEP @@ -1,8 +1,8 @@ #!/bin/bash xterm -geometry 80x24 -bg orange -fg black -e bash --login -c ' -ssh hadaq@lxhadesdaqp " -echo "reviveoep.pl" -reviveoep.pl -sleep 10 -" + ssh hadaq@lxhadesdaqp " + echo "reviveoep.pl" + reviveoep.pl + sleep 10 + " ' diff --git a/control/gui/daq/41_Resync_DiRich b/control/gui/daq/41_Resync_DiRich new file mode 100755 index 0000000..f6d0d8c --- /dev/null +++ b/control/gui/daq/41_Resync_DiRich @@ -0,0 +1,8 @@ +#!/bin/bash +xterm -geometry 80x24 -bg orange -fg black -e bash --login -c ' + ssh hadaq@lxhadesdaqp " + echo "revivedirich.pl" + revivedirich.pl + sleep 10 + " +' diff --git a/control/gui/daq/50_Reboot_CentralHubs b/control/gui/daq/50_Reboot_CentralHubs new file mode 100755 index 0000000..33d2bff --- /dev/null +++ b/control/gui/daq/50_Reboot_CentralHubs @@ -0,0 +1,19 @@ +#!/bin/bash + +export myvar=$(/home/hadaq/trbsoft/hadesdaq/utils/doyoureallywant.pl "reboot the TRB3s in the system") +if [ $myvar == "256" ]; then exit; fi + +notifyall.sh "DAQ" " The TRB3 in the system are going to be rebooted." "STARTUP" & + + +xterm -geometry 80x24 -bg orange -fg black -e bash --login -c ' + ssh hadaq@lxhadesdaqp " + source /home/hadaq/.bash_profile + trbcmd reload 0xfe65 + trbcmd reload 0x8000 + sleep 10 + " +' + +notifyall.sh "DAQ" " The Central Hubs are going to be rebooted." "STARTUP" & + diff --git a/control/gui/daq/50_Reboot_Dirich b/control/gui/daq/50_Reboot_Dirich new file mode 100755 index 0000000..dd899c1 --- /dev/null +++ b/control/gui/daq/50_Reboot_Dirich @@ -0,0 +1,18 @@ +#!/bin/bash + +export myvar=$(/home/hadaq/trbsoft/hadesdaq/utils/doyoureallywant.pl "reboot the TRB3s in the system") +if [ $myvar == "256" ]; then exit; fi + +#notifyall.sh "DAQ" " The TRB3 in the system are going to be rebooted." "STARTUP" & +notifyall.sh "DAQ" " The DiRich are going to be rebooted." "STARTUP" & + + +xterm -geometry 80x24 -bg orange -fg black -e bash --login -c ' + ssh hadaq@lxhadesdaqp " + source /home/hadaq/.bash_profile + trbcmd reload 0xfe51 + sleep 10 + " +' + + diff --git a/control/gui/daq/50_Reboot_Ecal b/control/gui/daq/50_Reboot_Ecal new file mode 100755 index 0000000..a112eae --- /dev/null +++ b/control/gui/daq/50_Reboot_Ecal @@ -0,0 +1,19 @@ +#!/bin/bash + +export myvar=$(/home/hadaq/trbsoft/hadesdaq/utils/doyoureallywant.pl "reboot the TRB3s in the system") +if [ $myvar == "256" ]; then exit; fi + +notifyall.sh "DAQ" " The TRB3 in the system are going to be rebooted." "STARTUP" & + + +xterm -geometry 80x24 -bg orange -fg black -e bash --login -c ' + ssh hadaq@lxhadesdaqp " + source /home/hadaq/.bash_profile + trbcmd reload 0xfe71 + trbcmd reload 0xfe61 + sleep 10 + " +' + +notifyall.sh "DAQ" " The ECal TRB3sc are going to be rebooted." "STARTUP" & + diff --git a/control/gui/daq/50_Reboot_RICH_Hubs b/control/gui/daq/50_Reboot_RICH_Hubs new file mode 100755 index 0000000..b91ae1e --- /dev/null +++ b/control/gui/daq/50_Reboot_RICH_Hubs @@ -0,0 +1,17 @@ +#!/bin/bash + +export myvar=$(/home/hadaq/trbsoft/hadesdaq/utils/doyoureallywant.pl "reboot the TRB3s in the system") +if [ $myvar == "256" ]; then exit; fi + +notifyall.sh "DAQ" " The TRB3 in the system are going to be rebooted." "STARTUP" & + + +xterm -geometry 80x24 -bg orange -fg black -e bash --login -c ' + ssh hadaq@lxhadesdaqp " + source /home/hadaq/.bash_profile + trbcmd reload 0xfe66 + sleep 10 + " +' + +notifyall.sh "DAQ" " The RICH Hubs are going to be rebooted." "STARTUP" & diff --git a/control/gui/daq/50_Reboot_Rich_Combiner b/control/gui/daq/50_Reboot_Rich_Combiner new file mode 100755 index 0000000..6fe9c25 --- /dev/null +++ b/control/gui/daq/50_Reboot_Rich_Combiner @@ -0,0 +1,18 @@ +#!/bin/bash + +export myvar=$(/home/hadaq/trbsoft/hadesdaq/utils/doyoureallywant.pl "reboot the TRB3s in the system") +if [ $myvar == "256" ]; then exit; fi + +#notifyall.sh "DAQ" " The TRB3 in the system are going to be rebooted." "STARTUP" & +notifyall.sh "DAQ" " The Rich Combiner are going to be rebooted." "STARTUP" & + + +xterm -geometry 80x24 -bg orange -fg black -e bash --login -c ' + ssh hadaq@lxhadesdaqp " + source /home/hadaq/.bash_profile + trbcmd reload 0xfe52 + sleep 10 + " +' + + diff --git a/control/gui/daq/50_Reboot_TRB3 b/control/gui/daq/50_Reboot_TRB3 deleted file mode 100755 index c98ab9d..0000000 --- a/control/gui/daq/50_Reboot_TRB3 +++ /dev/null @@ -1,18 +0,0 @@ -#!/usr/bin/perl - -use warnings; -use HADES::TrbNet; - -$ENV{'DAQOPSERVER'} = "hadesp31"; -trb_init_ports() or die "could not reach trbnet-daemon.", trb_strerror(); - -#system("trbcmd i 0xffff"); -#exit; - -system("trbcmd reload 0xfe49"); - -system("trbcmd reload 0x8880"); -system("trbcmd reload 0x8890"); -system("trbcmd reload 0x8900"); -system("trbcmd reload 0x8910"); - diff --git a/control/gui/eb/27_Start_TDC_CAL b/control/gui/eb/27_Start_TDC_CAL index ec01cce..5bc3604 100755 --- a/control/gui/eb/27_Start_TDC_CAL +++ b/control/gui/eb/27_Start_TDC_CAL @@ -1,15 +1,18 @@ #!/bin/bash # 100Hz -> 2e6 pulservalue = 0x1E8480 -export myvar=$(/home/hadaq/trbsoft/hadesdaq/utils/doyoureallywant.pl "start the TDC calibration") -if [ $myvar == "256" ]; then exit; fi +export myvar=$(/home/hadaq/trbsoft/hadesdaq/utils/doyoureallywant.pl "start the TDC calibration process") +if [ $myvar == "256" ]; then exit; fi + +notifyall.sh "DAQ" " TDC-Calibration process on eventbuilders started." "STARTUP" & + -/home/hadaq/trbsoft/hadesdaq/utils/notifyall.sh "DAQ" " TDC calibration is starting." "EB" & xterm -geometry 80x24 -bg orange -fg black -e bash -c ' - /home/hadaq/trbsoft/hadesdaq/evtbuild/tdc_calib_start.sh - sleep 20 + ssh hadaq@lxhadesdaqp " + /home/hadaq/trbsoft/hadesdaq/evtbuild/tdc_calib_start.sh + " ' -/home/hadaq/trbsoft/hadesdaq/utils/notifyall.sh "DAQ" " Eventbuilders have started the calibration procedure." "EB" & +/home/hadaq/trbsoft/hadesdaq/utils/notifyall.sh "DAQ" " Eventbuilders have started TDC-Calibration procedure." "EB" & diff --git a/control/gui/eb/28_Stop_TDC_CAL b/control/gui/eb/28_Stop_TDC_CAL index 2d5bd9f..694a6a7 100755 --- a/control/gui/eb/28_Stop_TDC_CAL +++ b/control/gui/eb/28_Stop_TDC_CAL @@ -1,14 +1,16 @@ #!/bin/bash -export myvar=$(/home/hadaq/trbsoft/hadesdaq/utils/doyoureallywant.pl "stop the TDC calibration") -if [ $myvar == "256" ]; then exit; fi +export myvar=$(/home/hadaq/trbsoft/hadesdaq/utils/doyoureallywant.pl "stop the TDC calibration process") +if [ $myvar == "256" ]; then exit; fi -/home/hadaq/trbsoft/hadesdaq/utils/notifyall.sh "DAQ" " TDC calibration is stopping." "EB" & +notifyall.sh "DAQ" " TDC-Calibration process on eventbuilders is going to be stopped." "STARTUP" & - xterm -geometry 80x24 -bg orange -fg black -e bash -c ' - /home/hadaq/trbsoft/hadesdaq/evtbuild/tdc_calib_stop.sh - sleep 30; - ' - -/home/hadaq/trbsoft/hadesdaq/utils/notifyall.sh "DAQ" " Eventbuilders have stopped the TDC-Calibration procedure." "EB" & +xterm -geometry 80x24 -bg orange -fg black -e bash -c ' + ssh hadaq@lxhadesdaqp " + /home/hadaq/trbsoft/hadesdaq/evtbuild/tdc_calib_stop.sh + sleep 30; + " +' + +/home/hadaq/trbsoft/hadesdaq/utils/notifyall.sh "DAQ" " Eventbuilders have stopped TDC-Calibration procedure." "EB" & diff --git a/control/gui/eb/29_BEAM_Files b/control/gui/eb/29_BEAM_Files index 22a3f40..05183e6 100755 --- a/control/gui/eb/29_BEAM_Files +++ b/control/gui/eb/29_BEAM_Files @@ -14,19 +14,20 @@ # ' # " -export myvar=$(/home/hadaq/trbsoft/hadesdaq/utils/doyoureallywant.pl "start the TDC calibration") +export myvar=$(/home/hadaq/trbsoft/hadesdaq/utils/doyoureallywant.pl "change the EBs to Beam Files") if [ $myvar == "256" ]; then exit; fi -$HOME/trbsoft/hadesdaq/utils/notifyall.sh "DAQ" " TDC calibration is starting." "EB" & +$HOME/trbsoft/hadesdaq/utils/notifyall.sh "DAQ" " EBs are going to be changed to write beam files." "EB" & - xterm -geometry 80x24 -bg orange -fg black -e bash -c ' - echo "Setting file prefix be" - /usr/bin/wget -a /tmp/EB_filestart.log -O /tmp/EB_fileres.txt \"http://lxhadeb07:8099/Master/BNET/StartRun/execute?prefix=be&oninit=10\" - echo set prefix te on BNET master controller - sleep 2 - ' - +xterm -geometry 80x24 -bg orange -fg black -e bash -c ' + ssh -X hadaq@lxhadesdaqp " + echo "Setting file prefix be" + /usr/bin/wget -a /tmp/EB_filestart.log -O /tmp/EB_fileres.txt \"http://lxhadeb07:8099/Master/BNET/StartRun/execute?prefix=be&oninit=10\" + echo set prefix te on BNET master controller + sleep 2 + " +' $HOME/trbsoft/hadesdaq/utils/notifyall.sh "DAQ" " Eventbuilders are writing beam files." "EB" & diff --git a/control/gui/eb/50_COSMICS_Files b/control/gui/eb/50_COSMICS_Files index 84fb1a8..1e2a6b3 100755 --- a/control/gui/eb/50_COSMICS_Files +++ b/control/gui/eb/50_COSMICS_Files @@ -15,13 +15,18 @@ # " #/home/hadaq/trbsoft/hadesdaq/utils/notifyall.sh "DAQ" " Eventbuilders have been started. Writing Cosmics Files" "EB" & -ssh -X hadaq@lxhadesdaq " - xterm -geometry 80x24 -bg orange -fg black -e bash -c ' +export myvar=$(/home/hadaq/trbsoft/hadesdaq/utils/doyoureallywant.pl "change the EBs to Cosmic Files") +if [ $myvar == "256" ]; then exit; fi + +$HOME/trbsoft/hadesdaq/utils/notifyall.sh "DAQ" " EBs are going to be changed to write cosmic files." "EB" & + +xterm -geometry 80x24 -bg orange -fg black -e bash -c ' + ssh -X hadaq@lxhadesdaqp " echo "Setting file prefix co" /usr/bin/wget -a /tmp/EB_filestart.log -O /tmp/EB_fileres.txt \"http://lxhadeb07:8099/Master/BNET/StartRun/execute?prefix=co&oninit=10\" echo set prefix te on BNET master controller sleep 2 - ' " -/home/hadaq/trbsoft/hadesdaq/utils/notifyall.sh "DAQ" " Eventbuilders are writing Cosmics Files." "EB" & +' + $HOME/trbsoft/hadesdaq/utils/notifyall.sh "DAQ" " Eventbuilders are writing Cosmics Files." "EB" & diff --git a/control/gui/eb/52_TEST_File b/control/gui/eb/52_TEST_File index c8fbd43..5f1dd29 100755 --- a/control/gui/eb/52_TEST_File +++ b/control/gui/eb/52_TEST_File @@ -15,13 +15,18 @@ # # /home/hadaq/trbsoft/hadesdaq/utils/notifyall.sh "DAQ" " Eventbuilders have been started. Writing test files" "EB" & -ssh -X hadaq@lxhadesdaq " - xterm -geometry 80x24 -bg orange -fg black -e bash -c ' - echo "Setting file prefix te" - /usr/bin/wget -a /tmp/EB_filestart.log -O /tmp/EB_fileres.txt \"http://lxhadeb07:8099/Master/BNET/StartRun/execute?prefix=te&oninit=10\" - echo set prefix te on BNET master controller - sleep 2 - ' +export myvar=$(/home/hadaq/trbsoft/hadesdaq/utils/doyoureallywant.pl "change the EBs to Test Files") +if [ $myvar == "256" ]; then exit; fi + +$HOME/trbsoft/hadesdaq/utils/notifyall.sh "DAQ" " EBs are going to be changed to write test files." "EB" & + +xterm -geometry 80x24 -bg orange -fg black -e bash -c ' + ssh -X hadaq@lxhadesdaqp " + echo "Setting file prefix te" + /usr/bin/wget -a /tmp/EB_filestart.log -O /tmp/EB_fileres.txt \"http://lxhadeb07:8099/Master/BNET/StartRun/execute?prefix=te&oninit=10\" + echo set prefix te on BNET master controller + sleep 2 " -/home/hadaq/trbsoft/hadesdaq/utils/notifyall.sh "DAQ" " Eventbuilders are writing test files." "EB" & +' +$HOME/trbsoft/hadesdaq/utils/notifyall.sh "DAQ" " Eventbuilders are writing test files." "EB" & diff --git a/control/gui/eb/55_NO_FILE b/control/gui/eb/55_NO_FILE index ed22b3c..76ac521 100755 --- a/control/gui/eb/55_NO_FILE +++ b/control/gui/eb/55_NO_FILE @@ -13,13 +13,17 @@ # " # /home/hadaq/trbsoft/hadesdaq/utils/notifyall.sh "DAQ" " Eventbuilders have been started. NO FILES are being written" "EB" & -ssh -X hadaq@lxhadesdaq " - xterm -geometry 80x24 -bg orange -fg black -e bash -c ' +export myvar=$(/home/hadaq/trbsoft/hadesdaq/utils/doyoureallywant.pl "change the EBs to \"No-Files\"") +if [ $myvar == "256" ]; then exit; fi + +$HOME/trbsoft/hadesdaq/utils/notifyall.sh "DAQ" " EBs are going to be changed to write no files." "EB" & + +ssh -X hadaq@lxhadesdaq " xterm -geometry 80x24 -bg orange -fg black -e bash -c ' echo "Setting file prefix --n NO FILES" /usr/bin/wget -a /tmp/EB_filestart.log -O /tmp/EB_fileres.txt \"http://lxhadeb07:8099/Master/BNET/StartRun/execute?prefix='--'&oninit=10\" echo set prefix -- on BNET master controller sleep 2 - ' - " -/home/hadaq/trbsoft/hadesdaq/utils/notifyall.sh "DAQ" " Eventbuilders are writing NO FILES." "EB" & + ' +" +$HOME/trbsoft/hadesdaq/utils/notifyall.sh "DAQ" " Eventbuilders are writing NO FILES." "EB" & diff --git a/control/gui/eb/60_Restart_EB b/control/gui/eb/60_Restart_EB index 30de264..6b2b0b2 100755 --- a/control/gui/eb/60_Restart_EB +++ b/control/gui/eb/60_Restart_EB @@ -3,10 +3,10 @@ export myvar=$(/home/hadaq/trbsoft/hadesdaq/utils/doyoureallywant.pl "restart the Eventbuilders") if [ $myvar == "256" ]; then exit; fi -/home/hadaq/trbsoft/hadesdaq/utils/notifyall.sh "DAQ" " Eventbuilders are being restarted." "EB" & +$HOME/trbsoft/hadesdaq/utils/notifyall.sh "DAQ" " Eventbuilders are being restarted." "EB" & xterm -geometry 80x24 -bg orange -fg black -e bash -c ' -ssh -X hadaq@lxhadesdaq " + ssh hadaq@lxhadesdaqp " echo \"Restarting Eventbuilder 1 - 16\" stoptrigger.sh cd ~/trbsoft/hadesdaq/evtbuild/ @@ -15,5 +15,5 @@ ssh -X hadaq@lxhadesdaq " " ' -/home/hadaq/trbsoft/hadesdaq/utils/notifyall.sh "DAQ" " Eventbuilders have been restarted with last prefix" "EB" & +$HOME/trbsoft/hadesdaq/utils/notifyall.sh "DAQ" " Eventbuilders have been restarted with last prefix" "EB" & diff --git a/control/gui/eb/65_____Stop_EB b/control/gui/eb/65_____Stop_EB index 4846ee7..013c3b4 100755 --- a/control/gui/eb/65_____Stop_EB +++ b/control/gui/eb/65_____Stop_EB @@ -2,11 +2,19 @@ # notifyall.sh "DAQ" " Eventbuilders are being stopped." "EB" & -ssh -X hadaq@lxhadesdaq " - xterm -geometry 80x24 -bg orange -fg black -e bash -c ' +export myvar=$(/home/hadaq/trbsoft/hadesdaq/utils/doyoureallywant.pl "stop the Eventbuilders") +if [ $myvar == "256" ]; then exit; fi + +$HOME/trbsoft/hadesdaq/utils/notifyall.sh "DAQ" " Eventbuilders are being stopped." "EB" & + + + +xterm -geometry 80x24 -bg orange -fg black -e bash -c ' + ssh -X hadaq@lxhadesdaqp " echo "Stopping Eventbuilder 1 - 16" cd ~/trbsoft/hadesdaq/evtbuild/ ./start_eb_gbe.pl -e stop -n 1-16 - ' - " -/home/hadaq/trbsoft/hadesdaq/utils/notifyall.sh "DAQ" " Eventbuilders have been stopped" "EB" & + " +' + +$HOME/trbsoft/hadesdaq/utils/notifyall.sh "DAQ" " Eventbuilders have been stopped" "EB" & diff --git a/control/gui/eb/70_Set_1_EB b/control/gui/eb/70_Set_1_EB index 5fcabfe..ae1fec6 100755 --- a/control/gui/eb/70_Set_1_EB +++ b/control/gui/eb/70_Set_1_EB @@ -2,14 +2,21 @@ # notifyall.sh "DAQ" " Eventbuilders are being restarted." "EB" & -ssh -X hadaq@lxhadesdaq " - xterm -geometry 80x24 -bg orange -fg black -e bash -c ' +export myvar=$(/home/hadaq/trbsoft/hadesdaq/utils/doyoureallywant.pl "restart the EBs with 1 builder node") +if [ $myvar == "256" ]; then exit; fi + +$HOME/trbsoft/hadesdaq/utils/notifyall.sh "DAQ" " Eventbuilders are being started with only one builder node." "EB" & + + + +xterm -geometry 80x24 -bg orange -fg black -e bash -c ' + ssh -X hadaq@lxhadesdaqp " echo "Starting Eventbuilders with one BNET builder node" cd ~/trbsoft/hadesdaq/evtbuild/ ./start_eb_gbe.pl -e restart -n 1-16 -d on -p te -b 1 sleep 2 - ' " +' -/home/hadaq/trbsoft/hadesdaq/utils/notifyall.sh "DAQ" " Eventbuilders have been restarted using 1 BNET builder node" "EB" & +$HOME/trbsoft/hadesdaq/utils/notifyall.sh "DAQ" " Eventbuilders have been restarted using 1 BNET builder node" "EB" & diff --git a/control/gui/eb/73_Set_4_EB b/control/gui/eb/73_Set_4_EB index 295b438..bdad11f 100755 --- a/control/gui/eb/73_Set_4_EB +++ b/control/gui/eb/73_Set_4_EB @@ -2,14 +2,19 @@ # notifyall.sh "DAQ" " Eventbuilders are being restarted." "EB" & -ssh -X hadaq@lxhadesdaq " - xterm -geometry 80x24 -bg orange -fg black -e bash -c ' +export myvar=$(/home/hadaq/trbsoft/hadesdaq/utils/doyoureallywant.pl "restart the EBs with 4 builder nodes") +if [ $myvar == "256" ]; then exit; fi + +$HOME/trbsoft/hadesdaq/utils/notifyall.sh "DAQ" " Eventbuilders are being started with 4 builder nodes." "EB" & + +xterm -geometry 80x24 -bg orange -fg black -e bash -c ' + ssh -X hadaq@lxhadesdaqp " echo "Starting Eventbuilders with 4 BNET builder nodes" cd ~/trbsoft/hadesdaq/evtbuild/ ./start_eb_gbe.pl -e restart -n 1-16 -d on -p te -b 4 sleep 2 - ' " +' -/home/hadaq/trbsoft/hadesdaq/utils/notifyall.sh "DAQ" " Eventbuilders have been restarted using 4 BNET builder nodes" "EB" & +$HOME/trbsoft/hadesdaq/utils/notifyall.sh "DAQ" " Eventbuilders have been restarted using 4 BNET builder nodes" "EB" & diff --git a/control/gui/eb/75_Set_8_EB b/control/gui/eb/75_Set_8_EB index 20a8104..8176a47 100755 --- a/control/gui/eb/75_Set_8_EB +++ b/control/gui/eb/75_Set_8_EB @@ -2,14 +2,19 @@ # notifyall.sh "DAQ" " Eventbuilders are being restarted." "EB" & -ssh -X hadaq@lxhadesdaq " - xterm -geometry 80x24 -bg orange -fg black -e bash -c ' +export myvar=$(/home/hadaq/trbsoft/hadesdaq/utils/doyoureallywant.pl "restart the EBs with 8 builder nodes") +if [ $myvar == "256" ]; then exit; fi + +$HOME/trbsoft/hadesdaq/utils/notifyall.sh "DAQ" " Eventbuilders are being started with 8 builder nodes." "EB" & + +xterm -geometry 80x24 -bg orange -fg black -e bash -c ' + ssh -X hadaq@lxhadesdaqp " echo "Starting Eventbuilders with 8 BNET builder nodes" cd ~/trbsoft/hadesdaq/evtbuild/ ./start_eb_gbe.pl -e restart -n 1-16 -d on -p te -b 8 sleep 2 - ' " +' -/home/hadaq/trbsoft/hadesdaq/utils/notifyall.sh "DAQ" " Eventbuilders have been restarted using 8 BNET builder nodes" "EB" & +$HOME/trbsoft/hadesdaq/utils/notifyall.sh "DAQ" " Eventbuilders have been restarted using 8 BNET builder nodes" "EB" & diff --git a/control/gui/eb/76_Set_12_EB b/control/gui/eb/76_Set_12_EB index a8440bf..c3de4cf 100755 --- a/control/gui/eb/76_Set_12_EB +++ b/control/gui/eb/76_Set_12_EB @@ -2,14 +2,20 @@ # notifyall.sh "DAQ" " Eventbuilders are being restarted." "EB" & -ssh -X hadaq@lxhadesdaq " - xterm -geometry 80x24 -bg orange -fg black -e bash -c ' +export myvar=$(/home/hadaq/trbsoft/hadesdaq/utils/doyoureallywant.pl "restart the EBs with 12 builder nodes") +if [ $myvar == "256" ]; then exit; fi + +$HOME/trbsoft/hadesdaq/utils/notifyall.sh "DAQ" " Eventbuilders are being started with 12 builder nodes." "EB" & + + +xterm -geometry 80x24 -bg orange -fg black -e bash -c ' + ssh -X hadaq@lxhadesdaqp " echo "Starting Eventbuilders with 12 BNET builder nodes" cd ~/trbsoft/hadesdaq/evtbuild/ ./start_eb_gbe.pl -e restart -n 1-16 -d on -p te -b 12 sleep 2 - ' " +' -/home/hadaq/trbsoft/hadesdaq/utils/notifyall.sh "DAQ" " Eventbuilders have been restarted using 12 BNET builder nodes" "EB" & +$HOME/trbsoft/hadesdaq/utils/notifyall.sh "DAQ" " Eventbuilders have been restarted using 12 BNET builder nodes" "EB" & diff --git a/control/gui/expert/90_MDC_HighVoltageRamp b/control/gui/expert/90_MDC_HighVoltageRamp index e607ec1..94134c3 100755 --- a/control/gui/expert/90_MDC_HighVoltageRamp +++ b/control/gui/expert/90_MDC_HighVoltageRamp @@ -3,5 +3,5 @@ export myvar=$(doyoureallywant.pl "to RAMP DOWN High Voltage!") if [ $myvar == "256" ]; then exit; fi cd /home/hadaq/trbsoft/hadesdaq/control/mdcHVgui/ -/home/hadaq/trbsoft/hadesdaq/control/mdcHVgui/call_programs2.pl +PERLLIB=. $HOME/trbsoft/hadesdaq/control/mdcHVgui/call_programs2.pl diff --git a/control/gui/expert/BLR_Reinit_FPGA b/control/gui/expert/BLR_Reinit_FPGA index 9ea919b..4dda223 100755 --- a/control/gui/expert/BLR_Reinit_FPGA +++ b/control/gui/expert/BLR_Reinit_FPGA @@ -4,11 +4,11 @@ export myvar=$(doyoureallywant.pl "to reprogram the BLR-FPGA \(should not have a if [ $myvar == "256" ]; then exit; fi xterm -geometry 80x24 -bg orange -fg black -e bash -c ' -echo "reinit FPGA" -command_client.pl -e etraxp107 -c "jam_trbv2 --trb -aRUN_XILINX_PROC /home/hadaq/rpc/fpga/20110301_rpc_a.stapl" -sleep 1 -echo "reload the BLR settings" -command_client.pl -e etraxp107 -c "spi_trbv2_7 /home/hadaq/cts/mult_thresholds/ctsblr_thresholds" -sleep 4 + echo "reinit FPGA" + command_client.pl -e etraxp107 -c "jam_trbv2 --trb -aRUN_XILINX_PROC /home/hadaq/rpc/fpga/20110301_rpc_a.stapl" + sleep 1 + echo "reload the BLR settings" + command_client.pl -e etraxp107 -c "spi_trbv2_7 /home/hadaq/cts/mult_thresholds/ctsblr_thresholds" + sleep 4 ' diff --git a/control/gui/expert/MDC_LV_Turn_On_ALL_Relais b/control/gui/expert/MDC_LV_Turn_On_ALL_Relais index 0859841..77c2b14 100755 --- a/control/gui/expert/MDC_LV_Turn_On_ALL_Relais +++ b/control/gui/expert/MDC_LV_Turn_On_ALL_Relais @@ -1,5 +1,7 @@ #!/bin/bash + xterm -e 'echo "Enabling the MDC-LV-Relais. Wait 4 Seconds..."; sleep 4' & + ~/bin/command_client.pl -e etraxp204 -c "/home/hadaq/bin/writetty.sh 'OWDS 0'" sleep 2 ~/bin/command_client.pl -e etraxp204 -c "/home/hadaq/bin/writetty.sh 'OWDS 0'" diff --git a/control/gui/expert/Nxyter_Rescue b/control/gui/expert/Nxyter_Rescue index 96541f2..32b0c46 100755 --- a/control/gui/expert/Nxyter_Rescue +++ b/control/gui/expert/Nxyter_Rescue @@ -1,8 +1,9 @@ #!/bin/bash + xterm -geometry 80x24 -bg orange -fg black -e bash -c " -echo -e '\033[1mNxyter Rescue Script called\n\n' -/home/hadaq/trbsoft/daq/pion/tools/Nxyter_Rescue.pl -sleep 30 -echo -e '\n\n\nDone' -sleep 5 + echo -e '\033[1mNxyter Rescue Script called\n\n' + /home/hadaq/trbsoft/daq/pion/tools/Nxyter_Rescue.pl + sleep 30 + echo -e '\n\n\nDone' + sleep 5 " diff --git a/control/gui/expert/Reload_RICH b/control/gui/expert/Reload_RICH index df1f52f..2f087fb 100755 --- a/control/gui/expert/Reload_RICH +++ b/control/gui/expert/Reload_RICH @@ -2,7 +2,14 @@ export myvar=$(doyoureallywant.pl "to Reload the RICH?") if [ $myvar == "256" ]; then exit; fi +notifyall.sh "DAQ" " RICH FPGAs are going to be reloaded." "STARTUP" & + + export DAQOPSERVER=hadesp31 + trbcmd reload 0xfe51 trbcmd reload 0xfe52 +sleep 2 + +notifyall.sh "DAQ" " RICH FPGAs have been reloaded." "STARTUP" & diff --git a/control/gui/expert/Reload_RPC_Thresholds b/control/gui/expert/Reload_RPC_Thresholds index 65390de..f41d2fd 100755 --- a/control/gui/expert/Reload_RPC_Thresholds +++ b/control/gui/expert/Reload_RPC_Thresholds @@ -1,14 +1,12 @@ #!/bin/bash - -ssh -X lxhadesdaq " xterm -geometry 80x24 -bg orange -fg black -e bash -c ' echo Reloading RPC thresholds - cd /home/hadaq/rpc/utilities/ + cd /home/hadaq/trbsoft/hadesdaq/rpc/utilities/ ./setTriggerBoardSX.sh ./setThresholdsAll.sh sleep 5 ' -" -notifyall.sh "DAQ" " RPC-Thresholds have been reloaded." "RPC" & \ No newline at end of file + +notifyall.sh "DAQ" " RPC-Thresholds have been reloaded." "RPC" & diff --git a/control/gui/expert/Restart_BNET_Control b/control/gui/expert/Restart_BNET_Control index 282f5a3..a19d7ff 100755 --- a/control/gui/expert/Restart_BNET_Control +++ b/control/gui/expert/Restart_BNET_Control @@ -3,7 +3,15 @@ #lxhadeb07 140.181.80.125 # lxhadeb 08 (140.181.80.62 #xterm -geometry 80x24 -bg orange -fg black -e bash -c ' ssh hadaq@140.181.91.154 "/home/hadaq/bin/restart_bnetmaster.sh ; echo closing window in 5 secs...; sleep 5" ' -xterm -geometry 80x24 -bg orange -fg black -e bash -c ' ssh hadaq@140.181.80.125 "/home/hadaq/bin/restart_bnetmaster.sh ; echo closing window in 5 secs...; sleep 5" ' + + +xterm -geometry 80x24 -bg orange -fg black -e bash -c ' + ssh hadaq@lxhadeb07p " + /home/hadaq/bin/restart_bnetmaster.sh + echo closing window in 5 secs... + sleep 5 + " +' diff --git a/control/gui/expert/Restart_Hmon b/control/gui/expert/Restart_Hmon index e20d5ca..8be126f 100755 --- a/control/gui/expert/Restart_Hmon +++ b/control/gui/expert/Restart_Hmon @@ -8,8 +8,8 @@ xterm -geometry 80x24 -bg orange -fg black -e bash -c ' ./start.sh #1>/dev/null 2>/dev/null echo "Hmon has been restarted" sleep 5 - " - ' + " +' diff --git a/control/gui/expert/Restart_Rawdata_Mon b/control/gui/expert/Restart_Rawdata_Mon index cfc8977..db29d8c 100755 --- a/control/gui/expert/Restart_Rawdata_Mon +++ b/control/gui/expert/Restart_Rawdata_Mon @@ -5,7 +5,14 @@ # below for lxhadeb13, given back to Jochen #xterm -geometry 80x24 -bg orange -fg black -e bash -c ' ssh hadaq@140.181.83.176 "/home/hadaq/bin/restart_rawmon.sh ; echo closing window in 5 secs...; sleep 5" ' # below lxhadeb12: -xterm -geometry 80x24 -bg orange -fg black -e bash -c ' ssh hadaq@140.181.83.168 "/home/hadaq/bin/restart_rawmon.sh ; echo closing window in 5 secs...; sleep 5" ' + +xterm -geometry 80x24 -bg orange -fg black -e bash -c ' + ssh hadaq@lxhadeb12p " + /home/hadaq/bin/restart_rawmon.sh + echo closing window in 5 secs... + sleep 5 + " +' diff --git a/control/gui/expert/Restart_Sequencer b/control/gui/expert/Restart_Sequencer index dd84524..96d9244 100755 --- a/control/gui/expert/Restart_Sequencer +++ b/control/gui/expert/Restart_Sequencer @@ -5,10 +5,10 @@ xterm -geometry 80x24 -bg orange -fg black -e bash -c ' echo Re-starting Sequencers echo -en \"\x18\"| netcat -w 1 localhost 4813 sleep 5 - " - ' - + " +' + # | netcat -w 1 localhost 4813 - \ No newline at end of file + diff --git a/control/gui/expert/Set_ECAL_Thr b/control/gui/expert/Set_ECAL_Thr new file mode 100755 index 0000000..b8ff19b --- /dev/null +++ b/control/gui/expert/Set_ECAL_Thr @@ -0,0 +1,20 @@ +#!/bin/bash +export myvar=$(doyoureallywant.pl "to reset the ECAL thresholds?") +if [ $myvar == "256" ]; then exit; fi + +xterm -geometry 80x24 -bg orange -fg black -e bash --login -c ' + ssh hadaq@lxhadesdaqp " + export DAQOPSERVER=hadesp31 + echo \" Connected to lxhadesdaq...\" + echo \" Setting Thresholds...\" + ssh hadesp33 \"pkill -f ./hmon_ecal_recover_dead_slow_channels.pl\" + cd /home/hadaq/trbsoft/hadesdaq/ecal/ecal_thresholds/trb_dirich_threshold/ + . ./setLD + ./HADESthreshscan_v1 -l 0 --loading-file 20190220_155833_std_save.thr -t 0 500 500 + ./HADESthreshscan_v1 -l 0 --loading-file 20190220_155833_std_save.thr -t 0 45 n200 + echo \"Done\" + tmux new-session -d -s \"ecal_recover_dead_channels\" \"cd ~/trbsoft/hadesdaq/hmon/; export PERL5LIB=.; ./hmon_ecal_recover_dead_slow_channels.pl\" + sleep 10 +" +' + diff --git a/control/gui/expert/Set_RICH_HV b/control/gui/expert/Set_RICH_HV index 3da2638..c1cf51b 100755 --- a/control/gui/expert/Set_RICH_HV +++ b/control/gui/expert/Set_RICH_HV @@ -3,19 +3,11 @@ export myvar=$(doyoureallywant.pl "to set the RICH HV and switch it on/off?") if [ $myvar == "256" ]; then exit; fi xterm -geometry 80x24 -bg orange -fg black -e bash --login -c ' - ssh hadaq@lxhadeb06 " + ssh hadaq@lxhadesdaqp " export DAQOPSERVER=hadesp31 - echo \" Connected to lxhadeb06...\" + echo \" Connected to lxhadesdaq...\" echo \" Setting HV...\" - cd /home/hadaq/JoF/HV_RICH/ - . epics - ./setCrate.sh 1 -# ./setHV.sh gain_alignement_HV_1.5E+06_fifth.dat - ./setHV.sh gain_alignement_HV_1.5E+06.dat -# ./setHV.sh gain_alignement_HV_2.0E+06.dat -# ./setHVon_off.sh gain_alignement_HV_1.5E+06_fifth.dat 2 - ./setHVon_off.sh gain_alignement_HV_1.5E+06.dat 2 -# ./setHVon_off.sh gain_alignement_HV_2.0E+06.dat 2 + /home/hadaq/trbsoft/hadesdaq/utils/RICH_HV_Switch.sh /home/hadaq/hadesdaq/richhv/rich700/generated_HV_sets/gain_alignement_HV_2.0E+06.dat echo \"Done\" sleep 10 " diff --git a/control/gui/expert/Set_RICH_Thr b/control/gui/expert/Set_RICH_Thr index f5b2461..274d027 100755 --- a/control/gui/expert/Set_RICH_Thr +++ b/control/gui/expert/Set_RICH_Thr @@ -3,15 +3,11 @@ export myvar=$(doyoureallywant.pl "to reset the RICH thresholds?") if [ $myvar == "256" ]; then exit; fi xterm -geometry 80x24 -bg orange -fg black -e bash --login -c ' - ssh hadaq@lxhadeb06 " + ssh hadaq@lxhadesdaqp " export DAQOPSERVER=hadesp31 - echo \" Connected to lxhadeb06...\" + echo \" Connected to lxhadesdaq...\" echo \" Setting Thresholds...\" - cd /home/hadaq/trbsoft/daqtools/thresholds/threshold_wuppertal/trb_dirich_threshold/ - source ./setLD - #./HADESthreshscan_v1 - #./HADESthreshscan_v1 --loading-file /home/hadaq/trbsoft/daqtools/thresholds/threshold_wuppertal/trb_dirich_threshold/standard_baselines.thr -l 0 -n 0 5 - ./HADESthreshscan_v1 --loading-file /home/hadaq/trbsoft/daqtools/thresholds/threshold_wuppertal/trb_dirich_threshold/threshold_files/standard_baselines.thr -l 0 -t 0 50 + /home/hadaq/trbsoft/hadesdaq/utils/RICH_Thr_Call.sh --loading-file /home/hadaq/hadesdaq/rich/trb_dirich_threshold/threshold_files/standard_baselines.thr -l 0 -t 0 70 echo \"Done\" sleep 10 " diff --git a/control/gui/expert/Start_Speech_Output b/control/gui/expert/Start_Speech_Output index 9f8f29f..8dd0f8a 100755 --- a/control/gui/expert/Start_Speech_Output +++ b/control/gui/expert/Start_Speech_Output @@ -1,5 +1,5 @@ #!/bin/bash -ssh hadaq@hades33 "killall -USR2 speakdaemon.pl" +ssh hadaq@hadesp50 "killall -USR2 speakdaemon.pl" diff --git a/control/gui/expert/Stop_Speech_Output b/control/gui/expert/Stop_Speech_Output index b03ebef..6dd4231 100755 --- a/control/gui/expert/Stop_Speech_Output +++ b/control/gui/expert/Stop_Speech_Output @@ -1,6 +1,6 @@ #!/bin/bash #ssh hadaq@hades33 "killall -USR1 speakdaemon.pl" -ssh hadaq@hades33 "killall -USR1 speakdaemon.pl; pkill -f espeak" +ssh hadaq@hadesp50 "killall -USR1 speakdaemon.pl; pkill -f espeak" diff --git a/control/gui/monitor/10_CTS_Mon b/control/gui/monitor/10_CTS_Mon index 7c377ad..6214a04 100755 --- a/control/gui/monitor/10_CTS_Mon +++ b/control/gui/monitor/10_CTS_Mon @@ -8,6 +8,7 @@ export DAQOPSERVER=hadesp31 cd /home/hadaq/trbsoft/hadesdaq/control/ctsmon perl ./mon_cts.pl sleep 1 + exit diff --git a/control/gui/monitor/20_Hmon b/control/gui/monitor/20_Hmon index faccd51..65a73f9 100755 --- a/control/gui/monitor/20_Hmon +++ b/control/gui/monitor/20_Hmon @@ -1,4 +1,3 @@ #!/bin/bash -#ssh -X hades30 " firefox -p Hmon http://hadesdaq02/mon" -MOZ_NO_REMOTE=1 firefox -p Hmon http://hades33/mon +MOZ_NO_REMOTE=1 firefox -P Hmon_forDaqOnly http://hades33/mon diff --git a/control/gui/monitor/40_BNET b/control/gui/monitor/40_BNET index 1a03ab6..4cddd81 100755 --- a/control/gui/monitor/40_BNET +++ b/control/gui/monitor/40_BNET @@ -1,3 +1,3 @@ #!/bin/bash -MOZ_NO_REMOTE=1 firefox -P Eventbuilding http://hades33/eb +MOZ_NO_REMOTE=1 firefox -P Eventbuilding http://hades33/eb/?monitoring=2000 diff --git a/control/gui/monitor/80_Daq_VNC b/control/gui/monitor/80_Daq_VNC index 99f2329..dcd1d3d 100755 --- a/control/gui/monitor/80_Daq_VNC +++ b/control/gui/monitor/80_Daq_VNC @@ -1,3 +1,3 @@ #!/bin/bash -vncviewer -passwd ~/.vnc/passwd hades30:1 & +vncviewer --shared -passwd ~/.vnc/passwd hades30:1 & diff --git a/control/gui/monitor/91_Hmon_Snaphot b/control/gui/monitor/91_Hmon_Snaphot new file mode 100755 index 0000000..b09aa2d --- /dev/null +++ b/control/gui/monitor/91_Hmon_Snaphot @@ -0,0 +1,7 @@ +#!/bin/bash + +#ssh -X -l scs lxhadeb06 '. /home/scs/.profile; medm -x hades.adl' +xterm -geometry 80x24 -bg green -fg black -e bash -c " + ssh -X hadaq@hades33 'cd /home/hadaq/trbsoft/daq/hmon; PERL5LIB=. perl ./permanent/hmon_archiver.pl once' + sleep 1000 + "; diff --git a/control/gui/power/00_Powercycle_all b/control/gui/power/00_Powercycle_all index 5ba8ab5..a7ce529 100755 --- a/control/gui/power/00_Powercycle_all +++ b/control/gui/power/00_Powercycle_all @@ -4,16 +4,17 @@ export myvar=$(doyoureallywant.pl "to powercycle RICH,ECAL LV?") if [ $myvar == "256" ]; then exit; fi xterm -e bash --login -c ' - ssh hadaq@lxhadesdaq " - source /home/hadaq/.bash_profile + ssh hadaq@lxhadesdaqp " + source /home/hadaq/.bash_profile echo \'Starting power cycle...\' cd /home/hadaq/hadesdaq/utils; export PERLLIB=/home/hadaq/EPICS/EPICS-3.15.6/base/lib/perl - ./RICH_Powercycle.pl; + ./RICH_Powercycle.pl; #./ECAL_5V_Entrance_Powercycle.sh; #./ECAL_LV5_Powercycle; #./HUB_Powercycle.pl; - + ./ECAL_Powercycle.pl + ./MdcTofCentral_Powercycle.pl sleep 5 " diff --git a/control/gui/power/10_RICH_Powercycle b/control/gui/power/10_RICH_Powercycle index 7d4fd19..54859fa 100755 --- a/control/gui/power/10_RICH_Powercycle +++ b/control/gui/power/10_RICH_Powercycle @@ -4,11 +4,14 @@ export myvar=$(doyoureallywant.pl "to powercycle the RICH LV?") if [ $myvar == "256" ]; then exit; fi xterm -e bash --login -c ' - ssh hadaq@lxhadesdaq " + ssh hadaq@lxhadesdaqp " source /home/hadaq/.bash_profile +# export DAQOPSERVER=hadesp31 echo \"Starting a RICH power cycle...\" cd /home/hadaq/hadesdaq/utils; PERLLIB=/home/hadaq/EPICS/EPICS-3.15.6/base/lib/perl ./RICH_Powercycle.pl; sleep 5 + # /home/hadaq/trbsoft/hadesdaq/utils/RICH_Thr_Call.sh --loading-file /home/hadaq/hadesdaq/rich/trb_dirich_threshold/threshold_files/standard_baselines.thr -l 0 -t 0 50 + # sleep 5 " ' diff --git a/control/gui/power/20_ECAL_RPC_48V_Powercycle b/control/gui/power/20_ECAL_RPC_48V_Powercycle new file mode 100755 index 0000000..69e8e17 --- /dev/null +++ b/control/gui/power/20_ECAL_RPC_48V_Powercycle @@ -0,0 +1,14 @@ +#!/bin/bash + +export myvar=$(doyoureallywant.pl "to powercycle the RPC/ECAL LV?") +if [ $myvar == "256" ]; then exit; fi + +xterm -e bash --login -c ' + ssh hadaq@lxhadesdaqp " + source /home/hadaq/.bash_profile + echo \"Starting a RPC/ECAL power cycle...\" + cd /home/hadaq/hadesdaq/utils; + PERLLIB=/home/hadaq/EPICS/EPICS-3.15.6/base/lib/perl ./ECAL_Powercycle.pl; + sleep 5 + " +' diff --git a/control/gui/power/21_ECAL_Padiwa_Powercycle b/control/gui/power/21_ECAL_Padiwa_Powercycle new file mode 100755 index 0000000..f696d16 --- /dev/null +++ b/control/gui/power/21_ECAL_Padiwa_Powercycle @@ -0,0 +1,9 @@ +#!/bin/bash + +export myvar=$(doyoureallywant.pl "to make a ECAL Padiwa 5V powercycle? There will be no further warnings!") +if [ $myvar == "256" ]; then exit; fi + +xterm -e " +cd ../../../../hadesdaq/utils; +./ECAL_LV5_Powercycle.sh; +" diff --git a/control/gui/power/22_ECAL_Rack_Powercycle b/control/gui/power/22_ECAL_Rack_Powercycle new file mode 100755 index 0000000..09a4dcf --- /dev/null +++ b/control/gui/power/22_ECAL_Rack_Powercycle @@ -0,0 +1,9 @@ +#!/bin/bash + +export myvar=$(doyoureallywant.pl "to make a ECAL 5V Entrance Rack powercycle? There will be no further warnings!") +if [ $myvar == "256" ]; then exit; fi + +xterm -e " +cd ../../../../hadesdaq/utils; +./ECAL_5V_Entrance_Powercycle.sh +" diff --git a/control/gui/power/40_Start_Powercycle b/control/gui/power/40_Start_Powercycle index e49b61d..81ea82c 100755 --- a/control/gui/power/40_Start_Powercycle +++ b/control/gui/power/40_Start_Powercycle @@ -1,6 +1,6 @@ #!/bin/bash -export myvar=$(doyoureallywant.pl "to powercycle the RICH Fans?") +export myvar=$(doyoureallywant.pl "to powercycle the Start detector?") if [ $myvar == "256" ]; then exit; fi xterm -e " diff --git a/control/gui/power/50_MdcTofCentral_Powercycle b/control/gui/power/50_MdcTofCentral_Powercycle new file mode 100755 index 0000000..b658928 --- /dev/null +++ b/control/gui/power/50_MdcTofCentral_Powercycle @@ -0,0 +1,14 @@ +#!/bin/bash + +export myvar=$(doyoureallywant.pl "to powercycle the MDC/TOF/Central LV?") +if [ $myvar == "256" ]; then exit; fi + +xterm -e bash --login -c ' + ssh hadaq@lxhadesdaqp " + source /home/hadaq/.bash_profile + echo \"Starting a MDC/TOF/Central power cycle...\" + cd /home/hadaq/hadesdaq/utils; + PERLLIB=/home/hadaq/EPICS/EPICS-3.15.6/base/lib/perl ./MdcTofCentral_Powercycle.pl; + sleep 5 + " +' diff --git a/control/gui/power/90_HUBS_Powercycle b/control/gui/power/90_HUBS_Powercycle index 59b40e5..dabc474 100755 --- a/control/gui/power/90_HUBS_Powercycle +++ b/control/gui/power/90_HUBS_Powercycle @@ -1,11 +1,14 @@ #!/bin/bash - +#JAM 5-mar-2019 7:56 added missing perrlib environment. cannot test this during data taking, still to do export myvar=$(doyoureallywant.pl "to powercycle the Hubs and Rich Sensor Board?") if [ $myvar == "256" ]; then exit; fi -xterm -e " -echo 'Starting power cycle...' -cd ../../../../hadesdaq/utils; -./HUB_Powercycle.pl; -sleep 5 +xterm -e bash --login -c ' + ssh hadaq@lxhadesdaqp " + source /home/hadaq/.bash_profile + echo \"Starting a HUB-Power-Cycle...\" + cd /home/hadaq/hadesdaq/utils; + PERLLIB=/home/hadaq/EPICS/EPICS-3.15.6/base/lib/perl ./HUB_Powercycle.pl; + sleep 5 " +' diff --git a/control/gui/power/MDC_LV_Powercycle b/control/gui/power/MDC_LV_Powercycle index ced25ed..e2cb101 100755 --- a/control/gui/power/MDC_LV_Powercycle +++ b/control/gui/power/MDC_LV_Powercycle @@ -3,6 +3,7 @@ export myvar=$(doyoureallywant.pl "to make a MDC powercycle? There will be no further warnings!") if [ $myvar == "256" ]; then exit; fi + cd /home/hadaq/trbsoft/hadesdaq/control/mdcLVgui/ -/home/hadaq/trbsoft/hadesdaq/control/mdcLVgui/call_programs2.pl +PERL5LIB=. /home/hadaq/trbsoft/hadesdaq/control/mdcLVgui/call_programs2.pl diff --git a/control/gui/power/RPC_special_PwrCyc b/control/gui/power/RPC_special_PwrCyc index a2a4c91..a9790f6 100755 --- a/control/gui/power/RPC_special_PwrCyc +++ b/control/gui/power/RPC_special_PwrCyc @@ -1,13 +1,15 @@ #!/bin/bash -xterm -e " + + export myvar=$(doyoureallywant.pl 'to do a power cycle on RPC') if [ $myvar == '256' ]; then exit; fi -echo 'Sending power cycle request' -wget -O /dev/null --http-password kaese --http-user admin -d http://haepcp15/RESET.CGI?a=0\&bi=5\&t=0\&b=1 -sleep 5 -echo 'waiting a minute until boards are rebooted' -sleep 60 -echo 'Done' -sleep 5 +xterm -e " + echo 'Sending power cycle request' + wget -O /dev/null --http-password kaese --http-user admin -d http://haepcp15/RESET.CGI?a=0\&bi=5\&t=0\&b=1 + sleep 5 + echo 'waiting a minute until boards are rebooted' + sleep 60 + echo 'Done' + sleep 10 " diff --git a/control/mdcHVgui/Buttons2.pm b/control/mdcHVgui/Buttons2.pm index 1b78d68..6abae06 100755 --- a/control/mdcHVgui/Buttons2.pm +++ b/control/mdcHVgui/Buttons2.pm @@ -381,7 +381,8 @@ sub make_subroutine { # make subroutines #sub slot0Pressed { my $c = buttons->[0]; $c = "cd ../control; ./$c"; print "will execute: $c\n"; qx($c); } - my $str = qq|sub slot| . $i . qq|Pressed { my \$c = this->{self}->{ra_buttons}->[$i]; \$c = "cd $dir; ./\$c &"; print "will execute: \$c\n"; system(\$c); }|; + my $str = qq|sub slot| . $i . qq|Pressed { my \$s = this->{self}->{ra_buttons}->[$i]; my \$str="Powercycle in \$dir / \$s"; my \$c = "cd \$dir; control_gui_logger.sh MDC_HV \$str; ./\$s &"; print "going to execute: \$c\n"; system(\$c); }|; + # my $str = qq|sub slot| . $i . qq|Pressed { print "$i pressed\n"; }|; #system(\$c); }|; #print "sub: $str\n"; diff --git a/control/mdcHVgui/S1/Plane_1 b/control/mdcHVgui/S1/Plane_1 index f9933bf..2b76471 100755 --- a/control/mdcHVgui/S1/Plane_1 +++ b/control/mdcHVgui/S1/Plane_1 @@ -4,9 +4,9 @@ export myvar=$(doyoureallywant.pl "to do a HV ramping cycle") if [ $myvar == "256" ]; then exit; fi xterm -geometry 80x24 -bg orange -fg black -e bash --login -c ' - ssh -X hadaq@hadesdaq02 " + ssh -X hadaq@lxhadesdaqp " source /home/hadaq/.bashrc - echo \" Connected to hadesdaq02...\" + echo \" Connected to lxhadesdaqp...\" cd /home/hadaq/trbsoft/mdc/ ./mdc_ramping.pl 1 1 sleep 5 diff --git a/control/mdcHVgui/S1/Plane_2 b/control/mdcHVgui/S1/Plane_2 index 987f338..49f2f01 100755 --- a/control/mdcHVgui/S1/Plane_2 +++ b/control/mdcHVgui/S1/Plane_2 @@ -4,9 +4,9 @@ export myvar=$(doyoureallywant.pl "to do a HV ramping cycle") if [ $myvar == "256" ]; then exit; fi xterm -geometry 80x24 -bg orange -fg black -e bash --login -c ' - ssh -X hadaq@hadesdaq02 " + ssh -X hadaq@lxhadesdaqp " source /home/hadaq/.bashrc - echo \" Connected to hadesdaq02...\" + echo \" Connected to lxhadesdaqp...\" cd /home/hadaq/trbsoft/mdc/ ./mdc_ramping.pl 2 1 sleep 5 diff --git a/control/mdcHVgui/S1/Plane_3 b/control/mdcHVgui/S1/Plane_3 index 4b87a31..a9357dc 100755 --- a/control/mdcHVgui/S1/Plane_3 +++ b/control/mdcHVgui/S1/Plane_3 @@ -4,9 +4,9 @@ export myvar=$(doyoureallywant.pl "to do a HV ramping cycle") if [ $myvar == "256" ]; then exit; fi xterm -geometry 80x24 -bg orange -fg black -e bash --login -c ' - ssh -X hadaq@hadesdaq02 " + ssh -X hadaq@lxhadesdaqp " source /home/hadaq/.bashrc - echo \" Connected to hadesdaq02...\" + echo \" Connected to lxhadesdaqp...\" cd /home/hadaq/trbsoft/mdc/ ./mdc_ramping.pl 3 1 sleep 5 diff --git a/control/mdcHVgui/S1/Plane_4 b/control/mdcHVgui/S1/Plane_4 index ff61089..7531a71 100755 --- a/control/mdcHVgui/S1/Plane_4 +++ b/control/mdcHVgui/S1/Plane_4 @@ -4,9 +4,9 @@ export myvar=$(doyoureallywant.pl "to do a HV ramping cycle") if [ $myvar == "256" ]; then exit; fi xterm -geometry 80x24 -bg orange -fg black -e bash --login -c ' - ssh -X hadaq@hadesdaq02 " + ssh -X hadaq@lxhadesdaqp " source /home/hadaq/.bashrc - echo \" Connected to hadesdaq02...\" + echo \" Connected to lxhadesdaqp...\" cd /home/hadaq/trbsoft/mdc/ ./mdc_ramping.pl 4 1 sleep 5 diff --git a/control/mdcHVgui/S2/Plane_1 b/control/mdcHVgui/S2/Plane_1 index fba21e0..f5d566c 100755 --- a/control/mdcHVgui/S2/Plane_1 +++ b/control/mdcHVgui/S2/Plane_1 @@ -4,9 +4,9 @@ export myvar=$(doyoureallywant.pl "to do a HV ramping cycle") if [ $myvar == "256" ]; then exit; fi xterm -geometry 80x24 -bg orange -fg black -e bash --login -c ' - ssh -X hadaq@hadesdaq02 " + ssh -X hadaq@lxhadesdaqp " source /home/hadaq/.bashrc - echo \" Connected to hadesdaq02...\" + echo \" Connected to lxhadesdaqp...\" cd /home/hadaq/trbsoft/mdc/ ./mdc_ramping.pl 1 2 sleep 5 diff --git a/control/mdcHVgui/S2/Plane_2 b/control/mdcHVgui/S2/Plane_2 index b9a8d22..fe623f6 100755 --- a/control/mdcHVgui/S2/Plane_2 +++ b/control/mdcHVgui/S2/Plane_2 @@ -4,9 +4,9 @@ export myvar=$(doyoureallywant.pl "to do a HV ramping cycle") if [ $myvar == "256" ]; then exit; fi xterm -geometry 80x24 -bg orange -fg black -e bash --login -c ' - ssh -X hadaq@hadesdaq02 " + ssh -X hadaq@lxhadesdaqp " source /home/hadaq/.bashrc - echo \" Connected to hadesdaq02...\" + echo \" Connected to lxhadesdaqp...\" cd /home/hadaq/trbsoft/mdc/ ./mdc_ramping.pl 2 2 sleep 5 diff --git a/control/mdcHVgui/S2/Plane_3 b/control/mdcHVgui/S2/Plane_3 index 9b68358..1cd3416 100755 --- a/control/mdcHVgui/S2/Plane_3 +++ b/control/mdcHVgui/S2/Plane_3 @@ -4,9 +4,9 @@ export myvar=$(doyoureallywant.pl "to do a HV ramping cycle") if [ $myvar == "256" ]; then exit; fi xterm -geometry 80x24 -bg orange -fg black -e bash --login -c ' - ssh -X hadaq@hadesdaq02 " + ssh -X hadaq@lxhadesdaqp " source /home/hadaq/.bashrc - echo \" Connected to hadesdaq02...\" + echo \" Connected to lxhadesdaqp...\" cd /home/hadaq/trbsoft/mdc/ ./mdc_ramping.pl 3 2 sleep 5 diff --git a/control/mdcHVgui/S2/Plane_4 b/control/mdcHVgui/S2/Plane_4 index b6c1cbd..885f163 100755 --- a/control/mdcHVgui/S2/Plane_4 +++ b/control/mdcHVgui/S2/Plane_4 @@ -4,9 +4,9 @@ export myvar=$(doyoureallywant.pl "to do a HV ramping cycle") if [ $myvar == "256" ]; then exit; fi xterm -geometry 80x24 -bg orange -fg black -e bash --login -c ' - ssh -X hadaq@hadesdaq02 " + ssh -X hadaq@lxhadesdaqp " source /home/hadaq/.bashrc - echo \" Connected to hadesdaq02...\" + echo \" Connected to lxhadesdaqp...\" cd /home/hadaq/trbsoft/mdc/ ./mdc_ramping.pl 4 2 sleep 5 diff --git a/control/mdcHVgui/S3/Plane_1 b/control/mdcHVgui/S3/Plane_1 index d3a8876..3a8e15d 100755 --- a/control/mdcHVgui/S3/Plane_1 +++ b/control/mdcHVgui/S3/Plane_1 @@ -4,9 +4,9 @@ export myvar=$(doyoureallywant.pl "to do a HV ramping cycle") if [ $myvar == "256" ]; then exit; fi xterm -geometry 80x24 -bg orange -fg black -e bash --login -c ' - ssh -X hadaq@hadesdaq02 " + ssh -X hadaq@lxhadesdaqp " source /home/hadaq/.bashrc - echo \" Connected to hadesdaq02...\" + echo \" Connected to lxhadesdaqp...\" cd /home/hadaq/trbsoft/mdc/ ./mdc_ramping.pl 1 3 sleep 5 diff --git a/control/mdcHVgui/S3/Plane_2 b/control/mdcHVgui/S3/Plane_2 index b282f91..3f66eb4 100755 --- a/control/mdcHVgui/S3/Plane_2 +++ b/control/mdcHVgui/S3/Plane_2 @@ -4,9 +4,9 @@ export myvar=$(doyoureallywant.pl "to do a HV ramping cycle") if [ $myvar == "256" ]; then exit; fi xterm -geometry 80x24 -bg orange -fg black -e bash --login -c ' - ssh -X hadaq@hadesdaq02 " + ssh -X hadaq@lxhadesdaqp " source /home/hadaq/.bashrc - echo \" Connected to hadesdaq02...\" + echo \" Connected to lxhadesdaqp...\" cd /home/hadaq/trbsoft/mdc/ ./mdc_ramping.pl 2 3 sleep 5 diff --git a/control/mdcHVgui/S3/Plane_3 b/control/mdcHVgui/S3/Plane_3 index f7b96ef..8b371fa 100755 --- a/control/mdcHVgui/S3/Plane_3 +++ b/control/mdcHVgui/S3/Plane_3 @@ -4,9 +4,9 @@ export myvar=$(doyoureallywant.pl "to do a HV ramping cycle") if [ $myvar == "256" ]; then exit; fi xterm -geometry 80x24 -bg orange -fg black -e bash --login -c ' - ssh -X hadaq@hadesdaq02 " + ssh -X hadaq@lxhadesdaqp " source /home/hadaq/.bashrc - echo \" Connected to hadesdaq02...\" + echo \" Connected to lxhadesdaqp...\" cd /home/hadaq/trbsoft/mdc/ ./mdc_ramping.pl 3 3 sleep 5 diff --git a/control/mdcHVgui/S3/Plane_4 b/control/mdcHVgui/S3/Plane_4 index 2148e5e..7263a0c 100755 --- a/control/mdcHVgui/S3/Plane_4 +++ b/control/mdcHVgui/S3/Plane_4 @@ -4,9 +4,9 @@ export myvar=$(doyoureallywant.pl "to do a HV ramping cycle") if [ $myvar == "256" ]; then exit; fi xterm -geometry 80x24 -bg orange -fg black -e bash --login -c ' - ssh -X hadaq@hadesdaq02 " + ssh -X hadaq@lxhadesdaqp " source /home/hadaq/.bashrc - echo \" Connected to hadesdaq02...\" + echo \" Connected to lxhadesdaqp...\" cd /home/hadaq/trbsoft/mdc/ ./mdc_ramping.pl 4 3 sleep 5 diff --git a/control/mdcHVgui/S4/Plane_1 b/control/mdcHVgui/S4/Plane_1 index 1a89d0f..ceec487 100755 --- a/control/mdcHVgui/S4/Plane_1 +++ b/control/mdcHVgui/S4/Plane_1 @@ -4,9 +4,9 @@ export myvar=$(doyoureallywant.pl "to do a HV ramping cycle") if [ $myvar == "256" ]; then exit; fi xterm -geometry 80x24 -bg orange -fg black -e bash --login -c ' - ssh -X hadaq@hadesdaq02 " + ssh -X hadaq@lxhadesdaqp " source /home/hadaq/.bashrc - echo \" Connected to hadesdaq02...\" + echo \" Connected to lxhadesdaqp...\" cd /home/hadaq/trbsoft/mdc/ ./mdc_ramping.pl 1 4 sleep 5 diff --git a/control/mdcHVgui/S4/Plane_2 b/control/mdcHVgui/S4/Plane_2 index dd7e0a4..bee78d6 100755 --- a/control/mdcHVgui/S4/Plane_2 +++ b/control/mdcHVgui/S4/Plane_2 @@ -4,9 +4,9 @@ export myvar=$(doyoureallywant.pl "to do a HV ramping cycle") if [ $myvar == "256" ]; then exit; fi xterm -geometry 80x24 -bg orange -fg black -e bash --login -c ' - ssh -X hadaq@hadesdaq02 " + ssh -X hadaq@lxhadesdaqp " source /home/hadaq/.bashrc - echo \" Connected to hadesdaq02...\" + echo \" Connected to lxhadesdaqp...\" cd /home/hadaq/trbsoft/mdc/ ./mdc_ramping.pl 2 4 sleep 5 diff --git a/control/mdcHVgui/S4/Plane_3 b/control/mdcHVgui/S4/Plane_3 index c71eef6..1016b03 100755 --- a/control/mdcHVgui/S4/Plane_3 +++ b/control/mdcHVgui/S4/Plane_3 @@ -4,9 +4,9 @@ export myvar=$(doyoureallywant.pl "to do a HV ramping cycle") if [ $myvar == "256" ]; then exit; fi xterm -geometry 80x24 -bg orange -fg black -e bash --login -c ' - ssh -X hadaq@hadesdaq02 " + ssh -X hadaq@lxhadesdaqp " source /home/hadaq/.bashrc - echo \" Connected to hadesdaq02...\" + echo \" Connected to lxhadesdaqp...\" cd /home/hadaq/trbsoft/mdc/ ./mdc_ramping.pl 3 4 sleep 5 diff --git a/control/mdcHVgui/S4/Plane_4 b/control/mdcHVgui/S4/Plane_4 index ff91576..203c019 100755 --- a/control/mdcHVgui/S4/Plane_4 +++ b/control/mdcHVgui/S4/Plane_4 @@ -4,9 +4,9 @@ export myvar=$(doyoureallywant.pl "to do a HV ramping cycle") if [ $myvar == "256" ]; then exit; fi xterm -geometry 80x24 -bg orange -fg black -e bash --login -c ' - ssh -X hadaq@hadesdaq02 " + ssh -X hadaq@lxhadesdaqp " source /home/hadaq/.bashrc - echo \" Connected to hadesdaq02...\" + echo \" Connected to lxhadesdaqp...\" cd /home/hadaq/trbsoft/mdc/ ./mdc_ramping.pl 4 4 sleep 5 diff --git a/control/mdcHVgui/S5/Plane_1 b/control/mdcHVgui/S5/Plane_1 index c11bd40..507701d 100755 --- a/control/mdcHVgui/S5/Plane_1 +++ b/control/mdcHVgui/S5/Plane_1 @@ -4,9 +4,9 @@ export myvar=$(doyoureallywant.pl "to do a HV ramping cycle") if [ $myvar == "256" ]; then exit; fi xterm -geometry 80x24 -bg orange -fg black -e bash --login -c ' - ssh -X hadaq@hadesdaq02 " + ssh -X hadaq@lxhadesdaqp " source /home/hadaq/.bashrc - echo \" Connected to hadesdaq02...\" + echo \" Connected to lxhadesdaqp...\" cd /home/hadaq/trbsoft/mdc/ ./mdc_ramping.pl 1 5 sleep 5 diff --git a/control/mdcHVgui/S5/Plane_2 b/control/mdcHVgui/S5/Plane_2 index 34caeb5..f30b970 100755 --- a/control/mdcHVgui/S5/Plane_2 +++ b/control/mdcHVgui/S5/Plane_2 @@ -4,9 +4,9 @@ export myvar=$(doyoureallywant.pl "to do a HV ramping cycle") if [ $myvar == "256" ]; then exit; fi xterm -geometry 80x24 -bg orange -fg black -e bash --login -c ' - ssh -X hadaq@hadesdaq02 " + ssh -X hadaq@lxhadesdaqp " source /home/hadaq/.bashrc - echo \" Connected to hadesdaq02...\" + echo \" Connected to lxhadesdaqp...\" cd /home/hadaq/trbsoft/mdc/ ./mdc_ramping.pl 2 5 sleep 5 diff --git a/control/mdcHVgui/S5/Plane_3 b/control/mdcHVgui/S5/Plane_3 index 195d1c5..3984bea 100755 --- a/control/mdcHVgui/S5/Plane_3 +++ b/control/mdcHVgui/S5/Plane_3 @@ -4,9 +4,9 @@ export myvar=$(doyoureallywant.pl "to do a HV ramping cycle") if [ $myvar == "256" ]; then exit; fi xterm -geometry 80x24 -bg orange -fg black -e bash --login -c ' - ssh -X hadaq@hadesdaq02 " + ssh -X hadaq@lxhadesdaqp " source /home/hadaq/.bashrc - echo \" Connected to hadesdaq02...\" + echo \" Connected to lxhadesdaqp...\" cd /home/hadaq/trbsoft/mdc/ ./mdc_ramping.pl 3 5 sleep 5 diff --git a/control/mdcHVgui/S5/Plane_4 b/control/mdcHVgui/S5/Plane_4 index 6afbb24..87e0cc2 100755 --- a/control/mdcHVgui/S5/Plane_4 +++ b/control/mdcHVgui/S5/Plane_4 @@ -4,9 +4,9 @@ export myvar=$(doyoureallywant.pl "to do a HV ramping cycle") if [ $myvar == "256" ]; then exit; fi xterm -geometry 80x24 -bg orange -fg black -e bash --login -c ' - ssh -X hadaq@hadesdaq02 " + ssh -X hadaq@lxhadesdaqp " source /home/hadaq/.bashrc - echo \" Connected to hadesdaq02...\" + echo \" Connected to lxhadesdaqp...\" cd /home/hadaq/trbsoft/mdc/ ./mdc_ramping.pl 4 5 sleep 5 diff --git a/control/mdcHVgui/S6/Plane_1 b/control/mdcHVgui/S6/Plane_1 index f444d4c..368cb1e 100755 --- a/control/mdcHVgui/S6/Plane_1 +++ b/control/mdcHVgui/S6/Plane_1 @@ -4,9 +4,9 @@ export myvar=$(doyoureallywant.pl "to do a HV ramping cycle") if [ $myvar == "256" ]; then exit; fi xterm -geometry 80x24 -bg orange -fg black -e bash --login -c ' - ssh -X hadaq@hadesdaq02 " + ssh -X hadaq@lxhadesdaqp " source /home/hadaq/.bashrc - echo \" Connected to hadesdaq02...\" + echo \" Connected to lxhadesdaqp...\" cd /home/hadaq/trbsoft/mdc/ ./mdc_ramping.pl 1 6 sleep 5 diff --git a/control/mdcHVgui/S6/Plane_2 b/control/mdcHVgui/S6/Plane_2 index e95cc9e..ed31ae3 100755 --- a/control/mdcHVgui/S6/Plane_2 +++ b/control/mdcHVgui/S6/Plane_2 @@ -4,9 +4,9 @@ export myvar=$(doyoureallywant.pl "to do a HV ramping cycle") if [ $myvar == "256" ]; then exit; fi xterm -geometry 80x24 -bg orange -fg black -e bash --login -c ' - ssh -X hadaq@hadesdaq02 " + ssh -X hadaq@lxhadesdaqp " source /home/hadaq/.bashrc - echo \" Connected to hadesdaq02...\" + echo \" Connected to lxhadesdaqp...\" cd /home/hadaq/trbsoft/mdc/ ./mdc_ramping.pl 2 6 sleep 5 diff --git a/control/mdcHVgui/S6/Plane_3 b/control/mdcHVgui/S6/Plane_3 index 4873ff0..f4fa287 100755 --- a/control/mdcHVgui/S6/Plane_3 +++ b/control/mdcHVgui/S6/Plane_3 @@ -4,9 +4,9 @@ export myvar=$(doyoureallywant.pl "to do a HV ramping cycle") if [ $myvar == "256" ]; then exit; fi xterm -geometry 80x24 -bg orange -fg black -e bash --login -c ' - ssh -X hadaq@hadesdaq02 " + ssh -X hadaq@lxhadesdaqp " source /home/hadaq/.bashrc - echo \" Connected to hadesdaq02...\" + echo \" Connected to lxhadesdaqp...\" cd /home/hadaq/trbsoft/mdc/ ./mdc_ramping.pl 3 6 sleep 5 diff --git a/control/mdcHVgui/S6/Plane_4 b/control/mdcHVgui/S6/Plane_4 index a1d3f6b..7b7d825 100755 --- a/control/mdcHVgui/S6/Plane_4 +++ b/control/mdcHVgui/S6/Plane_4 @@ -4,9 +4,9 @@ export myvar=$(doyoureallywant.pl "to do a HV ramping cycle") if [ $myvar == "256" ]; then exit; fi xterm -geometry 80x24 -bg orange -fg black -e bash --login -c ' - ssh -X hadaq@hadesdaq02 " + ssh -X hadaq@lxhadesdaqp " source /home/hadaq/.bashrc - echo \" Connected to hadesdaq02...\" + echo \" Connected to lxhadesdaqp...\" cd /home/hadaq/trbsoft/mdc/ ./mdc_ramping.pl 4 6 sleep 5 diff --git a/control/mdcLVgui/Buttons2.pm b/control/mdcLVgui/Buttons2.pm index 9bd65f0..9df0ccb 100755 --- a/control/mdcLVgui/Buttons2.pm +++ b/control/mdcLVgui/Buttons2.pm @@ -380,8 +380,9 @@ sub make_subroutine { (my $i, my $dir) = @_; # make subroutines #sub slot0Pressed { my $c = buttons->[0]; $c = "cd ../control; ./$c"; print "will execute: $c\n"; qx($c); } - - my $str = qq|sub slot| . $i . qq|Pressed { my \$c = this->{self}->{ra_buttons}->[$i]; \$c = "cd $dir; ./\$c &"; print "will execute: \$c\n"; system('logger -p local1.info -t DAQ MdcLV \\ Powercycle in '.$dir.'/'.this->{self}->{ra_buttons}->[$i]); system(\$c); }|; + + my $str = qq|sub slot| . $i . qq|Pressed { my \$s = this->{self}->{ra_buttons}->[$i]; my \$str="Powercycle in \$dir / \$s"; my \$c = "cd \$dir; control_gui_logger.sh MDC_LV \$str; ./\$s &"; print "going to execute: \$c\n"; system(\$c); }|; + # my $str = qq|sub slot| . $i . qq|Pressed { print "$i pressed\n"; }|; #system(\$c); }|; #print "sub: $str\n"; diff --git a/control/mdcLVgui/S0/200x b/control/mdcLVgui/S0/200x index 5804121..249e643 100755 --- a/control/mdcLVgui/S0/200x +++ b/control/mdcLVgui/S0/200x @@ -1,4 +1,4 @@ #!/bin/bash command_client.pl -e etraxp204 -c "/home/hadaq/bin/writetty.sh 'OWDS 3AA5E702000000A4 1'" sleep 5 -command_client.pl -e etraxp204 -c "/home/hadaq/bin/writetty.sh 'OWDS 3AA5E702000000A4 0'" \ No newline at end of file +command_client.pl -e etraxp204 -c "/home/hadaq/bin/writetty.sh 'OWDS 3AA5E702000000A4 0'" diff --git a/control/qa/Buttons2.pm b/control/qa/Buttons2.pm index e56e84f..7773799 100644 --- a/control/qa/Buttons2.pm +++ b/control/qa/Buttons2.pm @@ -324,7 +324,7 @@ sub make_subroutine { # make subroutines #sub slot0Pressed { my $c = buttons->[0]; $c = "cd ../control; ./$c"; print "will execute: $c\n"; qx($c); } - my $str = qq|sub slot| . $i . qq|Pressed { my \$c = this->{self}->{ra_buttons}->[$i]; \$c = "cd $dir; ./\$c &"; print "will execute: \$c\n"; system('logger -p local1.info -t DAQ MdcLV \\ Powercycle in '.$dir.'/'.this->{self}->{ra_buttons}->[$i]); system(\$c); }|; + my $str = qq|sub slot| . $i . qq|Pressed { my \$s = this->{self}->{ra_buttons}->[$i]; my \$str="\$dir/\$s"; my \$c = "cd \$dir; control_gui_logger.sh QA \$str; ./\$s &"; print "will execute: \$c\n"; system(\$c); }|; # my $str = qq|sub slot| . $i . qq|Pressed { print "$i pressed\n"; }|; #system(\$c); }|; #print "sub: $str\n"; diff --git a/control/qa/QA/10_Start_OnlineQA.png b/control/qa/QA/10_Start_OnlineQA.png new file mode 100644 index 0000000000000000000000000000000000000000..7b3568d9da959453f9338657c724fea39e878677 GIT binary patch literal 2211 zcmV;U2weAxP)(_`g8%^e{{R4h=>PzAFaQARU;qF*m;eA5Z<1fd zMgRZ^DM>^@RCwCdnp&&DfwzH*QTXSa4(fZapd#!yLVrJaTP2eVPH$8wp{lZ|jeJUa8NI4gADR~sG zKL$YrBEVNUF#9m|2$-dw_xjf5yn(wsncVEjOp9XKAlZu+o{`l^zoLt9m#J5ru=FLz zB4%?tk>VOg5#m=XYh? zkH0My)@q`L46Oy0Q41j=APN8gnB6L=GEKf3+LCdv>`L0FF+}YhkwDYIkkRmRK&$E| z5@4w7k3h+HjtqDzQ=Q1Q?@2j5k7}Z>Dr9~UrgjS$K72U>PYpxK9w>IkfysnMG3cTO zmfi*;6RzxCm3B_<8_oUWC(*#N-z^Dm{G}nH{gS;K13;j{>(ukrfy_Jmfy$K?!5z>< z9JY53qt0va)i4&M;=Amc?Usb zE#kqi!S>HLT}d7JW6WyWvaE9Z<3yVLgjtBDNRST2QtKIg`^Axb_mfM)JD_Vd7|a|% z%6=D$6@VZZ1{7;hEJ})D00=@ckakXDF!Kixg;5>ZiKH|5;|qzm4oY?{LBiH!3B1X;5= z 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 U{fjKNmH+?%07*qoM6N<$f=w+OW&i*H literal 0 HcmV?d00001 diff --git a/control/qa/QA/15_Vertex_Reconstruction.png b/control/qa/QA/15_Vertex_Reconstruction.png new file mode 100644 index 0000000000000000000000000000000000000000..ea3434985c33da5a65891a939459926487443d4a GIT binary patch literal 16532 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 /dev/FTDI_USB_Serial_Converter_FTGZLM92; timeout 2 cat /dev/FTDI_USB_Serial_Converter_FTGZLM92' +echo 'switching off...' +echo 'OUTPUT:STATE CH1,OFF' | ssh odroid6 'cat > /dev/FTDI_USB_Serial_Converter_FTGZLM92' +sleep 2 +echo -n 'current status: ' +echo 'OUTPUT:STATE? CH1' | ssh odroid6 'cat > /dev/FTDI_USB_Serial_Converter_FTGZLM92; timeout 2 cat /dev/FTDI_USB_Serial_Converter_FTGZLM92' + +echo 'switching on...' +echo 'OUTPUT:STATE CH1,ON' | ssh odroid6 'cat > /dev/FTDI_USB_Serial_Converter_FTGZLM92' +echo -n 'current status: ' +echo 'OUTPUT:STATE? CH1' | ssh odroid6 'cat > /dev/FTDI_USB_Serial_Converter_FTGZLM92; timeout 2 cat /dev/FTDI_USB_Serial_Converter_FTGZLM92' + +sleep 5 diff --git a/utils/ECAL_LV5_Powercycle.sh b/utils/ECAL_LV5_Powercycle.sh new file mode 100755 index 0000000..1279177 --- /dev/null +++ b/utils/ECAL_LV5_Powercycle.sh @@ -0,0 +1,21 @@ +#!/bin/bash + +echo 'Sending power cycle request' +echo -n 'current status: ' +echo 'OUTPUT:GENERAL ?' | ssh odroid5 'cat > /dev/HAMEG_HAMEG_HO720_100030505473; timeout 1 cat /dev/HAMEG_HAMEG_HO720_100030505473' +echo 'switching off...' +echo 'OUTPUT:GENERAL OFF' | ssh odroid4 'cat > /dev/HAMEG_HAMEG_HO720_100030271763' +echo 'OUTPUT:GENERAL OFF' | ssh odroid5 'cat > /dev/HAMEG_HAMEG_HO720_100030505473' +echo 'OUTPUT:GENERAL OFF' | ssh odroid6 'cat > /dev/HAMEG_HAMEG_HO720_100030805647' +sleep 2 +echo -n 'current status: ' +echo 'OUTPUT:GENERAL ?' | ssh odroid5 'cat > /dev/HAMEG_HAMEG_HO720_100030505473; timeout 1 cat /dev/HAMEG_HAMEG_HO720_100030505473' + +echo 'switching on...' +echo 'OUTPUT:GENERAL ON' | ssh odroid4 'cat > /dev/HAMEG_HAMEG_HO720_100030271763' +echo 'OUTPUT:GENERAL ON' | ssh odroid5 'cat > /dev/HAMEG_HAMEG_HO720_100030505473' +echo 'OUTPUT:GENERAL ON' | ssh odroid6 'cat > /dev/HAMEG_HAMEG_HO720_100030805647' +echo -n 'current status: ' +echo 'OUTPUT:GENERAL ?' | ssh odroid5 'cat > /dev/HAMEG_HAMEG_HO720_100030505473; timeout 1 cat /dev/HAMEG_HAMEG_HO720_100030505473' + +sleep 5 diff --git a/utils/ECAL_Powercycle.pl b/utils/ECAL_Powercycle.pl new file mode 100755 index 0000000..6ad2d1d --- /dev/null +++ b/utils/ECAL_Powercycle.pl @@ -0,0 +1,17 @@ +#!/usr/bin/perl -w + +use strict; +use warnings; +use lib "../nettools/"; +use Perl2Epics; +use Data::Dumper; + +print "Connect..\n"; +my $s = "HAD:RPC:PS:11:SETONOFF"; +Perl2Epics::Connect("ECALLV_Power",$s); + +Perl2Epics::Put("ECALLV_Power",1); #Off +my $data = Perl2Epics::GetAll(); +print $data->{"ECALLV_Power"}->{val}."\n"; +sleep 8; +Perl2Epics::Put("ECALLV_Power",0); #On diff --git a/utils/HMP_Powersupply.pl b/utils/HMP_Powersupply.pl new file mode 100755 index 0000000..94615ed --- /dev/null +++ b/utils/HMP_Powersupply.pl @@ -0,0 +1,116 @@ +#!/usr/bin/perl -w + +use strict; +use warnings; +# use Device::SerialPort; +use IO::Socket; +use IO::Handle; +use feature 'state'; +use URI::Escape; +use Time::HiRes qw( usleep); +use POSIX qw/floor ceil strftime/; +use Fcntl; +use Storable qw(lock_store lock_retrieve); +use JSON::XS; + + +my @new_command = split('&',$ARGV[0]); +my $ser_dev = "IP10.0.0.2";#shift(@new_command); +my $ser_type = "HMP";#shift(@new_command); +my $ser_speed = "5025";#shift(@new_command); #speed or port number + +if (!defined $ser_dev || !defined $ser_type || !defined $ser_speed) { + exit 0; + } + + +my $port; +my $isIP = 0; +my $cnt = 0; +my $isRemote = undef; + +## Load stored values +#my $file = $ser_dev; +# $file =~ s/\W//g; +# $file = "/dev/shm/pwrsup-".$file.".dump"; +#my $db; +# if(-e $file && -r $file) { +# $db = lock_retrieve($file); +# } + + +if($ser_dev =~ /^IP(.*)/) { + $ser_dev = $1; + $isIP = 1; + } + +print HMP_ethernet() if (($ser_type eq "HMP" or $ser_type eq "HMC") && $isIP == 1); + + + +sub HMP_ethernet { + print strftime("%H:%M:%S &", localtime()); + my $data; + my $JSONcnt=0; + my $port = IO::Socket::INET->new(PeerAddr => $ser_dev, PeerPort => $ser_speed, Proto => "tcp", Type => +SOCK_STREAM, Timeout => 1) + or (print("Device not found") && return); + + #$data->{time} = strftime("%H:%M:%S", localtime()); + while ( my $command = shift(@new_command) ) { + $command = uri_unescape($command); + #print $command."\n"; + my $x = getValue($port,$command,$cnt++); + $x =~ s/\&//; + print $x."&" if $command =~ /\?/; + } + return; +} + + +sub serial_rw { + my ($fh, $command,$forceread) = @_; + my $x = ""; + if ($ser_type eq 'PSP') {$command .= "\r";} else {$command .= "\n";} + print $fh "$command"; +# print $command; + if($ser_type eq 'PWRSW' || $forceread || $command =~ /\?/) { + for my $i (0..500) { + $x .= <$fh>; + if($x && ($x =~ /\n/ || $x =~ /\r/) ) { + chomp $x; + last; + } + usleep(1000); + } + } + else { + usleep(1000); + } + return $x; + } + + +sub getValue { + my ($fh,$cmd,$cnt,$forceread) = @_; +# if (0 && defined $db->{$cmd.$cnt}{tim} && $db->{$cmd.$cnt}{tim} > time()-10) { +# return $db->{$cmd.$cnt}{val}; +# } +# else { + my $val = serial_rw($fh,$cmd,$forceread); + # addDB($cmd.$cnt,$val); + return $val; + # } + } + + +#sub addDB { +# my ($cmd,$val) = @_; +# $db->{$cmd}{val} = $val; +# $db->{$cmd}{tim} = time(); +# } + +#lock_store($db,$file); +print "\n"; + +exit 1; diff --git a/utils/HUB_Powercycle.pl b/utils/HUB_Powercycle.pl new file mode 100755 index 0000000..dcbacb1 --- /dev/null +++ b/utils/HUB_Powercycle.pl @@ -0,0 +1,18 @@ +#!/usr/bin/perl -w + +use strict; +use warnings; +use lib "../nettools/"; +use Perl2Epics; +use Data::Dumper; + +print "Connect..\n"; +my $s = "HAD:RICH:PS:16:SETONOFF"; +Perl2Epics::Connect("RICHLV_PowerOnOff",$s); + + +Perl2Epics::Put("RICHLV_PowerOnOff",1); +Perl2Epics::GetAll(); + +sleep 8; +Perl2Epics::Put("RICHLV_PowerOnOff",0); diff --git a/utils/MdcTofCentral_Powercycle.pl b/utils/MdcTofCentral_Powercycle.pl new file mode 100755 index 0000000..d965ac2 --- /dev/null +++ b/utils/MdcTofCentral_Powercycle.pl @@ -0,0 +1,17 @@ +#!/usr/bin/perl -w + +use strict; +use warnings; +use lib "../nettools/"; +use Perl2Epics; +use Data::Dumper; + +print "Connect..\n"; +my $s = "HAD:RPC:PS:03:SETONOFF"; +Perl2Epics::Connect("MDCTOFCENTRLV_Power",$s); + +Perl2Epics::Put("MDCTOFCENTRLV_Power",1); +my $data = Perl2Epics::GetAll(); +print $data->{"MDCTOFCENTRLV_Power"}->{val}."\n"; +sleep 8; +Perl2Epics::Put("MDCTOFCENTRLV_Power",0); diff --git a/utils/RICH_Fan_Powercycle.sh b/utils/RICH_Fan_Powercycle.sh new file mode 100755 index 0000000..9c5a816 --- /dev/null +++ b/utils/RICH_Fan_Powercycle.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +odroid="odroid1"; +devicename="/dev/HAMEG_HAMEG_HO720_100030280929"; + +echo "Sending power cycle request to $odroid @ $devicename" + +echo -n 'Current Status: ' +echo 'OUTPUT:GENERAL ?' | ssh $odroid "cat > $devicename; timeout 2 cat $devicename" +echo 'Switching Off...' +echo 'OUTPUT:GENERAL OFF' | ssh $odroid "cat > $devicename; timeout 2 cat $devicename" +echo -n 'Current Status: ' +echo 'OUTPUT:GENERAL ?' | ssh $odroid "cat > $devicename; timeout 2 cat $devicename" +echo 'Switching ON...' +echo 'OUTPUT:GENERAL ON' | ssh $odroid "cat > $devicename; timeout 2 cat $devicename" +echo -n 'Current Status: ' +echo 'OUTPUT:GENERAL ?' | ssh $odroid "cat > $devicename; timeout 2 cat $devicename" diff --git a/utils/RICH_HV_Switch.sh b/utils/RICH_HV_Switch.sh new file mode 100755 index 0000000..a6b7b81 --- /dev/null +++ b/utils/RICH_HV_Switch.sh @@ -0,0 +1,8 @@ +#!/bin/bash +first_input=$1 +#shift +. epics -- +/home/hadaq/hadesdaq/richhv/rich700/setCrate.sh 1 +/home/hadaq/hadesdaq/richhv/rich700/setHV.sh $first_input +/home/hadaq/hadesdaq/richhv/rich700/setHVon_off.sh $first_input 2 +#~/trbsoft/hadesdaq/richhv/rich700/infoHV.sh $1 diff --git a/utils/RICH_Powercycle.pl b/utils/RICH_Powercycle.pl new file mode 100755 index 0000000..7973c48 --- /dev/null +++ b/utils/RICH_Powercycle.pl @@ -0,0 +1,20 @@ +#!/usr/bin/perl -w + +use strict; +use warnings; +use lib "../nettools/"; +use Perl2Epics; +use Data::Dumper; + +print "Connect..\n"; +my $s = "HAD:RICH:PS:poweron"; +Perl2Epics::Connect("RICHLV_PowerOn",$s); + +$s = "HAD:RICH:PS:poweroff"; +Perl2Epics::Connect("RICHLV_PowerOff",$s); + +Perl2Epics::Put("RICHLV_PowerOff",1); +Perl2Epics::GetAll(); + +sleep 8; +Perl2Epics::Put("RICHLV_PowerOn",1); diff --git a/utils/RICH_Thr_Call.sh b/utils/RICH_Thr_Call.sh new file mode 100755 index 0000000..84683a5 --- /dev/null +++ b/utils/RICH_Thr_Call.sh @@ -0,0 +1,4 @@ +#!/bin/bash +cd /home/hadaq/hadesdaq/rich/trb_dirich_threshold +. ./setLD +./HADESthreshscan_v1 "$@" diff --git a/utils/control_gui_logger.sh b/utils/control_gui_logger.sh new file mode 100755 index 0000000..56286a9 --- /dev/null +++ b/utils/control_gui_logger.sh @@ -0,0 +1,11 @@ +#!/usr/bin/perl + +use warnings; +use strict; + +my $str = join " ", @ARGV[1..$#ARGV]; +my $command = qq|logger -p local1.info -t "DAQ" "$ARGV[0] $str"|; +qx($command); + +exit; + diff --git a/utils/mdc_lv.pl b/utils/mdc_lv.pl new file mode 100755 index 0000000..38bf807 --- /dev/null +++ b/utils/mdc_lv.pl @@ -0,0 +1,144 @@ +#!/usr/bin/perl -w + +use Data::Dumper; + +my $numArg = $#ARGV +1; +my $LastArg = 0; +my @Sector; +my @Plane; + +my $DEBUGLEVEL = 1; +my $DoAll = 0; +my $Powercycle = 2; # 0-Off; 1-On, 2-Cycle +my $LV = [ + ["3AA5E702000000A4","3A14E3020000008B","3A5CDB02000000E5","3ABEF0020000002A"], #S0; 200x,210X,220X,230X 1 + ["3AA5E702000000A4","3A14E3020000008B","3A5CDB02000000E5","3ABEF0020000002A"], #S1; 201x,211X,221X,231X 2 + ["3A11DA0200000017","3A3AD90200000017","3A05E5020000007B","3A53E602000000A9"], #S2; 202x,212X,222X,232X 1 + ["3A11DA0200000017","3A3AD90200000017","3A05E5020000007B","3A53E602000000A9"], #S3; 203x,213X,223X,233X 2 + ["3A6EE302000000DC","3A6FDA020000009C","3A1FF4020000005E","3AF6DB0200000076"], #S4; 204x,214X,224X,234X 1 + ["3A6EE302000000DC","3A6FDA020000009C","3A1FF4020000005E","3AF6DB0200000076"] #S5; 205x,215X,225X,235X 2 + ]; + +if ($numArg == 0) { + #No Arguments + print "usage: mdc_lv.pl --sector --plane --off\n"; + print "usage: mdc_lv.pl --sector --plane\n"; + print "usage: mdc_lv.pl -s -p \n"; + print "usage: mdc_lv.pl -a \n"; + print "usage: mdc_lv.pl --all \n"; + +} elsif ($ARGV[0] eq "-h" || $ARGV[0] eq "--help") { + help(); +} else { + for (my $i=0; $i<$numArg;$i++){ + my ($letter) = $ARGV[$i] =~ /^[-][-]*(.*)/; + if (defined $letter) { + #print $letter."\n"; + #-- + if ($letter eq "s" || $letter eq "sector"){ + #sector selection + $LastArg = 1; + } elsif ($letter eq "p" || $letter eq "plane") { + #level + $LastArg = 2; + } elsif ($letter eq "a" || $letter eq "all") { + #all + $LastArg = 3; + $DoAll = 1; + last; + } elsif ( $letter eq "off") { + #all + $LastArg = 4; + $Powercycle = 0; + } elsif ( $letter eq "on") { + #all + $LastArg = 5; + $Powercycle = 1; + } else { + print "$letter: not a supported Parameter!\n"; + $LastArg = 0; + } + } else { + # Values + if ($LastArg == 0) { + print "ERROR\n"; + } else { + ##Values to last Parameter + if ($LastArg == 1) { + if ($ARGV[$i] >= 0 && $ARGV[$i] < 6) { + push(@Sector,$ARGV[$i]); + } else { + print "Sector value not between 0 and 5.\n"; + } + } elsif ($LastArg == 2) { + if ($ARGV[$i] >= 0 && $ARGV[$i] < 4) { + push(@Plane ,$ARGV[$i]); + } else { + print "Plane value not between 0 and 3.\n"; + } + } elsif ($LastArg == 3) { + print "Switch All...\n"; + } else { + print "ERROR\n"; + } + } + } + } + + if ( $DoAll == 0) { + my $SectorSize = @Sector; + my $PlaneSize = @Plane; + for (my $s = 0; $s<$SectorSize;$s++){ + my $factor = $Sector[$s]%2 + 1; + if ($PlaneSize == 0) { + print "no Plane!\n"; + } else { + for (my $p = 0; $p<$PlaneSize;$p++){ + my $addr = $LV->[$Sector[$s]][$Plane[$p]]; + print "Sec: $Sector[$s] Plane: $Plane[$p] Factor: $factor Addr: $addr\n" if ($DEBUGLEVEL >= 1); + if ($Powercycle == 2) { + run($addr,$factor); + } else { + print "Switch only Off...\n"; + run_off($addr,$factor); + } + } + } + } + } else { + ## Do all + print "Do All...\n"; + run_all(); + } +} + + +sub help { + print "HELP ME!!!\n"; +} + +sub run { + my ($addr,$factor) = @_; + print "$addr $factor \n"; + print qx(command_client.pl -e etraxp204 -c "/home/hadaq/bin/writetty.sh 'OWDS $addr $factor'"; + sleep 5; + command_client.pl -e etraxp204 -c "/home/hadaq/bin/writetty.sh 'OWDS $addr 0'"; + )."\n"; +} + +sub run_off { + my ($addr,$factor) = @_; + print "$addr $factor \n"; + print qx(command_client.pl -e etraxp204 -c "/home/hadaq/bin/writetty.sh 'OWDS $addr $factor'"; + )."\n"; +} + +sub run_all { + for (my $s=0;$s<6;$s++){ + for (my $p=0;$p<4;$p++){ + my $factor = $s%2 + 1; + my $addr = $LV->[$s][$p]; + run($addr,$factor); + } + } +} diff --git a/utils/odroid_HMP_Powercycle.sh b/utils/odroid_HMP_Powercycle.sh new file mode 100755 index 0000000..498b4f8 --- /dev/null +++ b/utils/odroid_HMP_Powercycle.sh @@ -0,0 +1,34 @@ +#!/bin/bash + +###################################################### +# # +# odroid_HMP_Powercycle.sh # +# # +###################################################### + +if [ -z $1 ]; then + odroid="odroid1"; +else + odroid=$1; +fi; + +if [ -z $2 ]; then + devicename="/dev/HAMEG_HAMEG_HO720_100030280929"; +else + devicename=$2; +fi; + +#echo $1 $2; + +echo "Sending power cycle request to $odroid @ $devicename" + +echo -n 'Current Status: ' +echo 'OUTPUT:GENERAL ?' | ssh $odroid "cat > $devicename; timeout 2 cat $devicename" +echo 'Switching Off...' +echo 'OUTPUT:GENERAL OFF' | ssh $odroid "cat > $devicename; timeout 2 cat $devicename" +echo -n 'Current Status: ' +echo 'OUTPUT:GENERAL ?' | ssh $odroid "cat > $devicename; timeout 2 cat $devicename" +echo 'Switching ON...' +echo 'OUTPUT:GENERAL ON' | ssh $odroid "cat > $devicename; timeout 2 cat $devicename" +echo -n 'Current Status: ' +echo 'OUTPUT:GENERAL ?' | ssh $odroid "cat > $devicename; timeout 2 cat $devicename" -- 2.43.0