From: Jan Michel Date: Fri, 13 Jan 2023 15:37:44 +0000 (+0100) Subject: generate files for flash loading X-Git-Url: https://jspc29.x-matter.uni-frankfurt.de/git/?a=commitdiff_plain;h=0bbcf789ba2684fb742c47d6b92c9f3d5fb1ea81;p=hades_mdc_settings.git generate files for flash loading --- diff --git a/scripts/merge_and_flash_settings.pl b/scripts/merge_and_flash_settings.pl index 4963fb1..e9dbcfd 100755 --- a/scripts/merge_and_flash_settings.pl +++ b/scripts/merge_and_flash_settings.pl @@ -5,3 +5,82 @@ use FileHandle; use Getopt::Long; use Data::Dumper; use HADES::TrbNet; + + +trb_init_ports() or die trb_strerror(); + + +sub get_file { + my $file = $_[0]; + + local $/=undef; + open FILE, "$file" or die "Couldn't open file: $!"; + my $string = ; + close FILE; + return $string; + } + +############################################################################### +#Find available boards & generate files for each of them +############################################################################### +system("mkdir -p ../settings_merged/auto"); +system("rm ../settings_merged/auto/????.trbcmd"); + + +my @inputs; +push(@inputs, qx%ls ../settings_*/auto/*.trbcmd%); +push(@inputs, qx%ls ../settings*/*.trbcmd%); +chomp(@inputs); + +my $boards = trb_register_read(0xfe91,0); + +foreach my $addr (keys %$boards) { + my $filename = sprintf("%04x.trbcmd",$addr); + my $saddr = sprintf("%04x",$addr); +# open(FILE, '>', $filename) or die $!; + + my @files; + push(@files, sort grep { /\.\.\/settings_tdc\/auto\/common.*\.trbcmd/ } @inputs); + push(@files, sort grep { /\.\.\/settings_tdc\/common.*\.trbcmd/ } @inputs); + push(@files, sort grep { /\.\.\/settings_tdc\/auto\/$saddr.*\.trbcmd/ } @inputs); + push(@files, sort grep { /\.\.\/settings_tdc\/$saddr.*\.trbcmd/ } @inputs); + push(@files, sort grep { /\.\.\/settings_tdc\/auto\/final.*\.trbcmd/ } @inputs); + push(@files, sort grep { /\.\.\/settings_tdc\/final.*\.trbcmd/ } @inputs); + + system("cat ".join(' ',@files)."> ../settings_merged/auto/$filename"); + + print Dumper @files; + print "----\n"; + } + + +$boards = trb_register_read(0xfe90,0); + +foreach my $addr (keys %$boards) { + my $filename = sprintf("%04x.trbcmd",$addr); + my $saddr = sprintf("%04x",$addr); +# open(FILE, '>', $filename) or die $!; + + my @files; + push(@files, sort grep { /\.\.\/settings_oep\/auto\/common.*\.trbcmd/ } @inputs); + push(@files, sort grep { /\.\.\/settings_oep\/common.*\.trbcmd/ } @inputs); + push(@files, sort grep { /\.\.\/settings_oep\/auto\/$saddr.*\.trbcmd/ } @inputs); + push(@files, sort grep { /\.\.\/settings_oep\/$saddr.*\.trbcmd/ } @inputs); + push(@files, sort grep { /\.\.\/settings_oep\/auto\/final.*\.trbcmd/ } @inputs); + push(@files, sort grep { /\.\.\/settings_oep\/final.*\.trbcmd/ } @inputs); + + system("cat ".join(' ',@files)."> ../settings_merged/auto/$filename"); + + print Dumper @files; + print "----\n"; + } + + +############################################################################### +#Cleanup files +############################################################################### +foreach my $f (glob("../settings_merged/auto/*.trbcmd")) { + system("sed -i '/^\s*#/d' $f"); + + } + diff --git a/settings_merged/.gitignore b/settings_merged/.gitignore new file mode 100644 index 0000000..b962241 --- /dev/null +++ b/settings_merged/.gitignore @@ -0,0 +1,3 @@ +*baseline.trbcmd +*auto.trbcmd +auto diff --git a/settings_merged/README.md b/settings_merged/README.md new file mode 100644 index 0000000..e3e8fb3 --- /dev/null +++ b/settings_merged/README.md @@ -0,0 +1,2 @@ +These files are generated automatically to prepare loading settings to Flash. +Don't modify manually, don't add any files here.