Page 1 of 1

FWH 712 Errror abrir cajón monedero.

PostPosted: Wed Dec 26, 2007 8:10 pm
by MauroArevalo
Hola foro:

Mi primera pregunta; pero antes agradecer a todos los foristas por su gran ayuda, todos los dias entro y miro las preguntas y su correspondientes respuestas de los participantes, esto a contribuido a crecer mi conocimiento; de regalo de navidad me compre FWH 712, se comio casi todo mi codigo perfecto, a excepción de abrir el cajón monedero, me arroja el error Windows ha detectado un problema y debe cerrarse.

El codigo que tengo para habrir el cajón monedero es el siguiente:

local cDcb, nBytes
local nComm := OpenComm( "COM1", 1024, 128 )
local nError

if ! BuildCommDcb( "COM1:3000,n,8,1", @cDcb )
nError = GetCommError( nComm )
endif

if ! SetCommState( cDcb )
nError = GetCommError( nComm )
endif

if ( nBytes := WriteComm( nComm, "ATZ0" + Chr( 13 ) ) ) < 0
nError = GetCommError( nComm )
else
endif

if FlushComm( nComm, 0 ) != 0
nError = GetCommError( nComm )
endif

if ! CloseComm( nComm )
nError = GetCommError( nComm )
endif

****

De antemano Gracias,

PostPosted: Thu Dec 27, 2007 10:36 am
by cmsoft
Hola Mauro:
Yo tube un problema similar con el uso de los puertos COM y Antonio me envio un archivo para enlazar con mi aplicacion, COMM.OBJ y esto me solucionó el problema, aunque según me dijo en esa oportunidad, con las nuevas versiones se solucionaba.
Te pregunto, con las aperturas del puerto para el uso del tickeador no tenes problemas?

PostPosted: Thu Dec 27, 2007 3:19 pm
by Antonio Linares
Mauro,

Prueba a poner un MsgInfo() despues de cada llamada, para ver en que función te está fallando, gracias:

local cDcb, nBytes
local nComm := OpenComm( "COM1", 1024, 128 )
local nError

MsgInfo( 1 )

if ! BuildCommDcb( "COM1:3000,n,8,1", @cDcb )
nError = GetCommError( nComm )
endif

MsgInfo( 2 )

if ! SetCommState( cDcb )
nError = GetCommError( nComm )
endif

MsgInfo( 3 )

if ( nBytes := WriteComm( nComm, "ATZ0" + Chr( 13 ) ) ) < 0
nError = GetCommError( nComm )
else
endif

MsgInfo( 4 )

if FlushComm( nComm, 0 ) != 0
nError = GetCommError( nComm )
endif

MsgInfo( 5 )

if ! CloseComm( nComm )
nError = GetCommError( nComm )
endif

PostPosted: Thu Dec 27, 2007 5:57 pm
by MauroArevalo
Antonio:

Gracias por responder.

Hice lo que me indicaste y donde arroja error es en SetCommState, las demás pasan sin problema.


if ! SetCommState( cDcb )
nError = GetCommError( nComm )
endif

Cmsoft, no tengo el comm.obj, gracias por tu interes.

Saludos

PostPosted: Thu Dec 27, 2007 6:00 pm
by Antonio Linares
Mauro,

Bien! Efectivamente ese era el fallo, gracias. Ahora se usa así:

if ! SetCommState( nComm, cDcb )

pruébalo :-)

PostPosted: Thu Dec 27, 2007 6:07 pm
by MauroArevalo
Antonio:

Perfecto.. Ya no me arroja el error. Gracias ya puedo ir donde mi cliente y hago la prueba definitiva....


Saludos :D