6 use Data::Dump qw(dump);
9 use RFID::Biblio::Reader;
10 use RFID::Biblio::RFID501;
12 use lib '/home/dpavlin/klin/Printer-EVOLIS/lib';
13 use Printer::EVOLIS::Parallel;
22 'reader=s', => \$reader,
26 die "Usage: $0 print.txt\n" unless @ARGV;
30 warn "# reading tab-delimited input\n";
33 my @a = split(/\t/,$_);
37 print "# queue ", dump @queue;
39 my $rfid = RFID::Biblio::Reader->new( $reader );
40 $RFID::Biblio::debug = $debug;
46 , uc unpack('H2', $rfid->afi($tag))
48 , dump( RFID::Biblio::RFID501->to_hash( $rfid->blocks($tag) ) )
55 while ( $rfid->tags ) {
56 print "ERROR: remove all tags from output printer tray\n";
65 my @visible = $rfid->tags(
68 print localtime()." enter ", eval { tag($tag) };
71 if ( ! $programmed->{$tag} ) {
72 my $card = shift @queue;
73 my $number = $card->[0];
74 print "PROGRAM $tag $number\n";
75 $rfid->write_blocks( $tag => RFID::Biblio::RFID501->from_hash({ content => $number }) );
76 $rfid->write_afi( $tag => chr($afi) ) if $afi;
78 $programmed->{$tag} = $number;
85 print_card if $programmed->{$tag};
89 warn localtime()." visible: ",join(' ',@visible),"\n";
96 print "XXX print_card @{$queue[0]}\n";
98 my $p = Printer::EVOLIS::Parallel->new( '/dev/usb/lp0' );
99 print "insert card ", $p->command( 'Si' ),$/;
101 print "eject card ", $p->command( 'Ser' ),$/;