Esperar datos por el serial

Salvador Ortiz Garcia sog en msg.com.mx
Jue Abr 12 20:37:23 CST 2001


On Sat, 7 Apr 2001, Jose Julian Buda wrote:

> ...
> Tengo un servido con red hat 7.0 actuando como mail
> server y web server .
> Todo esto funciona ok , el problema me surge ahora con
> la actualizaion de los datos de la pagina que hostea ,
> que al ser una pagina de noticias se tiene que
> actualizar con un sistema que envia datos a traves de
> los puertos seriales y yo deberi tomarlo por el com y
> de alguna forma detectar el comienzo de una noticia y
> todo eso tirarlo a un html
> ...

El que te refieras a los puertos seriales como "el com" me hace
sospechar que no tienes mucha experiencia en programación en Linux/UNIX.

Para leer datos de un puerto serial (normalmente /dev/ttySx) requieres
abrirlo con open(2), configurarlo con las funciones de termios(3), y
esperar con select(2) o poll(2)  para leer tus datos con read(2).

Si no quieres meterte a esos detalles de bajo nivel, puedes usar alguna
biblioteca, por ejemplo Device::SerialPort en perl.

use Device::SerialPort;

..
my $Port = new Device::SerialPort("/dev/$PORT",1,"/var/lock/LCK..$PORT")
    or die "Can't open port $PORT: $!\n";

$Port->baudrate(19200);
$Port->parity('none');
$Port->parity_enable(0);
$Port->stopbits(1);
$Port->handshake('none');
$Port->write_settings or
    die "Can't set the port settings\n";
$Port->read_const_time(1000);
$Port->read_char_time(50);
..
my($count, $data) = $Port->read($expectedlength);
if(count != $expectedlength) {
    warn "Timeout\n";
    ...
}
..


De cualquier manera te recomiendo leer la documentación de termios(3) para
que tengas una idea de los parametros configurables de los puertos
seriales.

Saludos

Salvador Ortiz


---------------------------------------------------------
para salir de la lista, enviar un mensaje con las palabras
"unsubscribe ayuda" en el cuerpo a majordomo en linux.org.mx



Más información sobre la lista de distribución Ayuda