none
thread repetitivo RRS feed

  • Pregunta

  •  

    bueno... tengo un programa que se comunica con el puerto serial... en el cual le envio datos y este me responde confirmandome que le llegue.. y yo le debe responder.. y yo le debo mandar un comando para que me deje de responder.....el ejemplo es mas o menos asi :

     

    envio : a-s

    responde : a+s (este comando me repite hasta que yo le reponda : a=s, cuando le mando ese comando me deja de enviar....)

     

    he creado un thread, pero este me lee todo en bloque y esperar que yo haga algun proceso para recien mandarmelo.... lo que necesito es que apenas tenga un dato por leer me lo imprima y yo siga realizando otros procesos....... adjunto el codigo.. para que me puedan ayudar..

     

    gracias.

    néstor

     

     

    miércoles, 9 de enero de 2008 22:24

Respuestas

  • OK,
    entonces te ayudare conceptualmente.

    Tu thread funciona a manera de Listener, es decir esta supervisando si hay o no datos pendientesm y te debe notificar cuando haya esos datos pendientes para tu despacharlos pero sin que el deje de escuchar.

    Solucion, crea una cola de datos pendientes, es decir el hilo cada vez que reciba un conjunto de datos leidos , pues los lee y los carga en un array capaz de almacenar esos datos, entre mas datos llegan mas grande se hace el array pues los va encolando. Mientras tanto tu proceso esta pendiente de si el array tiene o no elementos y si tiene elementos los procesa y cada vez que procesa un elemento pues lo elimina del array.

    Entonces el hilo tiene un bucle donde cada vez que llega algo lo manda al array y el proceso principal tiene un bucle donde cada vez que haya algo en el array lo procesa (imprime o lo que sea...) y elimina ese nodo del array.


    espero haber sido de ayuda.,
    jueves, 10 de enero de 2008 14:39
    Moderador

Todas las respuestas