none
Lectura puerto serie RRS feed

  • Pregunta

  • Hola a todos
    Tengo una aplicacion que manda una serie de datos a una placa controladora, y esta le responde con otra serie de datos que debo procesar.
    Mi pregunta es la siguiente:
    Supongamos que recibo 4 bytes de la placa por el puerto serie, y los leo mediante la instruccion serialPort->ReadByte()
    Cuando leo el primer byte, para leer el segundo byte, basta con poner otra vez la misma instruccion y ya capturo el segundo byte?? o debo eliminar antes el prime byte del buffer del puerto serie?
    Saludos, y enhorabuena por el foro
    viernes, 27 de noviembre de 2009 9:48

Respuestas

  • Cada byte leído se elimina del buffer del puerto, que no es del puerto, sino del .NET. El tamaño del buffer lo puedes configurar en las propiedades del componente, y si no hay bytes en el buffer, se producirá una excepción, que en este caso no es un error. Tu código debería ser más o menos así:

    try
    {
      miBuffer[voyLeyendo]=serialPort->ReadByte();
      voyLeyendo++;
    }
    catch(TimeoutException ^)
    {
      //Buffer vacío
    }
    El tiempo de timeout también lo puedes controlar con la propiedad ReadTimeout.
    Visita mi blog sobre desarrollo: http://geeks.ms/blogs/rfog/
    lunes, 30 de noviembre de 2009 11:17
    Moderador

Todas las respuestas

  • Cada byte leído se elimina del buffer del puerto, que no es del puerto, sino del .NET. El tamaño del buffer lo puedes configurar en las propiedades del componente, y si no hay bytes en el buffer, se producirá una excepción, que en este caso no es un error. Tu código debería ser más o menos así:

    try
    {
      miBuffer[voyLeyendo]=serialPort->ReadByte();
      voyLeyendo++;
    }
    catch(TimeoutException ^)
    {
      //Buffer vacío
    }
    El tiempo de timeout también lo puedes controlar con la propiedad ReadTimeout.
    Visita mi blog sobre desarrollo: http://geeks.ms/blogs/rfog/
    lunes, 30 de noviembre de 2009 11:17
    Moderador
  • Muchas gracias!!!
    martes, 1 de diciembre de 2009 9:14