in reply to access vi through teraterm
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.
(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)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; } } . . .
|
---|
In Section
Seekers of Perl Wisdom