From 2b7e47660473eb754349221db72315dcf536e07b Mon Sep 17 00:00:00 2001 From: Jan Michel Date: Thu, 19 Nov 2020 17:35:41 +0100 Subject: [PATCH] Include 'sliceName' option to xml format to name slices of recurring registers --- web/htdocs/layout/blue.css | 4 ++-- xml-db/get.pl | 13 ++++++++----- xml-db/schema/TrbNetCommon.xsd | 22 ++++++++++++++++++++-- xml-db/schema/TrbNetEntity.xsd | 1 + xml-db/schema/TrbNetSetup.xsd | 1 + xml-db/xml-db.pl | 5 +++++ 6 files changed, 37 insertions(+), 9 deletions(-) diff --git a/web/htdocs/layout/blue.css b/web/htdocs/layout/blue.css index 681e593..7e02a4f 100644 --- a/web/htdocs/layout/blue.css +++ b/web/htdocs/layout/blue.css @@ -346,7 +346,7 @@ hr.queryresult { background-image:url("edit.png"); background-repeat:no-repeat; background-position:fixed; - padding-left:16px; + padding-left:8px; } .rate { @@ -357,7 +357,7 @@ hr.queryresult { } table.queryresult td.slice, table.queryresult th.slice { - text-align:center; + text-align:left; background:#eee; } diff --git a/xml-db/get.pl b/xml-db/get.pl index e09b89e..69ac8b0 100755 --- a/xml-db/get.pl +++ b/xml-db/get.pl @@ -276,7 +276,7 @@ sub FormatPretty { my $range = $obj->{start}+$obj->{bits}-1; $range .= "..".$obj->{start} if ($obj->{bits}>1); $ret .= " ".$obj->{unit} if exists $obj->{unit}; - $ret .= sprintf("$name (Bit $range)
raw: 0x%x
$cstr
",$rawvalue); + $ret .= sprintf("$name (Bit $range) - raw: 0x%x
$cstr
".substr($obj->{description},0,28)."
",$rawvalue); } else { for ($obj->{format}) { @@ -325,7 +325,7 @@ sub requestdata { my $size = $obj->{size}; $slice = $slice || 0; do{ - $o = register_read_mem($netaddr,$obj->{address}+$slice*$stepsize,0,$size); + $o = register_read_mem($netaddr,$obj->{address}+$slice*$stepsize,0,$size*($obj->{repeat}//1)); next unless defined $o; foreach my $k (keys %$o) { for (my $i = 0; $i < $size; $i++) { @@ -382,6 +382,7 @@ sub register_read_mem { sub convert_keys_to_hex { # replace all keys with string in hex representation # this makes the keys more flexible, especially for providing chains... + return unless defined $_[0]; my %h = %{$_[0]}; my @keys = keys %h; for ($i=0;$i<@keys;$i++) { @@ -456,7 +457,7 @@ sub generateoutput { } $t .= ""; my %tarr; - my $line == 0; + my $line = 0; do { $addr = $obj->{address}+$slice*$stepsize; #### Prepare table header line @@ -466,8 +467,10 @@ sub generateoutput { foreach my $b (sort keys %{$lastboards}) { my $ttmp = ""; my $sl; + my $slicename = ""; + $slicename = " - ".$obj->{sliceName}->{$slice} if (exists $obj->{sliceName}->{$slice}); next unless defined $data->{$addr}->{$b} || !($obj->{mode} =~ /r/); - $sl = sprintf("
%i$name.$slice (0x%04x)
",$slice,$addr) if ($once != 1 && defined $obj->{repeat}); + $sl = sprintf("
%i%s$name.$slice (0x%04x)
",$slice,$slicename,$addr) if ($once != 1 && defined $obj->{repeat}); my $endslice = ''; $endslice = ' class="endslice"' if (($once != 1 && defined $obj->{repeat} && $slice == 0) && $line++); @@ -477,7 +480,7 @@ sub generateoutput { foreach my $c (@{$obj->{children}}) { my $fullc = $c; $fullc .= ".$slice" if ($once != 1 && defined $obj->{repeat}); - my $cstr = sprintf("%s-0x%s-%s", $entity,$b,$fullc ); + my $cstr = sprintf("%s-0x%s-%s", $entity,$b,$fullc); my $wr = 1 if $db->{$c}->{mode} =~ /w/; $ttmp .= FormatPretty($data->{$addr}->{$b},$db->{$c},$c,"td",($wr?"editable":""),$cstr,$addr,$b); } diff --git a/xml-db/schema/TrbNetCommon.xsd b/xml-db/schema/TrbNetCommon.xsd index d386f6c..2a3a105 100644 --- a/xml-db/schema/TrbNetCommon.xsd +++ b/xml-db/schema/TrbNetCommon.xsd @@ -81,6 +81,7 @@ + @@ -129,7 +130,16 @@ - + + + + + + + + + + @@ -142,14 +152,16 @@ + - + + @@ -190,6 +202,7 @@ + @@ -220,6 +233,10 @@ + + + + @@ -241,6 +258,7 @@ + diff --git a/xml-db/schema/TrbNetEntity.xsd b/xml-db/schema/TrbNetEntity.xsd index f129644..53e1bc0 100644 --- a/xml-db/schema/TrbNetEntity.xsd +++ b/xml-db/schema/TrbNetEntity.xsd @@ -19,6 +19,7 @@ database, so the default minOccurs=1 is used --> + diff --git a/xml-db/schema/TrbNetSetup.xsd b/xml-db/schema/TrbNetSetup.xsd index d86a5d9..1a24faf 100644 --- a/xml-db/schema/TrbNetSetup.xsd +++ b/xml-db/schema/TrbNetSetup.xsd @@ -49,6 +49,7 @@ + diff --git a/xml-db/xml-db.pl b/xml-db/xml-db.pl index 6c6148c..73d4ac8 100755 --- a/xml-db/xml-db.pl +++ b/xml-db/xml-db.pl @@ -222,6 +222,11 @@ sub MakeOrMergeDbItem { PrintMessage($n, "Warning: Found enumItems although not format=enum") if $warnings and defined $dbitem->{'enumItems'} and $n->getAttribute('format') ne 'enum'; + foreach my $item ($n->findnodes('sliceName')) { + my $val = $item->getAttribute('value'); + $dbitem->{'sliceName'}->{$val} = SanitizedContent($item); + } + # is this node in something repeatable? my $repeats = $n->findnodes('ancestor::*[@repeat>1]'); PrintMessage($n, "Warning: Found more than one ancestor with repeat attribute, taking first one.") -- 2.43.0