Segue uma rotina para ler peso na balança Toledo no Caixa:
Quem me ensinou foi o Dércio.
Precisa linkar uma das Libs:
CTP52.LIB (no meu caso)
CT.LIB
CTP.LIB + CTUSP.OBJ
Código: Selecionar todos
*----------------------
Function Busca_Peso (nCom)
*----------------------
Local nBuffer := 2400, nPar := "N", nDados := 8, nStop := 1
Local nIOn := "", nIRQ := "", Inicia := "", nCont := 0, cInput := ""
Local nPeso := "", nTenta := 1
*** Inicializacao da porta ***
if nCom = 1 && Buscar em: Gerenciador de Disp - Porta COM(x) - Recursos
nIO := "03F8" && -> Intervalo de ES
nIRQ := 04 && -> Pedido de Interrup
elseif nCom = 2
nIO := "02F8"
nIRQ := 03
elseif nCom = 3
nIO := "02F8" ???
nIRQ := 03 ???
elseif nCom = 4
nIO := "02F8" ???
nIRQ := 03 ???
endif
do while nTenta <= 3
Com_Close(nCom)
Com_SetIO(nCom,nIO)
Com_SetIRQ(nCom,nIRQ)
Com_Open(nCom,1000)
nInicia:=Com_Init(nCom,nBuffer,nPar,nDados,nStop)
nCont=0
do while nCont < 7 // * aguarda 7 bytes na porta
inkey()
if l()
Return 0
endif
Com_Send(nCom,5) // * Envia ENQ
nCont = Com_Count(nCOM)
enddo
cInput := Com_Read(nCom) //* lê a porta
nPeso = Subst(cInput,2,5)
nPeso = round( val(nPeso)/1000 ,3)
if nPeso > 0
exit
endif
nTenta++
enddo
Return (nPeso)



