PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 25 → LER BALANÇA FILIZOLLA PARA MERCADO OU GONDOLA
LER BALANÇA FILIZOLLA PARA MERCADO OU GONDOLA
Iniciado por Boller, 31,mar. 2023 23:42 - 1 respuesta
Miembro registrado
3.655 mensajes
Popularité : +175 (223 votes)
Publicado el 31,marzo 2023 - 23:42
nPort is int = ""
sPorta is string = ""
peso_texto is string = ""
Peso is real = ""
p is int = ""

EDT_Peso_Atual = 0

//Fechar todas as portas menos a do mouse com1
LOOP(20)
p++
IF p > 1
sClose(p)
END
END

sPorta = COMBO_PORTAS..DisplayedValue

// Open Serial port
nPort = sOpen(sPorta, EDT_Buffer_INPUT, EDT_Buffer_OUTPUT)

IF ErrorOccurred THEN
Error(ErrorInfo(), HErrorInfo())
RETURN
ELSE

// I/O configuration
sParameter(nPort, EDT_Rate_Bytes_por_segundos, EDT_Paridade_0_1_2, EDT_Data_Bits, EDT_Stop_Bits, CBOX_DTR_DSR, CBOX_RTS_CTS, CBOX_XON_XOFF)

sWrite(nPort,"PesoAtual")

LOOP(1000)

peso_texto = sRead(nPort,16)

Trace(peso_texto)

peso_texto = Replace(peso_texto,Charact(EDT_ASCII_Inicial),"")
peso_texto = Replace(peso_texto,Charact(EDT_ASCII_Final),"")
peso_texto = Replace(peso_texto,Charact(EDT_ASCII_X),"")
peso_texto = Replace(peso_texto,CRLF,"")
Peso = Val(NoSpace(Replace(peso_texto,CR,"")))

ToastDisplay(Peso,toastShort,vaMiddle,haCenter)
Wait(3)

END

END

sClose(nPort)

EDT_Peso_Atual = Peso

--
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.655 mensajes
Popularité : +175 (223 votes)
Publicado el 31,marzo 2023 - 23:43
// 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/