• Viernes 15 de Noviembre de 2024, 00:45

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - bratis

Páginas: [1]
1
GNU/Linux / Ejemplos Funcion Select()
« en: Viernes 26 de Marzo de 2004, 11:10 »
Hola a todos,

alguien tiene algun ejemplo completo de uso de la funcion select()?

Mi aplicacion lee datos por el puerto serie 1  a uno para procesarlos posteriormente(entrada no canonica modo asincrono) utiliando VMIN=1 pero por lo visto el SSOO que estoy utilizando,eCos, no implementa bien esta funcion y leo los datos que me envian en distinto orden.
Me gustaria cambiar el programa y hacerlo con la funcion select(), aunque solo tenga una fuente conectada.

Alguna idea??

2
GNU/Linux / Interrupcion Del Puerto Serie
« en: Martes 2 de Marzo de 2004, 16:50 »
Hola a todos,
necesito en Linux (vamos no exactamente Linux sino eCos) recibir una señal  tanto si hay un dato disponible de entrada en el puerto serie como si hay un dato disponible para sacarlo. Vamos en general es la interrupcion del puerto serie.

Alguien saba como se puede hacer? Algun ejemplo?

Muchas gracias a todos

3
GNU/Linux / Recepcion Datos Puerto Serie
« en: Lunes 23 de Febrero de 2004, 17:40 »
Hola,
estoy intentando leer un caracter por el puerto serie de una placa EB40A que tiene un sistema operativo basado en linux( eCos).El problema que tengo es que solo recibo los numeros 0 y 128.No se si sera un problema de sincronizacion pero en principio estan tanto el transmisor como el receptor a 8N1 4800. Estoy utilizando las funciones POSIX. El codigo es el siguiente:

/**********************************************************************/

Ok thanks again

I have changed the VTIME to "0" and VMIN to "1" to read only one character from the /dev/ser1 but i can only read 128 or 0, something wrong?The option O_NONBLOCKING is on eCos not supported?

The code:
/***************************************************************************
include<termios.h> /*POSIX terminal control definitions*/
#include<stdio.h> /*standard input/output definitions*/
#include<stdlib.h>
#include<unistd.h> /*UNIX standard functions definitions*/
#include<fcntl.h> /*File control definitions*/
#include<errno.h> /*error numbre definitions*/
#include<string.h> /*string functions definitions*/
#include<sys/signal.h> /*available signals definitions*/
#include<sys/types.h>


#define BAUDRATE B4800
#define MODEMDEVICE "/dev/ser1"
#define ENDMINITERM 2 /* ctrl-b to quit miniterm */

#define _POSIX_SOURCE 1 /* POSIX compliant source */

#define FALSE 0
#define TRUE 1

volatile int STOP=FALSE;

int main(void)
{
int fd,nummer;
int c;
struct termios oldtio,newtio;

fd = open(MODEMDEVICE, O_RDWR);
if (fd <0) {perror(MODEMDEVICE); exit(-1); }

tcgetattr(fd,&oldtio); /* save current modem settings */

newtio.c_cflag = BAUDRATE | CLOCAL | CREAD;
newtio.c_cflag &= ~PARENB;
newtio.c_cflag &= ~CSTOPB;
newtio.c_cflag &= ~CSIZE;
newtio.c_cflag |= CS8;

newtio.c_iflag = IGNPAR;

newtio.c_lflag = 0;
newtio.c_lflag &= ~(ICANON | ECHO | ECHOE | ISIG);

newtio.c_cc[VMIN]=1;
newtio.c_cc[VTIME]=0;
cfsetispeed(&newtio, B4800);

tcsetattr(fd,TCSANOW,&newtio);

while(1)
{
nummer= read(fd,&c,1);
printf("data = %d\n", c);
if(c == 'z')
{
tcsetattr(fd, TCSANOW, &oldtio);
return 0;
}
}

Alguna idea?
Gracias

4
GNU/Linux / Lectura 1 Byte Puerto Serie
« en: Viernes 6 de Febrero de 2004, 13:56 »
Hola, estoy desarrolando una aplicacion en la que necesito leer byte a byte lo que me llega por el puerto serie. La idea es la siguiente:

Bucle infinito hasta que recibo la signal SIGIO, esta signal dara paso a un manejador que leera el byte del puerto y lo tratara.Mi cuestion es, la interrupcion software SIGIO se produce cuando el dispositivo asociado al puerto serie recibe 1 solo byte?y con la funcion read se puede leer tambien un solo byte?
read(fd, buffer, 1);

Si alguien me pudiera mandar algun ejemplo parecido le estaria muy agradecido.

Muchas gracias

5
GNU/Linux / Temporizadores En Linux-posix
« en: Jueves 5 de Febrero de 2004, 15:46 »
Hola,
me gustaria saber como podria programar con funciones POSIX temporizadores de resolucion aprox. 1msg-50msg. Alguien tiene o me puede mostrar algun ejemplo para hacer esto?

Muchas gracias y un saludo

6
GNU/Linux / Cvs Repository
« en: Miércoles 28 de Enero de 2004, 15:09 »
Hola,
me podria decir alguien como acceder al CVS repository para poder descargarte y actualizar codigo?
He estado mirando por ahi pero aparecen documentos enormes incomibles.
Alguna forma mas o menos sencilla?

Muchas gracias

Páginas: [1]