From 144e242f6d5ca51a1cc5c1e52c428873c36fc1c2 Mon Sep 17 00:00:00 2001 From: MDC Test Date: Sun, 16 Jun 2024 15:58:24 +0200 Subject: [PATCH] add script to automatically set serial number as network address, JM --- scripts/README.md | 1 + scripts/autoaddress.pl | 37 +++++++++++++++++++++++++++++++++++++ 2 files changed, 38 insertions(+) create mode 100755 scripts/autoaddress.pl diff --git a/scripts/README.md b/scripts/README.md index 951bee4..b0bc30e 100644 --- a/scripts/README.md +++ b/scripts/README.md @@ -10,6 +10,7 @@ * `generate_merged_settings.pl` generates indiidual settings from the 'settings' directory * `load_flash_settings.pl` flashes settings to one or all FPGA * `load_mdc_addresses.sh` sets network addresses for all MBOs +* `autoaddress.pl` sets some fake network addresses based on serial numbers ## Pasttrec Settings * `pasttrec_set_threshold.pl` sets an identical threshold to all Pasttrec (temporarily) diff --git a/scripts/autoaddress.pl b/scripts/autoaddress.pl new file mode 100755 index 0000000..959cf3d --- /dev/null +++ b/scripts/autoaddress.pl @@ -0,0 +1,37 @@ +#!/usr/bin/perl -w +use warnings; +no warnings "portable"; +use FileHandle; +use Getopt::Long; +use Data::Dumper; +use HADES::TrbNet; +use Pod::Usage; + + +############################################################################### +#Read serials file and store values +############################################################################### +open FILE, "../serials/serials_mdcmbo.db" or die $!."\nserials_mdcmbo.db not found."; +while (my $a = ) { + if(my @values = $a =~ /^\s*(\d+)\s+0x([\w]{16})\s*$/) { + my $s = shift @values; + my $uid = shift @values; + $serials->{hex($uid)} = hex($s); + } + } +close FILE; + + +############################################################################### +#Find available boards +############################################################################### +trb_init_ports() or die trb_strerror(); +my $boards = trb_read_uid(0xfffb); +foreach my $uid (keys %$boards) { + foreach my $k (keys %{$boards->{$uid}}) { +# $addresses->{$boards->{$uid}{$k}} = $serials->{$uid}; + printf("%016x %04x\n",$uid, $serials->{$uid}); + trb_set_address($uid,$serials->{$uid}%8,$serials->{$uid}); + } + } + -- 2.43.0