elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Error al leer datos función read
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Error al leer datos función read  (Leído 3,304 veces)
jose94

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Error al leer datos función read
« en: 3 Agosto 2017, 16:05 pm »

Buenas,

Estoy intentando mostrar por pantalla los mensajes recibidos por parte de arduino mediante puerto serie. Para ello he configurado el puerto serie de la siguiente forma:

Código:

// Open the port in read-write mode
m_portHandler = open(pDev, O_RDWR | O_NOCTTY);
if(m_portHandler < 0)
return;

// Get the port attributes and flush all data on queues
tcgetattr(m_portHandler, &my_termios);
tcflush(m_portHandler, TCIOFLUSH);

// Setup the communication
my_termios.c_iflag &= ~(BRKINT | IGNPAR | PARMRK | INPCK |ISTRIP | IXON | INLCR | IGNCR | ICRNL);
my_termios.c_iflag |= IGNBRK | IXOFF;
my_termios.c_oflag &= ~(OPOST);
my_termios.c_cflag |= CLOCAL | CREAD;
my_termios.c_cflag &= ~PARENB;
my_termios.c_cflag |= CS8;
my_termios.c_cflag &= ~CSTOPB;
my_termios.c_cflag &= ~CRTSCTS;   
my_termios.c_lflag &= ~(ECHO | ECHOE | ECHOK | ECHONL | ICANON | NOFLSH | TOSTOP | ISIG | IEXTEN);
my_termios.c_cc[VMIN]=1; //Each simple read call will be blocked until recive at least one byte
my_termios.c_cc[VTIME]=0; //No timeout for reading
cfsetispeed(&my_termios, B115200);
cfsetospeed(&my_termios, B115200);
tcsetattr(m_portHandler, TCSANOW, &my_termios);

Y he usado la siguiente función para leer los datos recibidos en el puerto serie e imprimirlos por pantalla:
Código:
void lee()
{
char c;
read(m_portHandler,&c,1);
fprintf(stdout,"%x",uint8_t(c));

        }

Los datos se imprimen por pantalla pero al parecer lo imprime por bloques. Aunque la función read está configurara para que lea de byte en byte, hasta que no tiene un bloque completo no imprime nada. Por tanto, los últimos datos de información no se imprimen.
He probado a añadir más datos para completar el bloque y en ese caso si se imprimen.
No sé como solucionarlo, ¿alguna idea?.

Gracias :)


En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Error al leer datos función read
« Respuesta #1 en: 3 Agosto 2017, 16:30 pm »

Prueba a llamar a fflush después del fprintf.
Código
  1. fflush(stdout);
Con ello, fuerzas a que envíe el buffer.


En línea

jose94

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: Error al leer datos función read
« Respuesta #2 en: 3 Agosto 2017, 18:08 pm »

Muchas gracias :)
¿Como puedo escribir datos binarios en un fichero jpeg?
« Última modificación: 3 Agosto 2017, 18:16 pm por jose94 » En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Error al leer datos función read
« Respuesta #3 en: 3 Agosto 2017, 18:14 pm »

Suponiendo que uses C:

Si es un archivo creado con fopen, entonces tienes fwrite (http://www.cplusplus.com/reference/cstdio/fwrite/)

Si no, especifica más el contexto :o
En línea

jose94

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: Error al leer datos función read
« Respuesta #4 en: 3 Agosto 2017, 20:13 pm »

Gracias de nuevo :P
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Dvd read error con los juegos d wii grabadas con el portatil
Software
CrÄsH 2 4,880 Último mensaje 1 Marzo 2009, 19:24 pm
por CrÄsH
Problema al usar la función fscanf para leer datos en un vector.
Programación C/C++
dvc 4 5,166 Último mensaje 15 Abril 2012, 22:16 pm
por dvc
error Cannot read property 'style' of null
Desarrollo Web
SrTrp 2 3,275 Último mensaje 26 Diciembre 2017, 00:41 am
por SrTrp
javascript Error: Cannot read property '1' of undefined
Desarrollo Web
SrTrp 2 3,061 Último mensaje 9 Octubre 2020, 00:42 am
por SrTrp
Usar read en entrada de datos
.NET (C#, VB.NET, ASP)
Meta 5 7,353 Último mensaje 6 Diciembre 2023, 21:33 pm
por Meta
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines