1 package RFID::Biblio::Reader::Serial;
6 use Device::SerialPort qw(:STAT);
7 use Data::Dump qw(dump);
11 RFID::Biblio::Reader::Serial - base class for serial RFID readers
17 Open serial port (if needed) and init reader
26 $self->port && return $self;
32 Tries to open usb serial ports C</dev/ttyUSB*>
34 my $serial_obj = $self->port;
36 To try just one device use C<RFID_DEVICE=/dev/ttyUSB1> enviroment variable
45 return $self->{port} if defined $self->{port};
47 my $settings = $self->serial_settings;
48 my @devices = $ENV{RFID_DEVICE} ? ( $ENV{RFID_DEVICE} ) : glob '/dev/ttyUSB*';
49 warn "# port devices ",dump(@devices);
51 foreach my $device ( @devices ) {
53 next if $serial_device->{$device};
55 if ( my $port = Device::SerialPort->new($device) ) {
57 foreach my $opt ( qw/handshake baudrate databits parity stopbits/ ) {
58 $port->$opt( $settings->{$opt} );
61 $self->{port} = $port;
63 warn "# probe by init $device ",ref($self);
65 warn "init OK ", ref($self), " $device settings ",dump $settings;
66 $serial_device->{$device} = $port;
74 warn "# serial_device ",dump($serial_device);
84 L<RFID::Biblio::Reader::3M810>
86 L<RFID::Biblio::Reader::CPRM01>
88 L<RFID::Biblio::Reader::API>