Visual Basic - MSComm: Tamaño mensaje > InBufferSize

Life is soft - evento anual de software empresarial
 
Vista:

MSComm: Tamaño mensaje > InBufferSize

Publicado por arwev (7 intervenciones) el 30/03/2004 20:13:55
Hola a tod@s!!!

Necesito vuestra ayuda!! F1! F1!

Estoy programando con MSComm y necesito recibir unos datos de un modem. Mi problema es que el tamaño de dicho mensaje es mayor que el tamaño máximo de InBufferSize que me permite MSComm (es decir, 16384). Por lo tanto, recoge en el buffer intermedio los datos hasta su tamaño maximo. El resto no se si los pierde o existe alguna forma de almacenarlos y hacer una segunda lectura... o algo por el estilo.

Sabe alguien como puedo solucionar este problema?

Muchas gracias a tod@s

Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:MSComm: Tamaño mensaje > InBufferSize

Publicado por Dante (72 intervenciones) el 31/03/2004 14:59:01
No hay problema con el tamaño de los datos que recibes, siempre que los leas a medida que van llegando. Deja el buffer en un valor bajo (1024)
Crea una variable para almacenar lo que llega, por ejemplo rx y le vas pegando lo que llega bloque a bloque (rx = rx & x)
Hay dos métodos para leer lo que llega
1 en el evento oncomm
x = mscomm.input
rx = rx & x
2 con un timer con intervalo de unos 5 milisegundos, en el evento timer pones
x = mscomm.input
If Len(x) > 0 Then rx = rx & x
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:MSComm: Tamaño mensaje > InBufferSize

Publicado por Arwev (7 intervenciones) el 05/04/2004 11:44:42
ok!!!
Lo estuve probando mientras llega la respuesta y funciona perfectamente. El problema era que no deba tiempo a que llegase el mensaje completamente, de forma que recogiendo caracter a caracter se recoge en su totalidad.

En mi programa tenía un temporizador que leyese cada 2000 milisegundos y despues cada 5000. A parte que que llegaba bien el mensaje y me daba el problema pues tardaba muchisimo en llegar. Con lo cual, no pudía hacer que el usuario esperase 1minuto o 2 a que se mandase el SMS por todos estos retardos asi que no era factible.

Espero que os sirva a todos,... porque el tiempo que estuve dandole vueltas.... ;)

Muchas gracias,
Ciao
Arwev ;)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar