projects
/
Biblio-RFID.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
rename module to Biblio::RFID
[Biblio-RFID.git]
/
lib
/
RFID
/
Biblio
/
Reader
/
Serial.pm
diff --git
a/lib/RFID/Biblio/Reader/Serial.pm
b/lib/RFID/Biblio/Reader/Serial.pm
index
bf89625
..
39282f0
100644
(file)
--- a/
lib/RFID/Biblio/Reader/Serial.pm
+++ b/
lib/RFID/Biblio/Reader/Serial.pm
@@
-1,4
+1,4
@@
-package
RFID::Biblio
::Reader::Serial;
+package
Biblio::RFID
::Reader::Serial;
use warnings;
use strict;
use warnings;
use strict;
@@
-8,7
+8,7
@@
use Data::Dump qw(dump);
=head1 NAME
=head1 NAME
-
RFID::Biblio
::Reader::Serial - base class for serial RFID readers
+
Biblio::RFID
::Reader::Serial - base class for serial RFID readers
=head1 METHODS
=head1 METHODS
@@
-23,14
+23,18
@@
sub new {
my $self = {@_};
bless $self, $class;
my $self = {@_};
bless $self, $class;
- $self->port &&
$self->init &&
return $self;
+ $self->port && return $self;
}
=head2 port
}
=head2 port
+Tries to open usb serial ports C</dev/ttyUSB*>
+
my $serial_obj = $self->port;
my $serial_obj = $self->port;
+To try just one device use C<RFID_DEVICE=/dev/ttyUSB1> enviroment variable
+
=cut
our $serial_device;
=cut
our $serial_device;
@@
-41,9
+45,7
@@
sub port {
return $self->{port} if defined $self->{port};
my $settings = $self->serial_settings;
return $self->{port} if defined $self->{port};
my $settings = $self->serial_settings;
- my @devices = ( $ENV{RFID_DEVICE} );
- @devices = glob '/dev/ttyUSB*';
-
+ my @devices = $ENV{RFID_DEVICE} ? ( $ENV{RFID_DEVICE} ) : glob '/dev/ttyUSB*';
warn "# port devices ",dump(@devices);
foreach my $device ( @devices ) {
warn "# port devices ",dump(@devices);
foreach my $device ( @devices ) {
@@
-51,13
+53,21
@@
sub port {
next if $serial_device->{$device};
if ( my $port = Device::SerialPort->new($device) ) {
next if $serial_device->{$device};
if ( my $port = Device::SerialPort->new($device) ) {
+
foreach my $opt ( qw/handshake baudrate databits parity stopbits/ ) {
$port->$opt( $settings->{$opt} );
}
foreach my $opt ( qw/handshake baudrate databits parity stopbits/ ) {
$port->$opt( $settings->{$opt} );
}
- warn "found ", ref($self), " $device settings ",dump $settings;
+
$self->{port} = $port;
$self->{port} = $port;
- $serial_device->{$device} = $port;
- last;
+
+ warn "# probe by init $device ",ref($self);
+ if ( $self->init ) {
+ warn "init OK ", ref($self), " $device settings ",dump $settings;
+ $serial_device->{$device} = $port;
+ last;
+ } else {
+ $self->{port} = 0;
+ }
}
}
}
}
@@
-71,9
+81,9
@@
__END__
=head1 SEE ALSO
=head1 SEE ALSO
-L<
RFID::Biblio
::Reader::3M810>
+L<
Biblio::RFID
::Reader::3M810>
-L<
RFID::Biblio
::Reader::CPRM01>
+L<
Biblio::RFID
::Reader::CPRM01>
-L<
RFID::Biblio
::Reader::API>
+L<
Biblio::RFID
::Reader::API>