|
Inicio → WINDEV 25 → Wx - Código Exemplo de Leitura do Peso da Balança Filizola e Toledo para Supermercados, Padarias e Restaurantes |
Wx - Código Exemplo de Leitura do Peso da Balança Filizola e Toledo para Supermercados, Padarias e Restaurantes |
Iniciado por adrianoboller, 21,dic. 2015 16:28 - 6 respuestas |
| |
| | | |
|
| |
Miembro registrado 3.574 mensajes Popularité : +175 (223 votes) |
|
Publicado el 21,diciembre 2015 - 16:28 |
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)
Código fornecido para a comunidade pelo: Sr Mário José Nogueira de Oliveira Mais novo Consultor da Plataforma PcSoft
Empresa Assist Informática Rua Coronel Pires Barbosa, 846 Campo do Galvão - Guaratinguetá-SP - 12.505-020 Email: mario-oliveira-br@uol.com.br Skype: mario-guara
55 (12) 9 9778-0262 55 (12) 9 9794-7010 55 (12) 3126-1465
Bons projetos e bons estudos...
-- Adriano Jose Boller ______________________________________________ Consultor e Representante Oficial da PcSoft no Brasil +55 (41) 9949 1800 adrianoboller@gmail.com skype: adrianoboller ______________________________________________ |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 3.574 mensajes Popularité : +175 (223 votes) |
|
Publicado el 26,noviembre 2017 - 16:42 |
Exemplo

Procedure DefinePorta()
IF COMBO_Tipo_da_Porta = 1 EDT_Número_da_Porta = EDT_Número_da_Porta NomeNumeroPorta = "COM"+EDT_Número_da_Porta ELSE IF COMBO_Tipo_da_Porta = 2 EDT_Número_da_Porta = EDT_Número_da_Porta * -1 NomeNumeroPorta = "LPT"+EDT_Número_da_Porta ELSE IF COMBO_Tipo_da_Porta = 3 IF Middle(EDT_Número_da_Porta,1,1) = "-" EDT_Número_da_Porta = Middle(EDT_Número_da_Porta,2,10) NomeNumeroPorta = "IR"+EDT_Número_da_Porta END END
nPort = 0
nPort = sOpen(EDT_Número_da_Porta,EDT_Tamanho_Buffer_de_input_em_bytes,EDT_Tamanho_Buffer_de_output_em_bytes,EDT_Timeout_de_leitura_da_porta_em_segundos,True)
IF ErrorOccurred THEN ToastDisplay("Não foi possivel abrir a porta, Erro: "+ErrorInfo() +" - "+ Error(),toastLong,vaMiddle,haCenter) StatusPorta = False ELSE ToastDisplay("Porta "+ nPort +" Aberta com sucesso!",toastLong,vaMiddle,haCenter) StatusPorta = True IF StatusPorta = True AND nPort > 0 DTRDSR, RTSCTS is int = 0 IF CBOX_DTRDSR = False THEN DTRDSR = 0 ELSE DTRDSR = 1 IF CBOX_DTRDSR_INATIVO = True THEN DTRDSR = 2 END END IF CBOX_RTSCTS = False THEN RTSCTS = 0 ELSE RTSCTS = 1 IF CBOX_RTSCTS_INATIVO = True THEN RTSCTS = 2 END END bResultado is boolean = sParameter(nPort, EDT_Rate_Bauds,EDT_Parity,EDT_Data_Bits,EDT_Number_of_Stop_Bits,DTRDSR,RTSCTS,CBOX_XONXOFF) IF bResultado = True THEN ToastDisplay("Porta inicializada e configurada com sucesso!",toastLong,vaMiddle,haCenter) IF StatusPorta = True AND nPort > 0 THEN BufferRead = "" BufferRead = sRead(EDT_Número_da_Porta,EDT_Tamanho_Buffer_de_input_em_bytes) IF BufferRead <> "" THEN EDT_Resultado = BufferRead ToastDisplay("Leitura da Porta realizada com Sucesso!",toastLong,vaMiddle,haCenter) IF StatusPorta = True AND nPort > 0 THEN sClose(EDT_Número_da_Porta) SetFocus(EDT_Resultado) ELSE ToastDisplay("Não foi inicializada e nem configurada nenhuma porta!",toastLong,vaMiddle,haCenter) END ELSE ToastDisplay("Não veio nenhum valor da porta",toastLong,vaMiddle,haCenter) END ELSE ToastDisplay("ERRO: Não é possivel ler a porta se não estiver configurada corretamente!",toastLong,vaMiddle,haCenter) END ELSE ToastDisplay("ERRO A PORTA NÃO FOI CONFIGURADA CORRETAMENTE",toastLong,vaMiddle,haCenter) END END END
//Abrir a porta
nPort = 0
IF EDT_Timeout_de_leitura_da_porta_em_segundos > 0
nPort = sOpen(EDT_Número_da_Porta,EDT_Tamanho_Buffer_de_input_em_bytes,EDT_Tamanho_Buffer_de_output_em_bytes,EDT_Timeout_de_leitura_da_porta_em_segundos,True)
ELSE nPort = sOpen(EDT_Número_da_Porta,EDT_Tamanho_Buffer_de_input_em_bytes,EDT_Tamanho_Buffer_de_output_em_bytes) END
IF ErrorOccurred THEN Info("Não foi possivel abrir a porta, Erro: "+ErrorInfo() +" - "+ Error()) StatusPorta = False ELSE Info("Porta "+ nPort +" Aberta com sucesso!") StatusPorta = True END
//Configurar a porta
IF StatusPorta = True AND nPort > 0 THEN DTRDSR, RTSCTS is int = 0 IF CBOX_DTRDSR = False THEN DTRDSR = 0 ELSE DTRDSR = 1 IF CBOX_DTRDSR_INATIVO = True THEN DTRDSR = 2 END END IF CBOX_RTSCTS = False THEN RTSCTS = 0 ELSE RTSCTS = 1 IF CBOX_RTSCTS_INATIVO = True THEN RTSCTS = 2 END END bResultado is boolean = sParameter(nPort, EDT_Rate_Bauds,EDT_Parity,EDT_Data_Bits,EDT_Number_of_Stop_Bits,DTRDSR,RTSCTS,CBOX_XONXOFF) IF bResultado = True THEN Info("Porta inicializada e configurada com sucesso!") ELSE Info("ERRO A PORTA NÃO FOI CONFIGURADA CORRETAMENTE") END END
//Ler a porta
IF StatusPorta = True AND nPort > 0 THEN BufferRead = "" BufferRead = sRead(EDT_Número_da_Porta,EDT_Tamanho_Buffer_de_input_em_bytes) IF BufferRead <> "" THEN EDT_Resultado = BufferRead SetFocus(EDT_Resultado) Info("Leitura da Porta realizada com Sucesso!") ELSE Info("Não veio nenhum valor da porta") END ELSE Info("ERRO: Não é possivel ler a porta se não estiver configurada corretamente!") END
//Verificar eventos da porta
IF StatusPorta = True AND nPort > 0 THEN sEvent(nPort, sEveCharReceived, "Read") sEvent(nPort, sEveCharReceived , "ReadCharacter" ) sEvent(nPort, sEveBreak, "Break") sEndEvent(nPort, sEveBreak) Trace(sRead(nPort, sInEntryQueue(1))) ELSE Info("ERRO: Não é possivel ler a porta se não estiver configurada corretamente!") END
//Fechar Porta
IF StatusPorta = True AND nPort > 0 THEN sClose(EDT_Número_da_Porta) ELSE Info("Não foi inicializada e nem configurada nenhuma porta!") END
-- Adriano José Boller ______________________________________________ Consultor e Representante Oficial da PcSoft no Brasil +55 (41) 99949 1800 adrianoboller@gmail.com skype: adrianoboller http://wxinformatica.com.br/ |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 3.574 mensajes Popularité : +175 (223 votes) |
|
Publicado el 26,noviembre 2017 - 19:12 |
Configuracao usada na Filizola

Pesagem

Muito obrigado Sergio Luiz Fernandes
Pela Ajuda com os testes com as balanças e o ajuste do código
Skype: personalize
-- Adriano José Boller ______________________________________________ Consultor e Representante Oficial da PcSoft no Brasil +55 (41) 99949 1800 adrianoboller@gmail.com skype: adrianoboller http://wxinformatica.com.br/Mensaje modificado, 26,noviembre 2017 - 19:15 |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 3.574 mensajes Popularité : +175 (223 votes) |
|
Publicado el 26,noviembre 2017 - 20:09 |
Serviço do Windows usando o exemplo WD Service
Procedure LeituraPortaSerial()
LerConfig()
nPort = 0
IF TimeoutPorta = 0 nPort = sOpen(Numero_da_Porta,Tamanho_Buffer_de_input_em_bytes,Tamanho_Buffer_de_output_em_bytes,TimeoutPorta,True) ELSE nPort = sOpen(Numero_da_Porta,Tamanho_Buffer_de_input_em_bytes,Tamanho_Buffer_de_output_em_bytes) END
IF ErrorOccurred THEN ToastDisplay("Não foi possivel abrir a porta, Erro: "+ErrorInfo() +" - "+ Error(),toastShort,vaBottom,haCenter,PastelGreen) StatusPorta = False ELSE ToastDisplay("Porta "+ Numero_da_Porta +" Aberta com sucesso!",toastShort,vaBottom,haCenter,PastelGreen) StatusPorta = True IF StatusPorta = True AND nPort > 0 THEN bResultado is boolean = sParameter(Numero_da_Porta, Rate_Bauds,Parity,Data_Bits,Number_of_Stop_Bits) IF bResultado = True THEN ToastDisplay("Porta "+ Numero_da_Porta +" inicializada e configurada com sucesso!",toastShort,vaBottom,haCenter,PastelGreen) IF StatusPorta = True AND nPort > 0 THEN iTbuffer is int PesarNovamente: bufM_peso_lido_com = "" sWrite(Numero_da_Porta,Charact(5)) Wait(TimeoutPorta) LOOP IF sInExitQueue(Numero_da_Porta) = 0 THEN BREAK END iTbuffer = sInEntryQueue(Numero_da_Porta) bufM_peso_lido_com = sRead(Numero_da_Porta, iTbuffer) sClose(Numero_da_Porta) IF bufM_peso_lido_com = "IIIII" THEN ToastDisplay("Leitura da Porta realizada com Sucesso!",toastShort,vaBottom,haCenter,PastelGreen) GOTO PesarNovamente ELSE IF bufM_peso_lido_com = "IIIII" THEN ToastDisplay("Peso acima da capacidade da Balança, Divida o peso e precione Enter,Que eu vou tentar ler o peso novamente",toastShort,vaBottom,haCenter,PastelGreen) GOTO PesarNovamente END IF bufM_peso_lido_com <> "" THEN bufM_peso_lido_com = Val(Middle(bufM_peso_lido_com,Posicao_inicial_do_Peso_obtido_no_buffer,Qtde_de_caracteres_do_Peso_do_buffer)) / 1000 INIWrite("BALANCA","LEITURA",bufM_peso_lido_com,"BALANCA_RESULTADO.INI") INIWrite("BALANCA","DATAHORA",DateSys()+TimeSys(),"BALANCA_RESULTADO.INI") ToastDisplay("Leitura da Porta realizada com Sucesso!",toastShort,vaBottom,haCenter,PastelGreen) IF StatusPorta = True AND nPort > 0 THEN sEvent(nPort, sEveCharReceived, "Read") sEvent(nPort, sEveCharReceived , "ReadCharacter" ) sEvent(nPort, sEveBreak, "Break") sEndEvent(nPort, sEveBreak) INIWrite("BALANCA","RETORNO",sRead(nPort, sInEntryQueue(1)),"BALANCA_RESULTADO.INI") ELSE ToastDisplay("ERRO: Não é possivel ler a porta se não estiver configurada corretamente!",toastShort,vaBottom,haCenter,PastelGreen) END ELSE ToastDisplay("Não veio nenhum valor da porta",toastShort,vaBottom,haCenter,PastelGreen) END ELSE ToastDisplay("ERRO: Não é possivel ler a porta se não estiver configurada corretamente!",toastShort,vaBottom,haCenter,PastelGreen) END ELSE ToastDisplay("ERRO A PORTA NÃO FOI CONFIGURADA CORRETAMENTE",toastShort,vaBottom,haCenter,PastelGreen) END END END
IF StatusPorta = True AND nPort > 0 THEN sClose(Numero_da_Porta) ELSE ToastDisplay("Não foi inicializada e nem configurada nenhuma porta!",toastShort,vaBottom,haCenter,PastelGreen) END
Procedure LerConfig()
Numero_da_Porta = INIRead("CONFIGURACAO","Numero_da_Porta","","CONFIGURA_BALANCA.INI") IF Numero_da_Porta = "" THEN Numero_da_Porta = 1 END
Rate_Bauds = INIRead("CONFIGURACAO","Rate_Bauds","","CONFIGURA_BALANCA.INI") IF Rate_Bauds = "" THEN Rate_Bauds = 2400 END
Data_Bits = INIRead("CONFIGURACAO","Data_Bits","","CONFIGURA_BALANCA.INI") IF Data_Bits = "" THEN Data_Bits = 8 END
Number_of_Stop_Bits = INIRead("CONFIGURACAO","Number_of_Stop_Bits","","CONFIGURA_BALANCA.INI") IF Number_of_Stop_Bits = "" THEN Number_of_Stop_Bits = 0 END
Parity = INIRead("CONFIGURACAO","Parity","","CONFIGURA_BALANCA.INI") IF Parity = "" THEN Parity = 1 END
TimeoutPorta = INIRead("CONFIGURACAO","TimeoutPorta","","CONFIGURA_BALANCA.INI") IF TimeoutPorta = "" THEN TimeoutPorta = 5 END
Tamanho_Buffer_de_input_em_bytes = INIRead("CONFIGURACAO","Tamanho_Buffer_de_input_em_bytes","","CONFIGURA_BALANCA.INI") IF Tamanho_Buffer_de_input_em_bytes = "" THEN Tamanho_Buffer_de_input_em_bytes = 4096 END
Tamanho_Buffer_de_output_em_bytes = INIRead("CONFIGURACAO","Tamanho_Buffer_de_output_em_bytes","","CONFIGURA_BALANCA.INI") IF Tamanho_Buffer_de_output_em_bytes = "" THEN Tamanho_Buffer_de_output_em_bytes = 4096 END
Posicao_inicial_do_Peso_obtido_no_buffer = INIRead("CONFIGURACAO","Posicao_inicial_do_Peso_obtido_no_buffer","","CONFIGURA_BALANCA.INI") IF Posicao_inicial_do_Peso_obtido_no_buffer = "" THEN Posicao_inicial_do_Peso_obtido_no_buffer = 2 END
Qtde_de_caracteres_do_Peso_do_buffer = INIRead("CONFIGURACAO","Qtde_de_caracteres_do_Peso_do_buffer","","CONFIGURA_BALANCA.INI") IF Qtde_de_caracteres_do_Peso_do_buffer = "" THEN Qtde_de_caracteres_do_Peso_do_buffer = 5 END
-- Adriano José Boller ______________________________________________ Consultor e Representante Oficial da PcSoft no Brasil +55 (41) 99949 1800 adrianoboller@gmail.com skype: adrianoboller http://wxinformatica.com.br/ |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 3.574 mensajes Popularité : +175 (223 votes) |
|
Publicado el 26,noviembre 2017 - 20:12 |
nPort = 0
IF EDT_Timeout_de_leitura_da_porta_em_segundos = 0
nPort = sOpen(EDT_Número_da_Porta,EDT_Tamanho_Buffer_de_input_em_bytes,EDT_Tamanho_Buffer_de_output_em_bytes,EDT_Timeout_de_leitura_da_porta_em_segundos,True)
ELSE nPort = sOpen(EDT_Número_da_Porta,EDT_Tamanho_Buffer_de_input_em_bytes,EDT_Tamanho_Buffer_de_output_em_bytes) END
IF ErrorOccurred THEN Info("Não foi possivel abrir a porta, Erro: "+ErrorInfo() +" - "+ Error()) StatusPorta = False ELSE ToastDisplay("Porta "+ EDT_Número_da_Porta +" Aberta com sucesso!",toastShort,vaBottom,haCenter,PastelGreen) StatusPorta = True END
IF StatusPorta = True AND nPort > 0 THEN DTRDSR, RTSCTS is int = 0 IF CBOX_DTRDSR = False THEN DTRDSR = 0 ELSE DTRDSR = 1 IF CBOX_DTRDSR_INATIVO = True THEN DTRDSR = 2 END END IF CBOX_RTSCTS = False THEN RTSCTS = 0 ELSE RTSCTS = 1 IF CBOX_RTSCTS_INATIVO = True THEN RTSCTS = 2 END END bResultado is boolean = sParameter(EDT_Número_da_Porta, EDT_Rate_Bauds,EDT_Parity,EDT_Data_Bits,EDT_Number_of_Stop_Bits) IF bResultado = True THEN ToastDisplay("Porta "+ EDT_Número_da_Porta +" inicializada e configurada com sucesso!",toastShort,vaBottom,haCenter,PastelGreen) ELSE Info("ERRO A PORTA NÃO FOI CONFIGURADA CORRETAMENTE") END END
IF StatusPorta = True AND nPort > 0 THEN iTbuffer is int PesarNovamente: bufM_peso_lido_com = "" sWrite(EDT_Número_da_Porta,Charact(5)) Wait(EDT_Timeout_de_leitura_da_porta_em_segundos) LOOP IF sInExitQueue(EDT_Número_da_Porta) = 0 THEN BREAK END iTbuffer = sInEntryQueue(EDT_Número_da_Porta) bufM_peso_lido_com = sRead(EDT_Número_da_Porta, iTbuffer) sClose(EDT_Número_da_Porta) IF bufM_peso_lido_com = "IIIII" THEN ToastDisplay("Leitura da Porta realizada com Sucesso!",toastShort,vaBottom,haCenter,PastelGreen) GOTO PesarNovamente ELSE IF bufM_peso_lido_com = "IIIII" THEN Info("Peso acima da capacidade da Balança","Divida o peso e precione Enter","Que eu vou tentar ler o peso novamente") GOTO PesarNovamente END IF bufM_peso_lido_com <> "" THEN EDT_Resultado = Val(Middle(bufM_peso_lido_com,EDT_Posição_inicial_do_Peso_obtido_no_buffer,EDT_Qtde_de_caracteres_do_Peso_do_buffer)) / 1000 SetFocus(EDT_Resultado) INIWrite("BALANCA","LEITURA",bufM_peso_lido_com,"BALANCA.INI") INIWrite("BALANCA","DATAHORA",DateSys()+TimeSys(),"BALANCA.INI") ToastDisplay("Leitura da Porta realizada com Sucesso!",toastShort,vaBottom,haCenter,PastelGreen) ELSE Info("Não veio nenhum valor da porta") END ELSE Info("ERRO: Não é possivel ler a porta se não estiver configurada corretamente!") END
IF StatusPorta = True AND nPort > 0 THEN sEvent(nPort, sEveCharReceived, "Read") sEvent(nPort, sEveCharReceived , "ReadCharacter" ) sEvent(nPort, sEveBreak, "Break") sEndEvent(nPort, sEveBreak) Trace(sRead(nPort, sInEntryQueue(1))) ELSE Info("ERRO: Não é possivel ler a porta se não estiver configurada corretamente!") END
IF StatusPorta = True AND nPort > 0 THEN sClose(EDT_Número_da_Porta) ELSE Info("Não foi inicializada e nem configurada nenhuma porta!") END
nPort = 0
IF EDT_Timeout_de_leitura_da_porta_em_segundos = 0 nPort = sOpen(EDT_Número_da_Porta,EDT_Tamanho_Buffer_de_input_em_bytes,EDT_Tamanho_Buffer_de_output_em_bytes,EDT_Timeout_de_leitura_da_porta_em_segundos,True) ELSE nPort = sOpen(EDT_Número_da_Porta,EDT_Tamanho_Buffer_de_input_em_bytes,EDT_Tamanho_Buffer_de_output_em_bytes) END
IF ErrorOccurred THEN Info("Não foi possivel abrir a porta, Erro: "+ErrorInfo() +" - "+ Error()) StatusPorta = False ELSE ToastDisplay("Porta "+ EDT_Número_da_Porta +" Aberta com sucesso!",toastShort,vaBottom,haCenter,PastelGreen) StatusPorta = True IF StatusPorta = True AND nPort > 0 THEN DTRDSR, RTSCTS is int = 0 IF CBOX_DTRDSR = False THEN DTRDSR = 0 ELSE DTRDSR = 1 IF CBOX_DTRDSR_INATIVO = True THEN DTRDSR = 2 END END IF CBOX_RTSCTS = False THEN RTSCTS = 0 ELSE RTSCTS = 1 IF CBOX_RTSCTS_INATIVO = True THEN RTSCTS = 2 END END bResultado is boolean = sParameter(EDT_Número_da_Porta, EDT_Rate_Bauds,EDT_Parity,EDT_Data_Bits,EDT_Number_of_Stop_Bits) IF bResultado = True THEN ToastDisplay("Porta "+ EDT_Número_da_Porta +" inicializada e configurada com sucesso!",toastShort,vaBottom,haCenter,PastelGreen) IF StatusPorta = True AND nPort > 0 THEN iTbuffer is int PesarNovamente: bufM_peso_lido_com = "" sWrite(EDT_Número_da_Porta,Charact(5)) Wait(EDT_Timeout_de_leitura_da_porta_em_segundos) LOOP IF sInExitQueue(EDT_Número_da_Porta) = 0 THEN BREAK END iTbuffer = sInEntryQueue(EDT_Número_da_Porta) bufM_peso_lido_com = sRead(EDT_Número_da_Porta, iTbuffer) sClose(EDT_Número_da_Porta) IF bufM_peso_lido_com = "IIIII" THEN ToastDisplay("Leitura da Porta realizada com Sucesso!",toastShort,vaBottom,haCenter,PastelGreen) GOTO PesarNovamente ELSE IF bufM_peso_lido_com = "IIIII" THEN Info("Peso acima da capacidade da Balança","Divida o peso e precione Enter","Que eu vou tentar ler o peso novamente") GOTO PesarNovamente END IF bufM_peso_lido_com <> "" THEN EDT_Resultado = Val(Middle(bufM_peso_lido_com,EDT_Posição_inicial_do_Peso_obtido_no_buffer,EDT_Qtde_de_caracteres_do_Peso_do_buffer)) / 1000 SetFocus(EDT_Resultado) INIWrite("BALANCA","LEITURA",bufM_peso_lido_com,"BALANCA.INI") INIWrite("BALANCA","DATAHORA",DateSys()+TimeSys(),"BALANCA.INI") ToastDisplay("Leitura da Porta realizada com Sucesso!",toastShort,vaBottom,haCenter,PastelGreen) IF StatusPorta = True AND nPort > 0 THEN sEvent(nPort, sEveCharReceived, "Read") sEvent(nPort, sEveCharReceived , "ReadCharacter" ) sEvent(nPort, sEveBreak, "Break") sEndEvent(nPort, sEveBreak) Trace(sRead(nPort, sInEntryQueue(1))) ELSE Info("ERRO: Não é possivel ler a porta se não estiver configurada corretamente!") END ELSE Info("Não veio nenhum valor da porta") END ELSE Info("ERRO: Não é possivel ler a porta se não estiver configurada corretamente!") END ELSE Info("ERRO A PORTA NÃO FOI CONFIGURADA CORRETAMENTE") END END END
IF StatusPorta = True AND nPort > 0 THEN sClose(EDT_Número_da_Porta) ELSE Info("Não foi inicializada e nem configurada nenhuma porta!") END
-- Adriano José Boller ______________________________________________ Consultor e Representante Oficial da PcSoft no Brasil +55 (41) 99949 1800 adrianoboller@gmail.com skype: adrianoboller http://wxinformatica.com.br/ |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 3.574 mensajes Popularité : +175 (223 votes) |
|
Publicado el 13,abril 2018 - 00:14 |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 3.574 mensajes Popularité : +175 (223 votes) |
|
Publicado el 31,marzo 2023 - 23:47 |
// Summary: <specify the procedure action> // Syntax: //Evento_HREADSEEK_Pesagem (<numid>, <botao_numero>) // // Parameters: // numid: // botao_numero: <specify the role of botao_numero> // Example: // <Specify a usage example> //// Automatic error processing: call the 'Evento_Exception' procedure // // Automatic exception processing: call the 'Evento_Exception' procedure //
PROCEDURE Evento_HREADSEEK_Pesagem(numid, botao_numero)
nPort is int = "" sPorta is string = "" sPeso_texto is string = "" rPeso is real = "" p is int = ""
IF numid <> "" OR numid <> 0 HReset(T001_Balancas) IF HReadSeek(T001_Balancas,T001_Balanca_ID,numid,hIdentical) = True THEN EDT_Peso_Atual = 0 //Fechar todas as portas menos a do mouse com1 vezes is int = T001_Balancas.T001_Timer_Loop IF vezes = 0 THEN vezes = 1 END sClose(T001_Balancas.T001_Port) sPorta = "COM"+T001_Balancas.T001_Port nPort = T001_Balancas.T001_Port // Open Serial port bPorta_OK_01 is boolean = sOpen(sPorta, T001_Balancas.T001_TamanhoBufferInput, T001_Balancas.T001_TamanhoBufferOutput) IF ErrorOccurred THEN Error(ErrorInfo(), HErrorInfo()) ELSE IF NOT ErrorOccurred AND bPorta_OK_01 = True // I/O configuration bPorta_OK_02 is boolean = sParameter(nPort, T001_Balancas.T001_Rate, T001_Balancas.T001_Parity, T001_Balancas.T001_Nb_Data_Bits, T001_Balancas.T001_Nb_Stop_Bits, T001_Balancas.T001_DTR_DSR, T001_Balancas.T001_RTS_CTS, T001_Balancas.T001_XON_XOFF) IF bPorta_OK_01 = True AND bPorta_OK_02 = True sWrite(nPort,"PesoAtual") LOOP(vezes) sPeso_texto = sRead(nPort, sInEntryQueue(nPort)) IF MSGS_DEBUG = True Info("READ: "+sPeso_texto) END Trace(sPeso_texto) IF ErrorInfo() THEN IF MSGS_DEBUG = True THEN Error(HErrorInfo(),ErrorInfo()) END END sPeso_texto = Replace(sPeso_texto,Charact(T001_Balancas.T001_CHR_Inicio),"") sPeso_texto = Replace(sPeso_texto,Charact(T001_Balancas.T001_CHR_Fim),"") IF PositionOccurrence(sPeso_texto,Charact(10),1,FromBeginning) = 0 sPeso_texto = sPeso_texto + CRLF END IF PositionOccurrence(sPeso_texto,Charact(13),1,FromBeginning) = 0 sPeso_texto = sPeso_texto + CRLF END IF PositionOccurrence(sPeso_texto,CRLF,1,FromBeginning) = 0 sPeso_texto = sPeso_texto + CRLF END posicao_chr1013 is int = PositionOccurrence(sPeso_texto,CRLF,1,FromBeginning) sPeso_texto = Middle(sPeso_texto,1,posicao_chr1013) sPeso_texto = Replace(sPeso_texto,CRLF,"") rPeso = Val(NoSpace(sPeso_texto)) ToastDisplay(rPeso,toastShort,vaMiddle,haCenter) Wait(T001_Balancas.T001_Timeout) END END END sClose(nPort) IF botao_numero = 1 STC_PESO_BALANCA_01 = rPeso ELSE IF botao_numero = 2 STC_PESO_BALANCA_02 = rPeso ELSE IF botao_numero = 3 STC_PESO_BALANCA_03 = rPeso ELSE IF botao_numero = 4 STC_PESO_BALANCA_04 = rPeso ELSE IF botao_numero = 5 STC_PESO_BALANCA_05 = rPeso ELSE IF botao_numero = 6 STC_PESO_BALANCA_06 = rPeso END IF rPeso > grPESO_MAXIMO AND MSGS_DEBUG = True Info("Peso acima da capacidade da Balança","Divida o peso e precione Enter","Que eu vou tentar ler o peso novamente") END IF rPeso = 0 AND MSGS_DEBUG = True Info("Não veio nenhum valor da balança") END IF rPeso < 0 AND MSGS_DEBUG = True Info("Veio peso com valor negativo") END Wait(gnTimeOut) Evento_GravarArquivoIni(numid,rPeso) END END
//CASE EXCEPTION:
// Summary: <specify the procedure action> // Syntax: //Evento_GravarArquivoIni (<id>, <peso>) // // Parameters: // id: // peso: <specify the role of peso> // Example: // <Specify a usage example> // PROCEDURE Evento_GravarArquivoIni(id, peso)
HReset(T001_Balancas)
IF HReadSeek(T001_Balancas,T001_Balanca_ID,id,hIdentical) = True THEN T001_Balancas.T001_UltimaPesagem = peso T001_Balancas.T001_DataHoraPesagem = DateSys()+TimeSys() HModify(T001_Balancas) INIWrite(T001_Balancas.T001_Balanca,"Numero",T001_Balancas.T001_NUM_BALANCA,fCurrentDir()+fSep()+"Config.ini") INIWrite(T001_Balancas.T001_Balanca,"Marca",T001_Balancas.T001_Marca,fCurrentDir()+fSep()+"Config.ini") INIWrite(T001_Balancas.T001_Balanca,"Modelo",T001_Balancas.T001_Modelo,fCurrentDir()+fSep()+"Config.ini") INIWrite(T001_Balancas.T001_Balanca,"Setor",T001_Balancas.T001_Setor,fCurrentDir()+fSep()+"Config.ini") INIWrite(T001_Balancas.T001_Balanca,"Porta","COM"+T001_Balancas.T001_Port,fCurrentDir()+fSep()+"Config.ini") INIWrite(T001_Balancas.T001_Balanca,"Rate",T001_Balancas.T001_Rate,fCurrentDir()+fSep()+"Config.ini") INIWrite(T001_Balancas.T001_Balanca,"Parity",T001_Balancas.T001_Parity,fCurrentDir()+fSep()+"Config.ini") INIWrite(T001_Balancas.T001_Balanca,"Nb_Data_Bits",T001_Balancas.T001_Nb_Data_Bits,fCurrentDir()+fSep()+"Config.ini") INIWrite(T001_Balancas.T001_Balanca,"Nb_Stop_Bits",T001_Balancas.T001_Nb_Stop_Bits,fCurrentDir()+fSep()+"Config.ini") INIWrite(T001_Balancas.T001_Balanca,"DTR_DSR",T001_Balancas.T001_DTR_DSR,fCurrentDir()+fSep()+"Config.ini") INIWrite(T001_Balancas.T001_Balanca,"RTS_CTS",T001_Balancas.T001_RTS_CTS,fCurrentDir()+fSep()+"Config.ini") INIWrite(T001_Balancas.T001_Balanca,"XON_XOFF",T001_Balancas.T001_XON_XOFF,fCurrentDir()+fSep()+"Config.ini") INIWrite(T001_Balancas.T001_Balanca,"TamanhoBufferInput",T001_Balancas.T001_TamanhoBufferInput,fCurrentDir()+fSep()+"Config.ini") INIWrite(T001_Balancas.T001_Balanca,"TamanhoBufferOutput",T001_Balancas.T001_TamanhoBufferOutput,fCurrentDir()+fSep()+"Config.ini") INIWrite(T001_Balancas.T001_Balanca,"T001_CHR_Inicio",T001_Balancas.T001_CHR_Inicio,fCurrentDir()+fSep()+"Config.ini") INIWrite(T001_Balancas.T001_Balanca,"CHR_Fim",T001_Balancas.T001_CHR_Fim,fCurrentDir()+fSep()+"Config.ini")
INIWrite(T001_Balancas.T001_Balanca,"Timeout",T001_Balancas.T001_Timeout,fCurrentDir()+fSep()+"Config.ini") INIWrite(T001_Balancas.T001_Balanca,"TimerLoop",T001_Balancas.T001_Timer_Loop,fCurrentDir()+fSep()+"Config.ini") INIWrite(T001_Balancas.T001_Balanca,"Loop",T001_Balancas.T001_Loop,fCurrentDir()+fSep()+"Config.ini") INIWrite(T001_Balancas.T001_Balanca,"DataHoraPesagem",T001_Balancas.T001_DataHoraPesagem,fCurrentDir()+fSep()+"Config.ini") INIWrite(T001_Balancas.T001_Balanca,"UltimaPesagem",T001_Balancas.T001_UltimaPesagem,fCurrentDir()+fSep()+"Config.ini") END
-- Adriano José Boller ______________________________________________ Consultor e Representante Oficial da PcSoft no Brasil +55 (41) 99949 1800 adrianoboller@gmail.com skype: adrianoboller http://wxinformatica.com.br/ |
| |
| |
| | | |
|
| | | | |
| | |
|