added --[3m]blank option
[Biblio-RFID.git] / scripts / program.pl
index 443e475..ec33b88 100755 (executable)
@@ -10,24 +10,43 @@ use Biblio::RFID::Reader;
 use Biblio::RFID::RFID501;
 
 my $reader;
-my $afi;
+my $afi = 0x00;
+my $debug = 0;
+my $hash;
+my $blank;
 
 GetOptions(
        '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 [--reader regex_filter] [--afi 214] E0_RFID_SID [barcode]\n" unless $sid && ( $content | $afi );
-
-my @rfid = Biblio::RFID::Reader->available( $reader );
-
-foreach my $rfid ( @rfid ) {
-       my $visible = $rfid->scan;
-       foreach my $tag ( keys %$visible ) {
-               next unless $tag eq $sid;
+die "usage: $0 [--reader regex_filter] [--afi 214] [--type 1] E0_RFID_SID [barcode]\n" unless $sid && ( $content | $afi | $blank );
+
+$hash->{content} = $content if defined $content;
+
+my $rfid = Biblio::RFID::Reader->new( $reader );
+$Biblio::RFID::debug = $debug;
+
+foreach my $tag ( $rfid->tags ) {
+       warn "visible $tag\n";
+       next unless $tag eq $sid;
+       if ( $blank ) {
+warn dump( $blank );
+               my $type = ( grep { $blank->{$_} } keys %$blank )[0];
+               warn "BLANK $type $tag\n";
+               $rfid->write_blocks( $tag => Biblio::RFID::RFID501->$type );
+       } else {
                warn "PROGRAM $tag with $content\n";
-               $rfid->write_blocks( $tag => Biblio::RFID::RFID501->from_hash({ content => $content }) );
+               $rfid->write_blocks( $tag => Biblio::RFID::RFID501->from_hash($hash) );
                $rfid->write_afi(    $tag => chr($afi) ) if $afi;
        }
 }