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