Alguien tendra un ejemplo con fwh de como leer el puerto comm.. (ltodo el buffer) con la lib de HbComm.. Gracias !
Saludos
Antonio Linares wrote:Tienes varios ejemplos en FWH\samples\phone.prg y TestComm.prg.
No necesitan la librería que comentas
karinha wrote:Antonio Linares wrote:Tienes varios ejemplos en FWH\samples\phone.prg y TestComm.prg.
No necesitan la librería que comentas
MAESTRO, ESTO NO FUNCIONA CON HBCOMM.LIB
Mira...
http://www.fivewin.com.br/exibedicas.asp?id=606
jose_murugosa wrote:karinha wrote:Antonio Linares wrote:Tienes varios ejemplos en FWH\samples\phone.prg y TestComm.prg.
No necesitan la librería que comentas
MAESTRO, ESTO NO FUNCIONA CON HBCOMM.LIB
Mira...
http://www.fivewin.com.br/exibedicas.asp?id=606
Aquí tienes un ejemplo, lo utilizo para capturar la info de una balanza digital y usa hbcomm.lib
http://www.mediafire.com/?e1w7gztz5me
espero que te sirva, funciona perfectamente con FWH 7.01
gabo wrote:jose_murugosa wrote:karinha wrote:Antonio Linares wrote:Tienes varios ejemplos en FWH\samples\phone.prg y TestComm.prg.
No necesitan la librería que comentas
MAESTRO, ESTO NO FUNCIONA CON HBCOMM.LIB
Mira...
http://www.fivewin.com.br/exibedicas.asp?id=606
Aquí tienes un ejemplo, lo utilizo para capturar la info de una balanza digital y usa hbcomm.lib
http://www.mediafire.com/?e1w7gztz5me
espero que te sirva, funciona perfectamente con FWH 7.01
Muchas gracias jose... ya esta implementado y si me ayudo de mucho.. cuando menos comprendi.. que al leer el puerto trae basura.
Function BasculaLee()
/* ===============================================================================
Función que lee el peso de una báscula, standard TISA
En esta función uso fTpvCFG, donde almaceno los distintos valores de configuración
de la báscula.
Se pueden cambiar por valores fijos.
-------------------------------------------------------------------------------
Creación:Angel 08/03/2007 15:23
Revisión:Angel 18/04/2007 18:24
*/
Local cDcb, nBytes, nComm , nError, cBuffer:="", cKilos:="", cGramos:="", oMiWnd:=NIL, oSayBascula
Local cPuerto, cVelocidad,cParidad,cDatos,cParada
// tomo los datos de inicialización del puerto
cPuerto:=("COM"+Str((fTpvCfg)->BPUERTO,1))
cVelocidad:=Alltrim(Str((fTpvCfg)->BVELOCIDAD))
Do Case
Case (fTpvCfg)->BPARIDAD==1
cParidad:="n"
Case (fTpvCfg)->BPARIDAD==2
cParidad:="p"
Case (fTpvCfg)->BPARIDAD==3
cParidad:="i"
EndCase
cDatos:=Alltrim(Str((fTpvCfg)->BDATOS))
cParada:=Alltrim(Str((fTpvCfg)->BPARADA))
nComm:= OpenComm( cPuerto, 1024, 128 )
if ! BuildCommDcb( cPuerto+":"+cVelocidad+","+cParidad+","+cDatos+","+cParada, @cDcb )
nError = GetCommError( nComm )
MsgInfo( "Error abriendo el puerto de la báscula : " + Str( nError ) )
endif
if ! SetCommState( cDcb )
nError = GetCommError( nComm )
MsgInfo( "Error en el estado del puerto de la báscula : " + Str( nError ) )
endif
if ( nBytes := WriteComm( nComm, "98000001" + Chr( 13 ) + Chr( 10 ) + Chr( 13 ) + Chr( 10 ) ) ) < 0
nError = GetCommError( nComm )
MsgInfo( "Error realizando la petición a la báscula : " + Str( nError ) )
else
// Windows requires to have a Window at least to perform comunications !!!
// Let's use the MessageBox() Window as default
DEFINE WINDOW oMiWnd FROM 0,0 TO 6,50
@ 1,1 SAY oSayBascula PROMPT "Capturando peso de la báscula ..." OF oMiWnd COLOR CLR_BLACK, CLR_WHITE
ACTIVATE WINDOW oMiWnd
Inkey(0.1)
endif
cBuffer:=Space(100)
nBytes := ReadComm (nComm,@cBuffer)
If FlushComm( nComm, 0 ) != 0
nError = GetCommError( nComm )
MsgInfo( "Error vaciando el puerto de la báscula : " + Str( nError ) )
endif
if ! CloseComm( nComm )
nError = GetCommError( nComm )
MsgInfo( "Error cerrando el puerto de la báscula : " + Str( nError ) )
endif
// 1234567890
// Descompongo la cadena 9900016000000007 -> corresponde a 0,160
cKilos :=Substr(cBuffer,4,2)
cGramos:=Substr(cBuffer,6,3)
nPesoBascula:=Val(Alltrim(cKilos)+"."+Alltrim(cGramos))
If oMiWnd<>NIL; oMiWnd:End(); Endif
SysRefresh()
Return nPesoBascula
Return to FiveWin para Harbour/xHarbour
Users browsing this forum: No registered users and 42 guests