me8100_test_perl/test.pl
changeset 31 33280ad0f4b2
parent 29 1ad7e54c3dc4
child 32 e0b741bb5ce0
--- 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: