]> jspc29.x-matter.uni-frankfurt.de Git - hades_mdc_settings.git/commitdiff
generate files for flash loading
authorJan Michel <michel@physik.uni-frankfurt.de>
Fri, 13 Jan 2023 15:37:44 +0000 (16:37 +0100)
committerJan Michel <michel@physik.uni-frankfurt.de>
Fri, 13 Jan 2023 15:37:44 +0000 (16:37 +0100)
scripts/merge_and_flash_settings.pl
settings_merged/.gitignore [new file with mode: 0644]
settings_merged/README.md [new file with mode: 0644]

index 4963fb16f0d902bfe890d1d10139d3e5a4d20659..e9dbcfd6db2e5693142d062ade7566550f7e6dad 100755 (executable)
@@ -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 = <FILE>;
+  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 (file)
index 0000000..b962241
--- /dev/null
@@ -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 (file)
index 0000000..e3e8fb3
--- /dev/null
@@ -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.