]> jspc29.x-matter.uni-frankfurt.de Git - mvdsensorcontrol.git/commitdiff
outsourced print_registers and print_fields to clean up
authorMichael Wiebusch <stratomaster@gmx.net>
Wed, 14 Aug 2013 16:18:57 +0000 (18:18 +0200)
committerMichael Wiebusch <stratomaster@gmx.net>
Wed, 14 Aug 2013 16:18:57 +0000 (18:18 +0200)
tools/jtageditor.pl
tools/xmlRendering.pm [new file with mode: 0644]

index 22df3ece50e8b962f29ea34fa6c82cac6c25d781..5864729582974eafbf5b03d1dcb37144a8a81773 100755 (executable)
@@ -57,6 +57,7 @@ use CGI::Carp qw(fatalsToBrowser);
 use HTML::Entities;
 require Common;
 require xmlOperations;
+require xmlRendering;
 
 
 
@@ -228,215 +229,7 @@ sub print_fileSelection {
 
 }
 
-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 $xmltree->findnodes("/MAPS/register");
-  print "<table class=\"registers\"";
-  if ( $xmlfile eq $configFile ) {
-    print "id='configFileRegisters'";
-  }
-  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 = $xmlfile . "//" . $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(selectedConfigFile(),"$registerName","");reloadSetTree()'>&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>
-EOF
-    }
-
-    print "</tr>";
-
-    #print "<tr>";
-
-    print '<tr id="' . $flistid . '" class="bitfield">';
-    print '<td></td>';
-    print '<td  class="fieldcontainer">';
-    print_fields( $xmlfile, $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 @fields       = sort by_name $register->findnodes("./field");
-  print "<table class=\"fields\">";
-  for my $field (@fields) {
-    my $fieldName      = $field->findvalue("./\@name");
-    my $isHeritageFrom = $field->findvalue("./\@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 $sizeInfo;
-    my $maxFieldVal = 2**32-1;
-    if ($fieldSize <=32){ # if Field size smaller than 32 you could be interested
-          # in a decimal value range info
-    
-    $maxFieldVal = 2**$fieldSize-1;
-    $sizeInfo    =
-      sprintf(
-      "Field contains %d bits, possible values: 0-%d (0x0-0x%X)\n\n",
-      $fieldSize, $maxFieldVal, $maxFieldVal );
-    } else {
-    
-    $sizeInfo = 
-      sprintf(
-      "Field contains %d bits, hex representation would be %d digits long.\n\n",
-      $fieldSize, ceil($fieldSize/4));
-    
-    }
-
-    $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(selectedConfigFile(),"$registerName","$fieldName",this.value);reloadSetTree()'  >
-</td>
-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>
-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(selectedConfigFile(),"$registerName","$fieldName");reloadSetTree()'>&nbsp;X&nbsp;</td>
-EOF
-      }
-      else {
-        print "<td class='button_move_deac'>&nbsp;X&nbsp;</td>";
-      }
-    }
-    print "</tr>";
-    
-##### check if range was exceeded ######    
-    if ($fieldSize <= 32) { # 32 bit is the region where we want to allow decimal input
-    
-    my $decFieldValue = any2dec($fieldValue);
-    
-    if (   ($decFieldValue < 0 ) or ( $decFieldValue > $maxFieldVal ) )
-    {
-      print
-"<tr class='fieldError'><td colspan = 4 align='center'>!!!Above value not in allowed range!!!</td></tr>"
-        ;    # just debug
-    }
-    
-    } else { # field size exceeds the region where we want to accept decimal input
-    
-      if ( numBase($fieldValue) eq "dec" ) {
-        unless( $fieldValue eq "0") { # a zero would be okay
-          print "<tr class='fieldError'><td colspan = 4 align='center'>!!!please don't enter decimal numbers for fields longer than 32 bit!!!</td></tr>";
-        }
-      }
-    
-    }
-### end of range check ####  
-  }
-  
-  print "</table>";
-
-}
 
 sub print_ancestorInfo {
 
diff --git a/tools/xmlRendering.pm b/tools/xmlRendering.pm
new file mode 100644 (file)
index 0000000..1319b76
--- /dev/null
@@ -0,0 +1,239 @@
+#!/usr/bin/perl -w
+
+
+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 $xmltree->findnodes("/MAPS/register");
+  print "<table class=\"registers\"";
+  if ( $xmlfile eq $configFile ) {
+    print "id='configFileRegisters'";
+  }
+  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 = $xmlfile . "//" . $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(selectedConfigFile(),"$registerName","");reloadSetTree()'>&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>
+EOF
+    }
+
+    print "</tr>";
+
+    #print "<tr>";
+
+    print '<tr id="' . $flistid . '" class="bitfield">';
+    print '<td></td>';
+    print '<td  class="fieldcontainer">';
+    print_fields( $xmlfile, $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 @fields       = sort by_name $register->findnodes("./field");
+  print "<table class=\"fields\">";
+  for my $field (@fields) {
+    my $fieldName      = $field->findvalue("./\@name");
+    my $isHeritageFrom = $field->findvalue("./\@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 $sizeInfo;
+    my $maxFieldVal = 2**32-1;
+    if ($fieldSize <=32){ # if Field size smaller than 32 you could be interested
+          # in a decimal value range info
+    
+    $maxFieldVal = 2**$fieldSize-1;
+    $sizeInfo    =
+      sprintf(
+      "Field contains %d bits, possible values: 0-%d (0x0-0x%X)\n\n",
+      $fieldSize, $maxFieldVal, $maxFieldVal );
+    } else {
+    
+    $sizeInfo = 
+      sprintf(
+      "Field contains %d bits, hex representation would be %d digits long.\n\n",
+      $fieldSize, ceil($fieldSize/4));
+    
+    }
+
+    $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(selectedConfigFile(),"$registerName","$fieldName",this.value);reloadSetTree()'  >
+</td>
+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>
+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(selectedConfigFile(),"$registerName","$fieldName");reloadSetTree()'>&nbsp;X&nbsp;</td>
+EOF
+      }
+      else {
+        print "<td class='button_move_deac'>&nbsp;X&nbsp;</td>";
+      }
+    }
+    print "</tr>";
+    
+##### check if range was exceeded ######    
+    if ($fieldSize <= 32) { # 32 bit is the region where we want to allow decimal input
+    
+    my $decFieldValue = any2dec($fieldValue);
+    
+    if (   ($decFieldValue < 0 ) or ( $decFieldValue > $maxFieldVal ) )
+    {
+      print
+"<tr class='fieldError'><td colspan = 4 align='center'>!!!Above value not in allowed range!!!</td></tr>"
+        ;    # just debug
+    }
+    
+    } else { # field size exceeds the region where we want to accept decimal input
+    
+      if ( numBase($fieldValue) eq "dec" ) {
+        unless( $fieldValue eq "0") { # a zero would be okay
+          print "<tr class='fieldError'><td colspan = 4 align='center'>!!!please don't enter decimal numbers for fields longer than 32 bit!!!</td></tr>";
+        }
+      }
+    
+    }
+### end of range check ####  
+  }
+  
+  print "</table>";
+
+}
+
+
+
+1;
+
+__END__