]> jspc29.x-matter.uni-frankfurt.de Git - mvdsensorcontrol.git/commitdiff
test
authorMichael Wiebusch <stratomaster@gmx.net>
Wed, 31 Jul 2013 11:29:16 +0000 (13:29 +0200)
committerMichael Wiebusch <stratomaster@gmx.net>
Wed, 31 Jul 2013 11:29:16 +0000 (13:29 +0200)
tools/preview/prevImg.pl [moved from tools/preview/testgui.pl with 76% similarity]
tools/testgui.pl
tools/xmlOperations.pm

similarity index 76%
rename from tools/preview/testgui.pl
rename to tools/preview/prevImg.pl
index b081038e6a2112edecfff22b28d7d32f2bc455f1..49e5f540259bce41749ecad6c53e195aa7084fc4 100755 (executable)
@@ -24,13 +24,13 @@ print start_html(
 -style=>{'src'=>'../layout/styles.css'}
 );
 
-print h2("testgui");
-print "<p> still more to come </p>";
+print h2("testgui");
+print "<p> still more to come </p>";
 
-print escapeHTML("hallo<<<>>>&&&!!"),br;
-print escapeHTML($here);
+print escapeHTML("hallo<<<>>>&&&!!"),br;
+print escapeHTML($here);
 $ENV{'PATH'}=$ENV{'PATH'}.":/home/hadaq/bin";
-print br,$ENV{'PATH'},br;
+print br,$ENV{'PATH'},br;
 system("./run.pl -t 0.1 -id ccc1ccc1");
 print img{src=>'image_recalibrated_1.png'};
 
index a4fe94a6c9e0e44c4300be4174d7970b1cf665ab..e03894f32b241183cbf74963306eb0b8633f628b 100755 (executable)
@@ -22,7 +22,7 @@ our $confDir = '../config';
 our $specDir = '../specs';
 
 my $setupFileName = "testsetup.xml";
-my $setupFile = $setupDir.$setupFileName;
+my $setupFile = $setupDir."/".$setupFileName;
 
 # the file that tells me what fields should be printed in the quick edit area
 # for each sensor
@@ -33,6 +33,7 @@ my $quickEditMaskFile = $confDir."/".$quickEditMaskFileName;
 #### globals:
 
 my $quickEditMaskTree;
+my $setupTree;
 
 
 #######################
@@ -68,6 +69,14 @@ unless($q->param()) {
 ##################################
 ####    Subs 
 ##################################
+
+sub parse_setupFile {
+  my $parser = XML::LibXML->new();
+  unless( -e $setupFile) { 
+    die "setup file $setupFile does not exist!\n";
+  }
+  $setupTree = $parser->parse_file($setupFile);
+}
   
   
 sub parse_quickEditMaskFile {
@@ -78,29 +87,7 @@ sub parse_quickEditMaskFile {
   $quickEditMaskTree = $parser->parse_file($quickEditMaskFile);
 }
 
-sub print_quickEditArea {
-
-  unless(defined($quickEditMaskTree)) {
-    parse_quickEditMaskFile();
-  }
-  
-  print "<table>";
-  my @fields = $quickEditMaskTree->findnodes("/MAPS/register/field");
-  for my $field (@fields) {
-    print "<tr><td>";
-    print $field->findvalue("./\@name");
-    print "</td></tr>";
-    
-  
-  }
-  print "</table>";
-  print "print_registers();",br;
-  parseConfigAndSpec("0.xml");
-  integrateAncestry();
-  print_registers(getConfigFile());
-
 
-}
 
 sub init_html{
 
@@ -129,8 +116,9 @@ print h2("testgui");
 
 
 print "<div id='quickEditArea'>";
-print_quickEditArea();
+print_quickEditArea("0.xml");
 print "</div>";
+print_setupStructure();
 print end_html;
 
 
@@ -140,7 +128,56 @@ print end_html;
 
 
 
+sub print_setupStructure {
 
+  unless(defined($setupTree)) {
+    parse_setupFile();
+  }
+  my $setup = $setupTree->findnodes("/DetectorSetup")->shift();
+  unless(defined($setup)) { die "did not find DetectorSetup node in setup file!\n";}
+  my $setupDesc = $setup->findvalue("./description");
+  my $setupName = $setup->findvalue("./\@name");
+  print h2("Setup: $setupName");
+  print "<p>description: $setupDesc</p>";
+  
+  my @controllers = $setup->findnodes("./controller");
+  unless(scalar(@controllers) > 0) { die "no controllers in setup file!\n";}
+  for my $controller (@controllers) {
+    my $controllerName = $controller->findvalue("./\@name");
+    my $controllerAddress = $controller->findvalue("./\@address");
+    my $controllerId = $controller->findvalue("./\@id");
+    print h3("Controller name:$controllerName id:$controllerId address:$controllerAddress");
+    
+    my @chains = $controller->findnodes("./chain");
+    unless(scalar(@chains)>0) {die "no chains attached to controller $controllerName\n";}
+    
+    for my $chain (@chains) {
+      my $chainName = $chain->findvalue("./\@name");
+      my $chainId = $chain->findvalue("./\@id");
+      print h4("Chain name:$chainName id:$chainId");
+      
+      my @sensors = $chain->findnodes("./sensor");
+      unless(scalar(@sensors)>0) { die "no sensors attached to chain $chainName\n";}
+      for my $sensor (@sensors) {
+        
+        my $sensorId = $sensor->findvalue("./\@id");
+        my $sensorName = $sensor->findvalue("./\@name");
+        my $sensorConfig = $sensor->findvalue("./\@config");
+        my $sensorEnabled = $sensor->findvalue("./\@enabled");
+        my $sensorSerial = $sensor->findvalue("./\@serial");
+        my $sensorPosition = $sensor->findnodes("./position")->shift();
+        my $sensorDescription = $sensor->findvalue("./description");
+        
+        print h5("Sensor name:$sensorName id:$sensorId");
+        print "<p>description: $sensorDescription</p>";
+        print_sensorArea($sensor);
+      }
+      
+    }
+  
+  }
+  
+}
 
 
 sub report_param {
@@ -162,6 +199,67 @@ sub report_param {
 
 
 #### html output subs ###########
+
+sub print_sensorArea {
+
+  my $sensor = $_[0];
+  # this is an xml object that contains the sensor node
+  # from the setup file
+  my $sensorId = $sensor->findvalue("./\@id");
+  my $sensorName = $sensor->findvalue("./\@name");
+  my $sensorConfig = $sensor->findvalue("./\@config");
+  my $sensorEnabled = $sensor->findvalue("./\@enabled");
+  my $sensorSerial = $sensor->findvalue("./\@serial");
+  my $sensorPosition = $sensor->findnodes("./position")->shift();
+  my $sensorDescription = $sensor->findvalue("./description");
+  
+  my $sensorAreaId = $sensorId;
+  print "<div class='sensorAreaDiv' id='".$sensorAreaId."'>";
+  print "<table class='sensorAreaTable'>";
+  print "<tr>";
+  print "<td colspan=2>$sensorName</td>";
+  print "</tr>";
+  print "<tr>";
+  print "<td>blah</td><td>";
+  print_quickEditArea($sensorConfig);
+  print "</td>";
+  print "</tr>";
+  print "<table>";
+  print "</div>";
+  
+
+}
+# description the block that is printed for each sensor,
+# containing the preview plot and the quick edit area
+
+
+sub print_quickEditArea {
+
+  my $argumentConfigFile = $_[0];
+
+  unless(defined($quickEditMaskTree)) {
+    parse_quickEditMaskFile();
+  }
+  
+#   print "<table>";
+#   my @fields = $quickEditMaskTree->findnodes("/MAPS/register/field");
+#   for my $field (@fields) {
+#     print "<tr><td>";
+#     print $field->findvalue("./\@name");
+#     print "</td></tr>";
+#     
+#   
+#   }
+#   print "</table>";
+#   print "print_registers();",br;
+  parseConfigAndSpec($argumentConfigFile);
+  integrateAncestry();
+  print_registers(getConfigFile());
+
+
+}
+
+
 sub print_registers {
 
   my $configFile = getConfigFile();
index 37274d719a9369f304e852c2b3d6a078b5e39c80..2db824b9939212632fd98d86006520e5b58557d3 100644 (file)
@@ -109,6 +109,7 @@ sub parseConfigAndSpec {
 #args: configFileName #globs: $specFileName,$configTree,$specFile,$specDir,$specTree,$parser #calls: parseConfigFile()
 
 sub parseConfigFile { 
+
   $configFileName = $_[0];
   $configFile     = $confDir . "/" . $_[0];
   $configTree     = $parser->parse_file($configFile);
@@ -257,7 +258,8 @@ sub buildAncestry {
 
 
 sub integrateAncestry {
-
+  undef @ancestryList;
+  undef $ancestryTree;
   buildAncestry($configFileName,"");
   
   my $counter = 1;