my $spec_width = $stop-$start;
my $bin_width = $spec_width/$bins;
+ my $file = FileHandle->new("./test.dat", 'w');
+
my $counts;
my $bin_pos;
my $spectrum;
bin_pos => $bin_pos
};
print "$i\t$bin_pos\t$counts\n" if $verbose;
+ print $file "$i\t$bin_pos\t$counts\n";
}
return $spectrum;
my $channel = $options{channel}; # can be "signal" or "veto" or "net"
my $delay = $options{delay} || 1;
+ my $tries = $options{tries} || 3;
+
my $counter_addr;
my $threshold_addr;
die "$channel is not a valid channel!\n possible channels are \"signal\",\"veto\" and \"net\"\n!";
}
- $self->{regio}->write($self->{regaddr_lookup}->{acquisition},0); # stop acquisition
- $self->{regio}->read($self->{regaddr_lookup}->{reset_counter}); # reset counter
- $self->{regio}->write($self->{regaddr_lookup}->{acquisition},1); # start acquisition
- Time::HiRes::sleep($delay); # let the counter count
- $self->{regio}->write($self->{regaddr_lookup}->{acquisition},0); # stop acquisition
- my $counts = $self->{regio}->read($counter_addr); # read counter value
- $self->{regio}->write($self->{regaddr_lookup}->{acquisition},1); # start acquisition
-
- die "Padiwa does not answer!\n" unless defined($counts);
- return $counts;
+ for ( my $try=0; $try < $tries; $try++) {
+ $self->{regio}->write($self->{regaddr_lookup}->{acquisition},0); # stop acquisition
+ $self->{regio}->read($self->{regaddr_lookup}->{reset_counter}); # reset counter
+ $self->{regio}->write($self->{regaddr_lookup}->{acquisition},1); # start acquisition
+ Time::HiRes::sleep($delay); # let the counter count
+ $self->{regio}->write($self->{regaddr_lookup}->{acquisition},0); # stop acquisition
+ my $counts = $self->{regio}->read($counter_addr); # read counter value
+# $self->{regio}->write($self->{regaddr_lookup}->{acquisition},1); # start acquisition
+ return $counts if defined($counts);
+ }
+ die "Padiwa does not answer after $tries tries!\n";
+
}
sub signal_range { # determine the range and the position the signal/noise in terms of
$self->{port}->are_match("");
$self->{port}->read_char_time(1); # avg time between read char
- $self->{port}->read_const_time(0); # const time for read (milliseconds)
+ $self->{port}->read_const_time(2); # const time for read (milliseconds)
$self->{port}->lookclear;
$self->{port}->write("$command\n");