From: Michael Wiebusch Date: Wed, 26 Jun 2013 16:52:50 +0000 (+0200) Subject: added file selection, changed input arguments to save, delete and copyDefaultRegister... X-Git-Url: https://jspc29.x-matter.uni-frankfurt.de/git/?a=commitdiff_plain;h=0d2ae3ac311f74ecfac5b96625090cab33ab2622;p=mvdsensorcontrol.git added file selection, changed input arguments to save, delete and copyDefaultRegister subs --- diff --git a/config/settings.xml b/config/settings.xml new file mode 100644 index 0000000..f755437 --- /dev/null +++ b/config/settings.xml @@ -0,0 +1,3 @@ + + + diff --git a/xml_spielwiese/MIMOSA26_JTAG_SPEC.xml b/config/specifications/MIMOSA26_JTAG_SPEC.xml similarity index 100% rename from xml_spielwiese/MIMOSA26_JTAG_SPEC.xml rename to config/specifications/MIMOSA26_JTAG_SPEC.xml diff --git a/xml_spielwiese/.cgitest.pl.swo b/xml_spielwiese/.cgitest.pl.swo index 70f41b7..bca9741 100644 Binary files a/xml_spielwiese/.cgitest.pl.swo and b/xml_spielwiese/.cgitest.pl.swo differ diff --git a/xml_spielwiese/cgitest.pl b/xml_spielwiese/cgitest.pl index 81bccb8..b107ac8 100755 --- a/xml_spielwiese/cgitest.pl +++ b/xml_spielwiese/cgitest.pl @@ -22,21 +22,21 @@ EOF printJavaScripts(); print < - +

JTAG Configuration File Editor

debug text
-
File Selection
+ Current File: unknown
- +empty
- +empty
@@ -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 "
File Selection
"; +print_fileSelection(); + +} if ($cgiHash{'print'} eq 'spectree') { print "
Available Settings
\n"; +parseSetAndSpec($cgiHash{'configFile'}); print_registers($specfile); } if ($cgiHash{'print'} eq 'settree') { print "
Selected Settings
\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 ""; +print ""; +print ""; + +print ""; + +print ""; + +print ""; + +print ""; + +print "
select config file:"; +print "
"; + opendir(DIR, $confDir) or die $!; + +print ''; + +print ""; +print ""; +print "
"; +} + 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 ""; for my $register (@registers ){ @@ -248,7 +325,7 @@ EOF if($xmlfile eq $setfile){ print < X  + EOF } if($xmlfile eq $specfile){ @@ -298,7 +375,7 @@ EOF } else { print < - + EOF @@ -306,12 +383,12 @@ EOF print ''; if($xmlfile eq $specfile){ print < →  + EOF } if($xmlfile eq $setfile){ print < X  + EOF } print ""; @@ -357,11 +434,18 @@ print < + +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_+"®ister="+register_+"&field="+field_+"&value="+value_,"debug",false); +getdata("$me?action=save&configFile="+file_+"®ister="+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_+"®ister="+register_+"&field="+field_,"debug",false); +getdata("$me?action=delete&configFile="+file_+"®ister="+register_+"&field="+field_,"debug",false); //getdata("$me?print=settree","blauerBereich",true); reloadSetTree(); } function copyDefaultRegister(register){ var register_ = encodeURIComponent(register); -getdata("$me?action=copyDefaultRegister®ister="+register_,"debug",false); +var file_ =encodeURIComponent(selectedConfigFile()); +getdata("$me?action=copyDefaultRegister®ister="+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 index fefff3e..0000000 --- a/xml_spielwiese/settings.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - -
 X  →  X