1 package RFID::Biblio::Readers;
10 RFID::Biblio::Readers - autodetect supported readers
16 my $rfid = RFID::Biblio::Readers->new( 'optional reader filter' );
21 my ( $class, $filter ) = @_;
24 $self->{_readers} = [ $self->_available( $filter ) ];
33 Probe each RFID reader supported and returns succefull ones
35 my $rfid_readers = RFID::Biblio::Readers->_available( $regex_filter );
39 my @readers = ( '3M810', 'CPRM02', 'librfid' );
42 my ( $self, $filter ) = @_;
44 $filter = '' unless defined $filter;
46 warn "# filter: $filter";
50 foreach my $reader ( @readers ) {
51 next if $filter && $reader !~ /$filter/i;
52 my $module = "RFID::Biblio::$reader";
55 if ( my $rfid = $module->new( device => '/dev/ttyUSB0' ) ) {
57 warn "# added $module\n";
59 warn "# ignored $module\n";
63 die "no readers found" unless @rfid;
70 On any other function calls, we just marshall to all readers
74 # we don't want DESTROY to fallback into AUTOLOAD
80 my $command = $AUTOLOAD;
85 foreach my $r ( @{ $self->{_readers} } ) {
86 push @out, $r->$command(@_);
97 =head2 RFID reader implementations
99 L<RFID::Biblio::3M810>
101 L<RFID::Biblio::CPRM02>
103 L<RFID::Biblio::librfid>