Assuming that the serial connection is from a Windows box to a console/TTY on the Linux box, this old code excerpt may be instructive.
use strict;
use warnings;
use Win32::SerialPort;
my $loggedin = 0;
my $term = Win32::SerialPort->new('COM1') or die "bad COM1\n";
$term->baudrate(9600);
$term->databits(8);
$term->parity("none");
$term->parity_enable(0);
$term->stopbits(1);
$term->handshake('xoff');
$term->user_msg(1); # misc. warnings
$term->error_msg(1); # hardware and data errors
$term->read_interval(1000); # max time between chars 1000 ms (1
+sec)
$term->read_interval(0xffffffff); # non-blocking read
$term->write_settings;
$term->write("\r");
my $esccount = 0;
while ($prompt !~ /Supervisor Name :/) {
die "$esccount attempts to contact the PBX have failed." if $escco
+unt++ > 10;
# loop sending ESCs until we get the login prompt
$term->write("\e");
sleep 2;
($count, $prompt) = $term->read(2000);
}
# we should now be at the Supervisor Name prompt
$term->write("REPORTS\r");
sleep 2;
($count, $prompt) = $term->read(2000);
if ($prompt =~ /Password\s+:/) {
$term->write("REPORTS\r");
sleep 3;
($count, $prompt) = $term->read(2000);
if ($prompt =~ /Main Menu/) {
$loggedin = 1;
}
}
. . .
(yes, I did just give away the password to that old PBX. If it's still running and you can find it and connect to its serial port, feel free to hack away)
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.
|