FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Comunicaci贸n de puerto COM con Impresora Fiscal
Posts: 470
Joined: Fri Feb 05, 2010 11:30 AM
Comunicaci贸n de puerto COM con Impresora Fiscal
Posted: Mon Jul 27, 2015 07:52 PM

Hola amigos,
tengo una rutina desarrollada en Clipper+Clipper Tools que realiza la comunicaci贸n y la impresi贸n de Facturas y dem谩s comprobantes
fiscales. Me lleg贸 la hora de pasarlas a FW, s贸lo que las funciones de ClipperTools, como COM_OPEN, COM_CLOSE, COM_FLUSH no funcionan.
Si he encontrado en el foro, que existen funciones como OpenComm,CloseComm,FlushComm, el tema es que necesito algunas funciones
m谩s y saber como se utilizan 茅stas, otras que uso son COM_SETIO,COM_SETIRQ,COM_INIT,COM_READ,COM_COUNT.
Si alguien tiene una rutina de comunicaci贸n con la IF, les agradecer铆a mucho me ayudaran con 茅ste tema.
Gracias a todos.
Roberto

PD: Aclaro que es con Harbour.

Univ@c I.S.I.
Desarrolladores de Software
http://www.elcolegioencasa.ar
Posts: 1344
Joined: Wed Nov 16, 2005 09:14 PM
Re: Comunicaci贸n de puerto COM con Impresora Fiscal
Posted: Mon Jul 27, 2015 08:59 PM
Apertura y seteo del puerto
Code (fw): Select all Collapse
FUNCTION abrirport(n)
LOCAL IdPort,cDcb,nError
IdPort := OpenComm("COM"+STR(n,1),1024,256)
IF IdPort <= 0
   nError = GetCommError( IdPort)
   MsgInfo( "Error al abrir: " + Str( nError ) )
   ELSE
   MsgRun("Puerto abierto como " + STR(IdPort))
ENDIF
IF ! BuildCommDcb("COM"+STR(n,1)+":9600,n,8,1" , @cDcb)
   nError = GetCommError( IdPort)
   MsgInfo( "Error al Configurar: " + Str( nError ) )
   RETURN 0
   ELSE
   MsgRun("Puerto Configurado")
ENDIF
IF ! SetCommState( IdPort, cDcb )
   nError = GetCommError( IdPort)
   MsgInfo( "Error al setear: " + Str( nError ) )
   RETURN 0
   ELSE
   MsgRun("Puerto Seteado")
ENDIF
RETURN IdPort

Escribir en el puerto
Code (fw): Select all Collapse
(nBytes := WriteComm( port,string) ) < 0

Leer desde el puerto
Code (fw): Select all Collapse
nBytes := ReadComm( port,@string)

Cerrar Puerto
Code (fw): Select all Collapse
CloseComm(port)

Todo esto lo utilizaba hace tiempo para comunicarme con Registradoras Fiscales por puerto serial.
Igualmente, hay librerias de tercero, economicas, que puedes utilizar para la comunicacion con impresores fiscales.
Espero te haya servido.
Saludos
Posts: 470
Joined: Fri Feb 05, 2010 11:30 AM
Re: Comunicaci贸n de puerto COM con Impresora Fiscal
Posted: Mon Jul 27, 2015 09:05 PM

Hola
gracias por tu respuesta, la consulta es: porque me indicas que hay librer铆as de terceros?
Este comunicaci贸n que me pasaste el ejemplo, no te funciona correctamente? Es por eso?
Mil gracias!
Roberto

Univ@c I.S.I.
Desarrolladores de Software
http://www.elcolegioencasa.ar
Posts: 1344
Joined: Wed Nov 16, 2005 09:14 PM
Re: Comunicaci贸n de puerto COM con Impresora Fiscal
Posted: Mon Jul 27, 2015 09:30 PM
TOTOVIOTTI wrote:Hola
gracias por tu respuesta, la consulta es: porque me indicas que hay librer铆as de terceros?
Este comunicaci贸n que me pasaste el ejemplo, no te funciona correctamente? Es por eso?
Mil gracias!
Roberto

Esto, como te dije, lo utilice muy bien para Registradoras (Tipo NCR 2050), no para Controladores fiscales. El trabajo con el controlador fiscal es mas ida y vuelta, mas ONLINE, por eso para mis programas decidi usar una libreria que resolvia todo el tema de la comunicacion con cada modelo de impresor fiscal (en mi caso tenia desarrollos para Epson, Hasar y NCR en varios de sus modelos). Por ese motivo, decidi invertir en trabajo ya desarrollado y me facilito el trabajo a mi. Pero esto es solo una posicion, creo que tranquilamente, con estos comandos, puedes reemplazar los del viejo CATOOLS, y hacerlo "artesanalmente". Te comente lo de las librer铆as solamente para que tuvieses otra opcion...
Saludos
Posts: 654
Joined: Mon May 29, 2006 03:14 PM
Re: Comunicaci贸n de puerto COM con Impresora Fiscal
Posted: Mon Jul 27, 2015 09:45 PM
Si enlazas la librer铆a de Harbour/xHarbour que se llamam HBCOMM.LIB tienes todas estas funciones:
INIT_PORT // Open port and cr茅ate handle
OUTBUFCLR // purge output buffer -> Limpeza da Saida do Buffer
ISWORKING // See if port is opened correctly
INCHR // get char/s
OUTCHR // Send out characters. Returns .t. if successful.
INBUFSIZE // Find out how many chars are in input buffer
OUTBUFSIZE // Find out how many characters are in out buf
UNINT_PORT // Close port and clear handle

Ejemplo de PRG:
Code (fw): Select all Collapse
#define IN_BUFFER 聽128

function main()

local nComm,cBuffer,nBytes

nComm:=Init_Port("COM3",115200,8,0,1,4000)
if nComm<=0
聽 聽MsgStop("Error al abrir puerto")
聽 聽UnInt_Port(nComm)
聽 聽return nil
endif

OutBufClr(nComm) // Limpa el Buffer de Salida
OutChr(nComm,"Texto a enviar...") // Envia datos

cBuffer:=Space(IN_BUFFER)
nBytes:=InbufSize(nComm)
InChr(nComm,nBytes,@cBuffer) // Lee buffer de entrada

UnInt_Port(nComm)

return nil
Mi abuelo dec铆a: Los aviones vuelan porque Dios quiere, y los helic贸pteros ni Dios sabe porque vuelan.

FWH 16.02, xHarbour 1.2.3, Harbour 3.2.0, WorkShop 4.5, AJ Make 0.30, Borlan BCC 7.00, VisualStudio 2013
Posts: 470
Joined: Fri Feb 05, 2010 11:30 AM
Re: Comunicaci贸n de puerto COM con Impresora Fiscal
Posted: Tue Jul 28, 2015 12:47 PM

Gracias a ambos!
Estoy armando algo entre las dos ideas... vamos a ver que sale.

Me quedan un par de dudas... como debo definir el cString del ReadComm, car谩cter de cuanto?
De que depende la cantidad de bytes que lee?

Y la segunda, como reemplazar el COM_COUNT y la COM_SCOUNT.... creo que va por el lado del ReadComm... pero
no s茅, estoy haciendo pruebas...
Gracias!

Univ@c I.S.I.
Desarrolladores de Software
http://www.elcolegioencasa.ar
Posts: 336
Joined: Wed May 16, 2007 09:40 PM
Re: Comunicaci贸n de puerto COM con Impresora Fiscal
Posted: Mon Aug 03, 2015 09:23 PM
TOTOVIOTTI wrote:Gracias a ambos!
Estoy armando algo entre las dos ideas... vamos a ver que sale.

Me quedan un par de dudas... como debo definir el cString del ReadComm, car谩cter de cuanto?
De que depende la cantidad de bytes que lee?

Y la segunda, como reemplazar el COM_COUNT y la COM_SCOUNT.... creo que va por el lado del ReadComm... pero
no s茅, estoy haciendo pruebas...
Gracias!



hola yo estoy en las misma,, con que marca de impresora estas trabajando
Fivewin-Xharbour 24.09, Iquique, Chile
Posts: 1710
Joined: Tue Oct 28, 2008 06:26 PM
Re: Comunicaci贸n de puerto COM con Impresora Fiscal
Posted: Tue Aug 04, 2015 10:35 AM

No se sI hay diferencia con las impresoras IBM.

Tengo un impresora Epson TM-U220 conectada en el puerto serial.
Lo 煤nico que hice fue compartirla y utilizar la funci贸n PrintFileRaw( "\MIPC\TM-220", cFilePRN )

Saludos,

Adhemar

Saludos,



Adhemar C.
Posts: 336
Joined: Wed May 16, 2007 09:40 PM
Re: Comunicaci贸n de puerto COM con Impresora Fiscal
Posted: Tue Aug 04, 2015 08:33 PM
acuellar wrote:No se sI hay diferencia con las impresoras IBM.

Tengo un impresora Epson TM-U220 conectada en el puerto serial.
Lo 煤nico que hice fue compartirla y utilizar la funci贸n PrintFileRaw( "\\MIPC\TM-220", cFilePRN )

Saludos,

Adhemar



Hola Adhemar

LA impresoras fiscal no son iguales que las normales, estas son distintas, tienes que enviar y leer informacion de ellas
Fivewin-Xharbour 24.09, Iquique, Chile

Continue the discussion