Page 1 of 1

WriteByte muy lento enviando por bluetooth

Posted: Thu Apr 03, 2008 2:02 am
by Arturo Lopesoria
Amigos del foro:

Tengo una impresora Zebra MZ220 Bluetooth conectada por el puerto seria de salida Com5 al bluetooth. El problema es que WriteByte se tarda demasiado en imprimir. Sospecho que hay que configurar el puerto, Intenté hacerlo, pero no lo estoy haciendo bien.

El string a imprimir tiene un promedio de 300 chrs, Sí se imprime, pero para imprimirse tarda 2 minutos!!
he aquí el código:

// cText es una cadena formateada con máximo
// 400 caracteres imprimibles.

hOut := CreateFile( "COM5:",GENERIC_WRITE, 0, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL )
IF hOut==-1
MsgStop("Port Not Found")
return nil
endif

FOR i = 1 TO Len( cText )
WriteByte( hOut, Asc(SubStr( cText, i, 1 ) ) )
NEXT

USE

CloseHandle( hOut )

Posted: Thu Apr 03, 2008 8:08 am
by Antonio Linares
Arturo,

Prueba con este cambio:

Code: Select all

FOR i = 1 TO Len( cText ) 
   WriteByte( hOut, Asc(SubStr( cText, i, 1 ) ) ) 
   SysRefresh()
NEXT

Posted: Thu Apr 03, 2008 2:39 pm
by Arturo Lopesoria
Lo voy a probar y te comento, gracias!
Antonio Linares wrote:Arturo,

Prueba con este cambio:

Code: Select all

FOR i = 1 TO Len( cText ) 
   WriteByte( hOut, Asc(SubStr( cText, i, 1 ) ) ) 
   SysRefresh()
NEXT

Posted: Thu Apr 03, 2008 4:43 pm
by Arturo Lopesoria
Antonio:
Ya lo probé con SysRefresh() y el problema sigue presente. Probablemente hay una mejora, lo que tradaba 3 minutos hoy tarda 2 minutos, para ser un Ticket con encabezado, 2 partidas y un total (300 caracteres) sl problema sigue siendo grande:

Re: WriteByte muy lento enviando por bluetooth

Posted: Wed Sep 08, 2010 11:25 pm
by Simon
hola arturo estamos por comprar esa impresora el problema persiste o se soluciono ?

Gracias.

Re: WriteByte muy lento enviando por bluetooth

Posted: Thu Sep 09, 2010 12:32 am
by Arturo Lopesoria
El problema se soluciono, la velocidad de impresion es aceptable.

Hasta donde recuerdo Antes Utilizabamos WriteByte() y era bastante lento
y la solucion fue usar la funcion WriteFile() del lenguaje C desde un PRAGMA
mandando porciones de no mas de 80 caracteres a la vez, aunque ese modulo no lo hice yo.

Puedes googlear y checar la documentación de WriteFile()
Saludos

Arturo.

Re: WriteByte muy lento enviando por bluetooth

Posted: Fri Sep 10, 2010 9:08 pm
by Simon
Gracias Arturo.