re-try programming card
authorDobrica Pavlinusic <dpavlin@rot13.org>
Fri, 3 Sep 2010 07:51:41 +0000 (09:51 +0200)
committerDobrica Pavlinusic <dpavlin@rot13.org>
Fri, 3 Sep 2010 07:51:41 +0000 (09:51 +0200)
Tehnically, card is flying from printer to RFID reader, so we
re-try programming because first one can have problems

scripts/print.pl

index 3bb7721..8168856 100755 (executable)
@@ -105,12 +105,20 @@ do {
                                my $card = shift @queue;
                                my $number = $card->[0];
                                print "PROGRAM $tag $number\n";
-                               $rfid->write_blocks( $tag => Biblio::RFID::RFID501->from_hash({ content => $number }) );
-                               $rfid->write_afi( $tag => chr($afi) ) if $afi;
 
-                               $programmed->{$tag} = $number;
+                               while ( 1 ) {
+                                       eval {
+                                               $rfid->write_blocks( $tag => Biblio::RFID::RFID501->from_hash({ content => $number }) );
+                                               $rfid->write_afi( $tag => chr($afi) ) if $afi;
+                                       };
+                                       last unless $!;
+                                       warn "RETRY PROGRAM $tag $number\n";
+                                       sleep 1;
+                               }
 
                                print $log iso_date, ",$tag,$number\n";
+                               $programmed->{$tag} = $number;
+
                        }
 
                },