Wx - Código Exemplo de Leitura do Peso da Balança Filizola e Toledo para Supermercados, Padarias e Restaurantes

CODE:
bufM_peso_lido_com is Buffer
rM_peso_lido_com_tratado is real = 0
sM_peso_lido_verifica_1 is string = ""
sM_peso_lido_verifica_2 is string = ""
sM_peso_lido_verifica_3 is string = ""
bM_peso_lido_verifica_erro is boolean = False
nM_peso_lido_verifica_leitura is int = 0
sClose(gnPar_ParTermBalancaPorta)
Wait(5)
VERIFICA_3_LEITURAS:
IF sOpen(gnPar_ParTermBalancaPorta,1,16) THEN
Wait(gnPar_ParTermBalancaTimeOut)
IF sParameter(gnPar_ParTermBalancaPorta,gnPar_ParTermBalancaParametroBaudeRate,gnPar_ParTermBalancaParametroParity,gnpar_ParTermBalancaParametroDataBits,gnpar_ParTermBalancaParametroStopBits,gnPar_ParTermBalancaParametroDtrDsr) = True THEN
Wait(gnPar_ParTermBalancaTimeOut)
IF sWrite(gnPar_ParTermBalancaPorta,Charact(5)) = True THEN
Wait(gnPar_ParTermBalancaTimeOut)
bufM_peso_lido_com = sRead(gnPar_ParTermBalancaPorta,16)
sClose(gnPar_ParTermBalancaPorta)
IF NoSpace(bufM_peso_lido_com) <> "" THEN
bufM_peso_lido_com = Middle(bufM_peso_lido_com,gnPar_ParTermBalancaParametroRetornoPosIni,gnPar_ParTermBalancaParametroRetornoDigitosdoPeso)
rM_peso_lido_com_tratado = Val(bufM_peso_lido_com) / 1000
IF gsPar_ParTermBalancaTipoRetorno = "C" THEN
GOTO FIM
END
IF gsPar_ParTermBalancaTipoRetorno = "V" THEN
nM_peso_lido_verifica_leitura++
IF nM_peso_lido_verifica_leitura = 3 THEN
IF sM_peso_lido_verifica_1 <> sM_peso_lido_verifica_2 OR sM_peso_lido_verifica_1 <> sM_peso_lido_verifica_3 THEN
bM_peso_lido_verifica_erro = True
END
IF sM_peso_lido_verifica_2 <> sM_peso_lido_verifica_1 OR sM_peso_lido_verifica_2 <> sM_peso_lido_verifica_3 THEN
bM_peso_lido_verifica_erro = True
END
IF sM_peso_lido_verifica_3 <> sM_peso_lido_verifica_1 OR sM_peso_lido_verifica_3 <> sM_peso_lido_verifica_2 THEN
bM_peso_lido_verifica_erro = True
END
IF bM_peso_lido_verifica_erro THEN
rM_peso_lido_com_tratado = 0
Error("É Necessário Que o Peso Esteja Estabilzado!")
END
ELSE
GOTO VERIFICA_3_LEITURAS
END
END
ELSE
Error("Não Foi Possível Obter o Retorno da Porta COM")
END
ELSE
Error("Não foi Possível Enviar o Comando à Porta COM.")
END
ELSE
Error("Parâmetros Inválidos Para a Porta COM.")
END
ELSE
IF p_avisa_erro_porta_com THEN
Error("Porta COM Não Acessível!")
END
END
FIM:
sClose(gnPar_ParTermBalancaPorta)

