1 package RFID::Biblio::Readers;
5 RFID::Biblio::Readers - autodetect supported readers
11 Probe each RFID reader supported and returns succefull ones
13 my $rfid_readers = RFID::Biblio::Readers->_available( $regex_filter );
17 =head2 RFID reader implementations
19 L<RFID::Biblio::3M810>
21 L<RFID::Biblio::CPRM02>
23 L<RFID::Biblio::librfid>
27 =head2 RFID reader implementations
29 L<RFID::Biblio::3M810>
31 L<RFID::Biblio::CPRM02>
33 L<RFID::Biblio::librfid>
42 my @readers = ( '3M810', 'CPRM02', 'librfid' );
45 my ( $self, $filter ) = @_;
47 $filter = 'all' unless defined $filter;
49 return $self->{_available}->{$filter} if defined $self->{_available}->{$filter};
53 foreach my $reader ( @readers ) {
54 next if $reader !~ /$filter/i;
55 my $module = "RFID::Biblio::$reader";
58 if ( my $rfid = $module->new( device => '/dev/ttyUSB0' ) ) {
60 warn "# added $module\n";
62 warn "# ignored $module\n";
66 die "no readers found" unless @rfid;
68 $self->{_available}->{$filter} = [ @rfid ];
78 # we don't want DESTROY to fallback into AUTOLOAD
84 my $command = $AUTOLOAD;
87 foreach my $r ( @{ $self->_available } ) {