none
Interrumpir un metodo RRS feed

  • Pregunta

  • Hola,

    Trabajo con Visual C# 2010 express.

    Tengo una aplicación que recibe datos de un puerto com.

    //Ejecutar la funcion Recepcion por disparo del Evento 'DataReived'
                serialPort1.DataReceived += new
                System.IO.Ports.SerialDataReceivedEventHandler(Recepcion);
            }
            //Al recibir los datos
            private void Recepcion(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
            {
                //Acumular los carácteres recibidos a nuestro 'buffer' (string) Solo en la primera linea

                serialPort1.NewLine = "*"; //Indica el final de linea de recibir datos
                Recibidos = serialPort1.ReadLine(); //Lee hasta el final de linea en este caso *
                //Recibidos = serialPort1.ReadExisting(); Creo que con la linea anterior es suficiente

                //Indica el indice de la primera aparición de $
                int indice = Recibidos.IndexOf("$");

                //La siguiente línea me permite quedarme con lo que quiero donde empiezo y la longitud total
                Recibidos = Recibidos.Substring(indice, (Recibidos.Length - 2) - indice);
                            
               //invocar o llamar al proceso de tramas
                this.Invoke(new EventHandler(Actualizar));
            }
            #endregion
            #region Recibe los datos y hace todo el proceso
            //Procesar los datos recibidos en el buffer y extraer tramas completas
            private void Actualizar(object s, EventArgs e)
            {................

    Dentro de Actualizar entre otras muchas cosas tengo un if (el siguiente que muestro):

    if (split.Length < 9)
                {
                    MessageBox.Show("Los datos provenientes del GPS no son correctos", "Atención", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    return;
                }

    Cómo el GPS no para de enviar datos si se cumple el if me sale una y otra vez el mensaje.

    Quisiera que si me sale el mensaje  "Los datos provenientes del GPS no son correctos", que se cortase (detuviese, pausase), la recepción de datos del GPS y así evitaria que apareciera una y otra vez el mensaje, y cuando pulse Ok o cierre la ventana del MessageBox.Show volviese a recibir datos.

    Gracias

    martes, 9 de octubre de 2012 10:55

Todas las respuestas