]> jspc29.x-matter.uni-frankfurt.de Git - mvdsensorcontrol.git/commitdiff
added file selection, changed input arguments to save, delete and copyDefaultRegister...
authorMichael Wiebusch <stratomaster@gmx.net>
Wed, 26 Jun 2013 16:52:50 +0000 (18:52 +0200)
committerMichael Wiebusch <stratomaster@gmx.net>
Wed, 26 Jun 2013 16:52:50 +0000 (18:52 +0200)
config/settings.xml [new file with mode: 0644]
config/specifications/MIMOSA26_JTAG_SPEC.xml [moved from xml_spielwiese/MIMOSA26_JTAG_SPEC.xml with 100% similarity]
xml_spielwiese/.cgitest.pl.swo
xml_spielwiese/cgitest.pl
xml_spielwiese/settings.xml [deleted file]

diff --git a/config/settings.xml b/config/settings.xml
new file mode 100644 (file)
index 0000000..f755437
--- /dev/null
@@ -0,0 +1,3 @@
+<?xml version="1.0"?>
+<MAPS type="MIMOSA26" specDbFile="MIMOSA26_JTAG_SPEC.xml">
+<register name="CONTROL_PIX_REG"><field name="NU" value="0"/><field name="SelPad1" value="0"/><field name="SelPad2" value="0"/><field name="RowMkLast" value="0x023F"/><field name="RowMkd" value="0"/><field name="RowMka" value="0"/></register><register name="CONTROL_SUZE_REG"><field name="NU" value="0"/><field name="SelPad3" value="0"/><field name="En_auto_scan_discri" value="0"/><field name="En_scan" value="0"/><field name="Test_after_mux" value="0"/><field name="entestdatadisc" value="0"/><field name="RowLastSuze" value="0x023F"/><field name="dualchannelout" value="0"/><field name="clkrateout" value="0"/><field name="jsupinitmem" value="1"/><field name="disckgmodgate" value="0"/><field name="cfgwr" value="0"/><field name="cfgdata" value="0"/></register><register name="DAC_BIAS"><field name="IAnaBUF" value="50"/></register></MAPS>
index 70f41b701c9ea89709e7c84d649ae8e661d64b01..bca9741992f134ae8ebb6efdde04da08430bb3b8 100644 (file)
Binary files a/xml_spielwiese/.cgitest.pl.swo and b/xml_spielwiese/.cgitest.pl.swo differ
index 81bccb822afce3859bbc5393bb81a29129c3b7b4..b107ac84f70bfc98cf33f16f6d852f721c439683 100755 (executable)
@@ -22,21 +22,21 @@ EOF
 printJavaScripts();
 print <<EOF;
 </HEAD>
-<BODY onload='reloadSpecTree();reloadSetTree();'>
+<BODY onload='reloadFileSelection()'>
 <h2>JTAG Configuration File Editor</h2>
 <div id="debug">
 debug text
 </div>
 <div id="fileSelection">
-<div class='header'>File Selection</div>
+
 Current File: unknown
 </div>
 
 <div id="roterBereich">
-<input type="button" onClick="getdata('$me?print=spectree','roterBereich',true);" value="show spectree">
+empty
 </div>
 <div id="blauerBereich">
-<input type="button" onClick="getdata('$me?print=settree','blauerBereich',true);" value="show settree">
+empty
 </div>
 
 
@@ -58,22 +58,34 @@ exit;
 
 
 my $parser = XML::LibXML->new();
-my $specfile = "./MIMOSA26_JTAG_SPEC.xml";
-my $setfile = "./settings.xml";
+my $specfile = "";
+my $setfile = "";
+my $spectree;
+my $settree;
+
+my $confDir = '../config';
+my $specDir = '../config/specifications';
 
 
+if ($cgiHash{'print'} eq 'fileSelection'){
+print "<div class='header'>File Selection</div>";
 
+print_fileSelection();
+
+}
 
 
 
 if ($cgiHash{'print'} eq 'spectree') {
 print "<div class='header'>Available Settings</div>\n";
+parseSetAndSpec($cgiHash{'configFile'});
 print_registers($specfile);
 }
 
 
 if ($cgiHash{'print'} eq 'settree') {
 print "<div class='header'>Selected Settings</div>\n";
+parseSetAndSpec($cgiHash{'configFile'});
 print_registers($setfile);
 }
 
@@ -86,13 +98,16 @@ if (defined $cgiHash{'action'} ) {
        
        printHash(\%cgiHash);
        if($cgiHash{'action'} eq 'save') {
-               save($cgiHash{'file'},$cgiHash{'register'},$cgiHash{'field'},$cgiHash{'value'});
+               parseSet($cgiHash{'configFile'});
+               save($cgiHash{'register'},$cgiHash{'field'},$cgiHash{'value'});
        }
        if($cgiHash{'action'} eq 'delete'){
-               del($cgiHash{'file'},$cgiHash{'register'},$cgiHash{'field'});
+               parseSet($cgiHash{'configFile'});
+               del($cgiHash{'register'},$cgiHash{'field'});
        }
        if($cgiHash{'action'} eq 'copyDefaultRegister'){
-               del($setfile,$cgiHash{'register'},""); # delete existing register from setfile
+               parseSetAndSpec($cgiHash{'configFile'});
+               del($cgiHash{'register'},""); # delete existing register from setfile
                copyDefaultRegister($cgiHash{'register'});
        }
 }
@@ -111,13 +126,28 @@ sub prepare_text {
   return $t;
   }
 
+
+
+sub parseSetAndSpec {
+       $setfile = $confDir."/".$_[0];
+       $settree = $parser->parse_file($setfile);
+       my $specFileName = $settree->findvalue("/MAPS/\@specDbFile");
+       $specfile = $specDir."/".$specFileName;
+       $spectree = $parser->parse_file($specfile);     
+}
+
+sub parseSet {
+       $setfile = $confDir."/".$_[0];
+       $settree = $parser->parse_file($setfile);
+}
+
 sub del {
 
 
-       my $registerName=$_[1];
-               my $fieldName=$_[2];
-               my $xmlfile = $_[0];
-               my $xmltree = $parser->parse_file($xmlfile);    
+       my $registerName=$_[0];
+               my $fieldName=$_[1];
+               my $xmlfile = $setfile;
+               my $xmltree = $settree; 
                my $maps = $xmltree->findnodes("/MAPS")->shift();
                my $register = $xmltree->findnodes("/MAPS/register[\@name='".$registerName."']")->shift();
 
@@ -143,14 +173,54 @@ print SCHREIBEN $xmltree->toString();
 close SCHREIBEN;
 }
 
+sub print_fileSelection {
+
+print "<table>";
+print "<tr>";
+print "<td>select config file:<td>";
+print "</tr>";
+
+print "<tr>";
+
+print "<td>";
+    opendir(DIR, $confDir) or die $!;
+
+print '<select name="fileSelectionDropdown" id="fileSelector">';
+
+    while (my $file = readdir(DIR)) {
+
+        # Use a regular expression to ignore files beginning with a period
+        next if ($file =~ m/^\./);
+       #print "$file\n";
+       if ($file =~ m/\.xml$/){
+       print '<option value="'.$file.'">'.$file.'</option>';
+       }
+    }
+
+    closedir(DIR);
+
+print '</select>';
+
+print "</td>";
+
+print "<td>";
+print "<input type='button' onclick='reloadTrees()' value='load file'>";
+print "</td>";
+
+print "</tr>";
+
+print "</table>";
+}
+
 
 sub save {
 
-       my $registerName=$_[1];
-               my $fieldName=$_[2];
-               my $xmlfile = $_[0];
-               my $newValue = $_[3];
-               my $xmltree = $parser->parse_file($xmlfile);    
+       my $registerName=$_[0];
+               my $fieldName=$_[1];
+               my $xmlfile = $setfile;
+               my $newValue = $_[2];
+
+               my $xmltree= $settree;
                my $maps = $xmltree->findnodes("/MAPS")->shift();
                #my @fields = $xmltree->findnodes("/MAPS/register[\@name='".$registerName."']/field[\@name='".$fieldName."']");
                my $register = $xmltree->findnodes("/MAPS/register[\@name='".$registerName."']")->shift();
@@ -226,7 +296,14 @@ sub printHash {
 
 sub print_registers {
 my $xmlfile = $_[0];
-my $xmltree = $parser->parse_file($xmlfile); 
+my $xmltree;
+if ($xmlfile eq $setfile) {
+ $xmltree = $settree;
+} 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\">";
 for my $register (@registers ){
@@ -248,7 +325,7 @@ EOF
 
                if($xmlfile eq $setfile){
                print <<EOF;
-<td class='button_move' onclick='deleteSettings("$setfile","$registerName","");'>&nbsp;X&nbsp;</td>
+<td class='button_move' onclick='deleteSettings("$registerName","");'>&nbsp;X&nbsp;</td>
 EOF
                }       
                if($xmlfile eq $specfile){
@@ -298,7 +375,7 @@ EOF
                } else {
                print <<EOF;
 <td align='right'>
-<input type='text' align='right' value='$fieldValue' onchange='saveSettings("$xmlfile","$registerName","$fieldName",this.value)'  >
+<input type='text' align='right' value='$fieldValue' onchange='saveSettings("$registerName","$fieldName",this.value)'  >
 </td>
 EOF
                
@@ -306,12 +383,12 @@ EOF
                print '</td>';
                if($xmlfile eq $specfile){
                print <<EOF;
-<td class='button_move' onclick='saveSettings("$setfile","$registerName","$fieldName","$fieldValue");'>&nbsp;&rarr;&nbsp;</td>
+<td class='button_move' onclick='saveSettings("$registerName","$fieldName","$fieldValue");'>&nbsp;&rarr;&nbsp;</td>
 EOF
                }       
                if($xmlfile eq $setfile){
                print <<EOF;
-<td class='button_move' onclick='deleteSettings("$setfile","$registerName","$fieldName");'>&nbsp;X&nbsp;</td>
+<td class='button_move' onclick='deleteSettings("$registerName","$fieldName");'>&nbsp;X&nbsp;</td>
 EOF
                }       
                print "</tr>";  
@@ -357,11 +434,18 @@ print <<EOF ;
 
 <script language="javascript">
 
+
+function selectedConfigFile(){
+var e = document.getElementById("fileSelector");
+return e.options[e.selectedIndex].text;
+}
+
+
 var visHash= new Object();
 
 
 function reloadSpecTree(){
-getdata('$me?print=spectree','roterBereich',false);
+getdata('$me?print=spectree&configFile='+selectedConfigFile(),'roterBereich',false);
 for (var key in visHash) {
 if(visHash[key]==true){
 showElement(key);
@@ -370,7 +454,7 @@ showElement(key);
 }
 
 function reloadSetTree(){
-getdata('$me?print=settree','blauerBereich',false);
+getdata('$me?print=settree&configFile='+selectedConfigFile(),'blauerBereich',false);
 for (var key in visHash) {
 if(visHash[key]==true){
 showElement(key);
@@ -378,32 +462,43 @@ showElement(key);
 }
 }
 
-function saveSettings(file,register,field,value){
+function reloadTrees(){
+debugOutput("reload Trees from "+selectedConfigFile());
+reloadSpecTree();
+reloadSetTree();
+}
+
+function reloadFileSelection(){
+getdata('$me?print=fileSelection','fileSelection',false);
+}
+
+function saveSettings(register,field,value){
 //getdata("$me?debuginput=tralla","debug");
-var file_ = encodeURIComponent(file);
+var file_ = encodeURIComponent(selectedConfigFile());
 var register_ = encodeURIComponent(register);
 var field_ = encodeURIComponent(field);
 var value_ =  encodeURIComponent(value);
 
-getdata("$me?action=save&file="+file_+"&register="+register_+"&field="+field_+"&value="+value_,"debug",false);
+getdata("$me?action=save&configFile="+file_+"&register="+register_+"&field="+field_+"&value="+value_,"debug",false);
 //getdata("$me?print=settree","blauerBereich",true);
 reloadSetTree();
 }
 
-function deleteSettings(file,register,field){
+function deleteSettings(register,field){
 //getdata("$me?debuginput=tralla","debug");
-var file_ = encodeURIComponent(file);
+var file_ = encodeURIComponent(selectedConfigFile());
 var register_ = encodeURIComponent(register);
 var field_ = encodeURIComponent(field);
 
-getdata("$me?action=delete&file="+file_+"&register="+register_+"&field="+field_,"debug",false);
+getdata("$me?action=delete&configFile="+file_+"&register="+register_+"&field="+field_,"debug",false);
 //getdata("$me?print=settree","blauerBereich",true);
 reloadSetTree();
 }
 
 function copyDefaultRegister(register){
 var register_ = encodeURIComponent(register);
-getdata("$me?action=copyDefaultRegister&register="+register_,"debug",false);
+var file_ =encodeURIComponent(selectedConfigFile());
+getdata("$me?action=copyDefaultRegister&register="+register_+'&configFile='+file_,"debug",false);
 //getdata("$me?print=settree","blauerBereich",true);
 reloadSetTree();
 }
diff --git a/xml_spielwiese/settings.xml b/xml_spielwiese/settings.xml
deleted file mode 100644 (file)
index fefff3e..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0"?>
-<MAPS type="MIMOSA26">
-
-</MAPS>