From: Dobrica Pavlinusic Date: Tue, 27 Jul 2010 13:07:29 +0000 (+0200) Subject: check if response is Dx and try to recover X-Git-Tag: RFID-Biblio-0.02~143 X-Git-Url: http://git.rot13.org/?p=Biblio-RFID.git;a=commitdiff_plain;h=cd764216685e9752593d98d554d0c66b45cd3314 check if response is Dx and try to recover --- diff --git a/lib/RFID/Serial/3M810.pm b/lib/RFID/Serial/3M810.pm index 2c27e4d..9a01e1b 100644 --- a/lib/RFID/Serial/3M810.pm +++ b/lib/RFID/Serial/3M810.pm @@ -67,6 +67,18 @@ sub cmd { $r_len = $port->read(3); } + # FIXME sometimes, reader returns left-over junk + if ( ! ord(substr($r_len,0,1)) && 0xD0 ) { + warn "INVALID reponse ",as_hex($r_len); + my $c; + while ( $c ne "\xD6" ) { + $c = $port->read(1) || return; + warn "# c ",as_hex($c); + } + $r_len = $c . $port->read(2); + warn "FIXED ",as_hex($r_len); + } + wait_device; my $len = ord( substr($r_len,2,1) );