Les quería preguntar si a los que utilizan una bascula les ocurre esto:
- Al estar conectado por el puerto serial, inicia correctamente y todo funcióna
muy bien, pero después de 5 minutos me marca un error : APPCRASH
- Si tengo desconectada la bascula pero el cable conectado al PC no pasa nada
no me marca el error
Le pongo algo de mi fuente para que vean :
1.- Abro el puerto
2.- Meto en un timer el estar leyendo la pesada
- Code: Select all Expand view
IF !AbrePto1()
lPuerto := .F.
_IdI := 106
ELSE
lPuerto := .T.
ENDIF
Define Timer oTimer INTERVAL PARBASCULA->LECTURA Action LecturaPto1()
FUNCTION AbrePto1
local nBytes,cDcb
nComm := OpenComm(AllTrim(PARBASCULA->COM),AllTrim(PARBASCULA->ENTRADA),AllTrim(PARBASCULA->SALIDA))
IF nComm <= 0
nError = GetCommError( nComm )
MiMsgStop( {"No se pudo abrir el puerto..."+ Str( nError )},"Alto!", , .T., 5)
RETURN .F.
ENDIF
cCad := AllTrim(PARBASCULA->COM)+":"+AllTrim(PARBASCULA->VELOCIDAD)+","+AllTrim(PARBASCULA->PARITY)+","+AllTrim(PARBASCULA->DATABITS)+","+AllTrim(PARBASCULA->STOPBIT)
IF !BuildCommDcb( cCad, @cDcb )
nError = GetCommError( nComm )
MiMsgStop( {"No se pudo configurar el puerto..."+ Str( nError )},"Alto!", , .T., 5)
RETURN .F.
ENDIF
IF !SetCommState(nComm,cDcb)
nError = GetCommError( nComm )
MiMsgStop( {"Error Al Setear el Puerto..."+ Str( nError )},"Alto!", , .T., 5)
RETURN .F.
ENDIF
RETURN .T.
FUNCTION LecturaPto1()
Local cBuffer := Space( 30 )
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
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
RETURN
Ya le intente casi de todo y no logro quitar este error
si alguien ya lo libro me podrían echar un hilo
Gracias.