TODOPIC

Lenguajes de programación para PC => Visual Basic => Mensaje iniciado por: pantera en 07 de Septiembre de 2006, 13:29:53

Título: Recepcion de varias palabras atravez del puerto serie ? que esta mal ? HELP :s
Publicado por: pantera en 07 de Septiembre de 2006, 13:29:53
Hola chicos recurro de nuevo a ustedes por que no puedo lograr recibir unas cadenas por el puerto serie. la cosa es asi

Mando por el microcontrolador una serie de datos separados por un espacio.

Código: CSS
  1. set_adc_channel(0);
  2.            delay_us(10);
  3.            DatoNivel=read_adc();
  4.        
  5.            set_adc_channel(1);
  6.            delay_us(10);
  7.            Tempe=read_adc();
  8.        
  9.            set_adc_channel(2);
  10.            delay_us(10);
  11.            DatoVel=read_adc();
  12.        
  13.            set_adc_channel(3);
  14.            delay_us(10);
  15.            DatoVoltaje=read_adc();
  16.        
  17.            set_adc_channel(4);
  18.            delay_us(10);
  19.            DatoCorri=read_adc();
  20.                
  21.  
  22.                    if(send){
  23.            printf("%Lu %Lu %Lu %Lu %Lu \n\r",DatoNivel, Tempe, DatoVel, DatoVoltaje, DatoCorri);
  24.                    }

Y pues los recibo en VB6, el cual recibe bien los datos, pero tengo muchos problemas con la sincronizacion de los datos :

El codigo que tengo en Visual es el siguiente

Código: Visual Basic
  1. Private Sub MSComm1_OnComm()
  2. Dim i As Integer
  3. Dim Valor As String
  4. Dim MiCadena, Cadena As String
  5.        
  6. If MSComm1.CommEvent = comEvReceive Then
  7.        
  8.         Valor = MSComm1.Input
  9.         Texto_Recibido.Text = Valor
  10.        
  11.         i = InStr(Valor, Chr(13))
  12.        
  13.         If i = 0 Then
  14.             Cadena = Cadena & Valor
  15.         Else
  16.        
  17.         Cadena = Cadena & Left(Valor, i)
  18.        
  19.         Texto_Recibido.Text = Cadena
  20.         MiCadena = Split(Cadena, " ", -1, 1)
  21.         Text1.Text = Val(MiCadena(0))
  22.         Text2.Text = Val(MiCadena(1))
  23.         Text3.Text = Val(MiCadena(2))
  24.         Text4.Text = Val(MiCadena(3))
  25.         Text5.Text = Val(MiCadena(4))
  26.         'Cadena = ""
  27.        End If
  28.         Valor = MSComm1.Input
  29.  
  30. End If
  31.  
  32. If MSComm1.CommEvent = comEvSend Then
  33.    Texto_Mensajes = "0"
  34. End If
  35.  
  36.  
  37. End Sub

El problema es que de repente al poner la informacion ya separada. la primera vez que recibe lo hace bien pero despues cuando vuelvo a mandar mas datos llegan menos y se me causa un error en las cajas de texto.


Thera are someone who can help me?

Título: Re: Recepcion de varias palabras atravez del puerto serie ? que esta mal ? HELP :s
Publicado por: pantera en 08 de Septiembre de 2006, 00:01:18
A ya esta la solucion a mi problema
queda muy chido

Código: Visual Basic
  1. Private Sub MSComm1_OnComm()
  2. Dim i As Integer
  3. Dim Valor As String
  4. Dim MiCadena, Cadena As String
  5.        
  6. If MSComm1.CommEvent = comEvReceive Then
  7.  
  8.         Valor = LoQueQueda + MSComm1.Input
  9.        
  10.         i = InStr(Valor, Chr(13))
  11.         LoQueQueda = Mid$(Valor, i + 1)
  12.        
  13.        
  14.         If i = 0 Then
  15.             'Cadena = Cadena & Valor
  16.        Else
  17.        
  18.         Cadena = Left(Valor, i)
  19.        
  20.         Texto_Recibido.Text = Cadena
  21.         MiCadena = Split(Cadena, " ", -1, 1)
  22.        
  23.         Text1.Text = (MiCadena(0))
  24.         Text2.Text = (MiCadena(1))
  25.         Text3.Text = (MiCadena(2))
  26.         Text4.Text = (MiCadena(3))
  27.         Text5.Text = (MiCadena(4))
  28.         Cadena = ""
  29.         End If
  30.      
  31. End If
  32.  
  33. If MSComm1.CommEvent = comEvSend Then
  34.    Texto_Mensajes = "0"
  35. End If
  36.  
  37.  
  38. End Sub


Espero que le sirva a alguien con el mismo problema
Título: Re: Recepcion de varias palabras atravez del puerto serie ? que esta mal ? HELP :s
Publicado por: Blanca Sánchez en 03 de Marzo de 2008, 14:16:58
Hola pantera:

Una pregunta

¿Qué es "LoQueQueda"?

¿que tipo de variable es?