Jump to content
Notícias do ACBr

logo_acbr_paygo.png

TEF ACBr PayGo
Seja um revendedor e ofereça uma solução completa para seu cliente.


Saiba mais

beneficios.png

click.png

click.png

click.png

click.png

click.png

click.png

click.png

click.png

click.png

click.png click.png click.png

ERRO [email protected] Elgin Smart


Go to solution Solved by luizcnr,

Recommended Posts

Galera, boa tarde!

Estou com um problema com o [email protected] Elgin Smart.

Ao emitir o cupom fiscal, o SAT está retornando a seguinte mensagem de erro:

539810|9999|SAT Desconectado

Já entrei em contato com a fabricante e atualizado a DLL, porém o erro persiste.

Alguém já passou por algum problema parecido?

 

Link to comment
Share on other sites

Obrigado pelo retorno, Antonio Carlos.

O driver está instalado corretamente. Pois, o software da Elgin, comunica com o SAT normalmente.

O que ocorre, é o seguinte... Temos dois softwares que emitem SAT, um é controle de mesas e outro é o Delivery.

Funciona normalmente emitindo cupom por um software ou pelo outro, porém, após um tempo o SAT para de emitir os cupons e emite a mensagem de erro.

Mas, ao realizar o teste com o software de comunicação da Elgin, o SAT está em funcionamento. Porém, ao realizar os testes o sistema não emite o cupom, pois exibe a mensagem de erro, dizendo que o SAT está desconectado.

Link to comment
Share on other sites

  • Consultores

você precisa encerrar a comunicação com a porta para depois abrir outra.
mas esse aplicativo seu de cozinha, já que não vai emitir cupom sat, porque você ativa a porta de comunicação com o módulo com ele ?
por que tu não só ativa a porta na abertura do cupom, ao finalizar a emissão você fecha a porta de comunicação ?

abraços

Consultor SAC ACBr

Victor H Gonzales - Pandaaa
Ajude o Projeto ACBr crescer - Assine o SAC

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 !!

"Aprender é a única coisa que a mente nunca se cansa, nunca tem medo e nunca se arrepende” - Leonardo da Vinci

"Ter sucesso é falhar repetidamente, mas sem perder o entusiasmo"

Link to comment
Share on other sites

17 minutos atrás, antonio.carlos disse:

Até onde sei a dll não trabalha com duas aplicações abertas ao mesmo tempo.. 
Esses dois software estão apontando para o mesmo path da dll ?
O SAT esta ligado em alguma fonte de alimentação ou apenas na USB ?
 

Sim, utilizamos o mesmo caminho da DLL.

O SAT está ligado somente na USB, não tem fonte de alimentação.

Link to comment
Share on other sites

2 minutos atrás, Victor H. Gonzales - Panda disse:

você precisa encerrar a comunicação com a porta para depois abrir outra.
mas esse aplicativo seu de cozinha, já que não vai emitir cupom sat, porque você ativa a porta de comunicação com o módulo com ele ?
por que tu não só ativa a porta na abertura do cupom, ao finalizar a emissão você fecha a porta de comunicação ?

abraços

Os dois sistemas emitem cupom SAT, Victor. Mas, eles não são executados ao mesmo tempo para emissão do cupom ao mesmo tempo.

Ao finalizar o cupom, está sendo executada a função ACBrSAT1.DesInicializar.

Link to comment
Share on other sites

  • Solution

Galera, entramos em contato com a Elgin e eles identificaram o mesmo problema nos testes por lá também.

Ou seja, eles irão atualizar a DLL e irão encaminhar para nós.

Assim, que atualizarmos e os testes estiverem OK, posto aqui essa DLL atualizada.

Obrigado pela ajuda.

  • Like 1
Link to comment
Share on other sites

Em 20/04/2021 at 17:11, luizcnr disse:

Galera, entramos em contato com a Elgin e eles identificaram o mesmo problema nos testes por lá também.

Ou seja, eles irão atualizar a DLL e irão encaminhar para nós.

Assim, que atualizarmos e os testes estiverem OK, posto aqui essa DLL atualizada.

Obrigado pela ajuda.

A Elgin, entrou em contato e passou uma nova DLL. Porém, essa DLL tem uma nova função a ser chamada.

Como posso estar fazendo isso com o ACBr? Alguém pode me dar um luz a respeito desse tipo de situação?

Link to comment
Share on other sites

Posted (edited)
Em 22/04/2021 at 09:48, luizcnr disse:

A Elgin, entrou em contato e passou uma nova DLL. Porém, essa DLL tem uma nova função a ser chamada.

Como posso estar fazendo isso com o ACBr? Alguém pode me dar um luz a respeito desse tipo de situação?

Resolvi inserindo uma nova funcionalidade no .pas do ACBrSAT. A nova função tem nome de DesabilitarConexaoContinua.

Caso, alguém tenha o mesmo problema, estou anexando as unit com alteração.

Obs. No .pass ACBRSATClass, na procedure FunctionDetectLibSAT, precisei comentar a seguinte linha:

//raise EACBrSATErro.Create( Format(cACBrSATFuncaoNaoEncontrada, [FuncName,sLibName]) ) ;

Pois, caso a DLL não fosse fosse da Elgin, não iria existir essa função e iria apresentar o erro.

ACBrSAT.pas ACBrSATClass.pas ACBrSATDinamico_cdecl.pas ACBrSATDinamico_stdcall.pas

Edited by luizcnr
Link to comment
Share on other sites

  • Fundadores
5 horas atrás, luizcnr disse:

Resolvi inserindo uma nova funcionalidade no .pas do ACBrSAT. A nova função tem nome de DesabilitarConexaoContinua.

Esse método consta na especificação do SAT ou é algo específico desse fabricante ?

 

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.

Link to comment
Share on other sites

2 minutos atrás, Daniel Simoes disse:

Esse método consta na especificação do SAT ou é algo específico desse fabricante ?

 

Daniel, esse método é específico do fabricante. Foi criado pelo fato da porta do SAT, ficar aberta quando havia a emissão de cupom e não liberava ela. 

Não deixava a outra aplicação acessar para emissão do cupom. Anexei a DLL da fabricante, caso tenha alguma dúvida.

dllsat.dll

Link to comment
Share on other sites

  • Fundadores

HUmm.. mas se implementarmos dessa maneira, irá causar erro na carga da DLL de outros fabricantes...

 

Uma opção, seria criar uma classe específica, para esse fabricante...

Mas mesmo assim, como esse método não está previsto na especificação, receberíamos muitos pedidos de suporte, para saber porque o método "DesabilitarConexaoContinua", não está funcionando nos SAT A, B e C...

Não há alguma configuração da DLL, por INI ou XML, para esse fabricante permitir o compartilhamento de Porta, em sua DLL ?

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.

Link to comment
Share on other sites

1 minuto atrás, Daniel Simoes disse:

HUmm.. mas se implementarmos dessa maneira, irá causar erro na carga da DLL de outros fabricantes...

 

Sim, era o que eu estava pensando tb. Por isso, eu acabei comentando a linha que apresenta o erro na detecção de função.

//raise EACBrSATErro.Create( Format(cACBrSATFuncaoNaoEncontrada, [FuncName,sLibName]) ) ;

Pois, iria ficar apresentando o erro em outra fabricante. Eu realizei um teste com o SAT Control ID tb.

Link to comment
Share on other sites

14 minutos atrás, Daniel Simoes disse:

HUmm.. mas se implementarmos dessa maneira, irá causar erro na carga da DLL de outros fabricantes...

 

Uma opção, seria criar uma classe específica, para esse fabricante...

Mas mesmo assim, como esse método não está previsto na especificação, receberíamos muitos pedidos de suporte, para saber porque o método "DesabilitarConexaoContinua", não está funcionando nos SAT A, B e C...

Não há alguma configuração da DLL, por INI ou XML, para esse fabricante permitir o compartilhamento de Porta, em sua DLL ?

Posso perguntar ao suporte da Elgin, se essa nova DLL deles, tem alguma configuração para acessar por INI ou XML. Pois, só foi me passado a função e modo como ela está funcionando.

Link to comment
Share on other sites

18 horas atrás, luizcnr disse:

Posso perguntar ao suporte da Elgin, se essa nova DLL deles, tem alguma configuração para acessar por INI ou XML. Pois, só foi me passado a função e modo como ela está funcionando.

Foi encaminhado a seguinte resposta do suporte da Elgin:

Bom dia Luiz,

Não temos, tem que ser chamado essa função para que a dll libere a porta USB após fazer o seu uso.

Link to comment
Share on other sites

  • 3 weeks later...

Ola Daniel, talvez esse seja o misterio que nunca resolvi no meu sistema tambem , pois acontece com  sat da bematech e elgin mesmo...

lembra?,  quando sao esses sat e do primeiro programa eu chamo o sat para ler as cnfiguracoes da data do certificado ou do ultimo cupom emitido...

dai quando o outro programa vai emitir o cupom , nao consegue .porque parece que a porta ficou presa antes...

eu reportei isso em um post a algum tempo....com titulo,,,nunca consegui descobrir por que o sat me da um retorno 9999 

Edited by geanjesus
Link to comment
Share on other sites

acho que precisaria,  uma solucao generica para isso entao...no acbr,

pois eu simplesmente desisti de checar quando da o erro ....

no  sat da tanca... por exemplo...nao da o erro...

dai no meu sistema eu tenho um  parametro que ativa ou desativa a consulta...

mas com isso o cliente do sat fica sem saber de inicio, a data de validade do certificado do sat e 

sem saber por quantos dias o sat ja nao comunica com  a sefaz...a nao ser que eu coloque isso tudo no segundo programa somente...ainda vou testar...

 

Edited by geanjesus
Link to comment
Share on other sites

  • 2 weeks later...
Em 27/04/2021 at 13:57, Daniel Simoes disse:

que pena...

eu acho que não poderíamos acatar essas modificações, por ser algo muito específico, desse modelo de SAT

Daniel, boa tarde!

De acordo com o que você sugeriu, entrei em contato com a Elgin e eles retornaram com a solução, ou seja, criaram um .ini.

Está disponibilizado no link do GIT HUB da Elgin.

https://github.com/ElginDeveloperCommunity/SAT/tree/master/Elgin/SMART SAT/Bibliotecas Windows

O arquivo .ini, obtém a seguinte informação:

[Logging]
# Aceita info, debug e trace
#level = trace
# Onde escrever o log
#file = /tmp/sat.log

[Connection]
# Usar conexao continua com o dispositivo
continuous = false
# Hub onde o dispositivo esta conectado
#hub = 2

# Porta onde o dispositivo esta conectado
#port = 1

# Serial do dispositivo
#serial = 900021403

No caso, a solução está no continuous, ao passar false, a própria DLL irá liberar a porta automaticamente, sem precisa passar a função pelo ACBr, sem necessitar das alterações.

Abaixo segue, uma explicação de como funciona as funções da DLL Elgin:

https://github.com/ElginDeveloperCommunity/SAT/wiki/Trabalhando-com-vários-SATs-no-PDV

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.