]> jspc29.x-matter.uni-frankfurt.de Git - daqtools.git/commitdiff
New Billboard incl. Gas and Mirror
authorCbm Rich <richdaq@wuppertal>
Mon, 17 Nov 2014 21:34:14 +0000 (22:34 +0100)
committerCbm Rich <richdaq@wuppertal>
Mon, 17 Nov 2014 21:34:14 +0000 (22:34 +0100)
dmon/scripts/dmon_billboard.pl

index a1e1ba585904be7b6e210d2b687f35b99a67b51a..2af2384c72110dfd7962cfcc4eeafbc9bc0b316e 100755 (executable)
@@ -14,6 +14,22 @@ use Perl2Epics;
 my %config = Dmon::StartUp();
 my $t0;
 
+sub encInt {
+  my $val = shift;
+  my $factor = shift;
+  my $bits = shift;
+
+  $bits = 16 unless $bits;
+  $factor = 1 unless $factor;  
+  
+  return (2 << $bits) - 1 unless defined $val;
+  
+  $val *= $factor;
+  $val = (2 << $bits) - 1 if $val >= (2 << $bits);
+  
+  return $val;
+}
+
 for(my $i = 0; $i< 16 ; $i++) {
   Perl2Epics::Connect("PC".$i, sprintf('CBM:PWRSWITCH:GetCurrent%02X',$i));
 
@@ -24,6 +40,23 @@ for(my $i = 0; $i< 16 ; $i++) {
 Perl2Epics::Connect("Pres","CBM:BMP180:GetPressure");
 Perl2Epics::Connect("Temp","CBM:BMP180:GetTemp");
 
+Perl2Epics::Connect("M1", "CBM:RICH:Mirror:Pos:ActualPosition1"); 
+Perl2Epics::Connect("M2", "CBM:RICH:Mirror:Pos:ActualPosition2"); 
+
+Perl2Epics::Connect("O2", "CBM:RICH:Gas:O2");
+Perl2Epics::Connect("H2O", "CBM:RICH:Gas:H2O");
+Perl2Epics::Connect("PT-1", "CBM:RICH:Gas:PT-1");
+Perl2Epics::Connect("PT-2", "CBM:RICH:Gas:PT-2");
+Perl2Epics::Connect("PT-3", "CBM:RICH:Gas:PT-3");
+Perl2Epics::Connect("PT-4", "CBM:RICH:Gas:PT-4");
+Perl2Epics::Connect("PTB", "CBM:RICH:Gas:PTB");
+Perl2Epics::Connect("TT-1", "CBM:RICH:Gas:TT-1");
+Perl2Epics::Connect("TT-2", "CBM:RICH:Gas:TT-2");
+Perl2Epics::Connect("FM-1", "CBM:RICH:Gas:FM-1");
+Perl2Epics::Connect("RefrIndex", "CBM:RICH:Gas:RefrIndex");
+
+
+
 while(1) {
 # update billboard
   my @billboardValues = ();
@@ -45,7 +78,6 @@ while(1) {
     
     push(@billboardValues, $reg) if ($i & 1);
   }
-  
 
   # threshold timestamp
   my $threshTime = do($config{UserDirectory} . '/thresh/billboard_info');
@@ -56,10 +88,22 @@ while(1) {
     push @billboardValues,
       ((($epicsData->{"HV_I".$i}->{"val"} * 1e6) & 0xffff) << 16) |
       ((($epicsData->{"HV_U".$i}->{"val"} * 1e2) & 0xffff) <<  0);
-      
-    #print(($epicsData->{"HV_I".$i}->{"val"} * 1e6) . "uA @ " . ($epicsData->{"HV_U".$i}->{"val"} * 1e3) . " mV \n");
   }
   
+  # mirror position
+  push @billboardValues, (encInt($epicsData->{"M2"}->{"val"}   ,   100.0) << 16) | encInt($epicsData->{"M1"}->{"val"}   ,   100.0); 
+  
+  push @billboardValues, (encInt($epicsData->{"H2O"}->{"val"}  ,    32.0) << 16) | encInt($epicsData->{"O2"}->{"val"}   ,    32.0); 
+  
+  push @billboardValues, (encInt($epicsData->{"PTB"}->{"val"}  ,    32.0) << 16) | encInt($epicsData->{"PT-1"}->{"val"} , 12800.0); 
+  push @billboardValues, (encInt($epicsData->{"PT-3"}->{"val"} ,    32.0) << 16) | encInt($epicsData->{"PT-2"}->{"val"} ,    32.0);
+  push @billboardValues, (encInt($epicsData->{"TT-2"}->{"val"} ,   128.0) << 16) | encInt($epicsData->{"TT-1"}->{"val"} ,   128.0); 
+  push @billboardValues, (encInt($epicsData->{"FM-1"}->{"val"} , 512.0) << 16) | encInt($epicsData->{"PT-4"}->{"val"} , 16384.0); 
+  
+  push @billboardValues,  encInt($epicsData->{"RefrIndex"}->{"val"} , 128000000.0); 
+  
+  #print Dumper $epicsData;
+  
   trb_register_write_mem($config{BillboardAddress}, 0xb100, 0, \@billboardValues, scalar @billboardValues); # copy data
   trb_register_write($config{BillboardAddress}, 0xb000, scalar @billboardValues); # commit