From: Jan Michel Date: Wed, 3 Jul 2013 15:56:26 +0000 (+0200) Subject: removed old files, started proper README X-Git-Url: https://jspc29.x-matter.uni-frankfurt.de/git/?a=commitdiff_plain;h=738a59086a8ff80b508062ad29d5fe508c9d0af9;p=daqtools.git removed old files, started proper README --- diff --git a/xml-db/README b/xml-db/README index d74910f..3cca093 100644 --- a/xml-db/README +++ b/xml-db/README @@ -14,3 +14,16 @@ reading "raw" hex values 3) Automatically create configuration for third-party monitoring (e.g. EPICS) + + + + + + +#Directory Structure +#################### + +cache Temporary storage for parsed xml files +database xml files with register definitions +schema The xml schema files that define our register structure +setup The TrbNet setup files. One of those should be sym-linked to the top-level diff --git a/xml-db/cgitest.pl b/xml-db/cgitest.pl deleted file mode 100644 index db0f9f0..0000000 --- a/xml-db/cgitest.pl +++ /dev/null @@ -1,577 +0,0 @@ -#!/usr/bin/perl -w -print "Content-type: text/html\n\n"; - -my $me="cgitest.pl"; - -use strict; -use warnings; -use XML::LibXML; -use POSIX; -use CGI::Carp qw(fatalsToBrowser); -use HTML::Entities; - -sub initPage { - -print < - -JTAG Editor - - -EOF -printJavaScripts(); -print < - -

JTAG Configuration File Editor

-
-debug text -
-
- -Current File: unknown -
- -
-empty -
-
-empty -
- - - - -EOF - -} - - - -my %cgiHash = &read_input; - - -if (!keys %cgiHash) { # if script is called without arguments: initialize the html structure -initPage(); -exit; -} - - -my $parser = XML::LibXML->new(); -my $specfile = ""; -my $setfile = ""; -my $spectree; -my $settree; - -my $confDir = '../config'; -my $specDir = '../specs'; - - -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); -} - - -if (defined $cgiHash{'debuginput'}) { -print $cgiHash{'debuginput'}; -} - -if (defined $cgiHash{'action'} ) { - - printHash(\%cgiHash); - if($cgiHash{'action'} eq 'save') { - parseSet($cgiHash{'configFile'}); - save($cgiHash{'register'},$cgiHash{'field'},$cgiHash{'value'}); - } - if($cgiHash{'action'} eq 'delete'){ - parseSet($cgiHash{'configFile'}); - del($cgiHash{'register'},$cgiHash{'field'}); - } - if($cgiHash{'action'} eq 'copyDefaultRegister'){ - parseSetAndSpec($cgiHash{'configFile'}); - del($cgiHash{'register'},""); # delete existing register from setfile - copyDefaultRegister($cgiHash{'register'}); - } -} - - - -#################### SUBLAND ###################### - -sub prepare_text { - my $t = $_[0]; - chomp $t; - $t = encode_entities($t); - $t =~ s/^\s//; - $t =~ s/^\n//; - $t =~ s/\t//; - 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=$_[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(); - - if ($fieldName eq "") { # no field specified, remove whole register - unless($register eq ""){ - $maps->removeChild($register); - } - print "deleted whole register"; - } else { - - my $field = $xmltree->findnodes("/MAPS/register[\@name='".$registerName."']/field[\@name='".$fieldName."']")->shift(); - $register->removeChild($field); - print "deleted field
"; - unless( $register->hasChildNodes()){ - $maps->removeChild($register); - print "deleted register as well
"; - } - } - open(SCHREIBEN,"> $xmlfile") - or print "could not open file $xmlfile for writing: $!\n"; - -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=$_[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(); - - if($register eq ""){ - $register = $maps->addNewChild("","register"); - $register->setAttribute("name",$registerName); - } - - - my $field = $xmltree->findnodes("/MAPS/register[\@name='".$registerName."']/field[\@name='".$fieldName."']")->shift(); - - if($field eq ""){ - $field = $register->addNewChild( "","field" ); - $field->setAttribute( "name", $fieldName ); - - } - #my $fieldValue = ($xmltree->findnodes("/MAPS/register[\@name='".$registerName."']/field[\@name='".$fieldName."']/\@name='value'"))[0]; - #print $fieldValue->findvalue("./"); - $field->setAttribute( "value", $newValue ); - print $field->findvalue("./\@value"); - open(SCHREIBEN,"> $xmlfile") - or print "could not open file $xmlfile for writing: $!\n"; - -print SCHREIBEN $xmltree->toString(); -close SCHREIBEN; -} - -sub copyDefaultRegister { - my $registerName=$_[0]; - my $settree = $parser->parse_file($setfile); - my $spectree = $parser->parse_file($specfile); - my $setmaps = $settree->findnodes("/MAPS")->shift(); - my $specmaps = $spectree->findnodes("/MAPS")->shift(); - - my $specRegister = $spectree->findnodes("/MAPS/register[\@name='".$registerName."']")->shift(); - - my $setRegister = $setmaps->addNewChild("","register"); - $setRegister->setAttribute("name",$registerName); - - my @specFields = $specRegister->findnodes("./field"); - - for my $specField (@specFields){ - my $fieldName = $specField->findvalue("./\@name"); - my $fieldValue = $specField->findvalue("./\@defaultValue"); - my $setField = $setRegister->addNewChild( "","field" ); - $setField->setAttribute( "name", $fieldName ); - $setField->setAttribute( "value", $fieldValue ); - print $setField->findvalue("./\@value"); - } - open(SCHREIBEN,"> $setfile") - or print "could not open file $setfile for writing: $!\n"; - -print SCHREIBEN $settree->toString(); -close SCHREIBEN; -} - -sub by_name { - my $a_name= $a->findvalue("./\@name") ; - my $b_name= $b->findvalue("./\@name") ; - - # putting $b_published in front will ensure the descending order. - return $a_name cmp $b_name; -} - -sub printHash { - my $hashref=$_[0]; - for my $element( keys %{$hashref}){ - print $element."=".$hashref->{$element}."
\n"; - } -} - - -sub print_registers { -my $xmlfile = $_[0]; -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 ){ - - 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 ""; - - print < +  -EOF - print ""; - #print ""; - - if($xmlfile eq $setfile){ - print < X  -EOF - } - if($xmlfile eq $specfile){ - print < →  -EOF - } - - print ""; - #print ""; - - print ''; - print ''; - print '"; -} -print "
$registerName$registerId
'; - print_fields($xmlfile,$register); - print ""; - print "
"; -} - -sub print_fields { - - my $register = $_[1]; - my $xmlfile = $_[0]; - my $registerName = $register->findvalue("./\@name"); - my @fields = sort by_name $register->findnodes("./field"); - print ""; - for my $field (@fields){ - my $fieldName = $field->findvalue("./\@name"); - my $readOnlyFlag = 0; - my $fieldValue = $field->findvalue("./\@value"); - my $fieldDescr = prepare_text($spectree->findvalue("/MAPS/register[\@name='".$registerName."']/field[\@name='".$fieldName."']/description") || "n/a"); - my $fieldId = $xmlfile."//".$registerName."/".$fieldName; - if ($fieldValue eq "") { - $fieldValue = $field->findvalue("./\@defaultValue"); - $readOnlyFlag=1; - } - - print ""; - print ""; - print ""; - if ($readOnlyFlag){ - print <$fieldValue -EOF - } else { - print < - - -EOF - - } - print ''; - if($xmlfile eq $specfile){ - print < →  -EOF - } - if($xmlfile eq $setfile){ - print < X  -EOF - } - print ""; - } - print "
$fieldName  = 
"; - -} - - -sub read_input -{ - my $buffer; my @pairs; my $pair; my $name; my $value;my %FORM; - # Read in text - $ENV{'REQUEST_METHOD'} =~ tr/a-z/A-Z/; - if ($ENV{'REQUEST_METHOD'} eq "POST") - { - read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); - } else - { - $buffer = $ENV{'QUERY_STRING'}; - } - # Split information into name/value pairs - @pairs = split(/&/, $buffer); - foreach $pair (@pairs) - { - ($name, $value) = split(/=/, $pair); - $value =~ tr/+/ /; - $value =~ s/%(..)/pack("C", hex($1))/eg; - $FORM{$name} = $value; - } - %FORM; -} - - - -sub printJavaScripts { - - -####### javascript function land ################ - - -print < - - -function selectedConfigFile(){ -var e = document.getElementById("fileSelector"); -return e.options[e.selectedIndex].text; -} - - -var visHash= new Object(); - - -function reloadSpecTree(){ -getdata('$me?print=spectree&configFile='+selectedConfigFile(),'roterBereich',false); -for (var key in visHash) { -if(visHash[key]==true){ -showElement(key); -} -} -} - -function reloadSetTree(){ -getdata('$me?print=settree&configFile='+selectedConfigFile(),'blauerBereich',false); -for (var key in visHash) { -if(visHash[key]==true){ -showElement(key); -} -} -} - -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(selectedConfigFile()); -var register_ = encodeURIComponent(register); -var field_ = encodeURIComponent(field); -var value_ = encodeURIComponent(value); - -getdata("$me?action=save&configFile="+file_+"®ister="+register_+"&field="+field_+"&value="+value_,"debug",false); -//getdata("$me?print=settree","blauerBereich",true); -reloadSetTree(); -} - -function deleteSettings(register,field){ -//getdata("$me?debuginput=tralla","debug"); -var file_ = encodeURIComponent(selectedConfigFile()); -var register_ = encodeURIComponent(register); -var field_ = encodeURIComponent(field); - -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); -var file_ =encodeURIComponent(selectedConfigFile()); -getdata("$me?action=copyDefaultRegister®ister="+register_+'&configFile='+file_,"debug",false); -//getdata("$me?print=settree","blauerBereich",true); -reloadSetTree(); -} - -function debugOutput(input){ -getdata("$me?debuginput="+encodeURIComponent(input),"debug",true); -} - -function writeToElementId(input,destId){ - if(document.getElementById(destId).innerHTML){ - document.getElementById(destId).innerHTML = input; - } - -} - - -function toggleVis(elementId,t) { -if(document.getElementById(elementId)){ -if( document.getElementById(elementId).style.visibility == "visible") { - document.getElementById(elementId).style.visibility = "collapse"; - visHash[elementId]=false; - t.innerHTML = " + "; -} else { - document.getElementById(elementId).style.visibility = "visible" ; - visHash[elementId]=true; - t.innerHTML = " − "; -} -} -} -function showElement(elementId) { - if(document.getElementById(elementId)){ - document.getElementById(elementId).style.visibility = "visible" ; - visHash[elementId]=true; - } -} -function hideElement(elementId) { - if(document.getElementById(elementId)){ - document.getElementById(elementId).style.visibility = "hidden" ; - visHash[elementId]=false; - } -} -function collapseElement(elementId) { - if(document.getElementById(elementId)){ - document.getElementById(elementId).style.visibility = "collapse" ; - visHash[elementId]=false; - } -} - - - - -EOF - -} diff --git a/xml-db/jtag.xml b/xml-db/jtag.xml deleted file mode 100644 index fc6e595..0000000 --- a/xml-db/jtag.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - -