From f150b1ac62fa62e5c02658158c927891546598b0 Mon Sep 17 00:00:00 2001 From: Dobrica Pavlinusic Date: Wed, 15 Oct 2014 16:51:42 +0200 Subject: [PATCH] added reader callback to tags to query just some readers --- lib/Biblio/RFID.pm | 2 +- lib/Biblio/RFID/Reader.pm | 6 ++++++ scripts/RFID-JSONP-server.pl | 12 ++++++++++-- 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/lib/Biblio/RFID.pm b/lib/Biblio/RFID.pm index 6cfa603..62b1a7f 100644 --- a/lib/Biblio/RFID.pm +++ b/lib/Biblio/RFID.pm @@ -14,7 +14,7 @@ Biblio::RFID - perl tools to use different RFID readers for library use =cut -our $VERSION = '0.04'; +our $VERSION = '0.05'; our $debug = $ENV{DEBUG} || 0; diff --git a/lib/Biblio/RFID/Reader.pm b/lib/Biblio/RFID/Reader.pm index 3af9fc4..c66febd 100644 --- a/lib/Biblio/RFID/Reader.pm +++ b/lib/Biblio/RFID/Reader.pm @@ -39,6 +39,7 @@ sub new { my @visible = $rfid->tags( enter => sub { my $tag = shift; }, leave => sub { my $tag = shift; }, + reader => sub { my $reader = shift; ref($reader) =~ m/something/ }, ); =cut @@ -52,6 +53,11 @@ sub tags { my $t = time; foreach my $rfid ( @{ $self->{_readers} } ) { + + if ( exists $triggers->{reader} ) { + next unless $triggers->{reader}->($rfid); + } + warn "# inventory on $rfid"; my @tags = $rfid->inventory; diff --git a/scripts/RFID-JSONP-server.pl b/scripts/RFID-JSONP-server.pl index b3533da..f363d42 100755 --- a/scripts/RFID-JSONP-server.pl +++ b/scripts/RFID-JSONP-server.pl @@ -193,8 +193,16 @@ sub http_server { } close($fh); } - } elsif ( $method =~ m{/scan} ) { - my @tags = $rfid->tags; + } elsif ( $method =~ m{/scan(/only/(.+))?} ) { + my $only = $2; + my @tags = $rfid->tags( reader => sub { + my $reader = shift; + return 1 unless $only; + if ( ref $reader =~ m/\Q$only\E/i ) { + return 1; + } + return 0; + }); my $json = { time => time() }; foreach my $tag ( @tags ) { my $hash = $rfid->to_hash( $tag ); -- 2.20.1