diff --git a/src/epics/util/fmseq.pl b/src/epics/util/fmseq.pl index 14f873f29cf37cea31344ef70073e33a0c8cf2b5..4ed301f7744ea1cb04340492f38ebcb6fb0bb86a 100755 --- a/src/epics/util/fmseq.pl +++ b/src/epics/util/fmseq.pl @@ -103,7 +103,7 @@ sub is_top_name { }; # Transform record name for exculsion of sys/subsystem parts -# This function replaces first underscode with the hyphen +# This function replaces first underscore with the hyphen sub top_name_transform { ($name) = @_; $name =~ s/_/-/; @@ -761,7 +761,12 @@ while (<IN>) { next unless length $nr[0]; $nr[1] = $gds_datarate unless defined $nr[1]; die "Invalid DAQ channel $nr[0] rate $nr[1]; system rate is $gds_datarate" if $nr[1] > $gds_datarate; - $nr[0] = "$site:$systems[0]$nr[0]"; + if (is_top_name($nr[0])) { + $nr[0] = "$site:" . top_name_transform($nr[0]); + } else { + $nr[0] = "$site:$systems[0]$nr[0]"; + } + $DAQ_Channels{$nr[0]} = $nr[1]; #print $nr[0], " ", $nr[1], "\n"; } diff --git a/src/epics/util/lib/Tree.pm b/src/epics/util/lib/Tree.pm index c1abf6d373fefb3a9f013d4afb66cf2e9dd3c613..480bd640f1362288a119151719967d9a93faac2b 100644 --- a/src/epics/util/lib/Tree.pm +++ b/src/epics/util/lib/Tree.pm @@ -107,26 +107,18 @@ sub find_node { sub find_daq_annotation { my($tree) = @_; if ($tree->{NAME} eq "Annotation" && ${$tree->{FIELDS}}{Name} =~ /^#\s*[dD][aA][qQ]\s+[cC]hannels/) { - return ($tree, "", 0); + return ($tree, ""); } else { for (@{$tree->{NEXT}}) { #print "Recursing into ", $_->{NAME}, " ", ${$_->{FIELDS}}{"Name"}, "\n"; - ($res, $prefix, $tn) = find_daq_annotation($_); + ($res, $prefix) = find_daq_annotation($_); if ($res) { #print $tree->{NAME}, " ", ${$tree->{FIELDS}}{"Name"}, " ", ${$tree->{FIELDS}}{"Type"}, "\n"; # Annotate the prefix if this is block - if (!$tn) { - if ($tree->{NAME} eq "Block") { - # Stop annotating if top_names tag encountered - if (${$tree->{FIELDS}}{Tag} eq "top_names") { - #print "top_names ", ${$tree->{FIELDS}}{"Name"}, "\n"; - $tn = 1; - } else { - $prefix = ${$tree->{FIELDS}}{"Name"}. "_" .$prefix; - } - } + if ($tree->{NAME} eq "Block") { + $prefix = ${$tree->{FIELDS}}{"Name"}. "_" .$prefix; } - return ($res, $prefix, $tn); + return ($res, $prefix); } } }