Prueba a usar una variable static para que esa función no se ejecute más de una vez:
FUNCTION LecturaPto1()
Local cBuffer := Space( 30 )
static lTrabajando := .F.
if ! lTrabajando
lTrabajando = .T.
nBytes := WriteComm(nComm,AllTrim(PARBASCULA->COMANDO)) //aquimando una "P"
IF nBytes <= 0
RETURN
ENDIF
IF FlushComm(nComm,0) != 0
RETURN
ENDIF
ReadComm( nComm, @cBuffer )
IF Empty(cBuffer) .OR. Len(AllTrim(cBuffer)) <= 0 .OR. AllTrim(cBuffer) = "kg"
RETURN
ENDIF
cBuffer := StrTran( cBuffer, CHR( 13 ), "" )
cBuffer := StrTran( cBuffer, CHR( 10 ), CRLF )
IF Empty(cBuffer) .OR. Len(AllTrim(cBuffer)) <= 0 .OR. AllTrim(cBuffer) = "kg"
RETURN
ENDIF
nPunto := AT(".",cBuffer)
IF nPunto = 0
lTrabajando = .F.
RETURN
ENDIF
cBuffer := AllTrim(cBuffer)
cBuffer := SubStr(cBuffer,1,AT(".",cBuffer)+3)
nPesada := Val(AllTrim(cBuffer))
IF nPesada = 0
PONE_CEROS1() // Este pone en pantalla unos ceros
ELSE
CalculaNum1(nPesada) // Aquí pongo la pesada
ENDIF
lTrabajando = .F.
endif
RETURN
↧