From 6e494188824c3c0603e42caa1ae2855232fd0f55 Mon Sep 17 00:00:00 2001 From: Andreas Neiser Date: Mon, 1 Jul 2013 10:17:13 +0200 Subject: [PATCH] Added very minimal CTS and TrbNet database files, just to make a valid trb-setup.xml for xml-db.pl --- xml-db/database/CTS.xml | 16 ++++++++++++++++ xml-db/database/TrbNet.xml | 24 ++++++++++++++++++++++++ xml-db/database/TrbNetSetup.xsd | 20 ++++++-------------- xml-db/trb-setup.xml | 3 ++- xml-db/xml-db.pl | 29 +++++++++++++++++++++++------ 5 files changed, 71 insertions(+), 21 deletions(-) create mode 100644 xml-db/database/CTS.xml create mode 100644 xml-db/database/TrbNet.xml diff --git a/xml-db/database/CTS.xml b/xml-db/database/CTS.xml new file mode 100644 index 0000000..ed6fc52 --- /dev/null +++ b/xml-db/database/CTS.xml @@ -0,0 +1,16 @@ + + + Registers for the Central Trigger System (CTS) + + + + + Number of clock cycles with trigger asserted + + + + diff --git a/xml-db/database/TrbNet.xml b/xml-db/database/TrbNet.xml new file mode 100644 index 0000000..8c5beb3 --- /dev/null +++ b/xml-db/database/TrbNet.xml @@ -0,0 +1,24 @@ + + + Registers for the TrbNet itself + + + + + IPU handler status register + + FSM state bits + IDLE + WaitForLength + GotLength + SendDHDR + ReadData + EndReadout + + + + diff --git a/xml-db/database/TrbNetSetup.xsd b/xml-db/database/TrbNetSetup.xsd index d5716e1..370f951 100644 --- a/xml-db/database/TrbNetSetup.xsd +++ b/xml-db/database/TrbNetSetup.xsd @@ -25,14 +25,14 @@ - - + + - + - + - + 0-15 => 1, 34 => 1, diff --git a/xml-db/xml-db.pl b/xml-db/xml-db.pl index 6fa5e57..98c285f 100755 --- a/xml-db/xml-db.pl +++ b/xml-db/xml-db.pl @@ -43,18 +43,35 @@ sub Main { my ($db,$files) = &LoadDBAndFiles; #print Dumper($files); - foreach my $item (@$files) { my $file = $item->[0]; - my $doc = $item->[1]; - print "Working on $file...\n" if $verbose; - + my $doc = $item->[1]; print "Working on $file...\n" if $verbose; + my $merged = {}; + foreach my $trbnode ($doc->getDocumentElement->findnodes('trb')) { + my $trbaddress = $trbnode->getAttribute('address'); + print $trbaddress,"\n"; + foreach my $entitynode ($trbnode->findnodes('entity')) { + my $type = $entitynode->getAttribute('type'); + # check if we know this type + FatalError($entitynode, "Entity type $type not found in database") + unless defined $db->{"$type.xml"}; + + print $type,"\n"; + } + } } - # testing... #DumpDatabase($db); } +sub FatalError($$) { + my $node = shift; + my $file = $node->ownerDocument->URI; + my $line = $node->line_number; + my $msg = shift; + print "$file:$line: Fatal Error: $msg\n"; + exit 1; +} sub DumpDatabase($) { my $db = shift; @@ -98,7 +115,7 @@ sub DumpDocument($) { $field->getAttribute('size') || 1, $name, $field->getAttribute('name') ); - + #print $field->getAttribute('errorflag') || 'false',"\n"; } } -- 2.43.0