]> jspc29.x-matter.uni-frankfurt.de Git - mvdsensorcontrol.git/commitdiff
cleaned up, finally the quick edit area in testgui.pl and the jtageditor.pl are gener...
authorMichael Wiebusch <stratomaster@gmx.net>
Thu, 15 Aug 2013 14:12:15 +0000 (16:12 +0200)
committerMichael Wiebusch <stratomaster@gmx.net>
Thu, 15 Aug 2013 14:12:15 +0000 (16:12 +0200)
tools/jtageditor.pl
tools/testgui.pl
tools/xmlRendering.pm

index 5864729582974eafbf5b03d1dcb37144a8a81773..61aece86f844b2ea64e41cef22732e413b3794a8 100755 (executable)
@@ -78,6 +78,8 @@ if ( !keys %cgiHash )
 
 our $confDir = '../config';
 our $specDir = '../specs';
+# our $editorRefreshCommand="reloadSetTree()";
+setEditorRefreshCommand("reloadSetTree()");
 
 # end of global variables
 
index 651dc06c732bd77f4af763400fbaa2f21fb70054..4af5f1af9e81e8c7739803af025fe77160437b71 100755 (executable)
@@ -13,13 +13,14 @@ use CGI::Carp qw(fatalsToBrowser);
 use HTML::Entities;
 require Common;
 require xmlOperations;
+require xmlRendering;
+
 
 use FindBin;
 use lib "$FindBin::Bin/..";
 use Environment;
 
 
-
 our $setupDir = SETUPDIR;
 our $confDir  = CONFDIR;
 our $specDir  = SPECDIR;
@@ -29,8 +30,9 @@ my $setupFile = SETUPFILE;
 
 # the file that tells me what fields should be printed in the quick edit area
 # for each sensor
+
 my $quickEditMaskFileName = "quickEditMask.xml";
-my $quickEditMaskFile = $confDir."/".$quickEditMaskFileName;
+setQuickEditMaskFile($confDir."/".$quickEditMaskFileName);
 
 
 #### globals:
@@ -106,13 +108,13 @@ sub parse_setupFile {
 }
   
   
-sub parse_quickEditMaskFile {
-  my $parser       = XML::LibXML->new();
-  unless( -e $quickEditMaskFile) { 
-    die "quickEditMaskFile $quickEditMaskFile does not exist!\n";
-  }
-  $quickEditMaskTree = $parser->parse_file($quickEditMaskFile);
-}
+sub parse_quickEditMaskFile {
+  my $parser       = XML::LibXML->new();
+  unless( -e $quickEditMaskFile) { 
+    die "quickEditMaskFile $quickEditMaskFile does not exist!\n";
+  }
+  $quickEditMaskTree = $parser->parse_file($quickEditMaskFile);
+}
 
 
 
@@ -283,9 +285,7 @@ sub print_quickEditArea {
 
   my $argumentConfigFile = $_[0];
 
-  unless(defined($quickEditMaskTree)) {
-    parse_quickEditMaskFile();
-  }
+
   
 #   print "<table>";
 #   my @fields = $quickEditMaskTree->findnodes("/MAPS/register/field");
@@ -302,6 +302,7 @@ sub print_quickEditArea {
   integrateAncestry();
   print "<div class='header'>quick editor</div>";
   print "<div align=center>".getConfigFileName()."</div>";
+  setEditorRefreshCommand("reloadQuickEditArea(\"".getConfigFileName()."\",\"$quickEditAreaId\")"); 
   print_registers(getConfigFile());
 
 
@@ -309,214 +310,203 @@ sub print_quickEditArea {
 
 
 
-
-sub print_registers {
-
-  my $configFile = getConfigFile();
-  my $specFile = getSpecFile();
-  my $configFileName = getConfigFileName();
-  my $specFileName = getSpecFileName();
-  my $configTree = getConfigTree();
-  my $specTree = getSpecTree();
-  
-  my $xmlfile = $_[0];
-  my $xmltree;
+# 
+# sub print_registers {
+# 
+#   my $configFile = getConfigFile();
+#   my $specFile = getSpecFile();
+#   my $configFileName = getConfigFileName();
+#   my $specFileName = getSpecFileName();
+#   my $configTree = getConfigTree();
+#   my $specTree = getSpecTree();
+#   
+#   my $xmlfile = $_[0];
+#   my $xmltree;
+# #   if ( $xmlfile eq $configFile ) {
+# #     $xmltree = $configTree;
+# #   }
+# #   elsif ( $xmlfile eq $specFile ) {
+# #     $xmltree = $specTree;
+# #   }
+# #   else {
+# #     die "xmlfile given to sub print_registers is unknown";
+# #   }
+#   my @registers = sort by_name $quickEditMaskTree->findnodes("/MAPS/register");
+#   print "<table class=\"registers\"";
 #   if ( $xmlfile eq $configFile ) {
-#     $xmltree = $configTree;
-#   }
-#   elsif ( $xmlfile eq $specFile ) {
-#     $xmltree = $specTree;
+#     print "id='configFileRegisters'";
 #   }
-#   else {
-#     die "xmlfile given to sub print_registers is unknown";
+#   print ">";
+#   for my $register (@registers) {
+# 
+#     my $registerName  = $register->findvalue("./\@name");
+#     my $registerId    = $register->findvalue("./\@id");
+#     my $registerSize  = $register->findvalue("./\@size");
+#     my $registerDescr = prepare_text(
+#       $specTree->findvalue(
+#         "/MAPS/register[\@name='" . $registerName . "']/description"
+#         )
+#         || "n/a"
+#     );
+# 
+#     my $flistid = $configFile . "//" . $registerName;
+# 
+#     print "<tr>";
+# 
+#     print <<EOF;
+# <td onClick='toggleVis("$flistid",this)' class='regheader'>&nbsp;+&nbsp;</td>
+# EOF
+#     print "<td title=\"$registerDescr\">$registerName</td>";
+# 
+#     #print "<td>$registerId</td>";
+# 
+# #     if ( $xmlfile eq $configFile ) {  # we are printing the Specifications Tree
+# #       print <<EOF;
+# # <td class='button_move' onclick='deleteSettings("$configFileName","$registerName","");reloadQuickEditArea("$configFileName","$quickEditAreaId")'>&nbsp;X&nbsp;</td>
+# # EOF
+# #     }
+# 
+# 
+#     print "</tr>";
+# 
+#     #print "<tr>";
+# 
+#     print '<tr id="' . $flistid . '" class="bitfield">';
+#     print '<td></td>';
+#     print '<td  class="fieldcontainer">';
+#     print_fields( $configFile, $register );
+#     print "<td>";
+#     print "</tr>";
 #   }
-  my @registers = sort by_name $quickEditMaskTree->findnodes("/MAPS/register");
-  print "<table class=\"registers\"";
-  if ( $xmlfile eq $configFile ) {
-    print "id='configFileRegisters'";
-  }
-  print ">";
-  for my $register (@registers) {
-
-    my $registerName  = $register->findvalue("./\@name");
-    
-#      # if register not in the mask file, don't print!
-#     unless( $quickEditMaskTree->findnodes("/MAPS/register[\@name='".
-#     $registerName."']")) {
-#       next;
+#   print "</table>";
+# }
+# 
+# sub print_fields {
+# 
+#   my $configFile = getConfigFile();
+#   my $specFile = getSpecFile();
+#   my $configFileName = getConfigFileName();
+#   my $specFileName = getSpecFileName();
+#   my $configTree = getConfigTree();
+#   my $specTree = getSpecTree();
+# 
+#   my $register     = $_[1];
+#   my $xmlfile      = $_[0];
+#   my $registerName = $register->findvalue("./\@name");
+#   
+#   my @maskFields       = sort by_name $register->findnodes("./field");
+#   print "<table class=\"fields\">";
+#   for my $maskField (@maskFields) {
+#   
+#     my $fieldName      = $maskField->findvalue("./\@name");    
+#     
+#     my $field = $configTree->findnodes("/MAPS/register[\@name='".
+#     $registerName."']/field[\@name='".$fieldName."']")->shift();
+# 
+#     
+#     unless(defined($field)){
+# 
+#       my $specField = $specTree->findnodes("/MAPS/register[\@name='".
+#       $registerName."']/field[\@name='".$fieldName."']")->shift();
+#       $field=$register->addNewChild("","field");
+#       $field->setAttribute("name",$fieldName);
+#       $field->setAttribute("value",$specField->findvalue("./\@defaultValue"));
+#       $field->setAttribute( "isHeritageFrom", $specFileName );
 #     }
-    
-    my $registerId    = $register->findvalue("./\@id");
-    my $registerSize  = $register->findvalue("./\@size");
-    my $registerDescr = prepare_text(
-      $specTree->findvalue(
-        "/MAPS/register[\@name='" . $registerName . "']/description"
-        )
-        || "n/a"
-    );
-
-    my $flistid = $configFile . "//" . $registerName;
-
-    print "<tr>";
-
-    print <<EOF;
-<td onClick='toggleVis("$flistid",this)' class='regheader'>&nbsp;+&nbsp;</td>
-EOF
-    print "<td title=\"$registerDescr\">$registerName</td>";
-
-    #print "<td>$registerId</td>";
-
-#     if ( $xmlfile eq $configFile ) {  # we are printing the Specifications Tree
+#   
+# 
+#     
+#     
+# 
+#     my $isHeritageFrom = $field->findvalue("./\@isHeritageFrom") || "";
+# #     my $isHeritageFrom = "";
+#     my $readOnlyFlag   = 0;
+#     my $fieldValue     = $field->findvalue("./\@value");
+#     my $fieldSize      =
+#       $specTree->findvalue( "/MAPS/register[\@name='"
+#         . $registerName
+#         . "']/field[\@name='"
+#         . $fieldName
+#         . "']/\@size" )
+#       || "n/a";
+#     my $fieldDescr = prepare_text(
+#       $specTree->findvalue(
+#             "/MAPS/register[\@name='"
+#           . $registerName
+#           . "']/field[\@name='"
+#           . $fieldName
+#           . "']/description"
+#         )
+#         || "n/a"
+#     );
+# 
+#     my $maxFieldVal = 2**$fieldSize;
+#     my $sizeInfo    =
+#       sprintf(
+#       "Field contains %d bits, possible values: 0-%d (0x0-0x%x)\n\n",
+#       $fieldSize, $maxFieldVal, $maxFieldVal );
+# 
+#     $fieldDescr = $sizeInfo . $fieldDescr;
+# 
+#     unless ( $isHeritageFrom eq "" ) {
+#       $fieldDescr =
+#         "Field was inherited from $isHeritageFrom\n\n" . $fieldDescr;
+#     }
+# 
+#     my $fieldId = $xmlfile . "//" . $registerName . "/" . $fieldName;
+#     if ( $fieldValue eq "" ) {
+#       $fieldValue   = $field->findvalue("./\@defaultValue");
+#       $readOnlyFlag = 1;
+#     }
+# 
+#     print "<tr class='fileLevel" . getFileLevel($isHeritageFrom) . "'>";
+#     print "<td width=120 title=\"$fieldDescr\"";
+#     print ">$fieldName</td>";
+#     print "<td> &nbsp;=&nbsp;</td>";
+#     if ($readOnlyFlag) {
 #       print <<EOF;
-# <td class='button_move' onclick='deleteSettings("$configFileName","$registerName","");reloadQuickEditArea("$configFileName","$quickEditAreaId")'>&nbsp;X&nbsp;</td>
+#     <td width=120  align='right'>$fieldValue</td>
 # EOF
 #     }
-
-
-    print "</tr>";
-
-    #print "<tr>";
-
-    print '<tr id="' . $flistid . '" class="bitfield">';
-    print '<td></td>';
-    print '<td  class="fieldcontainer">';
-    print_fields( $configFile, $register );
-    print "<td>";
-    print "</tr>";
-  }
-  print "</table>";
-}
-
-sub print_fields {
-
-  my $configFile = getConfigFile();
-  my $specFile = getSpecFile();
-  my $configFileName = getConfigFileName();
-  my $specFileName = getSpecFileName();
-  my $configTree = getConfigTree();
-  my $specTree = getSpecTree();
-
-  my $register     = $_[1];
-  my $xmlfile      = $_[0];
-  my $registerName = $register->findvalue("./\@name");
-  my @maskFields       = sort by_name $register->findnodes("./field");
-  print "<table class=\"fields\">";
-  for my $maskField (@maskFields) {
-  
-    my $fieldName      = $maskField->findvalue("./\@name");    
-    
-    my $field = $configTree->findnodes("/MAPS/register[\@name='".
-    $registerName."']/field[\@name='".$fieldName."']")->shift();
-
-    
-    unless(defined($field)){
-
-      my $specField = $specTree->findnodes("/MAPS/register[\@name='".
-      $registerName."']/field[\@name='".$fieldName."']")->shift();
-      $field=$register->addNewChild("","field");
-      $field->setAttribute("name",$fieldName);
-      $field->setAttribute("value",$specField->findvalue("./\@defaultValue"));
-      $field->setAttribute( "isHeritageFrom", $specFileName );
-    }
-  
-
-    
-    
-#       # if field not in the mask file, don't print!
-#     unless( $quickEditMaskTree->findnodes("/MAPS/register[\@name='".
-#     $registerName."']/field[\@name='".$fieldName."']")) {
-#       next;
-#     }
-
-    my $isHeritageFrom = $field->findvalue("./\@isHeritageFrom") || "";
-#     my $isHeritageFrom = "";
-    my $readOnlyFlag   = 0;
-    my $fieldValue     = $field->findvalue("./\@value");
-    my $fieldSize      =
-      $specTree->findvalue( "/MAPS/register[\@name='"
-        . $registerName
-        . "']/field[\@name='"
-        . $fieldName
-        . "']/\@size" )
-      || "n/a";
-    my $fieldDescr = prepare_text(
-      $specTree->findvalue(
-            "/MAPS/register[\@name='"
-          . $registerName
-          . "']/field[\@name='"
-          . $fieldName
-          . "']/description"
-        )
-        || "n/a"
-    );
-
-    my $maxFieldVal = 2**$fieldSize;
-    my $sizeInfo    =
-      sprintf(
-      "Field contains %d bits, possible values: 0-%d (0x0-0x%x)\n\n",
-      $fieldSize, $maxFieldVal, $maxFieldVal );
-
-    $fieldDescr = $sizeInfo . $fieldDescr;
-
-    unless ( $isHeritageFrom eq "" ) {
-      $fieldDescr =
-        "Field was inherited from $isHeritageFrom\n\n" . $fieldDescr;
-    }
-
-    my $fieldId = $xmlfile . "//" . $registerName . "/" . $fieldName;
-    if ( $fieldValue eq "" ) {
-      $fieldValue   = $field->findvalue("./\@defaultValue");
-      $readOnlyFlag = 1;
-    }
-
-    print "<tr class='fileLevel" . getFileLevel($isHeritageFrom) . "'>";
-    print "<td width=120 title=\"$fieldDescr\"";
-    print ">$fieldName</td>";
-    print "<td> &nbsp;=&nbsp;</td>";
-    if ($readOnlyFlag) {
-      print <<EOF;
-    <td width=120  align='right'>$fieldValue</td>
-EOF
-    }
-    else {
-      print <<EOF;
-<td align='right'>
-<input type='text' align='right' value='$fieldValue' onchange='saveSettings("$configFileName","$registerName","$fieldName",this.value);reloadQuickEditArea("$configFileName","$quickEditAreaId")'  >
-</td>
-EOF
-
-    }
-
-    print '</td>';
-#     if ( $xmlfile eq $specFile ) { # we are printing the Specifications tree
+#     else {
 #       print <<EOF;
-# <td class='button_move' onclick='saveSettings("$configFileName","$registerName","$fieldName","$fieldValue");'>&nbsp;&rarr;&nbsp;</td>
+# <td align='right'>
+# <input type='text' align='right' value='$fieldValue' onchange='saveSettings("$configFileName","$registerName","$fieldName",this.value);reloadQuickEditArea("$configFileName","$quickEditAreaId")'  >
+# </td>
 # EOF
+# 
 #     }
-    if ( $xmlfile eq $configFile ) {    # we are printing the Settings Tree
-
-      if ( $isHeritageFrom eq "" )
-      {    # these are actual settings, not inherited!
-        print <<EOF;
-<td class='button_move' onclick='deleteSettings("$configFileName","$registerName","$fieldName");reloadQuickEditArea("$configFileName","$quickEditAreaId")'>&nbsp;X&nbsp;</td>
-EOF
-      }
-      else {
-        print "<td class='button_move_deac'>&nbsp;X&nbsp;</td>";
-      }
-    }
-    print "</tr>";
-    if (   ( any2dec($fieldValue) < 0 )
-      or ( any2dec($fieldValue) > $maxFieldVal ) )
-    {
-      print
-"<tr class='fieldError'><td colspan = 4 align='center'>!!!Above value not in allowed range!!!</td></tr>"
-        ;    # just debug
-    }
-  }
-  print "</table>";
-
-}
+# 
+#     print '</td>';
+# #     if ( $xmlfile eq $specFile ) { # we are printing the Specifications tree
+# #       print <<EOF;
+# # <td class='button_move' onclick='saveSettings("$configFileName","$registerName","$fieldName","$fieldValue");'>&nbsp;&rarr;&nbsp;</td>
+# # EOF
+# #     }
+#     if ( $xmlfile eq $configFile ) {    # we are printing the Settings Tree
+# 
+#       if ( $isHeritageFrom eq "" )
+#       {    # these are actual settings, not inherited!
+#         print <<EOF;
+# <td class='button_move' onclick='deleteSettings("$configFileName","$registerName","$fieldName");reloadQuickEditArea("$configFileName","$quickEditAreaId")'>&nbsp;X&nbsp;</td>
+# EOF
+#       }
+#       else {
+#         print "<td class='button_move_deac'>&nbsp;X&nbsp;</td>";
+#       }
+#     }
+#     print "</tr>";
+#     if (   ( any2dec($fieldValue) < 0 )
+#       or ( any2dec($fieldValue) > $maxFieldVal ) )
+#     {
+#       print
+# "<tr class='fieldError'><td colspan = 4 align='center'>!!!Above value not in allowed range!!!</td></tr>"
+#         ;    # just debug
+#     }
+#   }
+#   print "</table>";
+# 
+# }
 
 sub report_param {
   print br,br;
index 1319b76c3a5dd516f6087d6b3b5db3c3065684b4..aebbb3c326a3e704480a9295840be4ed9da44ff0 100644 (file)
@@ -1,6 +1,30 @@
 #!/usr/bin/perl -w
 
 
+
+
+my $quickEditMaskTree;
+my $quickEditMaskFile;
+
+my $editorRefreshCommand;
+
+sub setEditorRefreshCommand {
+  $editorRefreshCommand=$_[0];
+}
+
+sub setQuickEditMaskFile {
+  $quickEditMaskFile=$_[0];
+  parse_quickEditMaskFile();
+}
+
+sub parse_quickEditMaskFile {
+  my $parser       = XML::LibXML->new();
+  unless( -e $quickEditMaskFile) { 
+    die "quickEditMaskFile $quickEditMaskFile does not exist!\n";
+  }
+  $quickEditMaskTree = $parser->parse_file($quickEditMaskFile);
+}
+
 sub print_registers {
 
   my $configFile = getConfigFile();
@@ -13,7 +37,11 @@ sub print_registers {
   my $xmlfile = $_[0];
   my $xmltree;
   if ( $xmlfile eq $configFile ) {
-    $xmltree = $configTree;
+    unless(defined($quickEditMaskTree)){
+      $xmltree = $configTree;
+    } else {
+      $xmltree = $quickEditMaskTree;
+    }
   }
   elsif ( $xmlfile eq $specFile ) {
     $xmltree = $specTree;
@@ -52,13 +80,13 @@ EOF
 
     if ( $xmlfile eq $configFile ) {  # we are printing the Specifications Tree
       print <<EOF;
-<td class='button_move' onclick='deleteSettings(selectedConfigFile(),"$registerName","");reloadSetTree()'>&nbsp;X&nbsp;</td>
+<td class='button_move' onclick='deleteSettings("$configFileName","$registerName","");$editorRefreshCommand'>&nbsp;X&nbsp;</td>
 EOF
     }
     if ( $xmlfile eq $specFile ) {    # we are printing the Settings Tree
 
       print <<EOF;
-<td class='button_move' onclick='copyDefaultRegister(selectedConfigFile(),"$registerName");reloadSetTree()'>&nbsp;&rarr;&nbsp;</td>
+<td class='button_move' onclick='copyDefaultRegister("$configFileName","$registerName");$editorRefreshCommand'>&nbsp;&rarr;&nbsp;</td>
 EOF
     }
 
@@ -109,10 +137,35 @@ sub print_fields {
   my $register     = $_[1];
   my $xmlfile      = $_[0];
   my $registerName = $register->findvalue("./\@name");
-  my @fields       = sort by_name $register->findnodes("./field");
+  
+#   my @fields       = sort by_name $register->findnodes("./field");
+  my @maskFields       = sort by_name $register->findnodes("./field");
   print "<table class=\"fields\">";
-  for my $field (@fields) {
-    my $fieldName      = $field->findvalue("./\@name");
+#   for my $field (@fields) {
+  for my $maskField (@maskFields) {
+  
+    my $fieldName      = $maskField->findvalue("./\@name");    
+  
+    my $field = $configTree->findnodes("/MAPS/register[\@name='".
+    $registerName."']/field[\@name='".$fieldName."']")->shift();
+
+    unless(defined($field)){
+      # check if the mask field is defined in the config tree
+      # if not get the default value from the specification
+      # this feature should be only important for the testgui,
+      # not for the JTAG editor, because there
+      # the quickEditMaskTree == configTree
+      my $specField = $specTree->findnodes("/MAPS/register[\@name='".
+      $registerName."']/field[\@name='".$fieldName."']")->shift();
+      $field=$register->addNewChild("","field");
+      $field->setAttribute("name",$fieldName);
+      $field->setAttribute("value",$specField->findvalue("./\@defaultValue"));
+      $field->setAttribute( "isHeritageFrom", $specFileName );
+    }
+  
+  
+  
+#     my $fieldName      = $field->findvalue("./\@name");
     my $isHeritageFrom = $field->findvalue("./\@isHeritageFrom") || "";
     my $readOnlyFlag   = 0;
     my $fieldValue     = $field->findvalue("./\@value");
@@ -178,7 +231,7 @@ EOF
     else {
       print <<EOF;
 <td align='right'>
-<input type='text' align='right' value='$fieldValue' onchange='saveSettings(selectedConfigFile(),"$registerName","$fieldName",this.value);reloadSetTree()'  >
+<input type='text' align='right' value='$fieldValue' onchange='saveSettings("$configFileName","$registerName","$fieldName",this.value);$editorRefreshCommand'  >
 </td>
 EOF
 
@@ -187,7 +240,7 @@ EOF
     print '</td>';
     if ( $xmlfile eq $specFile ) { # we are printing the Specifications tree
       print <<EOF;
-<td class='button_move' onclick='saveSettings(selectedConfigFile(),"$registerName","$fieldName","$fieldValue");reloadSetTree()'>&nbsp;&rarr;&nbsp;</td>
+<td class='button_move' onclick='saveSettings("$configFileName","$registerName","$fieldName","$fieldValue");$editorRefreshCommand'>&nbsp;&rarr;&nbsp;</td>
 EOF
     }
     if ( $xmlfile eq $configFile ) {    # we are printing the Settings Tree
@@ -195,7 +248,7 @@ EOF
       if ( $isHeritageFrom eq "" )
       {    # these are actual settings, not inherited!
         print <<EOF;
-<td class='button_move' onclick='deleteSettings(selectedConfigFile(),"$registerName","$fieldName");reloadSetTree()'>&nbsp;X&nbsp;</td>
+<td class='button_move' onclick='deleteSettings("$configFileName","$registerName","$fieldName");$editorRefreshCommand'>&nbsp;X&nbsp;</td>
 EOF
       }
       else {
@@ -237,3 +290,4 @@ EOF
 1;
 
 __END__
+