initial version of powersensordaemon
[svn42.git] / checkcard.pl
index 71c1966..cc1d1b7 100755 (executable)
@@ -1,16 +1,21 @@
 #!/usr/bin/perl -w
 
+use Socket;
 use strict;
 my $fh;
-my $fifofile = "/tmp/door_cmd.fifo";
+
+my $socketfile = $ARGV[0] || "/var/run/tuer/door_cmd.socket";
+sleep(1) while (! -S $socketfile);
+my $socketaddr = sockaddr_un($socketfile);
 
 my $keys;
 my %good;
 
-open $keys,'/flash/realraum/keys';
+open $keys,'/flash/keys';
 while (<$keys>)
 {
-       if ($_ =~ /([0-9A-Fa-f]{8})\s(\S+)/)
+       chomp;
+       if ($_ =~ /^([0-9A-Fa-f]{8})\s+(.+)$/)
        {
                $good{$1}=$2;
        }
@@ -18,17 +23,15 @@ while (<$keys>)
 
 sub send_to_fifo
 {
-       if( -p $fifofile)
-       {
-               open(my $fifo,"> $fifofile");
-               print $fifo shift(@_)."\n";
-               close($fifo);  
-       }
+       socket(my $conn, PF_UNIX, SOCK_STREAM,0) || die "socket: $!";
+       connect($conn, $socketaddr) || die "socket connect: $!";
+       print $conn shift(@_)."\n";
+       close($conn);
 }
 
 while (sleep 1)
 {
-       open $fh,'/flash/realraum/mifare-read 0 2>&1 |';
+       open $fh,'/flash/tuer/mifare-read 0 2>&1 |';
        while (<$fh>)
        {
                next unless /UID/;
@@ -50,36 +53,5 @@ while (sleep 1)
 #
 #
 ###############################################################
-# /dev/ttyUSB0: door key printer
-#
-#
-#   Ok
-#   Ok, closing now
-#   Already closed
-#   Already opened
-#   close forced manually\nOk
-#   open forced manually\nOk
-#   Error: .*
-#   .* be: unknown command
-#          Operation in progress
-#          open/close took too long!
-#          last open/close operation took to long!
-#
-# commands:
-#  c ... close
-#   response: "Ok", "Already closed", "Error: .*"
-#  o ... open
-#   response: "Ok", "Already opened", "Error: .*"
-#  s ... status
-#   response: "Status: closed|opened|<->, opening|waiting|closing|idle"
-#         or  "Error: .*"
-#  r ... reset
-#   "Ok, closing now" or "Error: .*"
-#
-# open/close  will only be accepted if Status: ..., idle
-# Reset overrules all other operations in progress
-# s will always be accepted
-#
-###############################################################
 #
 #