on error try to reset usb
authorDobrica Pavlinusic <dpavlin@rot13.org>
Tue, 4 Feb 2014 15:55:51 +0000 (16:55 +0100)
committerDobrica Pavlinusic <dpavlin@rot13.org>
Tue, 4 Feb 2014 15:55:51 +0000 (16:55 +0100)
lib/Biblio/RFID/Reader/librfid.pm

index 9fa3387..72ea674 100644 (file)
@@ -65,6 +65,17 @@ sub _grep_tool {
                $coderef->( $sid, $iso );
        }
 
+       close($s);
+       if ( $? >> 8 ) {
+               my $lsusb = `lsusb -d 076b:`;
+               if ( $lsusb =~ m/\S+\s+(\d+)\s+\S+\s+(\d+)/ ) {
+                       my $cmd = "usbreset /dev/bus/usb/$1/$2";
+                       warn "# $cmd\n";
+                       system $cmd;
+               } else {
+                       warn "can't reset device $lsusb";
+               }
+       }
 
 }