}
close FILE;
+open FILE, "../../daqtools/base/serials_trb3sc.db" or die $!."\nserials_trb3sc.db not found.";
+while (my $a = <FILE>) {
+ 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
+ }
}
}