( which epics >/dev/null 2>&1 && . epics -q ) || export EPICS_BASE=/home/hadaq/EPICS/EPICS-3.15.6/base/
PERLLIB=\${EPICS_BASE}lib/perl:~/trbsoft/hadesdaq/nettools:~/trbsoft/daqtools/perllibs
-cd ~/trbsoft/hadesdaq/utils && MDC_Powercycle_2PSx.pl -P 1 -S 1
+cd ~/trbsoft/hadesdaq/utils && ./MDC_Powercycle_2PSx.pl -P 1 -S 1
sleep 1
"
( which epics >/dev/null 2>&1 && . epics -q ) || export EPICS_BASE=/home/hadaq/EPICS/EPICS-3.15.6/base/
PERLLIB=\${EPICS_BASE}lib/perl:~/trbsoft/hadesdaq/nettools:~/trbsoft/daqtools/perllibs
-cd ~/trbsoft/hadesdaq/utils && MDC_Powercycle_2PSx.pl -P 2 -S 1
+cd ~/trbsoft/hadesdaq/utils && ./MDC_Powercycle_2PSx.pl -P 2 -S 1
sleep 1
"
( which epics >/dev/null 2>&1 && . epics -q ) || export EPICS_BASE=/home/hadaq/EPICS/EPICS-3.15.6/base/
PERLLIB=\${EPICS_BASE}lib/perl:~/trbsoft/hadesdaq/nettools:~/trbsoft/daqtools/perllibs
-cd ~/trbsoft/hadesdaq/utils && MDC_Powercycle_2PSx.pl -P 3 -S 1
+cd ~/trbsoft/hadesdaq/utils && ./MDC_Powercycle_2PSx.pl -P 3 -S 1
sleep 1
"
( which epics >/dev/null 2>&1 && . epics -q ) || export EPICS_BASE=/home/hadaq/EPICS/EPICS-3.15.6/base/
PERLLIB=\${EPICS_BASE}lib/perl:~/trbsoft/hadesdaq/nettools:~/trbsoft/daqtools/perllibs
-cd ~/trbsoft/hadesdaq/utils && MDC_Powercycle_2PSx.pl -P 4 -S 1
+cd ~/trbsoft/hadesdaq/utils && ./MDC_Powercycle_2PSx.pl -P 4 -S 1
sleep 1
"
( which epics >/dev/null 2>&1 && . epics -q ) || export EPICS_BASE=/home/hadaq/EPICS/EPICS-3.15.6/base/
PERLLIB=\${EPICS_BASE}lib/perl:~/trbsoft/hadesdaq/nettools:~/trbsoft/daqtools/perllibs
-cd ~/trbsoft/hadesdaq/utils && MDC_Powercycle_2PSx.pl -P 1 -S 2
+cd ~/trbsoft/hadesdaq/utils && ./MDC_Powercycle_2PSx.pl -P 1 -S 2
sleep 1
"
( which epics >/dev/null 2>&1 && . epics -q ) || export EPICS_BASE=/home/hadaq/EPICS/EPICS-3.15.6/base/
PERLLIB=\${EPICS_BASE}lib/perl:~/trbsoft/hadesdaq/nettools:~/trbsoft/daqtools/perllibs
-cd ~/trbsoft/hadesdaq/utils && MDC_Powercycle_2PSx.pl -P 2 -S 2
+cd ~/trbsoft/hadesdaq/utils && ./MDC_Powercycle_2PSx.pl -P 2 -S 2
sleep 1
"
( which epics >/dev/null 2>&1 && . epics -q ) || export EPICS_BASE=/home/hadaq/EPICS/EPICS-3.15.6/base/
PERLLIB=\${EPICS_BASE}lib/perl:~/trbsoft/hadesdaq/nettools:~/trbsoft/daqtools/perllibs
-cd ~/trbsoft/hadesdaq/utils && MDC_Powercycle_2PSx.pl -P 3 -S 2
+cd ~/trbsoft/hadesdaq/utils && ./MDC_Powercycle_2PSx.pl -P 3 -S 2
sleep 1
"
( which epics >/dev/null 2>&1 && . epics -q ) || export EPICS_BASE=/home/hadaq/EPICS/EPICS-3.15.6/base/
PERLLIB=\${EPICS_BASE}lib/perl:~/trbsoft/hadesdaq/nettools:~/trbsoft/daqtools/perllibs
-cd ~/trbsoft/hadesdaq/utils && MDC_Powercycle_2PSx.pl -P 4 -S 2
+cd ~/trbsoft/hadesdaq/utils && ./MDC_Powercycle_2PSx.pl -P 4 -S 2
sleep 1
"
( which epics >/dev/null 2>&1 && . epics -q ) || export EPICS_BASE=/home/hadaq/EPICS/EPICS-3.15.6/base/
PERLLIB=\${EPICS_BASE}lib/perl:~/trbsoft/hadesdaq/nettools:~/trbsoft/daqtools/perllibs
-cd ~/trbsoft/hadesdaq/utils && MDC_Powercycle_2PSx.pl -P 1 -S 3
+cd ~/trbsoft/hadesdaq/utils && ./MDC_Powercycle_2PSx.pl -P 1 -S 3
sleep 1
"
( which epics >/dev/null 2>&1 && . epics -q ) || export EPICS_BASE=/home/hadaq/EPICS/EPICS-3.15.6/base/
PERLLIB=\${EPICS_BASE}lib/perl:~/trbsoft/hadesdaq/nettools:~/trbsoft/daqtools/perllibs
-cd ~/trbsoft/hadesdaq/utils && MDC_Powercycle_2PSx.pl -P 2 -S 3
+cd ~/trbsoft/hadesdaq/utils && ./MDC_Powercycle_2PSx.pl -P 2 -S 3
sleep 1
"
( which epics >/dev/null 2>&1 && . epics -q ) || export EPICS_BASE=/home/hadaq/EPICS/EPICS-3.15.6/base/
PERLLIB=\${EPICS_BASE}lib/perl:~/trbsoft/hadesdaq/nettools:~/trbsoft/daqtools/perllibs
-cd ~/trbsoft/hadesdaq/utils && MDC_Powercycle_2PSx.pl -P 3 -S 3
+cd ~/trbsoft/hadesdaq/utils && ./MDC_Powercycle_2PSx.pl -P 3 -S 3
sleep 1
"
( which epics >/dev/null 2>&1 && . epics -q ) || export EPICS_BASE=/home/hadaq/EPICS/EPICS-3.15.6/base/
PERLLIB=\${EPICS_BASE}lib/perl:~/trbsoft/hadesdaq/nettools:~/trbsoft/daqtools/perllibs
-cd ~/trbsoft/hadesdaq/utils && MDC_Powercycle_2PSx.pl -P 4 -S 3
+cd ~/trbsoft/hadesdaq/utils && ./MDC_Powercycle_2PSx.pl -P 4 -S 3
sleep 1
"
( which epics >/dev/null 2>&1 && . epics -q ) || export EPICS_BASE=/home/hadaq/EPICS/EPICS-3.15.6/base/
PERLLIB=\${EPICS_BASE}lib/perl:~/trbsoft/hadesdaq/nettools:~/trbsoft/daqtools/perllibs
-cd ~/trbsoft/hadesdaq/utils && MDC_Powercycle_2PSx.pl -P 1 -S 4
+cd ~/trbsoft/hadesdaq/utils && ./MDC_Powercycle_2PSx.pl -P 1 -S 4
sleep 1
"
( which epics >/dev/null 2>&1 && . epics -q ) || export EPICS_BASE=/home/hadaq/EPICS/EPICS-3.15.6/base/
PERLLIB=\${EPICS_BASE}lib/perl:~/trbsoft/hadesdaq/nettools:~/trbsoft/daqtools/perllibs
-cd ~/trbsoft/hadesdaq/utils && MDC_Powercycle_2PSx.pl -P 2 -S 4
+cd ~/trbsoft/hadesdaq/utils && ./MDC_Powercycle_2PSx.pl -P 2 -S 4
sleep 1
"
( which epics >/dev/null 2>&1 && . epics -q ) || export EPICS_BASE=/home/hadaq/EPICS/EPICS-3.15.6/base/
PERLLIB=\${EPICS_BASE}lib/perl:~/trbsoft/hadesdaq/nettools:~/trbsoft/daqtools/perllibs
-cd ~/trbsoft/hadesdaq/utils && MDC_Powercycle_2PSx.pl -P 3 -S 4
+cd ~/trbsoft/hadesdaq/utils && ./MDC_Powercycle_2PSx.pl -P 3 -S 4
sleep 1
"
( which epics >/dev/null 2>&1 && . epics -q ) || export EPICS_BASE=/home/hadaq/EPICS/EPICS-3.15.6/base/
PERLLIB=\${EPICS_BASE}lib/perl:~/trbsoft/hadesdaq/nettools:~/trbsoft/daqtools/perllibs
-cd ~/trbsoft/hadesdaq/utils && MDC_Powercycle_2PSx.pl -P 4 -S 4
+cd ~/trbsoft/hadesdaq/utils && ./MDC_Powercycle_2PSx.pl -P 4 -S 4
sleep 1
"
( which epics >/dev/null 2>&1 && . epics -q ) || export EPICS_BASE=/home/hadaq/EPICS/EPICS-3.15.6/base/
PERLLIB=\${EPICS_BASE}lib/perl:~/trbsoft/hadesdaq/nettools:~/trbsoft/daqtools/perllibs
-cd ~/trbsoft/hadesdaq/utils && MDC_Powercycle_2PSx.pl -P 1 -S 5
+cd ~/trbsoft/hadesdaq/utils && ./MDC_Powercycle_2PSx.pl -P 1 -S 5
sleep 1
"
( which epics >/dev/null 2>&1 && . epics -q ) || export EPICS_BASE=/home/hadaq/EPICS/EPICS-3.15.6/base/
PERLLIB=\${EPICS_BASE}lib/perl:~/trbsoft/hadesdaq/nettools:~/trbsoft/daqtools/perllibs
-cd ~/trbsoft/hadesdaq/utils && MDC_Powercycle_2PSx.pl -P 2 -S 5
+cd ~/trbsoft/hadesdaq/utils && ./MDC_Powercycle_2PSx.pl -P 2 -S 5
sleep 1
"
( which epics >/dev/null 2>&1 && . epics -q ) || export EPICS_BASE=/home/hadaq/EPICS/EPICS-3.15.6/base/
PERLLIB=\${EPICS_BASE}lib/perl:~/trbsoft/hadesdaq/nettools:~/trbsoft/daqtools/perllibs
-cd ~/trbsoft/hadesdaq/utils && MDC_Powercycle_2PSx.pl -P 3 -S 5
+cd ~/trbsoft/hadesdaq/utils && ./MDC_Powercycle_2PSx.pl -P 3 -S 5
sleep 1
"
( which epics >/dev/null 2>&1 && . epics -q ) || export EPICS_BASE=/home/hadaq/EPICS/EPICS-3.15.6/base/
PERLLIB=\${EPICS_BASE}lib/perl:~/trbsoft/hadesdaq/nettools:~/trbsoft/daqtools/perllibs
-cd ~/trbsoft/hadesdaq/utils && MDC_Powercycle_2PSx.pl -P 4 -S 5
+cd ~/trbsoft/hadesdaq/utils && ./MDC_Powercycle_2PSx.pl -P 4 -S 5
sleep 1
"
( which epics >/dev/null 2>&1 && . epics -q ) || export EPICS_BASE=/home/hadaq/EPICS/EPICS-3.15.6/base/
PERLLIB=\${EPICS_BASE}lib/perl:~/trbsoft/hadesdaq/nettools:~/trbsoft/daqtools/perllibs
-cd ~/trbsoft/hadesdaq/utils && MDC_Powercycle_2PSx.pl -P 1 -S 6
+cd ~/trbsoft/hadesdaq/utils && ./MDC_Powercycle_2PSx.pl -P 1 -S 6
sleep 1
"
( which epics >/dev/null 2>&1 && . epics -q ) || export EPICS_BASE=/home/hadaq/EPICS/EPICS-3.15.6/base/
PERLLIB=\${EPICS_BASE}lib/perl:~/trbsoft/hadesdaq/nettools:~/trbsoft/daqtools/perllibs
-cd ~/trbsoft/hadesdaq/utils && MDC_Powercycle_2PSx.pl -P 2 -S 6
+cd ~/trbsoft/hadesdaq/utils && ./MDC_Powercycle_2PSx.pl -P 2 -S 6
sleep 1
"
( which epics >/dev/null 2>&1 && . epics -q ) || export EPICS_BASE=/home/hadaq/EPICS/EPICS-3.15.6/base/
PERLLIB=\${EPICS_BASE}lib/perl:~/trbsoft/hadesdaq/nettools:~/trbsoft/daqtools/perllibs
-cd ~/trbsoft/hadesdaq/utils && MDC_Powercycle_2PSx.pl -P 3 -S 6
+cd ~/trbsoft/hadesdaq/utils && ./MDC_Powercycle_2PSx.pl -P 3 -S 6
sleep 1
"
( which epics >/dev/null 2>&1 && . epics -q ) || export EPICS_BASE=/home/hadaq/EPICS/EPICS-3.15.6/base/
PERLLIB=\${EPICS_BASE}lib/perl:~/trbsoft/hadesdaq/nettools:~/trbsoft/daqtools/perllibs
-cd ~/trbsoft/hadesdaq/utils && MDC_Powercycle_2PSx.pl -P 4 -S 6
+cd ~/trbsoft/hadesdaq/utils && ./MDC_Powercycle_2PSx.pl -P 4 -S 6
sleep 1
"
--- /dev/null
+#!/usr/bin/perl -w
+use strict;
+use warnings;
+use lib "../nettools/";
+use Perl2Epics;
+use Getopt::Long;
+use File::Basename;
+
+#- the command line option flags
+my $opt_help = 0;
+my $opt_plane = -1;
+my $opt_sector = -1;
+my $opt_address = "";
+my $opt_dryrun = 0;
+
+GetOptions ('h|help' => \$opt_help,
+ 'n|dryrun' => \$opt_dryrun,
+ 'P|plane=i' => \$opt_plane,
+ 'S|sector=i' => \$opt_sector);
+
+if( $opt_help ) {
+ &help();
+ exit(0);
+}
+
+my $P=$opt_plane;
+my $S=$opt_sector;
+
+if( &checkArgs() ){
+ print "Exit.\n";
+ exit(1);
+}
+
+my $on = 0;
+my $off = 1;
+
+print "Connect..\n";
+my $s = "HAD:MDC:LV:P" . $P . ":S" . $S . ":SWITCH_set";
+
+if ($opt_dryrun) {
+ print $s . "\n";
+ exit(0);
+}
+
+Perl2Epics::Connect("MDC_LV_Switch",$s);
+
+Perl2Epics::Put("MDC_LV_Switch",$off);
+Perl2Epics::GetAll();
+
+sleep 8;
+Perl2Epics::Put("MDC_LV_Switch",$on);
+
+exit(0);
+#-----------
+
+################### END OF MAIN ####################
+
+sub help()
+{
+ my $scriptname=basename($0);
+ #"MDC_Powercycle_2PSx.pl";
+ print "\n";
+ my $text= << 'EOF';
+$scriptname
+
+ This script executes a power cycle on MDC LV switches on
+ PLANE P [1-4] and Sector S [1-6]
+ using EPICS
+
+Usage:
+
+ Command line: $scriptname
+ [-h|--help] : Show this help.
+ [-P|--plane <plane> : sector [1-6].
+ [-S|--sector <sector>] : plane [1-4]
+
+Examples:
+
+ $scriptname -P 1 -S 2
+
+EOF
+ $text =~ s/\$scriptname/$scriptname/g;
+ print $text;
+}
+
+sub checkArgs()
+{
+ my $retVal = 0;
+
+ #use either P/S or address
+ unless( $opt_plane != -1 && $opt_sector != -1 ){
+ print "You should use either '-P AND -S'' or '-a' options\n" . " " . __LINE__ . "\n";
+ $retVal = 1;
+ }
+
+ if( $opt_sector < 1 || $opt_sector > 6 ){
+ print "sector out of range [1-6]\n";
+ $retVal = 1;
+ }
+
+ if( $opt_plane < 1 || $opt_plane > 4 ){
+ print "plane out of range [1-4]\n";
+ $retVal = 1;
+ }
+
+ return $retVal;
+}
+