fix warnings
[Biblio-RFID.git] / lib / RFID / Biblio / Reader / 3M810.pm
index c8b566f..a0d127c 100644 (file)
@@ -56,8 +56,10 @@ sub init {
 
        # drain on startup
        my ( $count, $str ) = $port->read(3);
-       my $data = $port->read( ord(substr($str,2,1)) );
-       warn "drain ",as_hex( $str, $data ),"\n";
+       if ( $count ) {
+               my $data = $port->read( ord(substr($str,2,1)) );
+               warn "drain ",as_hex( $str, $data ),"\n";
+       }
 
        $port->read_char_time(100);      # 0.1 s char timeout
        $port->read_const_time(500); # 0.5 s read timeout
@@ -103,7 +105,7 @@ sub cmd {
                $bytes = "\xD6" . $bytes . $checksum;
        }
 
-       warn ">> ", as_hex( $bytes ), "\t\t[$description]\n";
+       warn ">> ", as_hex( $bytes ), "\t\t[$description]\n" if $debug;
        $port->write( $bytes );
 
        my $r_len = $port->read(3);
@@ -118,7 +120,7 @@ sub cmd {
        warn "<< ", as_hex($r_len,$data),
                ' | ',
                substr($data,-2,2) eq checksum(substr($r_len,1).substr($data,0,-2)) ? 'OK' : 'ERROR',
-               " $len bytes\n";
+               " $len bytes\n" if $debug;
 
 
        $coderef->( $data ) if $coderef;
@@ -177,7 +179,7 @@ sub _matched {
        my $b = hex2bytes $hex;
        my $l = length($b);
        if ( substr($data,0,$l) eq $b ) {
-               warn "_matched $hex [$l] in ",as_hex($data);
+               warn "_matched $hex [$l] in ",as_hex($data) if $debug;
                return substr($data,$l);
        }
 }
@@ -206,9 +208,9 @@ sub read_blocks {
                        } elsif ( $rest = _matched $data => 'FE 00 00 05 01' ) {
                                warn "FIXME ready? ",as_hex $rest;
                        } elsif ( $rest = _matched $data => '02 06' ) {
-                               warn "ERROR ",as_hex($rest);
+                               die "ERROR ",as_hex($rest);
                        } else {
-                               warn "FIXME unsuported ",as_hex($rest);
+                               die "FIXME unsuported ",as_hex($rest);
                        }
        });
 
@@ -241,7 +243,7 @@ sub write_blocks {
                                my $blocks = substr($rest,8,1);
                                warn "# WRITE ",as_hex($tag), " [$blocks]\n";
                        } elsif ( $rest = _matched $data => '04 06' ) {
-                               warn "ERROR ",as_hex($rest);
+                               die "ERROR ",as_hex($rest);
                        } else {
                                die "UNSUPPORTED";
                        }
@@ -268,9 +270,9 @@ sub read_afi {
                        warn "# SECURITY ", hex_tag($tag), " AFI: ", as_hex($afi);
 
                } elsif ( $rest = _matched $data => '0A 06' ) {
-                       warn "ERROR reading security from $tag ", as_hex($data);
+                       die "ERROR reading security from $tag ", as_hex($data);
                } else {
-                       warn "IGNORED ",as_hex($data);
+                       die "IGNORED ",as_hex($data);
                }
        });
        warn "## read_afi ",dump($tag, $afi);
@@ -293,11 +295,9 @@ sub write_afi {
                        die "write_afi got $tag_back expected $tag" if $tag_back ne $tag;
                        warn "# SECURITY ", hex_tag($tag), " AFI: ", as_hex($afi);
                } elsif ( $rest = _matched $data => '0A 06' ) {
-                       warn "ERROR writing AFI to $tag ", as_hex($data);
-                       undef $afi;
+                       die "ERROR writing AFI to $tag ", as_hex($data);
                } else {
-                       warn "IGNORED ",as_hex($data);
-                       undef $afi;
+                       die "IGNORED ",as_hex($data);
                }
        });
        warn "## write_afi ", dump( $tag, $afi );