X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=scripts%2Fprogram.pl;h=b0fc125eec1c1c2d26c5d1579d1fb10d29ab85a7;hb=282b54550a8a651fe528648d40aa7c582d288511;hp=4f9eaff9a1ac833f1cf532bcb2f28d369bc2a4e3;hpb=a14ea0fdd9615a190c7cb1d4e711999d31f9371b;p=Biblio-RFID.git diff --git a/scripts/program.pl b/scripts/program.pl index 4f9eaff..b0fc125 100755 --- a/scripts/program.pl +++ b/scripts/program.pl @@ -6,26 +6,50 @@ use strict; use Data::Dump qw(dump); use Getopt::Long; use lib 'lib'; -use RFID::Biblio::Readers; -use RFID::Biblio::RFID501; +use Biblio::RFID::Reader; +use Biblio::RFID::RFID501; -my $only; +my $reader; +my $afi = 0x00; +my $debug = 0; +my $hash; +my $blank; GetOptions( - 'only=s', => \$only, + 'reader=s', => \$reader, + 'afi=i', => \$afi, + 'debug+', => \$debug, + 'set=i' => \$hash->{set}, + 'total=i', => \$hash->{total}, + 'type=i', => \$hash->{type}, + 'branch=i', => \$hash->{branch}, + 'library=i' => \$hash->{library}, + '3mblank' => \$blank->{blank_3m}, + 'blank' => \$blank->{blank}, ) || die $!; my ( $sid, $content ) = @ARGV; -die "usage: $0 E0_RFID_SID content\n" unless $sid && $content; +die "usage: $0 [--reader regex_filter] [--afi 214] [--type 1] E0_RFID_SID [barcode]\n" unless $sid && ( $content || $afi || $blank ); -my @rfid = RFID::Biblio::Readers->available( $only ); +$hash->{content} = $content if defined $content; -foreach my $rfid ( @rfid ) { - my $visible = $rfid->scan; - foreach my $tag ( keys %$visible ) { - next unless $tag eq $sid; +my $rfid = Biblio::RFID::Reader->new( $reader ); +$Biblio::RFID::debug = $debug; + +foreach my $tag ( $rfid->tags, $sid ) { + warn "visible $tag\n"; +# next unless $tag eq $sid; + if ( grep { defined $_ } values %$blank ) { + my $type = ( grep { $blank->{$_} } keys %$blank )[0]; + warn "BLANK $type $tag\n"; + $rfid->write_blocks( $tag => Biblio::RFID::RFID501->$type ); + } elsif ( $content ) { warn "PROGRAM $tag with $content\n"; - $rfid->write_blocks( $tag, RFID::Biblio::RFID501->from_hash( content => $content ) ); + $rfid->write_blocks( $tag => Biblio::RFID::RFID501->from_hash($hash) ); + } + if ( $afi ) { + warn "AFI $tag with $afi\n"; + $rfid->write_afi( $tag => chr($afi) ); } }