|
Posted by jis on June 5, 2007, 11:29 am
Please log in for more thread options
>
>
> > Can anybody help with examples on reading a serial port.
> > Even after reading through the win32::serialport CPAN pod my attempt
> > to write a working code is gone futile.
> > I am trying to read a barcode with a scanner.
>
> I think your best chance of success would be to post to "Seekers of Perl
> Wisdom" at perlmonks. Another option would be the 'perl-win32-users' mailing
> list hosted by ActiveState, though it's really low volume these days. That's
> not to say that there's no-one here who can help, but you've given us very
> little to work with.
>
> Wherever you post, it's better to provide a copy'n'paste of some code that
> you've tried (along with a copy'n'paste of the error messages it generates).
> That way, even if there's no-one around who can actually answer the
> question, there might be someone lurking about who can see a fault in your
> code and provide a correction.
>
> Google might also be able to help out. I
triedhttp://www.google.com.au/search?hl=en&q=Win32%3A%3ASerialPort+barcode...
>
> I couldn't see anything there that stood out as a likely solution, but I
> didn't actually follow any of the links.
>
> Cheers,
> Rob
Atast i could figure out how it works.if anyobdy else searching for
the same here is the code.
This reads the barcode with the help of scanner.This is a basic
code.Ofcourse need to be modified for realtime use.
use strict;
use Win32::SerialPort;
sub openPort($);
sub closePort($);
my $bar;
my $DEVICE = "COM1";
my $data=0;
my $serial =openPort($DEVICE);
while(!($data=~/\r/))
{
$data=$serial->input;
$bar=$bar.$data;
}
print $bar;
closePort($serial);
sub openPort($)
{
my ($device) = @_;
my $serial = Win32::SerialPort->new ($device, 1);
die "Can't open serial port $serial: $^E\n" unless ($serial);
$serial->user_msg(1);
$serial->databits(8);
$serial->baudrate(9600);
$serial->parity("none");
$serial->stopbits(1);
return $serial;
}
sub closePort($)
{
my ($serial) = @_;
$serial->close();
}
|