none
Leer puerto serie sólo cuando hay dato RRS feed

  • Pregunta

  • Hola a todos!

    He estado buscando mi duda en otros temas pero no encuentro algo similar, no al menos en las 20 o 25 primeras preguntas donde me he metido, así que me he decidido a abrir una nueva pregunta a ver si alguien me puede ayudar.

    El concepto es muy sencillo, estoy leyendo los datos que llegan de un arduino mega con visual c# express 2010. Para ello es necesario leer el puerto serie y hasta ahí bien. Simplificándolo al máximo lo hago de la siguiente manera:

    serialPort1.Open();
    string indicacion = (serialPort1.ReadLine());
    serialPort1.Close();

    De esta forma guardo en la variable tipo string "indicación"lo que en ese momento esté enviando Arduino. Esta es una acción repetitiva que gracias a un timertick se realiza cada 50ms. Y en un principio todo funciona bien. Mi problema surge cuando el Arduino en un momento dado no envía datos, ya que en ese momento no son necesarios. Entonces Visual se mete a leer el puerto, que está vacío, y el programa se queda pillado. Mi pregunta es: ¿puedo de alguna manera entrar a leer en el puerto tan sólo cuando éste tenga datos que leer? Porque visto lo visto, si entro sin datos el programa se cuelga. Estoy buscando algo parecido a esto:

    if(Serial.available>0)

    {

    indicacion=Serial.read();

    }

    pero para c#. Yo es que soy nuevo en este lenguaje y no sé cuál será su estructura equiparable, y por más que he buscado no lo he encontrado, y me parece raro porque evidentemente es muy útil.

    viernes, 12 de junio de 2015 16:57

Respuestas

Todas las respuestas