[Previo por Fecha] [Siguiente por Fecha] [Previo por Hilo] [Siguiente por Hilo]
[Hilos de Discusión] [Fecha] [Tema] [Autor]Tengo un script con perl que me permite hacer un chat con un puerto pero
necesito poder darle entrada de datos desde variables arbitrarias, alguien
puede decirme que debo hacer?.
La secuencia que necesito esta aqui:
sysopen hacia ttyS1 y luego
Send: "\x0d" --> Enter
Receive: "ID="
Send: "M\x0d"
Receive: "Enter pager ID: "
Send: "123456\x0d"
Receive: "Enter message:"
Send: "Message here\x0d"
Receive: "Enter pager ID: "
Send: "\x0d"
Receive: "Goodbye"
close dev at ttyS1
Gracias Gracias.
------------------------------------------------------------------------
#!/usr/bin/perl -w
use POSIX qw(:termios_h :fcntl_h);
sysopen ( MODEM, "/dev/ttyS1", O_RDWR | O_NONBLOCK ) || die "cannot
sysopen";
$in = POSIX::Termios->new;
$insave = POSIX::Termios->new;
$mo = POSIX::Termios->new;
# STDIN: raw
$in->getattr(fileno(STDIN));
$insave->getattr(fileno(STDIN));
$in->setiflag(0); # XON, XOFF goes here
$in->setoflag(0);
$in->setlflag(0);
$in->setcc(VMIN, 1);
$in->setcc(VTIME, 0);
$in->setattr(fileno(STDIN), TCSANOW);
# Modem: like STDIN plus baudrate
$mo->getattr(fileno(STDIN));
$mo->setcflag( B9600 | CLOCAL | CREAD | CSTOPB | HUPCL | PARENB | CS7 );
#$mo->setcflag(CREAD | CS8 | B9600 | HUPCL);
$mo->setattr(fileno(MODEM), TCSANOW);
my $rbits = "";
vec($rbits, fileno(STDIN), 1) = 1;
vec($rbits, fileno(MODEM), 1) = 1;
my $n = 0;
do {
$n = select($selrbits = $rbits, undef, undef, undef); # BLOCKING
die "cannot select" if ($n == -1);
if (vec($selrbits, fileno(STDIN), 1)) {
$len = sysread(STDIN, $buf, 100 );
syswrite(MODEM, $buf, $len );
}
if (vec($selrbits, fileno(MODEM), 1)) {
$len = sysread(MODEM, $buf, 100 );
syswrite(STDOUT, $buf, $len );
}
} while ( $buf ne "q" );
close MODEM;
$insave->setattr(fileno(STDIN), TCSANOW); # restore terminal settings
------------------------------------------------------------------------
Armando Montiel Caba mailto:amontiel en ns tecnet net mx
ViAjErO @ IRC Tel: (525) 171-99-16,18,24
Beeper (525) 1710976 Sin PIN, Sin Clave" ComRed S.A. de C.V.
Otro Pleonasmo: "Ha Ocurrido un Error en Windows"