none
Cadena incompleta desde puerto serial en VB.net RRS feed

  • Pregunta

  • Buen dia amigos,

    estoy haciendo una aplicación desde la que abro un puerto com1 y recibo una cadena por puero serial, el problema con el que me encuentro es que la cadena esta incompleta cuando la recibo, la cadena la manda un bascula y la informacion que trae es el peso.

     

    el código es el siguiente:

      strbufferin = spPuertos.ReadExisting

    Ifstrbufferin <> ""Then


                txtBufferin.Text = strbufferin

                strbufferin = ""


                spPuertos.DiscardInBuffer()

    cuando debugeo mi aplicación observo que si envio tes veces la información si cacha la cadena completa.

    si tienen alguna idea de comocacar la información se los agradeceré.

    Saludos.

     

    • Cambiado Enrique M. Montejo domingo, 21 de junio de 2015 7:47 Comunicación con dispositivos externos.
    martes, 16 de junio de 2015 4:28

Todas las respuestas

  • el puerto al que haces referencia está bien configurado para comunicarse con la bascula? Mira la documentación de la misma

    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos

    • Propuesto como respuesta Karen Malagón martes, 16 de junio de 2015 16:27
    martes, 16 de junio de 2015 5:12
  • supongo que si , porque hay otra aplicacion que si se comunica bien, solo que esa aplicacion es obsoleta , por eso hago una nueva , o como puedo revisar que este vien configurado el puerto?

    muchas gracias Karen por responder.

    Saludos.

    miércoles, 17 de junio de 2015 18:08
  • hola, la otra Aplicación que dices que se comunica bien como tiene definido el puerto? Los baudios, bit de paridad etc....

    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos

    miércoles, 17 de junio de 2015 18:10
  • Lo que sucede es que la otra aplicacion no la hice yo y no tengo el codigo ni forma de conseguirlo,se me ocurre que , con codigo puedo debugear la aplicacion para ver que valores traen los factores que mencionan, mi duda es ,

    si los valores que recibo de la bascula son los mismos que yo pongo como bit de paridad =1 baudios=9600 etc.

    entonces si deveria de mandar la cadenas completas?

    porque la cadena completa seria algo como esto  "Peso: 4.30 kg;"

    y yo recibo esto "Peso"

    los valores que tenga la vascula en cuanto a la configuracion del cable serial deben de ser los mismos que yo use en la aplicacion para comunicarme con ella?

    Saludos y gracias amigos.

    lunes, 22 de junio de 2015 17:19
  • Hola.

    Has probado a usar ReadLine en lugar de ReadExisting



    Es de buena educación dar las gracias cuando te ayudan, si alguna respuesta te ha sido útil agradécelo marcándola como útil.

    lunes, 22 de junio de 2015 17:28
  • Gracias amigo por responder, no lo he intentado estaba considerandolo solo quiero estar lo mas documentado posible ya que donde voy a implementar esto no tengo mucho tiempo disponible para hacer pruebas entonces el poco tiempo que me asignen quiero i r lo mas a la sefura que se pueda , ya havia investigado algo acerca y vi que era otra opcion el Readline pero que diferencia crees que halla , porque ley que el readline trae la cadena completa solo tambien me queda la duda del ReadExisting porque no la trae.

    Saludos y muchas gracias.

    lunes, 22 de junio de 2015 18:01
  • readexiting lee lo que hay en el bufer en ese momento si la comunicación es lenta pude darse que no estén todos los datos que necesitas, ReadLine tiene el inconveniente que necesita que la cadena que recibes tenga final de linia, si no la tiene se quedara hay colgado y no puedes hacer nada para solucionarlo ya que depende del equipo que envia, pero suelen traerlo, tambien como otra opción seria configurar RecivedBytesThreshold pero aquí no te puedo ayudar mucho, no lo he usado y no se como se usa, lo único que se es que sirve para que no se dispare el evento mientras el bufer no esta completo.

    Es de buena educación dar las gracias cuando te ayudan, si alguna respuesta te ha sido útil agradécelo marcándola como útil.

    lunes, 22 de junio de 2015 18:16
  • Pues el manual dice esto :

    START BIT 1 BIT

    DATA BITS 8 BITS

    PARID BIT 0 BITS

    STOP BIT 1 BIT

    el stop bit seria el fin de linea me imagino?

    Gracias /Saludos.

    lunes, 22 de junio de 2015 19:04
  • No el bit de estop no es el final de linea exactamente, es mucho mas complejo. i quieres puedes pasar por este enlace que explica todo lo relacionado con el  Puerto Serie muy bien , parte electronica.


    Es de buena educación dar las gracias cuando te ayudan, si alguna respuesta te ha sido útil agradécelo marcándola como útil.

    lunes, 22 de junio de 2015 19:33