Impresion directa a puertos usando [x]Harbour y FWH
Aqui cuento mi aventura y como lo solucione.
Para saber que pasaba me cree la clase TComLpt, identica a TDosPrn, pero con menos métodos y que usaba las mismas funciones que vienen con FWH; al imprimir en una impresora de tickets siempre salian caracteres raros, por lo que me fui al DOS y alli configure el puerto con MODE COM1:9600,n,8,1 y todo empezó a funcionar correctamente, pero entonces ¿para que se enviaban los datos de la configuración desde las funciones de FWH? Para nada, probe de pasarle el parameto vacio y la cosa seguía igual, por lo que aquella funcion debía tener algo mal.
Buscando y rebuscando la forma de evitar tener que meter un BAT que configurase el puerto cada vez que se arrancase el sistema, busque las funciones HBComm, por supuesto venían sin documentación alguna y se me vino el alma al suelo.
Me puse en contacto con Walter Negro, que me envio una vesion de HBComm revisada y ampliada por él y con alguna documentación sobre las funciones, me puse manos a la obra, genere la libreria con BCC5.5 y cambie las funciones de mi clase TComLpt por las de HBComm y aquello funciono correctamente.
Para quien lo desee, desde este enlace pueden descargarse HBComm con todos sus fuentes, includa la clase TComLpt en fuente.
Instrucciones
Compilar TComLpt.prg como un PRG más de vuestro proyecto y enlazarlo junto con la libreria HBComm.lib.
TComLpt tiene los siguiente métodos:
New( cPort, nBaud, nBits, nParity, nStop, nBuff ) -> Constructor de la clase y activción del puerto.
PrnWrite( cCadena ) -> Envía en contenido de cCadena al puerto. cCadena puede ser un conmando de ESCape.
NewLine() -> Retorno de carro.
End() -> Cierra el puerto y finaliza.
Si en cPort se indica LPT*, se ignoran el resto de los parámetros.
Por el momento sólo está implementado el envío de datos al puerto, cuando tenga un hueco prepararé la lectura desde el puerto serie.
Espero sirva de ayuda a todos los que estáis migrando a FWH.
October 20th, 2004 at 14:38
Muy bueno Jose !!!
Efectivamente, las funciones de FWH para puertos serie no funcionan.
Destaco que los parámetros de las funciones son compatibles con los de FW, de esta forma, es muy sencillo hacer la migración.
October 31st, 2004 at 14:57
José Alfonso:
He racia
October 31st, 2004 at 15:00
José Alfonso:
Itenté descargar varias veces el ZIP desde el enlace , pero parece estar dañado. Tendrías la amabilidad de enviarmelo a mi privado.
Gracias.
November 23rd, 2004 at 13:45
El enlace funciona pero hay que pagar enviando un SMS. Yo no soy de españa y no tengo tarjeta de credito internacional para poder efectuar el pago. Puedes enviarlo a mi correo? Gracias.
January 25th, 2005 at 23:07
Interesante tu camino hacia la impresion directa al puerto.
Me gustaria obtener los fuentes del hbcomm.zip pero no soy de espana, me los podrias enviar a mi privado.
Ciro
January 26th, 2005 at 22:04
Ciro,
En la página en la que hay que introducir el código para la descarga tienes un enlace para poder obtenerlo desde fuera de España.
Saludos,
February 17th, 2005 at 06:10
Otra vez, mil gracias por tus explicaciones. Me he descargado perfectamente el zip con la libreria y la clase. Ya la he vuelto a compilar para xHarbour y tambien he retocado un poco la clase, para crear el ocom, para hacer un Open() y un Close() pero dejando las propiedades de apertura del puerto :-) Nada, que sigas dejando reflexiones tuyas aqui, que son muy válidas.
Un saludo
Jesús Díez González