/[RFID]/cpr-m02.pl
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /cpr-m02.pl

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 89 by dpavlin, Fri Jul 16 13:50:52 2010 UTC revision 90 by dpavlin, Fri Jul 16 16:31:55 2010 UTC
# Line 338  sub cpr_read { Line 338  sub cpr_read {
338          my $uid = shift;          my $uid = shift;
339          my $hex_uid = as_hex($uid);          my $hex_uid = as_hex($uid);
340    
341          cpr( "FF  B0 23  01  $hex_uid 00 04", "Read Multiple Blocks $hex_uid" );          my $max_block;
342    
343          cpr( "FF  B0 2B  01  $hex_uid", "Get System Information $hex_uid", sub {          cpr( "FF  B0 2B  01  $hex_uid", "Get System Information $hex_uid", sub {
344                  my $data = shift;                  my $data = shift;
345    
# Line 347  sub cpr_read { Line 348  sub cpr_read {
348                  my $DSFID    = substr($data,5-2,1);                  my $DSFID    = substr($data,5-2,1);
349                  my $UID      = substr($data,6-2,8);                  my $UID      = substr($data,6-2,8);
350                  my $AFI      = substr($data,14-2,1);                  my $AFI      = substr($data,14-2,1);
351                  my $MEM_SIZE = substr($data,15-2,2);                  my $MEM      = substr($data,15-2,1);
352                    my $SIZE     = substr($data,16-2,1);
353                  my $IC_REF   = substr($data,17-2,1);                  my $IC_REF   = substr($data,17-2,1);
354    
355                  warn "# split ",as_hex( $DSFID, $UID, $AFI, $MEM_SIZE, $IC_REF );                  warn "# split ",as_hex( $DSFID, $UID, $AFI, $MEM, $SIZE, $IC_REF );
356    
357                    $max_block = ord($SIZE);
358          });          });
359    
360            my $transponder_data;
361    
362            my $block = 0;
363            while ( $block < $max_block ) {
364                    cpr( sprintf("FF  B0 23  01  $hex_uid %02x 04", $block), "Read Multiple Blocks $block", sub {
365                            my $data = shift;
366    
367                            my $DB_N    = ord substr($data,5-2,1);
368                            my $DB_SIZE = ord substr($data,6-2,1);
369    
370                            $data = substr($data,7-2,-2);
371                            warn "# DB N: $DB_N SIZE: $DB_SIZE ", as_hex( $data );
372                            foreach ( 1 .. $DB_N ) {
373                                    my $sec = substr($data,0,1);
374                                    my $db  = substr($data,1,$DB_SIZE);
375                                    warn "block $_ ",dump( $sec, $db );
376                                    $transponder_data .= $db;
377                                    $data = substr($data, $DB_SIZE + 1);
378                            }
379                    });
380                    $block += 4;
381            }
382    
383            warn "DATA $hex_uid ", dump($transponder_data);
384            exit;
385  }  }
386    
387    

Legend:
Removed from v.89  
changed lines
  Added in v.90

  ViewVC Help
Powered by ViewVC 1.1.26