In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

Leer y escribir en el puerto serial

Foro de Xailer profesional en español
User avatar
jfgimenez
Site Admin
Posts: 5620
Joined: Mon Apr 06, 2015 8:48 pm
Contact:

Leer y escribir en el puerto serial

Postby jfgimenez » Tue Jan 22, 2008 2:50 pm

Christian,
Si lo que necesitas es solamente imprimir en la impresora, no te compliques
la vida con el puerto serie. Te basta con crear una impresora "Genérica sólo
texto" en windows, conectada a COMx: y después, desde tu programa, usar el
método WriteData() de TPrinter. Con ese método puedes enviar la cadena que
necesites directamente a la impresora (normalmente las secuencias de escape
y el texto), sin pasar por el driver, pero sí es windows el que se encarga
de manejar el puerto. Así, si hay algún problema de comunicación, lo
gestiona windows, y tu no tendrás que controlarlo.
--
Un saludo,
José F. Giménez
http://www.xailer.com
http://www.xailer.info
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
jrcpoli
Posts: 240
Joined: Wed Oct 25, 2006 8:55 pm

Leer y escribir en el puerto serial

Postby jrcpoli » Tue Jan 22, 2008 6:34 pm

Christian:
Por favor a que ejemplo te refieres cuando dices
y en el ejemplo de Jose Ramon dice :
cBuff1:=InChr( ::nHandle )
Si es el programa Porta que ayer mandé comprimido, es un programa no hecho en Xailer y que solo sirve como ejemplo para adaptarlo a Xailer y como tal no hay que cogerlo al pie de la letra.
La instrucción correcta es:
IF nChr != InChr( ::nHandle, nChr, @cBuff )
MsgInfo( "La lectura en el puerto ha fallado")
::lEstado := .F.
*
ENDIF
Siendo nChr una variable local que apunta a LOCAL nChr := InBufSize(::nHandle)
y cBuffer otra variable local que apunta a LOCAL cBuff := SPACE( nChr )

José Ramón Castro Polinio.
Christian escribió:
> Hola estaba viendo las exposiciones de Carlos Ortiz y Jose Ramon Castro y me
> puse a trabajar con la libreria hbcomm de xHarbour y no me puedo a una
> impresora fiscal epson. Tengo la notebook con un adaptador usb-serial y el
> puerto me funciona perfecto con las aplicaciones que tengo en Clipper y los
> programas de ms-dos pero no hay forma de conectarlo. Ademas quisiera saber
> donde puede encontrar informacion de la libreria HBComm ya que en un ejemplo
> dice que la funcion:
>
> InChr( ::nHandle, @cBuff1, nLen )
>
> y en el ejemplo de Jose Ramon dice :
> cBuff1:=InChr( ::nHandle )
>
> Otra la funcion InBufSize me dice que tengo informacion en el buffer pero no
> la puede leer.
>
> Espero no ser muy pesado.
>
> Saludos Atte
> Christian Assenza
>
>
>
José Ramón Castro.
Christian
Posts: 276
Joined: Wed Apr 23, 2008 10:18 pm

Leer y escribir en el puerto serial

Postby Christian » Tue Jan 22, 2008 11:44 pm

Jose ese fue el problema que yo lo tome al pie de la letra y no funciono,
mande la consulta al foro (despues de hacer varias pruebas), luego me puse a
buscar en yahoo y de casualidad encontre la respuesta.
Gracias por responder.
"José Ramón Castro" <jrcpoli@terra.es> escribió en el mensaje
news:479629ec@ozsrv2.ozlan.local...
> Christian:
>
> Por favor a que ejemplo te refieres cuando dices
>
> y en el ejemplo de Jose Ramon dice :
> cBuff1:=InChr( ::nHandle )
>
> Si es el programa Porta que ayer mandé comprimido, es un programa no hecho
> en Xailer y que solo sirve como ejemplo para adaptarlo a Xailer y como tal
> no hay que cogerlo al pie de la letra.
>
> La instrucción correcta es:
>
> IF nChr != InChr( ::nHandle, nChr, @cBuff )
> MsgInfo( "La lectura en el puerto ha fallado")
> ::lEstado := .F.
> *
> ENDIF
>
> Siendo nChr una variable local que apunta a LOCAL nChr :=
> InBufSize(::nHandle)
> y cBuffer otra variable local que apunta a LOCAL cBuff := SPACE( nChr )
>
> José Ramón Castro Polinio.
>
> Christian escribió:
>> Hola estaba viendo las exposiciones de Carlos Ortiz y Jose Ramon Castro y
>> me puse a trabajar con la libreria hbcomm de xHarbour y no me puedo a una
>> impresora fiscal epson. Tengo la notebook con un adaptador usb-serial y
>> el puerto me funciona perfecto con las aplicaciones que tengo en Clipper
>> y los programas de ms-dos pero no hay forma de conectarlo. Ademas
>> quisiera saber donde puede encontrar informacion de la libreria HBComm ya
>> que en un ejemplo dice que la funcion:
>>
>> InChr( ::nHandle, @cBuff1, nLen )
>>
>> y en el ejemplo de Jose Ramon dice :
>> cBuff1:=InChr( ::nHandle )
>>
>> Otra la funcion InBufSize me dice que tengo informacion en el buffer pero
>> no la puede leer.
>>
>> Espero no ser muy pesado.
>>
>> Saludos Atte
>> Christian Assenza
>>
>>
>>
jrcpoli-quitar
Posts: 558
Joined: Tue Feb 09, 2010 2:26 pm

Leer y escribir en el puerto serial

Postby jrcpoli-quitar » Wed Jan 23, 2008 10:37 am

Saludos:
Si estas utilizando la versión 1.8.1 me puedes enviar la librerí­a
hbcomm.lib que estés utilizando ya que yo solo he encontrado una que no
funciona con esta versión de Xailer, por lo que para ese programa uso la
versión de Xailer 1.6
Lo que no he conseguido es activar el bucle de recepción de datos,
pero una vez que entra en el ya no tengo el control del programa y solo
puedo desactivarlo desde el IDE de Xailer o con Control + Alt + Sup, si
tu lo tienes resuelto y no te importara compartir esa parte de código te
agradecí­a que me iluminaras.
Si alguno más lo tiene hecho me valdrí­a igualmente, no tengo
practica con el uso de puertos serie, pero lo debo utilizar para mejorar
una aplicación y de momento no he sabido hacerlo, la verdad es la verdad
no lo he conseguido y me he pasado muchas horas intentándolo.
José Ramón Castro.
Christian escribió:
> Jose ese fue el problema que yo lo tome al pie de la letra y no funciono,
> mande la consulta al foro (despues de hacer varias pruebas), luego me puse a
> buscar en yahoo y de casualidad encontre la respuesta.
>
> Gracias por responder.
>
>
> "José Ramón Castro" <jrcpoli@terra.es> escribió en el mensaje
> news:479629ec@ozsrv2.ozlan.local...
>> Christian:
>>
>> Por favor a que ejemplo te refieres cuando dices
>>
>> y en el ejemplo de Jose Ramon dice :
>> cBuff1:=InChr( ::nHandle )
>>
>> Si es el programa Porta que ayer mandé comprimido, es un programa no hecho
>> en Xailer y que solo sirve como ejemplo para adaptarlo a Xailer y como tal
>> no hay que cogerlo al pie de la letra.
>>
>> La instrucción correcta es:
>>
>> IF nChr != InChr( ::nHandle, nChr, @cBuff )
>> MsgInfo( "La lectura en el puerto ha fallado")
>> ::lEstado := .F.
>> *
>> ENDIF
>>
>> Siendo nChr una variable local que apunta a LOCAL nChr :=
>> InBufSize(::nHandle)
>> y cBuffer otra variable local que apunta a LOCAL cBuff := SPACE( nChr )
>>
>> José Ramón Castro Polinio.
>>
>> Christian escribió:
>>> Hola estaba viendo las exposiciones de Carlos Ortiz y Jose Ramon Castro y
>>> me puse a trabajar con la libreria hbcomm de xHarbour y no me puedo a una
>>> impresora fiscal epson. Tengo la notebook con un adaptador usb-serial y
>>> el puerto me funciona perfecto con las aplicaciones que tengo en Clipper
>>> y los programas de ms-dos pero no hay forma de conectarlo. Ademas
>>> quisiera saber donde puede encontrar informacion de la libreria HBComm ya
>>> que en un ejemplo dice que la funcion:
>>>
>>> InChr( ::nHandle, @cBuff1, nLen )
>>>
>>> y en el ejemplo de Jose Ramon dice :
>>> cBuff1:=InChr( ::nHandle )
>>>
>>> Otra la funcion InBufSize me dice que tengo informacion en el buffer pero
>>> no la puede leer.
>>>
>>> Espero no ser muy pesado.
>>>
>>> Saludos Atte
>>> Christian Assenza
>>>
>>>
>>>
>
>
Christian
Posts: 276
Joined: Wed Apr 23, 2008 10:18 pm

Leer y escribir en el puerto serial

Postby Christian » Wed Jan 23, 2008 1:09 pm

Recien he comenzado con las pruebas y esta es la libreria que voy a usar
ayer probe enviar y recibir (un solo comando de un controlador fiscal) y
anda cualquier cosa que vea te aviso.
"José Ramón Castro Polinio" <jrcpoli-quitarpara_envio]"@terra.es> escribió
en el mensaje news:47970b79$1@ozsrv2.ozlan.local...
> Saludos:
>
> Si estas utilizando la versión 1.8.1 me puedes enviar la librería
> hbcomm.lib que estés utilizando ya que yo solo he encontrado una que no
> funciona con esta versión de Xailer, por lo que para ese programa uso la
> versión de Xailer 1.6
> Lo que no he conseguido es activar el bucle de recepción de datos,
> pero una vez que entra en el ya no tengo el control del programa y solo
> puedo desactivarlo desde el IDE de Xailer o con Control + Alt + Sup, si
> tu lo tienes resuelto y no te importara compartir esa parte de código te
> agradecía que me iluminaras.
> Si alguno más lo tiene hecho me valdría igualmente, no tengo
> practica con el uso de puertos serie, pero lo debo utilizar para mejorar
> una aplicación y de momento no he sabido hacerlo, la verdad es la verdad
> no lo he conseguido y me he pasado muchas horas intentándolo.
>
> José Ramón Castro.
>
> Christian escribió:
>> Jose ese fue el problema que yo lo tome al pie de la letra y no funciono,
>> mande la consulta al foro (despues de hacer varias pruebas), luego me
>> puse a
>> buscar en yahoo y de casualidad encontre la respuesta.
>>
>> Gracias por responder.
>>
>>
>> "José Ramón Castro" <jrcpoli@terra.es> escribió en el mensaje
>> news:479629ec@ozsrv2.ozlan.local...
>>> Christian:
>>>
>>> Por favor a que ejemplo te refieres cuando dices
>>>
>>> y en el ejemplo de Jose Ramon dice :
>>> cBuff1:=InChr( ::nHandle )
>>>
>>> Si es el programa Porta que ayer mandé comprimido, es un programa no
>>> hecho
>>> en Xailer y que solo sirve como ejemplo para adaptarlo a Xailer y como
>>> tal
>>> no hay que cogerlo al pie de la letra.
>>>
>>> La instrucción correcta es:
>>>
>>> IF nChr != InChr( ::nHandle, nChr, @cBuff )
>>> MsgInfo( "La lectura en el puerto ha fallado")
>>> ::lEstado := .F.
>>> *
>>> ENDIF
>>>
>>> Siendo nChr una variable local que apunta a LOCAL nChr :=
>>> InBufSize(::nHandle)
>>> y cBuffer otra variable local que apunta a LOCAL cBuff := SPACE( nChr )
>>>
>>> José Ramón Castro Polinio.
>>>
>>> Christian escribió:
>>>> Hola estaba viendo las exposiciones de Carlos Ortiz y Jose Ramon Castro
>>>> y
>>>> me puse a trabajar con la libreria hbcomm de xHarbour y no me puedo a
>>>> una
>>>> impresora fiscal epson. Tengo la notebook con un adaptador usb-serial y
>>>> el puerto me funciona perfecto con las aplicaciones que tengo en
>>>> Clipper
>>>> y los programas de ms-dos pero no hay forma de conectarlo. Ademas
>>>> quisiera saber donde puede encontrar informacion de la libreria HBComm
>>>> ya
>>>> que en un ejemplo dice que la funcion:
>>>>
>>>> InChr( ::nHandle, @cBuff1, nLen )
>>>>
>>>> y en el ejemplo de Jose Ramon dice :
>>>> cBuff1:=InChr( ::nHandle )
>>>>
>>>> Otra la funcion InBufSize me dice que tengo informacion en el buffer
>>>> pero
>>>> no la puede leer.
>>>>
>>>> Espero no ser muy pesado.
>>>>
>>>> Saludos Atte
>>>> Christian Assenza
>>>>
>>>>
>>>>
>>
>>


Attached files hbcomm_xharbour_09960.lib (18 KB)Â

Return to “Spanish”