#!/usr/bin/perl
use warnings;
use strict;
use Win32::SerialPort;
my $serial_port = new Win32::SerialPort('COM3');
$serial_port->handshake('none');
$serial_port->baudrate(9600);
$serial_port->parity('odd');
$serial_port->databits(7);
$serial_port->stopbits(1);
$serial_port->buffers(256, 256);
$serial_port->read_interval(0); #RI
$serial_port->read_const_time(20); #RC
$serial_port->write_char_time(1); #WM
$serial_port->write_const_time(100); #WC
$serial_port->write_settings || undef $serial_port;
$serial_port->save('pump.cfg') if $serial_port;
####
#!/usr/bin/perl
use strict;
use warnings;
use Win32::SerialPort;
use Data::Dumper;
my $serial_port = start Win32::SerialPort('pump.cfg');
$serial_port->write_settings;
$serial_port->write("aU\n"); # Asks pump 'a' for its version information
my $response = $serial_port->input;
print Dumper($response); # Expected response: CV02.00.A
####
#!/usr/bin/perl
use strict;
use warnings;
use Win32::SerialPort;
use Data::Dumper;
my $serial_port = start Win32::SerialPort('pump.cfg');
$serial_port->write_settings;
$serial_port->write("aU\n"); # Asks pump 'a' for its version information
sleep(1);
my $response = $serial_port->input;
print Dumper($response); # Expected response: CV02.00.A
####
my $serial_port = tie (*FH, 'Win32::SerialPort', 'pump.cfg') || die "Can't tie: $^E\n";
print FH "aU\n";
sleep(1); # Same result w/ and w/o the sleep here
my @response = ;
print join "\n", @response;
####
my $serial_port = start Win32::SerialPort('pump.cfg');
$serial_port->write_settings;
$serial_port->write("aU\n");
sleep(1); # Same result w/ and w/o sleep here too
while (1) {
my ($rb, $byte) = $serial_port->read(1);
if ($rb > 0) {
print $byte;
} else {
last;
}
}