use strict;
use warnings;
-use Time::HiRes;
+use Time::HiRes qw/sleep/;
use POSIX qw/strftime/;
use POSIX;
use Device::SerialPort;
my $tc = $self->{table_control};
- $tc->home();
- $tc->scan( eval => 'print("test");' );
+# $tc->home();
+# $tc->scan( eval => 'print("test\n");' );
+ $tc->scan( object => $self, method => 'scan_callback' );
+
}
sub scan_callback {
- my $point=shift;
+ my $self = shift;
+ my $point = shift;
- printf("evaluate sth. at point %d %d" , $point->{row},$point->{col});
-# my $ro = $self->{pmt_ro};
+ printf("evaluate sth. at point %d %d\n" , $point->{row},$point->{col});
+ my $ro = $self->{pmt_ro};
-# print $ro->count(delay => 0.5, channel => "signal");
+# print $ro->count(delay => 0.1, channel => "signal");
+ sleep 2;
+ print "\n\n";
}
+
+
1;
my $answer = $self->receive(wait => $travel_timeout);
- if($new_x - $answer->{x_pos} < $self->{settings}->{table_precision}
+ if(abs($new_x - $answer->{x_pos}) < $self->{settings}->{table_precision}
|| $answer->{xend2_sw} || $answer->{xend1_sw} ){
$self->{setpos}->{x} = $new_x;
$self->{realpos}->{x} = $answer->{x_pos};
}
- if($new_y - $answer->{y_pos} < $self->{settings}->{table_precision}
+ if(abs($new_y - $answer->{y_pos}) < $self->{settings}->{table_precision}
|| $answer->{yend2_sw} || $answer->{yend1_sw} ){
$self->{setpos}->{y} = $new_y;
$self->{realpos}->{y} = $answer->{y_pos};
my $eval = $options{eval};
my $subref = $options{subref};
+ my $method = $options{method};
+ my $object = $options{object};
+
$self->require_run("load_settings");
for my $point (@{$self->scan_pattern()}) {
$self->go_xy( x => $point->{x}, y => $point->{y});
eval $eval if defined($eval);
$subref->($point) if defined($subref);
+ if(defined($object) && defined($method)){
+ $object->$method($point);
+ }
}
}