me8100_test_perl/test.pl
changeset 31 33280ad0f4b2
parent 29 1ad7e54c3dc4
child 32 e0b741bb5ce0
equal deleted inserted replaced
30:4e4d4b59a0af 31:33280ad0f4b2
     1 #! /usr/bin/perl -w
     1 #! /usr/bin/perl -w
     2 
     2 
     3 use ME8100;
     3 use ME8100 qw/:async/;
     4 
     4 
     5 my @DEVICES = qw(/dev/me8100_0a /dev/me8100_0b);
     5 my @DEVICES = qw(/dev/me8100_0a /dev/me8100_0b);
     6 my @INPUTS = qw(Tür1 Tür2 Feuerlöscher);
     6 my @INPUTS = qw(Tür1 Tür2 Feuerlöscher);
     7 
     7 
       
     8 sub _sleep($);
       
     9 
     8 
    10 
     9 MAIN: {
    11 MAIN: {
    10     my $me8100 = new ME8100(@DEVICES);
    12     my $me8100 = new ME8100(@DEVICES);
    11     my %inputs;
    13     my (%inputs, %changed);
    12 
    14 
    13     # first read will be always go through
    15     # first read will be always go through
    14     @inputs{@INPUTS} = $me8100->read();
    16     @inputs{@INPUTS} = $me8100->read();
       
    17 
    15     print "Read:\n";
    18     print "Read:\n";
    16     print map { sprintf "%20s: %d\n", $_, $inputs{$_} } @INPUTS;
    19     print map { sprintf "%20s: %d\n", $_, $inputs{$_} } @INPUTS;
    17 
    20 
       
    21     _sleep(10);		   
       
    22 			  
    18     @inputs{@INPUTS} = $me8100->status();
    23     @inputs{@INPUTS} = $me8100->status();
    19     print "Status:\n";
    24     print "Status2:\n";
    20     print map { sprintf "%20s: %d\n", $_, $inputs{$_} } @INPUTS;
    25     print map { sprintf "%20s: %d\n", $_, $inputs{$_} } @INPUTS;
    21 
    26 
       
    27     @inputs{@INPUTS} = $me8100->changed();
       
    28     print "Changed:\n";
       
    29     print map { sprintf "%20s: %d\n", $_, $inputs{$_} } @INPUTS;
       
    30 
       
    31     # and now block 'til the next change...
       
    32     @inputs{@INPUTS} = $me8100->read();
       
    33     @changed{@INPUTS} = $me8100->changed();
       
    34     print "Finally:\n";
       
    35     print map { sprintf "%20s: %d (%d)\n", $_, $inputs{$_}, $changed{$_} } @INPUTS;
    22 
    36 
    23 }
    37 }
    24 
    38 
       
    39 # Sleep replacement, since the standard sleep 
       
    40 # gets awoken on every signal
       
    41 sub _sleep($) {
       
    42     my $timeout = shift;
       
    43     while ($timeout > 0) {
       
    44 	$timeout -= sleep($timeout);
       
    45     }
       
    46 }
       
    47 
    25 # vim:sts=4 sw=4 aw ai sm:
    48 # vim:sts=4 sw=4 aw ai sm: