none
se puede disparar un timer , cuando se dispara el evento SerialPort ?? RRS feed

  • Pregunta

  • Hola estoy desarrollando una aplicación, es una interfaz grafica que pretende ser un marcador deportivo de karate , esta echo en vb.net2005, lo que debe ser mostrado en pantalla son los puntos de 2 competidores A y B ,  que son aportados por 4 jueces,un en cada esquina,  que en sus manos tienen cada uno un pulsador  que utiliza como base  el microcontrolador pic 18f2250 que es un pic usb. Las reglas de juego son que si 3 jueces o mas ven un punto valido del competidor '' A'' o ''B'', sean anotados y visualizados en pantalla, los jueces tienen una ventana de tpo de 2 segundos para que el punto sea valido, sino no, no  es anotado. 

    La cuestion es esta, tengo el programa en el pic18f2550 ok, y la interfaz medianamente buena, ya que Si! puedo recibir datos desde los pulsadores, y aqui va la ayuda que necesito, aun no puedo hacer la ventana de tiempo (timer) para que cuando 3 o mas jueces vean el punto valido, este pueda ser anotado, he logrado hacer que la ventana de tpo se inicie cuando ingresa un dato en el buffer del pto serie pero luego no la puedo volver a inciar, por lo tanto no puedo hacer la rutina que pregunte si hay 3 datos iguales ose del mismo competidor, me puede alguien ayudar, e intentado llamar al timer desde el evento de recepcion de datos del pto serie pero no puedo , he intentado delegados pero no funciona, necesito sacar esto pq sino no me podre titular, estoy estudiando ing electronica. desde ya gracias

    viernes, 6 de agosto de 2010 18:16

Todas las respuestas

  • Buenas tardes,

    Con mi experiencia usando el control serialport, más que un timer te recomiendo crear un hilo y que esté todo el tiempo a la escucha de cualquier dato que se reciba a través del puerto serie. Cuando se reciba algo, provocar un evento que se encargue de mover los valores a las variables necesarias o realizar cualquier operación.

    Recuerda que si quieres que se muestre en un textbox o alguna parte del formulario necesitas usar delegates.

    Con un timer, si se recibe muchos datos de forma simultánea, perderás datos. Además debes tener en cuenta que el hilo mal manejado puede dejar pillado el sistema, bájale un poco la prioridad al hilo.

    ¿Te da algún tipo de error?

    Muchas gracias, un saludo.

    jueves, 4 de noviembre de 2010 16:53
  • Hola:

    Si puedes activar un timer si reciber datos en el seriealPort.

    - Si recibo cualquier dato en el serialPort.
         - Se activa el timer.

     

    Puedes conseguir ideas por aquí.

    Ver puerto serie em Visal Basic .net.

     

    Un cordial saludo.


    • Propuesto como respuesta Metaconta martes, 1 de febrero de 2011 2:55
    lunes, 8 de noviembre de 2010 18:27