]> jspc29.x-matter.uni-frankfurt.de Git - daqtools.git/commitdiff
added check_ping.pl and readout.pl to the tools
authorCahit Ugur <c.ugur@gsi.de>
Wed, 24 Jun 2015 09:39:05 +0000 (11:39 +0200)
committerCahit Ugur <c.ugur@gsi.de>
Wed, 24 Jun 2015 09:39:05 +0000 (11:39 +0200)
tools/check_ping.pl [new file with mode: 0755]
tools/readout.pl [new file with mode: 0755]

diff --git a/tools/check_ping.pl b/tools/check_ping.pl
new file mode 100755 (executable)
index 0000000..bfcc610
--- /dev/null
@@ -0,0 +1,61 @@
+#!/usr/bin/perl
+
+use warnings;
+use strict;
+use Parallel::ForkManager;
+use Net::Ping;
+use Data::Dumper;
+
+my @trbs = (78, 84, 101, 102);
+
+my $map = {
+ 1 => { trb =>  84, sys => "TDC 00"},
+ 2 => { trb => 101, sys => "TDC 01"},
+ 3 => { trb =>  78, sys => "TDC 02"},
+ 4 => { trb => 102, sys => "TDC 03"},
+ 0 => { trb =>  61, sys => "CTS"},
+};
+
+
+my $MAX_PROCESSES=50;
+my $pm = Parallel::ForkManager->new($MAX_PROCESSES);
+
+#my $p = Net::Ping->new();
+
+#print Dumper keys %$map;
+#exit;
+foreach my $ct (keys %$map) {
+    #my $num = sprintf "%3.3d", $ct;
+    my $trbnum= $map->{$ct}->{trb};
+    my $num = sprintf "%3.3d", $trbnum;
+    my $host= "trb" . $num;
+    my $system = $map->{$ct}->{sys};
+    #print "192.168.0.$ct   $host.gsi.de $host\n";
+    #my $r = $p->ping($host,1);
+    my $c= "ping -W1 -c1 $host";
+
+    my $pid = $pm->start and next;
+
+
+    #my $p = Net::Ping->new("udp", 1);
+    #my $r = $p->ping("192.168.0.56");
+    #$p->close();
+    #print "result: $r\n";
+
+    my $r = qx($c);
+    my $sysnum = sprintf "0x80%.2x", $ct;
+    $sysnum = "0x7999" if $ct == -1;
+    #printf "$sysnum, system: %-8s, trb: $host ", $system;
+    printf "$sysnum  $host  %-8s ", $system;
+    if (grep /64 bytes/, $r) {
+       print "is alive.\n";
+    }
+    else {
+       print "is not alive.\n";
+   }
+
+    $pm->finish; # Terminates the child process
+}
+
+$pm->wait_all_children;
+#$p->close();
diff --git a/tools/readout.pl b/tools/readout.pl
new file mode 100755 (executable)
index 0000000..723c2dd
--- /dev/null
@@ -0,0 +1,81 @@
+#!/usr/bin/perl
+use warnings;
+use strict;
+use Getopt::Long;
+
+my $help = "";
+my $dataPath = "/d/";
+my $label = "test";
+my $time = -1;
+my $name = "cc";
+my $dabc;
+my $c;
+
+my $result = GetOptions (
+    "h|help"    => \$help,
+    "d|dabc"    => \$dabc,
+    "t|time=i"  => \$time,
+    "l|label=s" => \$label,
+    "n|filename=s" => \$name,
+    "p|path=s"  => \$dataPath
+    );
+
+if($help) {
+    print "Usage: start_readout.pl <time>\n\n";
+    print "-h --help\tPrints the usage manual\n";
+    print "-t --time\tDefine length of time in seconds for data taking (Default = -1)\n";
+    print "-d --dabc\trun dabc instead of old (has no name) eventbuilder\n";
+    print "-n --filename\tuse the following prefix, limited to two character for old EB\n";
+    print "\t\tFor unlimited data taking define <time> as -1.\n";
+    print "-l --label\tDefine label for the daq_evtbuild and daq_netmem processes (Default = test)\n";
+    print "-p --path\tDefine path for saving data (Default = ~/trbsoft/data\)\n";
+    print "\n";
+    exit;
+}
+
+
+$c=qq|pkill -f "daq_evtbuild -S $label"|; qx($c); # if any, kill existing daq_evtbuild
+$c=qq|pkill -f "daq_netmem -S $label"|;   qx($c); # if any, kill existing daq_netmem
+$c=qq|pkill -f "dabc_exe"|;   qx($c); # if any, kill existing dabc_exe
+
+
+if(defined $dabc) {
+    $c=qq|pkill -f "dabc_exe"|;
+    qx($c);
+    
+    $c=qq|perl -p -e 's/dabc.hld/$name.hld/' EventBuilderNew.xml > EventBuilder_autogenerated.xml|;
+    qx($c);
+
+    $c=qq|urxvt -geometry 82x27-0-0 -e bash -c 'dabc_exe EventBuilder_autogenerated.xml; sleep 10'|;
+    system("$c &");
+
+}
+else {
+
+    $c=qq|xterm -geometry 122x15-0+0 -e bash -c 'daq_evtbuild -S $label -m 5 -x $name --filesize 1536 -d file -o $dataPath'|;
+    #$c=qq|xterm -geometry 122x16-0+0 -e bash -c 'daq_evtbuild -S $label -m 23 -x $name -d file -o $dataPath'|;
+    #print $c;
+
+    system("$c &");
+
+    sleep 1;
+    $c=qq"xterm -geometry 82x45-0+210 -e bash -c 'daq_netmem -S $label -m 5  -i UDP:127.0.0.1:50000 -i UDP:127.0.0.1:50001 -i UDP:127.0.0.1:50002 -i UDP:127.0.0.1:50003 -i UDP:127.0.0.1:50004 '";
+
+
+    #$c=qq"xterm -geometry 82x44-0+234 -e bash -c 'daq_netmem -S $label -m 23 -i UDP:127.0.0.1:50000 -i UDP:127.0.0.1:50001 -i UDP:127.0.0.1:50002 -i UDP:127.0.0.1:50003 -i UDP:127.0.0.1:50004 -i UDP:127.0.0.1:50005 -i UDP:127.0.0.1:50006 -i UDP:127.0.0.1:50007 -i UDP:127.0.0.1:50008 -i UDP:127.0.0.1:50009 -i UDP:127.0.0.1:50010 -i UDP:127.0.0.1:50011 -i UDP:127.0.0.1:50012 -i UDP:127.0.0.1:50013 -i UDP:127.0.0.1:50014 -i UDP:127.0.0.1:50015 -i UDP:127.0.0.1:50016 -i UDP:127.0.0.1:50017 -i UDP:127.0.0.1:50018 -i UDP:127.0.0.1:50019 -i UDP:127.0.0.1:50020 -i UDP:127.0.0.1:50021 -i UDP:127.0.0.1:50022; sleep 2'";
+
+    #$c=qq"xterm -geometry 82x17-0+210 -e bash -c 'daq_netmem -S $label -m 2 -i UDP:127.0.0.1:50000 -i UDP:127.0.0.1:50002'";
+    system("$c &");
+
+    print "Saving data to $dataPath\n";
+}
+
+if($time == -1) {
+    print "Data taking will run until manual quit with Ctrl+C\n\n";
+}
+else {
+    print "Data taking will run for $time seconds.\n\n";
+    sleep $time;
+    $c=qq|pkill -f "daq_evtbuild -S $label"|; qx($c);
+    $c=qq|pkill -f "daq_netmem -S $label"|;   qx($c);
+}