}
- my $rh1=trb_register_read_mem(0x3,0xa000, 0, 111);
- my $rh2=trb_register_read_mem(0x3,0xa0c0, 0, 52);
-
- if(!$rh1 || !$rh2) {
- $msg = trb_strerror();
- $Gtk2_errmsg_lbl->set_text("$msg");
- $Gtk2_errmsg_lbl->set_name("red".1);
- return;
+ my $res;
+ my $success = 0;
+ my $rh1; my $rh2;
+ while ($success == 0) {
+
+ $rh1=trb_register_read_mem(0x3,0xa000, 0, 111);
+ if (!defined $rh1) {
+ $res = trb_strerror();
+ $Gtk2_errmsg_lbl->set_text("$res");
+ $Gtk2_errmsg_lbl->set_name("red".1);
+ if ($res =~ /^RPC:/) {
+ sleep 1;
+ trb_init_ports();
+ next;
+ }
+ else {
+ next;
+ }
}
+ $rh2=trb_register_read_mem(0x3,0xa0c0, 0, 52);
+ if (!defined $rh2) {
+ $res = trb_strerror();
+ $Gtk2_errmsg_lbl->set_text("$res");
+ $Gtk2_errmsg_lbl->set_name("red".1);
+ sleep 1;
+ if ($res =~ /^RPC:/) {
+ trb_init_ports();
+ next;
+ }
+ else {
+ next;
+ }
+ }
+
+ $success = 1;
+
+ }
+
my $addr;
$addr = 0x00;
foreach my $i (0..110) {