[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"