read_afi
authorDobrica Pavlinusic <dpavlin@rot13.org>
Tue, 27 Jul 2010 20:28:00 +0000 (22:28 +0200)
committerDobrica Pavlinusic <dpavlin@rot13.org>
Tue, 27 Jul 2010 20:28:00 +0000 (22:28 +0200)
lib/RFID/Serial/3M810.pm
t/10-3M-810.t

index 892c20f..334ffcb 100644 (file)
@@ -200,4 +200,28 @@ sub read_blocks {
        return $tag_blocks;
 }
 
+sub read_afi {
+       my $tag = shift;
+       $tag = shift if ref $tag;
+
+       cmd(
+               "0A $tag", "read_afi $tag", sub {
+               my $data = shift;
+
+               if ( my $rest = _matched $data => '0A 00' ) {
+
+                       my $tag = hex_tag substr($rest,0,8);
+                       my $afi = substr($rest,8,1);
+
+                       warn "# SECURITY ", hex_tag($tag), " AFI: ", as_hex($afi);
+
+                       return $afi;
+               } elsif ( my $rest = _matched $data => '0A 06' ) {
+                       warn "ERROR reading security from $tag ", as_hex($data);
+               } else {
+                       warn "IGNORED ",as_hex($data);
+               }
+       });
+}
+
 1
index ae2e961..972b41a 100755 (executable)
@@ -16,6 +16,8 @@ diag dump @tags;
 
 ok( my $blocks = $o->read_blocks( $_ ), "read_blocks $_" ) foreach @tags;
 
+ok( my $afi = $o->read_afi( $_ ), "read_afi $_" ) foreach @tags;
+
 ok( my $visible = $o->scan, 'scan' );
 diag dump $visible;