From: Dobrica Pavlinusic Date: Thu, 29 Jul 2010 12:12:17 +0000 (+0200) Subject: split readers init into RFID::Biblio::Readers X-Git-Tag: RFID-Biblio-0.02~123 X-Git-Url: http://git.rot13.org/?p=Biblio-RFID.git;a=commitdiff_plain;h=1f01e94467faff596cf304316005969a888f1fe2 split readers init into RFID::Biblio::Readers --- diff --git a/lib/RFID/Biblio/Readers.pm b/lib/RFID/Biblio/Readers.pm new file mode 100644 index 0000000..b3ff2f4 --- /dev/null +++ b/lib/RFID/Biblio/Readers.pm @@ -0,0 +1,30 @@ +package RFID::Biblio::Readers; + +use warnings; +use strict; + +use lib 'lib'; + +my @readers = ( '3M810', 'CPRM02' ); + +sub available { + my ( $self, $filter ) = @_; + + my @rfid; + + foreach my $reader ( @readers ) { + next if $reader !~ /$filter/i; + my $module = "RFID::Biblio::$reader"; + eval "use $module"; + die $@ if $@; + if ( my $rfid = $module->new( device => '/dev/ttyUSB0' ) ) { + push @rfid, $rfid; + warn "# added $module\n"; + } else { + warn "# ignored $module\n"; + } + } + + return @rfid; +} + diff --git a/scripts/scan.pl b/scripts/scan.pl index 605b82e..122024c 100755 --- a/scripts/scan.pl +++ b/scripts/scan.pl @@ -5,6 +5,8 @@ use strict; use Data::Dump qw(dump); use Getopt::Long; +use lib 'lib'; +use RFID::Biblio::Readers; my $loop = 0; my $only; @@ -14,23 +16,7 @@ GetOptions( 'only=s', => \$only, ) || die $!; -my @readers = ( '3M810', 'CPRM02' ); -my @rfid; - -foreach my $reader ( @readers ) { - next if $reader !~ /$only/i && $only ne $reader; - my $module = "RFID::Biblio::$reader"; - eval "use $module"; - die $@ if $@; - if ( my $rfid = $module->new( device => '/dev/ttyUSB0' ) ) { - push @rfid, $rfid; - warn "# added $module\n"; - } else { - warn "# ignored $module\n"; - } -} - -use lib 'lib'; +my @rfid = RFID::Biblio::Readers->available( $only ); do { foreach my $rfid ( @rfid ) {