C/Visual C - problema con puerto serie

 
Vista:

problema con puerto serie

Publicado por cgillopez (1 intervención) el 07/04/2008 12:43:55
Hola, me gustaria que el programa que estoy haciendo leyese por el puerto serie de 1 a 80 caracteres que le paso por teclado.

Al ejecutarlo si escribo menos de 24 me lo escribe bien pero si he escribo mas de 23-24 no me lo visualiza por pantalla y me deja una linea en blanco.

El codigo, (GPSData=80):

/*abrir puerto serie*/
fd = open("/dev/ttyS1", O_RDWR);

if (fd>0){
while(1){
/* lectura puerto serie*/
n= read(fd,GPSData,80);
if (n>0){
strcat(GPSData, " ");
buf[n]=0;
printf("%s",GPSData);
// strcat(GPSData, " ");
//printf("%s",GPSData);
WriteGPSData(GPSData);

/* Despertamos a los hilos que gestionan las conexiones TCP con los clientes */
pthread_mutex_lock(&count_mutex);
pthread_cond_broadcast(&count_condition);
pthread_mutex_unlock(&count_mutex);

//usleep(1000000);
//contador += 1;
};

if (n<0){
exit(EXIT_FAILURE);
};

}
}
if (fd<0){
exit(EXIT_FAILURE);
};

/* cerrar puerto serie*/
close(fd);
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:problema con puerto serie

Publicado por Nelek (816 intervenciones) el 08/04/2008 15:44:34
Has probado en partir tu cadena leida en paquetes mas pequenyos? Se que no es la mejor de las soluciones pero...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:problema con puerto serie

Publicado por Nelek (816 intervenciones) el 08/04/2008 15:47:49
Se me corto la respuesta. (repito)

Has probado en partir tu cadena leida en paquetes mas pequenyos? Se que no es la mejor de las soluciones pero... al menos podras determinar si el fallo es en la lectura de los datos por el puerto o en la presentacion en pantalla. Es que lo de que sean 23 o 24 caracteres... a mi me da a que tiene que ver con el ancho de cadena visible en pantalla y que sea 23 o 24 depende de los caracteres que esten siendo leidos.

Hay una prueba, lee los 80 del tiron y luego separalos en 4 segmentos de 20 antes de mandarlo a la pantalla a ver si te salen o no.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar