Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Lectura de tramas en puerto serie (https://www.clubdelphi.com/foros/showthread.php?t=65875)

vejerf 19-01-2010 13:20:19

Lectura de tramas en puerto serie
 
Hola a todos. Estoy implementando un protocolo en el que los datos me llegan por el puerto serie en el siguiente formato:
STX-ID-NN-DD1-...-DDN-CHK-ETX
siendo STX el comienzo de trama, ID un identificador, NN la longitud del campo de datos DD1...DDN, CHK un checksum y ETX el final de trama.
Uso para el puerto serie un objeto de la clase TVaComm de Async32.

Mi pregunta es: ¿hay algún método estándar para la lectura de tramas?

Yo he implementado un método, pero he observado que hay veces que pierdo algunas tramas y pierdo el sincronismo. El problema creo que reside en que busco STX y ETX, pero dentro de la trama puede coincidir algún valor con estos.

Gracias.

cesarsoftware 04-02-2010 20:07:11

Hola amigo, la respuesta es no. Tienes que hacerlo tu a mano.

Si sabes que la trama comienza en STX (normalmente #2) y acaba en ETX (normalmente #3) tienes que esperar a este ultimo, si en medio te viene un ETX estas jod.ido, ese protocolo esta mal implementado. Puedes usar el valor NN para esperar hasta el ETX final e ignorar aquellos que esten en una posicion inferior a NN.

Ya se que es poco, pero espero haberte ayudado.


La franja horaria es GMT +2. Ahora son las 12:25:18.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi