Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado

Galera, boa tarde!

Estou com um problema com o S@T 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?

 

Postado

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.

  • Consultores
Postado

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 ?
 

  • Consultores
Postado

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"

Postado
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.

Postado
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.

  • Solution
Postado

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.

  • Curtir 1
Postado
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?

Postado (editado)
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

Editado por luizcnr
  • Fundadores
Postado
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.

Postado
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

  • Fundadores
Postado

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.

Postado
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.

Postado
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.

Postado
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.

  • 3 semanas depois ...
  • Membros Pro
Postado (editado)

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 

Editado por geanjesus
  • Membros Pro
Postado (editado)

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

 

Editado por geanjesus
  • 2 semanas depois ...
Postado
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

  • Curtir 1
  • Obrigado 1
  • Este tópico foi criado há 1281 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.

The popup will be closed in 10 segundos...