]> jspc29.x-matter.uni-frankfurt.de Git - hadesdaq.git/commitdiff
changed paths in gui commands
authorHadaq@CountingHouse <Hadaq@CountingHouse>
Mon, 28 Oct 2013 16:01:12 +0000 (17:01 +0100)
committerHadaq@CountingHouse <Hadaq@CountingHouse>
Mon, 28 Oct 2013 16:01:12 +0000 (17:01 +0100)
21 files changed:
.gitignore [new file with mode: 0644]
control/gui/call_programs_local.sh
control/gui/call_programs_wrapper.sh
control/gui/daq/10_Start_DAQ
control/gui/daq/20_Reprogram_FPGA
control/gui/eb/10_Restart_EB
control/gui/eb/20_____Stop_EB
control/gui/eb/29_Prefix_Be
control/gui/eb/30_Prefix_NoFile
control/gui/eb/40_Prefix_Te
control/gui/eb/50_Prefix_Co
control/gui/eb/70_Prefix_Ri
control/gui/eb/80_Prefix_St
control/gui/eb/90_Prefix_Md
control/gui/expert/90_MDC_HighVoltageRamp
control/gui/expert/MDC_LV_Powercycle
control/gui/expert/Restart_EB_IOC
control/gui/monitor/10_CTS_Mon
hmon/Perl2Epics.pm [changed from file to symlink]
nettools/Perl2Epics.pm
richhv/Perl2Epics.pm [changed from file to symlink]

diff --git a/.gitignore b/.gitignore
new file mode 100644 (file)
index 0000000..8ba1c62
--- /dev/null
@@ -0,0 +1,3 @@
+hmon/qa
+hmon/logs
+hmon/vertex
index 5166f9143771a3c11ba6c2bc48af9872435e0c17..48966c3123f2bb89e24b26e15d957ffaf68e5dc1 100755 (executable)
@@ -1,6 +1,6 @@
 #!/bin/bash
-cd /home/hadaq/trbsoft/daq/control/gui/
-/home/hadaq/trbsoft/daq/control/gui/call_programs2.pl -geometry -0-0 &
+cd /home/hadaq/trbsoft/hadesdaq/control/gui/
+/home/hadaq/trbsoft/hadesdaqdaq/control/gui/call_programs2.pl -geometry -0-0 &
 
 #cd /home/hadaq/trbsoft/daq/control/gui/
 #/home/hadaq/trbsoft/daq/control/gui/call_programs.pl -geometry -0-0
index 247482a7e734b3687f31c211ea7d57e9f25bd935..6e10c775e56737d32d87a1cbc2e402323ad6d4c5 100755 (executable)
@@ -1,5 +1,5 @@
-ssh -X hadesdaq02 "cd /home/hadaq/trbsoft/daq/control/gui/
-/home/hadaq/trbsoft/daq/control/gui/call_programs2.pl -geometry -0-0" &
+ssh -X hadesdaq02 "cd /home/hadaq/trbsoft/hadesdaq/control/gui/
+/home/hadaq/trbsoft/hadesdaq/control/gui/call_programs2.pl -geometry -0-0" &
 
 #cd /home/hadaq/trbsoft/daq/control/gui/
 #/home/hadaq/trbsoft/daq/control/gui/call_programs.pl -geometry -0-0
index 4d716acf33683d5731d0deebec37938ea1da1b43..7e72d28065f5944c442dbc7f5335748f45b6802a 100755 (executable)
@@ -11,7 +11,7 @@ xterm -geometry 80x24 -bg orange -fg black -e bash --login -c '
   source /home/hadaq/.bash_profile
   echo \"  <Startup> Connected to lxhadesdaq...\"
   echo \"  <Startup> Starting DAQ with default settings...\"
-  cd /home/hadaq/trbsoft/daq/main/
+  cd /home/hadaq/trbsoft/hadesdaq/main/
   time bash ./startup_briccolage.sh
   sleep 10
 "
index f9a76b826c4d936b9c275ccabcc6d15845a629ea..dd2cc1d6043f7510db84c371b8a145a9c418caaa 100755 (executable)
@@ -10,7 +10,7 @@ notifyall.sh "DAQ" "<I> FPGA are being reprogrammed." "STARTUP" &
 
 ssh -X hadaq@lxhadesdaq "
  xterm -geometry 80x24 -bg orange -fg black -e bash --login -c '
-  cd ~/trbsoft/daq/main/
+  cd ~/trbsoft/hadesdaq/main/
   ./startup.pl -f main_hades.script -o file  -m TOF -m RPC -m WALL -m RICH -m SHOWER -m STARTCTS -m MDC -m MDCDATASET --eb off
   echo "First config run"
   bash startup_briccolage.sh
index 46ba53dc6723a8ae7301c8b8fa164896f9b6a574..52a4358f0b2965b357b99c55f45fe85f24ed2b30 100755 (executable)
@@ -5,7 +5,7 @@ ssh -X hadaq@lxhadesdaq "
  xterm -geometry 80x24 -bg orange -fg black -e bash -c '
   echo "Restarting Eventbuilder 1 - 16"
   stoptrigger.sh
-  cd ~/trbsoft/daq/evtbuild/
+  cd ~/trbsoft/hadesdaq/evtbuild/
   sleep 5 && starttrigger.sh &
   ./start_eb_gbe.sh
   '
index e0f1509c2bcba97d5cafe15b122cbdb44d2e28a3..274bf3a5120e5fbdc65bbf9172c03fefb76319c4 100755 (executable)
@@ -5,7 +5,7 @@
 ssh -X hadaq@lxhadesdaq "
  xterm -geometry 80x24 -bg orange -fg black -e bash -c '
   echo "Stopping Eventbuilder 1 - 16"
-  cd ~/trbsoft/daq/evtbuild/
+  cd ~/trbsoft/hadesdaq/evtbuild/
   ./start_eb_gbe.pl -e stop -n 1-16
   '
  "
index 17f11d11610cbd3e8976cd59ed950c2a4bf39fae..b3913159cf7122e365218a16c3b9ad20d0954b0e 100755 (executable)
@@ -6,7 +6,7 @@
 ssh -X hadaq@lxhadesdaq "
  xterm -geometry 80x24 -bg orange -fg black -e bash -c '
   echo "Starting Eventbuilder 1 - 16 with file prefix be"
-  cd ~/trbsoft/daq/evtbuild/
+  cd ~/trbsoft/hadesdaq/evtbuild/
   ./start_eb_gbe.pl -e restart -n 1-16 -d on -p be
   '
  "
index daa39ed9bd24579f7c0e4a0e99f76603c1ea12fc..a5e423d7245612edbb06844bce7dc8f4ab5f1967 100755 (executable)
@@ -5,7 +5,7 @@
 ssh -X hadaq@lxhadesdaq "
  xterm -geometry 80x24 -bg orange -fg black -e bash -c '
   echo "Starting Eventbuilder 1 - 16, writing NO FILES"
-  cd ~/trbsoft/daq/evtbuild/
+  cd ~/trbsoft/hadesdaq/evtbuild/
   ./start_eb_gbe.pl -e restart -n 1-16 -d off -p '--'
  '
 "
index 5bcefd21c0bedec089f41084684e2bc8290d3280..3be97c70e7d15900533a357fe46a1dc8803e52e6 100755 (executable)
@@ -5,7 +5,7 @@
 ssh -X hadaq@lxhadesdaq "
  xterm -geometry 80x24 -bg orange -fg black -e bash -c '
   echo "Starting Eventbuilder 1 - 16 with prefix te"
-  cd ~/trbsoft/daq/evtbuild/
+  cd ~/trbsoft/hadesdaq/evtbuild/
   ./start_eb_gbe.pl -e restart -n 1-16 -d on -p te
   '
  "
index eacd5c13b271a202ad0497162a47a46018860671..cd227afb04c3cd8c15f7670b5bde4892c31961ec 100755 (executable)
@@ -5,7 +5,7 @@
 ssh -X hadaq@lxhadesdaq "
  xterm -geometry 80x24 -bg orange -fg black -e bash -c '
   echo "Starting Eventbuilder 1 - 16 with prefix co"
-  cd ~/trbsoft/daq/evtbuild/
+  cd ~/trbsoft/hadesdaq/evtbuild/
   ./start_eb_gbe.pl -e restart -n 1-16 -d on -p co
   '
  "
index 2a974d81d81d967b798847ee22065cc9f8bc3028..0c887231741bae8f53eac903e594389392cb9e1c 100755 (executable)
@@ -5,7 +5,7 @@
 ssh -X hadaq@lxhadesdaq "
  xterm -geometry 80x24 -bg orange -fg black -e bash -c '
   echo "Starting Eventbuilder 1 - 16 with prefix ri"
-  cd ~/trbsoft/daq/evtbuild/
+  cd ~/trbsoft/hadesdaq/evtbuild/
   ./start_eb_gbe.pl -e restart -n 1-16 -d on -p ri
   '
  "
index 8b0570107b64a2e6075038adae0818f0470a30c6..0415e6ffc2b3a3b01327aef23c61c90576c605a1 100755 (executable)
@@ -3,7 +3,7 @@
 ssh -X hadaq@lxhadesdaq "
  xterm -geometry 80x24 -bg orange -fg black -e bash -c '
   echo "Starting Eventbuilder 1 - 16 with prefix st"
-  cd ~/trbsoft/daq/evtbuild/
+  cd ~/trbsoft/hadesdaq/evtbuild/
   ./start_eb_gbe.pl -e restart -n 1-16 -d on -p st
   '
  "
index b933e2363acb73c698fdf260aca844a5bf863fb5..2b2b4ab7d24bff7ee4e6e89566ea57962ca48a9e 100755 (executable)
@@ -3,7 +3,7 @@
 ssh -X hadaq@lxhadesdaq "
  xterm -geometry 80x24 -bg orange -fg black -e bash -c '
   echo "Starting Eventbuilder 1 - 16 with prefix md"
-  cd ~/trbsoft/daq/evtbuild/
+  cd ~/trbsoft/hadesdaq/evtbuild/
   ./start_eb_gbe.pl -e restart -n 1-16 -d on -p md
   '
  "
index 730b7313a6250aa08fb62c71a832b3e84c1a89a9..e607ec19ec4bc119f1b0d03c84c2e9723b813a28 100755 (executable)
@@ -2,6 +2,6 @@
 export myvar=$(doyoureallywant.pl "to RAMP DOWN High Voltage!")
 if [ $myvar == "256" ]; then exit; fi
 
-cd /home/hadaq/trbsoft/daq/control/mdcHVgui/
-/home/hadaq/trbsoft/daq/control/mdcHVgui/call_programs2.pl
+cd /home/hadaq/trbsoft/hadesdaq/control/mdcHVgui/
+/home/hadaq/trbsoft/hadesdaq/control/mdcHVgui/call_programs2.pl
 
index 4893b3c87b8ef672e38f8c70f70059d63035465f..c16d5c9137678d928c4e78e2178604fdfd3f4c21 100755 (executable)
@@ -2,6 +2,6 @@
 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/daq/control/mdcLVgui/
-/home/hadaq/trbsoft/daq/control/mdcLVgui/call_programs2.pl
+cd /home/hadaq/trbsoft/hadesdaq/control/mdcLVgui/
+/home/hadaq/trbsoft/hadesdaq/control/mdcLVgui/call_programs2.pl
 
index c6879a57a33c0adac34ce6c3874f524ff961e3d9..fe6ad5022d9a6d3633c69b5f567ef8f17bb04d37 100755 (executable)
@@ -3,7 +3,7 @@
 ssh -X hadaq@lxhadesdaq "
  xterm -geometry 80x24 -bg orange -fg black -e bash -c '
   echo "Starting Eventbuilder Control Interface"
-  cd ~/trbsoft/daq/evtbuild/
+  cd ~/trbsoft/hadesdaq/evtbuild/
   ./start_eb_gbe.pl -i start -n 1-16
   '
  "
index 710c25027875ad50010e7b5663af1dee7bd56ea3..32c5e69d7ae2d12263e9b6f8e18dfe7856f73585 100755 (executable)
@@ -8,7 +8,7 @@
 #   ssh -X hadaq@hadesdaq02 "
   source /home/hadaq/.bashrc
   export DAQOPSERVER=hadesp31
-  cd /home/hadaq/trbsoft/daq/evtbuild
+  cd /home/hadaq/trbsoft/hadesdaq/evtbuild
   perl ./mon_cts.pl 
 #  sleep 1
 #"
deleted file mode 100644 (file)
index c886dbd2df9c3d9dd1fcd96e33bcbc664142e48c..0000000000000000000000000000000000000000
+++ /dev/null
@@ -1,156 +0,0 @@
-package Perl2Epics;
-use warnings;
-use strict;
-use Data::Dumper;
-# use Hmon;
-
-use lib '/home/scs/EPICS/gcc-4.4/EPICS-3.14.12.2_linux-x86_64/base/' . '/lib/perl';
-use CA;
-
-$ENV{EPICS_CA_AUTO_ADDR_LIST} = 'YES';
-$ENV{EPICS_CA_ADDR_LIST} = "192.168.100.11 192.168.100.12 192.168.100.13 192.168.100.14 192.168.100.15 localhost";
-
-
-my $EpicsValues = {};
-my $EpicsStore = {};
-my @EpicsChans = ();
-my  $EpicsNames = {};
-my $errcnt = {};
-
-sub callback {
-    my ($chan, $status, $data) = @_;
-#     print Dumper $data;
-    if ($status) {
-      printf "%-30s %s\n", $chan->name, $status;
-      } 
-    else {
-#       print $chan->name . ": $data->{value}\n";
-#       print scalar @{$EpicsStore->{$chan->name}->{tme}}."\n";
-      if(scalar @{$EpicsStore->{$chan->name}->{tme}} > 10) {
-        shift @{$EpicsStore->{$chan->name}->{tme}};
-        shift @{$EpicsStore->{$chan->name}->{val}};
-        }
-      push(@{$EpicsStore->{$chan->name}->{tme}}, $data->{stamp});
-      push(@{$EpicsStore->{$chan->name}->{val}},  $data->{value});
-      $EpicsValues->{$chan->name}->{tme} = $data->{stamp};
-      $EpicsValues->{$chan->name}->{val}  = $data->{value};
-    }
-}
-
-
-sub Connect {
-  my ($title,$varname,$type,$wait) =  @_;
-  #   push(@EpicsChans,CA->new($name));
-  #   $EpicsChans[-1]->create_subscription('v', \&callback, 'DBR_TIME_DOUBLE');
-  ## print $varname."\n";
-  $type = 'DBR_TIME_DOUBLE' unless defined $type;
-  $EpicsStore->{$varname}->{tme} = [];
-  $EpicsStore->{$varname}->{val} = [];
-  $EpicsNames->{$title} = $varname;
-  $errcnt->{$varname} = 0;
-  my $success;
-  eval {
-    my $c = CA->new($varname);
-    CA->pend_io($wait || 0.05);
-    $c->create_subscription('v', \&callback, $type);
-#     $c->get_callback(\&callback, $type, 1);
-    $EpicsStore->{$varname}->{ca} = $c;
-    $success = $c->is_connected();
-  };
-
-return ($success);
-}
-
-sub Update {
-  CA->pend_event($_[0]);
-  }
-
-  
-sub GetAll {
-       my $store = {};
-       my $time;
-       my $val;
-       
-  Update(0.001);
-  
-  foreach my $el (keys %{$EpicsNames}) {
-    my $varname = $EpicsNames->{$el};
-    my $ca = $EpicsStore->{$varname}->{ca};
-    my $r = $ca->is_connected() if(defined $ca);
-    my $success = 1;
-    if(!$r && (!defined $errcnt->{$el} || $errcnt->{$el} < 20)) {
-      $success = Connect($el, $varname);
-      $errcnt->{$el}++;
-    }
-
-    if(!$success) {
-      $time = -1;
-      $val  = 0;
-      }
-    elsif (scalar @{$EpicsStore->{$varname}->{tme}} > 0) {
-      $errcnt->{$el}-=.3 if ($errcnt->{$el}||0) >= 0;
-      $time = (@{$EpicsStore->{$varname}->{tme}})[-1];
-      $val  = (@{$EpicsStore->{$varname}->{val}})[-1];
-                       }
-               else {
-                       $time = $EpicsStore->{$varname}->{lasttime};
-                       $val  = $EpicsStore->{$varname}->{lastval};
-                       }
-               $store->{$el}->{tme} = $time;
-               $store->{$el}->{val}  = $val;
-               $EpicsStore->{$varname}->{lasttime} = $time;
-               $EpicsStore->{$varname}->{lastval}  = $val;
-    }
-
-  return $store;
-  }
-  
-  
-  
-  
-  
-sub Get {
-  my ($title,$latest) = @_;
-  my $varname = $EpicsNames->{$title};
-  my $time;
-  my $val;
-#   print $varname;
-
-  my $c = $EpicsStore->{$varname}->{ca};
-  my $r = $c->is_connected() if(defined $c);
-
-  my $success = 1;
-  if(!$r) {
-    $success = Connect($title, $varname);
-  }
-
-  if(!$success) {
-    return (-1, 0);
-  }
-
-
-  Update(0.00001);
-
-  if (scalar @{$EpicsStore->{$varname}->{tme}} > 0) {
-    if(defined $latest && $latest == 1) {
-      $time = (@{$EpicsStore->{$varname}->{tme}})[-1];
-      $val  = (@{$EpicsStore->{$varname}->{val}})[-1];
-      }
-    else {  #if (scalar @{$EpicsStore->{$varname}->{tme}} > 1)
-      $time = shift  (@{$EpicsStore->{$varname}->{tme}});
-      $val  = shift  (@{$EpicsStore->{$varname}->{val}});
-      }
-    }
-  else {
-    $time = $EpicsStore->{$varname}->{lasttime};
-    $val  = $EpicsStore->{$varname}->{lastval};
-    }
-  $EpicsStore->{$varname}->{lasttime} = $time;
-  $EpicsStore->{$varname}->{lastval}  = $val;
-  $time = $time || -1;
-  $val  = $val || 0;
-  return ($time,$val);
-  }
-
-1;
-__END__
new file mode 120000 (symlink)
index 0000000000000000000000000000000000000000..d9b5423da700c94af95a7024aadefab7117fe90e
--- /dev/null
@@ -0,0 +1 @@
+../nettools/Perl2Epics.pm
\ No newline at end of file
index c886dbd2df9c3d9dd1fcd96e33bcbc664142e48c..15e6018326a96d9ff917ad73285dd7b542e385ea 100644 (file)
@@ -19,138 +19,168 @@ my $errcnt = {};
 
 sub callback {
     my ($chan, $status, $data) = @_;
-#     print Dumper $data;
+    #print Dumper $data;
     if ($status) {
-      printf "%-30s %s\n", $chan->name, $status;
-      
+       printf "%-30s %s\n", $chan->name, $status;
+    } 
     else {
 #       print $chan->name . ": $data->{value}\n";
 #       print scalar @{$EpicsStore->{$chan->name}->{tme}}."\n";
-      if(scalar @{$EpicsStore->{$chan->name}->{tme}} > 10) {
-        shift @{$EpicsStore->{$chan->name}->{tme}};
-        shift @{$EpicsStore->{$chan->name}->{val}};
+       if(scalar @{$EpicsStore->{$chan->name}->{tme}} > 10) {
+           shift @{$EpicsStore->{$chan->name}->{tme}};
+           shift @{$EpicsStore->{$chan->name}->{val}};
         }
-      push(@{$EpicsStore->{$chan->name}->{tme}}, $data->{stamp});
-      push(@{$EpicsStore->{$chan->name}->{val}},  $data->{value});
-      $EpicsValues->{$chan->name}->{tme} = $data->{stamp};
-      $EpicsValues->{$chan->name}->{val}  = $data->{value};
+       push(@{$EpicsStore->{$chan->name}->{tme}}, $data->{stamp});
+       push(@{$EpicsStore->{$chan->name}->{val}},  $data->{value});
+       $EpicsValues->{$chan->name}->{tme} = $data->{stamp};
+       $EpicsValues->{$chan->name}->{val}  = $data->{value};
     }
 }
 
 
 sub Connect {
-  my ($title,$varname,$type,$wait) =  @_;
-  #   push(@EpicsChans,CA->new($name));
-  #   $EpicsChans[-1]->create_subscription('v', \&callback, 'DBR_TIME_DOUBLE');
-  ## print $varname."\n";
-  $type = 'DBR_TIME_DOUBLE' unless defined $type;
-  $EpicsStore->{$varname}->{tme} = [];
-  $EpicsStore->{$varname}->{val} = [];
-  $EpicsNames->{$title} = $varname;
-  $errcnt->{$varname} = 0;
-  my $success;
-  eval {
-    my $c = CA->new($varname);
-    CA->pend_io($wait || 0.05);
-    $c->create_subscription('v', \&callback, $type);
+    my ($title, $varname, $type, $wait) =  @_;
+    #   push(@EpicsChans,CA->new($name));
+    #   $EpicsChans[-1]->create_subscription('v', \&callback, 'DBR_TIME_DOUBLE');
+    ## print $varname."\n";
+    $type = 'DBR_TIME_DOUBLE' unless defined $type;
+    $EpicsStore->{$varname}->{tme} = [];
+    $EpicsStore->{$varname}->{val} = [];
+    $EpicsNames->{$title} = $varname;
+    $errcnt->{$varname} = 0;
+    my $success;
+    eval {
+       my $c = CA->new($varname);
+       CA->pend_io($wait || 0.05);
+       $c->create_subscription('v', \&callback, $type);
 #     $c->get_callback(\&callback, $type, 1);
-    $EpicsStore->{$varname}->{ca} = $c;
-    $success = $c->is_connected();
-  };
-
-return ($success);
+       $EpicsStore->{$varname}->{ca} = $c;
+       $success = $c->is_connected();
+    };
+    #print Dumper $EpicsValues;
+    return ($success);
 }
 
 sub Update {
-  CA->pend_event($_[0]);
-  }
+    CA->pend_event($_[0]);
+}
 
-  
-sub GetAll {
-       my $store = {};
-       my $time;
-       my $val;
-       
-  Update(0.001);
-  
-  foreach my $el (keys %{$EpicsNames}) {
-    my $varname = $EpicsNames->{$el};
-    my $ca = $EpicsStore->{$varname}->{ca};
-    my $r = $ca->is_connected() if(defined $ca);
-    my $success = 1;
-    if(!$r && (!defined $errcnt->{$el} || $errcnt->{$el} < 20)) {
-      $success = Connect($el, $varname);
-      $errcnt->{$el}++;
-    }
 
-    if(!$success) {
-      $time = -1;
-      $val  = 0;
-      }
-    elsif (scalar @{$EpicsStore->{$varname}->{tme}} > 0) {
-      $errcnt->{$el}-=.3 if ($errcnt->{$el}||0) >= 0;
-      $time = (@{$EpicsStore->{$varname}->{tme}})[-1];
-      $val  = (@{$EpicsStore->{$varname}->{val}})[-1];
-                       }
-               else {
-                       $time = $EpicsStore->{$varname}->{lasttime};
-                       $val  = $EpicsStore->{$varname}->{lastval};
-                       }
-               $store->{$el}->{tme} = $time;
-               $store->{$el}->{val}  = $val;
-               $EpicsStore->{$varname}->{lasttime} = $time;
-               $EpicsStore->{$varname}->{lastval}  = $val;
+sub GetAll {
+    my $store = {};
+    my $time;
+    my $val;
+    
+    Update(0.001);
+    
+    foreach my $el (keys %{$EpicsNames}) {
+       my $varname = $EpicsNames->{$el};
+       my $ca = $EpicsStore->{$varname}->{ca};
+       my $r = $ca->is_connected() if(defined $ca);
+       my $success = 1;
+       if(!$r && (!defined $errcnt->{$el} || $errcnt->{$el} < 20)) {
+           $success = Connect($el, $varname);
+           $errcnt->{$el}++;
+       }
+
+       if(!$success) {
+           $time = -1;
+           $val  = 0;
+       } elsif (scalar @{$EpicsStore->{$varname}->{tme}} > 0) {
+           $time = (@{$EpicsStore->{$varname}->{tme}})[-1];
+           $val  = (@{$EpicsStore->{$varname}->{val}})[-1];
+       } else {
+           $time = $EpicsStore->{$varname}->{lasttime};
+           $val  = $EpicsStore->{$varname}->{lastval};
+       }
+       $store->{$el}->{tme} = $time;
+       $store->{$el}->{val}  = $val;
+       $EpicsStore->{$varname}->{lasttime} = $time;
+       $EpicsStore->{$varname}->{lastval}  = $val;
     }
+    
+    return $store;
+}
 
-  return $store;
-  }
-  
-  
-  
-  
-  
 sub Get {
-  my ($title,$latest) = @_;
-  my $varname = $EpicsNames->{$title};
-  my $time;
-  my $val;
+    my ($title,$latest) = @_;
+    my $varname = $EpicsNames->{$title};
+    my $time;
+    my $val;
 #   print $varname;
 
-  my $c = $EpicsStore->{$varname}->{ca};
-  my $r = $c->is_connected() if(defined $c);
-
-  my $success = 1;
-  if(!$r) {
-    $success = Connect($title, $varname);
-  }
+    my $c = $EpicsStore->{$varname}->{ca};
+    my $r = $c->is_connected() if(defined $c);
 
-  if(!$success) {
-    return (-1, 0);
-  }
+    my $success = 1;
+    if(!$r) {
+       $success = Connect($title, $varname);
+    }
 
+    if(!$success) {
+       return (-1, 0);
+    }
 
-  Update(0.00001);
+    Update(0.00001);
+
+    if (scalar @{$EpicsStore->{$varname}->{tme}} > 0) {
+       if(defined $latest && $latest == 1) {
+           $time = (@{$EpicsStore->{$varname}->{tme}})[-1];
+           $val  = (@{$EpicsStore->{$varname}->{val}})[-1];
+       }
+       else {  #if (scalar @{$EpicsStore->{$varname}->{tme}} > 1)
+           $time = shift  (@{$EpicsStore->{$varname}->{tme}});
+           $val  = shift  (@{$EpicsStore->{$varname}->{val}});
+       }
+    }
+    else {
+       $time = $EpicsStore->{$varname}->{lasttime};
+       $val  = $EpicsStore->{$varname}->{lastval};
+    }
+    $EpicsStore->{$varname}->{lasttime} = $time;
+    $EpicsStore->{$varname}->{lastval}  = $val;
+    $time = $time || -1;
+    $val  = $val || 0;
+    return ($time,$val);
+}
 
-  if (scalar @{$EpicsStore->{$varname}->{tme}} > 0) {
-    if(defined $latest && $latest == 1) {
-      $time = (@{$EpicsStore->{$varname}->{tme}})[-1];
-      $val  = (@{$EpicsStore->{$varname}->{val}})[-1];
-      }
-    else {  #if (scalar @{$EpicsStore->{$varname}->{tme}} > 1)
-      $time = shift  (@{$EpicsStore->{$varname}->{tme}});
-      $val  = shift  (@{$EpicsStore->{$varname}->{val}});
-      }
+sub Put {
+    my ($title, $value) =  @_;
+    my $varname = $EpicsNames->{$title};
+    if (!defined $varname) {
+       return -1;
     }
-  else {
-    $time = $EpicsStore->{$varname}->{lasttime};
-    $val  = $EpicsStore->{$varname}->{lastval};
+    
+    my $c = $EpicsStore->{$varname}->{ca};
+    my $r = $c->is_connected() if(defined $c);
+    
+    my $success = 1;
+    if(!$r) {
+       $success = Connect($title, $varname);
     }
-  $EpicsStore->{$varname}->{lasttime} = $time;
-  $EpicsStore->{$varname}->{lastval}  = $val;
-  $time = $time || -1;
-  $val  = $val || 0;
-  return ($time,$val);
-  }
+    
+    if(!$success) {
+       return -2;
+    }
+            
+    if (($c->element_count()) != 1) {
+       print "5\n";
+       return -3;
+    }
+    
+    my $type = $c->field_type;
+    my @values;
+    if ($type !~ m/ ^DBR_STRING$ | ^DBR_ENUM$ /x) {
+       # Make @ARGV strings numeric
+       push (@values, (map { +$_; } $value));
+    } else {
+       # Use strings
+       push (@values, $value);
+    }
+    $c->put(@values);
+    
+    return 0;
+}
 
 1;
 __END__
deleted file mode 100644 (file)
index 15e6018326a96d9ff917ad73285dd7b542e385ea..0000000000000000000000000000000000000000
+++ /dev/null
@@ -1,186 +0,0 @@
-package Perl2Epics;
-use warnings;
-use strict;
-use Data::Dumper;
-# use Hmon;
-
-use lib '/home/scs/EPICS/gcc-4.4/EPICS-3.14.12.2_linux-x86_64/base/' . '/lib/perl';
-use CA;
-
-$ENV{EPICS_CA_AUTO_ADDR_LIST} = 'YES';
-$ENV{EPICS_CA_ADDR_LIST} = "192.168.100.11 192.168.100.12 192.168.100.13 192.168.100.14 192.168.100.15 localhost";
-
-
-my $EpicsValues = {};
-my $EpicsStore = {};
-my @EpicsChans = ();
-my  $EpicsNames = {};
-my $errcnt = {};
-
-sub callback {
-    my ($chan, $status, $data) = @_;
-    #print Dumper $data;
-    if ($status) {
-       printf "%-30s %s\n", $chan->name, $status;
-    } 
-    else {
-#       print $chan->name . ": $data->{value}\n";
-#       print scalar @{$EpicsStore->{$chan->name}->{tme}}."\n";
-       if(scalar @{$EpicsStore->{$chan->name}->{tme}} > 10) {
-           shift @{$EpicsStore->{$chan->name}->{tme}};
-           shift @{$EpicsStore->{$chan->name}->{val}};
-        }
-       push(@{$EpicsStore->{$chan->name}->{tme}}, $data->{stamp});
-       push(@{$EpicsStore->{$chan->name}->{val}},  $data->{value});
-       $EpicsValues->{$chan->name}->{tme} = $data->{stamp};
-       $EpicsValues->{$chan->name}->{val}  = $data->{value};
-    }
-}
-
-
-sub Connect {
-    my ($title, $varname, $type, $wait) =  @_;
-    #   push(@EpicsChans,CA->new($name));
-    #   $EpicsChans[-1]->create_subscription('v', \&callback, 'DBR_TIME_DOUBLE');
-    ## print $varname."\n";
-    $type = 'DBR_TIME_DOUBLE' unless defined $type;
-    $EpicsStore->{$varname}->{tme} = [];
-    $EpicsStore->{$varname}->{val} = [];
-    $EpicsNames->{$title} = $varname;
-    $errcnt->{$varname} = 0;
-    my $success;
-    eval {
-       my $c = CA->new($varname);
-       CA->pend_io($wait || 0.05);
-       $c->create_subscription('v', \&callback, $type);
-#     $c->get_callback(\&callback, $type, 1);
-       $EpicsStore->{$varname}->{ca} = $c;
-       $success = $c->is_connected();
-    };
-    #print Dumper $EpicsValues;
-    return ($success);
-}
-
-sub Update {
-    CA->pend_event($_[0]);
-}
-
-
-sub GetAll {
-    my $store = {};
-    my $time;
-    my $val;
-    
-    Update(0.001);
-    
-    foreach my $el (keys %{$EpicsNames}) {
-       my $varname = $EpicsNames->{$el};
-       my $ca = $EpicsStore->{$varname}->{ca};
-       my $r = $ca->is_connected() if(defined $ca);
-       my $success = 1;
-       if(!$r && (!defined $errcnt->{$el} || $errcnt->{$el} < 20)) {
-           $success = Connect($el, $varname);
-           $errcnt->{$el}++;
-       }
-
-       if(!$success) {
-           $time = -1;
-           $val  = 0;
-       } elsif (scalar @{$EpicsStore->{$varname}->{tme}} > 0) {
-           $time = (@{$EpicsStore->{$varname}->{tme}})[-1];
-           $val  = (@{$EpicsStore->{$varname}->{val}})[-1];
-       } else {
-           $time = $EpicsStore->{$varname}->{lasttime};
-           $val  = $EpicsStore->{$varname}->{lastval};
-       }
-       $store->{$el}->{tme} = $time;
-       $store->{$el}->{val}  = $val;
-       $EpicsStore->{$varname}->{lasttime} = $time;
-       $EpicsStore->{$varname}->{lastval}  = $val;
-    }
-    
-    return $store;
-}
-
-sub Get {
-    my ($title,$latest) = @_;
-    my $varname = $EpicsNames->{$title};
-    my $time;
-    my $val;
-#   print $varname;
-
-    my $c = $EpicsStore->{$varname}->{ca};
-    my $r = $c->is_connected() if(defined $c);
-
-    my $success = 1;
-    if(!$r) {
-       $success = Connect($title, $varname);
-    }
-
-    if(!$success) {
-       return (-1, 0);
-    }
-
-    Update(0.00001);
-
-    if (scalar @{$EpicsStore->{$varname}->{tme}} > 0) {
-       if(defined $latest && $latest == 1) {
-           $time = (@{$EpicsStore->{$varname}->{tme}})[-1];
-           $val  = (@{$EpicsStore->{$varname}->{val}})[-1];
-       }
-       else {  #if (scalar @{$EpicsStore->{$varname}->{tme}} > 1)
-           $time = shift  (@{$EpicsStore->{$varname}->{tme}});
-           $val  = shift  (@{$EpicsStore->{$varname}->{val}});
-       }
-    }
-    else {
-       $time = $EpicsStore->{$varname}->{lasttime};
-       $val  = $EpicsStore->{$varname}->{lastval};
-    }
-    $EpicsStore->{$varname}->{lasttime} = $time;
-    $EpicsStore->{$varname}->{lastval}  = $val;
-    $time = $time || -1;
-    $val  = $val || 0;
-    return ($time,$val);
-}
-
-sub Put {
-    my ($title, $value) =  @_;
-    my $varname = $EpicsNames->{$title};
-    if (!defined $varname) {
-       return -1;
-    }
-    
-    my $c = $EpicsStore->{$varname}->{ca};
-    my $r = $c->is_connected() if(defined $c);
-    
-    my $success = 1;
-    if(!$r) {
-       $success = Connect($title, $varname);
-    }
-    
-    if(!$success) {
-       return -2;
-    }
-            
-    if (($c->element_count()) != 1) {
-       print "5\n";
-       return -3;
-    }
-    
-    my $type = $c->field_type;
-    my @values;
-    if ($type !~ m/ ^DBR_STRING$ | ^DBR_ENUM$ /x) {
-       # Make @ARGV strings numeric
-       push (@values, (map { +$_; } $value));
-    } else {
-       # Use strings
-       push (@values, $value);
-    }
-    $c->put(@values);
-    
-    return 0;
-}
-
-1;
-__END__
new file mode 120000 (symlink)
index 0000000000000000000000000000000000000000..2efb43a775bf47a6eabb94d4f9375530f6fffeb0
--- /dev/null
@@ -0,0 +1 @@
+../hmon/Perl2Epics.pm
\ No newline at end of file