Ir para conteúdo
  • Cadastre-se

dev botao

  • Este tópico foi criado há 4647 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Senhores, boa tarde!

No meu laboratório de desenvolvimento não tenho Gaveta, mas o sistema emite o ACBrECF1.AbreGaveta durante a abertura do dia, e isso não gera erro algum (Daruma, Urano, etc).

Hoje estava fazendo testes com ecfSwedaSTX, e a abertura diária do meu sistema gerou um erro "Impressora SwedaSTX não responde". Analisando o código descobri que o erro era no método AbreGaveta.

Decidi fazer o teste pelo ECFTESTE (pasta Exemplos do ACBr). Conectei a ECF, testei várias funcionalidades (Variáveis -> Ler Todas as Variáveis, etc), tudo funcionando belezinha... fui então no menu "Dispositivos -> Gaveta -> Abre Gaveta", e o sistema mostrou o mesmo erro: "Impressora SwedaSTX não responde".

Analisei o código do ACBr, mas não consegui resolver.

WRMedeiros

Focus

Postado

Daniel, obrigado pelo retorno.

Fiz o mesmo teste usando o demo da Sweda (sweda\Connect_C\Exemplos\Delphi\), percebi o seguinte... ao clicar em "Gaveta", "Aciona gaveta" a mesma demora cerca de 5 segundos para mostrar o retorno (achei demorado... como é um comando assíncrono, pensei que não passaria de 1s). O comando retorna "sucesso"... mas essa "demora" do hardware pode está ocasionando algum timeout no ACBr, não acha?

Abraço,

WRMedeiros

Focus

Postado

Daniel,

Vi ontem no log do SVN que você incluiu um Sleep no método AbreGaveta da ecfSwedaSTX.

Fiz update no meu repositório, recompilei, testei, mas a mensagem de "Impressora SwedaSTX não está respondendo" ainda persiste no ECFTESTE.

Por enquanto, criei um flag para desativar o "AbreGaveta" no ambiente de desenvolvimento;

Obrigado pela ajuda.

WRMedeiros

Focus

Postado

Nos meus testes percebi o seguinte... o erro ocorre ANTES de chegar no Sleep.

Se você deixar o breakpoint na linha Sleep(200) o erro aparece antes do Delphi parar (ou seja, é algo no EnviaComando ('11').

Tentei debugar o EnviaComando, mas é bem mais complexo.

Continuo fazendo testes...

Obrigado pelas dicas.

WRMedeiros

Focus

Postado

RESOLVIDO.


Procedure TACBrECFSwedaSTX.AbreGaveta ;

var

   OldTimeout:Integer;

begin

  OldTimeout := Timeout;


  Timeout := 10;

  EnviaComando( '11' ) ;


  Timeout := OldTimeout;

end;

Se quiser fazer algum ajuste no código...

WRMedeiros

Focus

  • Este tópico foi criado há 4647 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • 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.