diff -r 4e4d4b59a0af -r 33280ad0f4b2 me8100_test_perl/test.pl --- a/me8100_test_perl/test.pl Mon Jan 28 17:18:06 2002 +0100 +++ b/me8100_test_perl/test.pl Mon Jan 28 22:23:55 2002 +0100 @@ -1,25 +1,48 @@ #! /usr/bin/perl -w -use ME8100; +use ME8100 qw/:async/; my @DEVICES = qw(/dev/me8100_0a /dev/me8100_0b); my @INPUTS = qw(Tür1 Tür2 Feuerlöscher); +sub _sleep($); + MAIN: { my $me8100 = new ME8100(@DEVICES); - my %inputs; + my (%inputs, %changed); # first read will be always go through @inputs{@INPUTS} = $me8100->read(); + print "Read:\n"; print map { sprintf "%20s: %d\n", $_, $inputs{$_} } @INPUTS; + _sleep(10); + @inputs{@INPUTS} = $me8100->status(); - print "Status:\n"; + print "Status2:\n"; print map { sprintf "%20s: %d\n", $_, $inputs{$_} } @INPUTS; + @inputs{@INPUTS} = $me8100->changed(); + print "Changed:\n"; + print map { sprintf "%20s: %d\n", $_, $inputs{$_} } @INPUTS; + + # and now block 'til the next change... + @inputs{@INPUTS} = $me8100->read(); + @changed{@INPUTS} = $me8100->changed(); + print "Finally:\n"; + print map { sprintf "%20s: %d (%d)\n", $_, $inputs{$_}, $changed{$_} } @INPUTS; } +# Sleep replacement, since the standard sleep +# gets awoken on every signal +sub _sleep($) { + my $timeout = shift; + while ($timeout > 0) { + $timeout -= sleep($timeout); + } +} + # vim:sts=4 sw=4 aw ai sm: