Buenas tardes. Estoy desarrollando una aplicacion para la facultad que se basa en el streaming de datos por sockets UDP sobre el microcontrolador LPC1769 con el rtos FreeRTOS. He logrado establecer un protocolo basado en los mismos sockets que valida la informacion de forma correcta y alcanza una velocidad de transmisión aceptable. El problema surge con la opción "
SO_RCVTIMEO" de los sockets. Posterior a ser creado al socket UDP le actulaizo vía la funcion lwip_setsockopt la cantidad de milisegundos (eso entiendo yo) que deseo disponer como tiempo de gracia para las recepciones.
El hecho es que en caso de que un paquete genere timeout o algun otro tipo de error que no estoy pudiendo detectar la transmision se frena. Mi ejemplo trabaja de la siguiente manera (espero que se vea bien):
1) Creo el socket
2) Set de timeout
3) Escribo por UDP
4) Escucho por UDP
4.1) Llega algo
4.1.1) Proceso paquete
4.1.1.1) Si esta OK - Cierro socket - Reinicio Tx (vuelta a 1)
4.1.1.2) Si esta mal - Handler de Error
4.2) Se produce un error - Handler de error.
Obviamente me doy cuenta que algo sucede porque desde la PC dejo de ver paquetes, en el uC lo curioso es que no se produce ningun retorno de estas funciones o por lo menos yo no estoy pudiendo debuggear el problema.
Les pregunto a la comunidad si alguno tuvo experiencia trabajando con la API de sockets UDP de LwIP y si se han encontrado con algo por el estilo.
Desde ya muchas gracias.
Saludos