From: hadaq Date: Mon, 12 Aug 2024 12:39:13 +0000 (+0200) Subject: add auto addresses for Trb3sc hubs X-Git-Url: https://jspc29.x-matter.uni-frankfurt.de/git/?a=commitdiff_plain;h=4112f06fb0f699e4bdbac9748f6e2d07f5b885da;p=hades_mdc_settings.git add auto addresses for Trb3sc hubs --- diff --git a/scripts/autoaddress.pl b/scripts/autoaddress.pl index 4b3be95..6ef1e84 100755 --- a/scripts/autoaddress.pl +++ b/scripts/autoaddress.pl @@ -21,17 +21,32 @@ while (my $a = ) { } close FILE; +open FILE, "../../daqtools/base/serials_trb3sc.db" or die $!."\nserials_trb3sc.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); +my $boards = trb_read_uid(0xffff); 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}); + if (($uid&0xff) == 0x28) { + trb_set_address($uid,$serials->{$uid}%8,($serials->{$uid}>>4)+0x8000); #Trb3sc + } + else { + trb_set_address($uid,$serials->{$uid}%8,$serials->{$uid}); #MDC + } } }