none
Evento Datareceived de SerialPort RRS feed

  • Pregunta

  • Buenas y disculpen la molestia, estoy trabajando con C# el evento Datareceived de la clase SerialPort, puede ser posible que este evento no garantiza que el DataReceived se inicie para cada byte recibido, hay alguna otra manera de grantizar esta recepción ?

    Gracias y saludos.

    miércoles, 29 de mayo de 2013 2:29

Respuestas

  • Leandro, Si estoy preguntando sobre el SerialPort.Datareceived(Evento), lo que tenemos duda si este evento podria no dispararse al estar recibiendo bytes despues de haber realizado el BytesToRead, o sea haciendo el BytesToRead, no deberiamos estar perdiendo ningun byte recibido, si es que despues de hacer el ByteToRead seguimos recibiendo datos , es esto correcto!!!

    Gracias y saludos.

    • Marcado como respuesta mariano295 miércoles, 29 de mayo de 2013 13:13
    miércoles, 29 de mayo de 2013 12:38
  • Hola Mariano

    Hace algún tiempo ya, utilicé la comunicación serie, y honestamente no recuerdo bien esos detalles, de todas maneras puedes probarlo: enviate por puerto serie, una cantidad razonablemente grande de byte, establece la propiedad bytesToRead en 1(en el puerto donde vas a recibir)(lo que debería generar el evento dataReceived por cada byte que entra) y fíjate si simplemente tienes todos los bytes al final(solo leyendo cuando se genera el evento)... si no recuerdo mal, esto no es tan así pues puede que al generarse el evento mas bytes estén entrando y no se genere el evento por cada uno de estos, por eso considero que lo que deberías hacer es: cuando se genere el DataReceived leas del buffer todos los datos que este tenga. Igualmente te recomiendo que pruebes, porque no estoy del todo seguro.

    Saludos

    • Marcado como respuesta mariano295 miércoles, 29 de mayo de 2013 13:13
    miércoles, 29 de mayo de 2013 13:01

Todas las respuestas

  • hola

    SerialPort.DataReceived (Evento)

    imagino te refieres a esto

    BytesToRead para determinar cuántos datos quedan por leer en el búfer

    y si aplicas lo que alli comenta

    saludos<span data-guid="bc78a4fdcfd5886babff0e2fa93f0c55" data-source="Use the BytesToRead property to determine how much data is left to be read in the buffer." id="mt7">


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    miércoles, 29 de mayo de 2013 2:59
  • Leandro, Si estoy preguntando sobre el SerialPort.Datareceived(Evento), lo que tenemos duda si este evento podria no dispararse al estar recibiendo bytes despues de haber realizado el BytesToRead, o sea haciendo el BytesToRead, no deberiamos estar perdiendo ningun byte recibido, si es que despues de hacer el ByteToRead seguimos recibiendo datos , es esto correcto!!!

    Gracias y saludos.

    • Marcado como respuesta mariano295 miércoles, 29 de mayo de 2013 13:13
    miércoles, 29 de mayo de 2013 12:38
  • Hola Mariano

    Hace algún tiempo ya, utilicé la comunicación serie, y honestamente no recuerdo bien esos detalles, de todas maneras puedes probarlo: enviate por puerto serie, una cantidad razonablemente grande de byte, establece la propiedad bytesToRead en 1(en el puerto donde vas a recibir)(lo que debería generar el evento dataReceived por cada byte que entra) y fíjate si simplemente tienes todos los bytes al final(solo leyendo cuando se genera el evento)... si no recuerdo mal, esto no es tan así pues puede que al generarse el evento mas bytes estén entrando y no se genere el evento por cada uno de estos, por eso considero que lo que deberías hacer es: cuando se genere el DataReceived leas del buffer todos los datos que este tenga. Igualmente te recomiendo que pruebes, porque no estoy del todo seguro.

    Saludos

    • Marcado como respuesta mariano295 miércoles, 29 de mayo de 2013 13:13
    miércoles, 29 de mayo de 2013 13:01
  • Gracias a todos y disculpen las molestia, voy a realizar las pruebas para sacarme las dudas.

    Saludos.

    miércoles, 29 de mayo de 2013 13:13