Ir para conteúdo
  • Cadastre-se

dev botao

le peso acbrbal


Ver Solução Respondido por Rafael Dias,
  • Este tópico foi criado há 1698 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Administradores
Postado

Tópico movido para a área do SAC, para que o SLA de respostas seja considerado

Bom dia.

Oque ocorre quando vc aciona a leitura do peso? Por favor anexe também os logs da lib.

Att.

Consultora SAC ACBr

Juliana Tamizou

Gerente de Projetos ACBr / Diretora de Marketing AFRAC
Ajude o Projeto ACBr crescer - Seja Pro

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

Postado

METHOD LePeso(Timeout) CLASS AcbrBalanca
        buffer := Space(bufferLen)
        DllCall(::hHandle, DLL_OSAPI, "BAL_LePeso",Timeout, @bufferLen)        

    RETURN bufferLen

o erro esta nesse metodo. acredito que na forma de pegar o retorno. 

  • Fundadores
Postado

Isso parece errado...

11 minutos atrás, [email protected] disse:

METHOD LePeso(Timeout) CLASS AcbrBalanca
        buffer := Space(bufferLen)
        DllCall(::hHandle, DLL_OSAPI, "BAL_LePeso",Timeout, @bufferLen)        

    RETURN bufferLen

tente assim:

METHOD LePeso(Timeout) CLASS AcbrBalanca
        buffer := Space(bufferLen)
        DllCall(::hHandle, DLL_OSAPI, "BAL_LePeso",Timeout, @buffer)        

    RETURN @buffer
Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Postado
11 minutos atrás, Daniel Simoes disse:

Isso parece errado...

tente assim:


METHOD LePeso(Timeout) CLASS AcbrBalanca
        buffer := Space(bufferLen)
        DllCall(::hHandle, DLL_OSAPI, "BAL_LePeso",Timeout, @buffer)        

    RETURN @buffer

da erro no @ tirei ai da "Error BASE/1003  Vari vel nÆo existe: BUFFER"

 

Postado
4 horas atrás, Rafael Dias disse:

eu enviei um demo para o SVN poderia testar com ele.

http://svn.code.sf.net/p/acbr/code/trunk2/Projetos/ACBrLib/Demos/Harbour/BAL/

Trava na hora de retornar o peso. não le mas no log ate aparece o peso. so que trava o sistema 

     Balanca:= ACBrBal():New('acbrbal.ini','')            
     Balanca:ativar()             
     peso = Balanca:Lepeso(200)             
     Balanca:desativar()             
     Balanca := nil
 

logbal.txt

    hResult := DllCall(::hHandle, DLL_OSAPI, "BAL_LePeso", MillisecTimeOut, @ePeso)
 

trava bem nessa linha

  • Fundadores
Postado

humm.. talvez tenhamos que criar um novo método, que retorno o Peso como String...

O Harbor (clipper) define o tipo da variável, conforme algo é atribuído a ela... tente algo como:

METHOD LePeso(MillisecTimeOut) CLASS ACBrBAL
    local hResult
    local ePeso

    ePeso := 1.23456

    hResult := DllCall(::hHandle, DLL_OSAPI, "BAL_LePeso", MillisecTimeOut, @ePeso)
    ::CheckResult(hResult)
    RETURN ePeso

 

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Postado
2 minutos atrás, Daniel Simoes disse:

humm.. talvez tenhamos que criar um novo método, que retorno o Peso como String...

O Harbor (clipper) define o tipo da variável, conforme algo é atribuído a ela... tente algo como:


METHOD LePeso(MillisecTimeOut) CLASS ACBrBAL
    local hResult
    local ePeso

    ePeso := 1.23456

    hResult := DllCall(::hHandle, DLL_OSAPI, "BAL_LePeso", MillisecTimeOut, @ePeso)
    ::CheckResult(hResult)
    RETURN ePeso

 

deu mesmo erro. 

Postado
4 horas atrás, Rafael Dias disse:

Eu atualizei e classe e mandei uma nova versão da dll favor testar com as mesmas.

Boa noite. mais cedo estava testando direto na balança pra não ter duvidas. mas não funcionava nem no emulador nem na balança. agora acabei de testar no emulador e funcionou. 

amanha cedo vou testar na balança e qualquer coisa eu aviso.  tive que fazer uma pequena modificação. Depois atualiza o exemplo. 

METHOD LePeso(MillisecTimeOut) CLASS ACBrBAL
    local hResult, buffer, bufferLen
    bufferLen := STR_LEN
    buffer := Space(bufferLen) 

    hResult := DllCall(::hHandle, DLL_OSAPI, "BAL_LePesoStr", MillisecTimeOut, @buffer, @bufferLen)
    ::CheckResult(hResult)

RETURN val(  StrTran(AllTrim(buffer),",","."))
 

o Xharbour quando puxa o peso da balanca ele vem string com , 'Virgula' ai e necessário transformar em . 'ponto' para depois fazer a conversão.  

Diante de tudo so tenho que agradecer o suporte top de vcs. Muito obrigado. 

  • Curtir 1
  • Administradores
Postado

Bom dia.

8 horas atrás, [email protected] disse:

amanha cedo vou testar na balança e qualquer coisa eu aviso.  tive que fazer uma pequena modificação. Depois atualiza o exemplo

Por favor anexe o arquivo alterado.

Att.

Consultora SAC ACBr

Juliana Tamizou

Gerente de Projetos ACBr / Diretora de Marketing AFRAC
Ajude o Projeto ACBr crescer - Seja Pro

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

Postado
20 horas atrás, Rafael Dias disse:

Eu atualizei e classe e mandei uma nova versão da dll favor testar com as mesmas.

na balanca de um pequeno erro. uso a balança digitron e ela me parece que tem algumas particularidades ao inves de responder o peso a dll pegou -9 

 

logbal.txt

  • Fundadores
Postado

A balança não respondeu conforme o protocolo dela... Veja, essa é uma resposta correta

Citar

 - 23:28:35:219 TX -> [ENQ]
 - 23:28:35:647 RX <- [STX]08071[ETX]
              UltimoPesoLido: 8,071 - Resposta: [STX]08071[ETX]

Já na resposta inválida, não existe o marcador de início STX ou #2, nem o ETX

Citar

 - 15:56:08:796 TX -> [ENQ]
 - 15:56:09:848 RX <- D0004.15[CR]
              UltimoPesoLido: -9 - Resposta: D0004.15[CR]

Por isso o componente acredita que a resposta não chegou, e acusa o erro de leitura -9

Verifique com o fabricante, porque o equipamento, está respondendo de duas formas diferentes...

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Postado
11 minutos atrás, Daniel Simoes disse:

A balança não respondeu conforme o protocolo dela... Veja, essa é uma resposta correta

Já na resposta inválida, não existe o marcador de início STX ou #2, nem o ETX

Por isso o componente acredita que a resposta não chegou, e acusa o erro de leitura -9

Verifique com o fabricante, porque o equipamento, está respondendo de duas formas diferentes...

a primeira foi pelo emulador e a segunda pela balança. como o emulador não emula digitron teste como filizola. 

  • Este tópico foi criado há 1698 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.