Ir para conteúdo
  • Cadastre-se

dev botao

Texto 'Online' exibindo no MicroTerminal


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

Recommended Posts

Olá pessoal, meu cliente trabalha com microterminal da GERTEC, tudo funcionando 99,99% bem, só tem um probleminha chato.

Em alguns momentos do dia, aparece no display do microterminal o texto "Online", sei que o componente possui uma rotina que fica verificando de tempos em tempos a conexão, mas não achei como desabilitar o envio desse texto para o display do microterminal.

Algum tempo atrás tinha lido um tópico sobre isso aqui, mas não encontrei o assunto novamente.

image.png.7b12b65221605b4e2ee1b0693683f18d.png

Sistemas para Bares, Restaurantes e Varejo

https://www.wllsistemas.com.br

 

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Acho que o próprio Terminal, responde com "OnLine", quando o KeepAlive é executado...

Veja no Log, em qual evento ela chega... creio que você possa fazer um tratamento na sua aplicação, para isso...

  • Curtir 1
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 para o comentário
Compartilhar em outros sites

Então se fosse um retorno da minha aplicação seria mais fácil controlar.

Porém já tentei debugar para pegar o momento desse retorno e  usando um "IF" esconder ele, mas  não achei por onde passa esse texto "Online".

Debuguei todos os trechos onde minha aplicação "envia texto" para o display, mas nada com "Online" passa por lá.

image.png.7b12b65221605b4e2ee1b0693683f18d.png

Sistemas para Bares, Restaurantes e Varejo

https://www.wllsistemas.com.br

 

Link para o comentário
Compartilhar em outros sites

Minha solução temporária foi jogar o KeepAlive acima dos 14000 segundos, pq observando o construtor da classe "TACBrMTerPMTG" mesmo que deixe com o valor "0" ele vai rodar a cada "15" segundos.

constructor TACBrMTerPMTG.Create(aOwner: TComponent);
begin
  inherited Create(aOwner);

  fpModeloStr := 'PMTG';

  with TACBrMTer(aOwner) do
  begin
    if (KeepAlive = 0) then   // KeepAlive liga por padrão, para o Gertec
      KeepAlive := 15;  // Verifica OnLine a cada 15 segundos
  end;

end;

Pelo menos nos testes não apareceu mais a mensagem "Online" no display.

  • Curtir 1
image.png.7b12b65221605b4e2ee1b0693683f18d.png

Sistemas para Bares, Restaurantes e Varejo

https://www.wllsistemas.com.br

 

Link para o comentário
Compartilhar em outros sites

  • Fundadores
1 hora atrás, William F. L. disse:

Abaixo um print do trecho que retorna o texto, o mesmo trecho em txt em anexo.

a linha 13, mostra a sua aplicação enviando (TX) o texto "OnLine" para o Microterminal...

a resposta do KeepAlive (RX), chega nas linhas 8 e 10

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 para o comentário
Compartilhar em outros sites

  • Fundadores
1 minuto atrás, William F. L. disse:

Então mas na linha 10 o texto "Online" apareceu no display, ai pressionei o ENTER.

Não.. quem mandou "OnLine" para o Display, foi o comando da linha 13

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 para o comentário
Compartilhar em outros sites

Tentar fazer o seguinte então: No método OnRecebeDados você verifica se o "Recebido" foi o texto "Online", se for, voce joga o EchoMode = mdeNone (Faz com que não envie caracteres pro MicroTerminal), ja se for outros valores "Recebido", voce faz as suas tratativs normais.

Tenta fazer esse teste pra ver se soluciona seu problema.

Att.

  • Curtir 1
  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

3 minutos atrás, William F. L. disse:

Vou tentar também, mas como solução "paliativa" aumentei o "KeepAlive" do cliente para 14000, assim não tem verificação em intervalos menores.

Pelo menos até agora não houve reclamação do "Online" no display.

Não é o mais aconselhavel fazer esse procedimento pois pode gerar outros problemas, como eu estava tendo: Perca de comunicação dos MicroTerminais, ja que o tempo de verificação está elevado e sendo assim, não conseguindo obter retorno pois o equipamento entra em uma especie de Stand By.

Tenta desenvolver essas solução verificando o "Recebido" e aplica o EchoMode = mdeNone que provavelmente irá solucionar o problema de imediato.

Quando tiver mais tempo, voce analisa com mais calma seu codigo e tenta verificar novamente se há alguma brecha que possa estar tendo que está mandando para o display o texto online.

Att. :)

Editado por Vitor Cortinovis
Link para o comentário
Compartilhar em outros sites

 

Em 19/02/2020 at 09:05, William F. L. disse:

Vou tentar também, mas como solução "paliativa" aumentei o "KeepAlive" do cliente para 14000, assim não tem verificação em intervalos menores.

Pelo menos até agora não houve reclamação do "Online" no display.

Neste momento isso está superado para mim, problema maior é funcionar o microterminal e a captura de peso da balança ligada a ele. Não estou tendo sucesso nenhum

Link para o comentário
Compartilhar em outros sites

  • Fundadores
43 minutos atrás, André Helena disse:

Neste momento isso está superado para mim, problema maior é funcionar o microterminal e a captura de peso da balança ligada a ele. Não estou tendo sucesso nenhum

3.1 - Não faça flooding - Inundar o fórum com posts repetidos, com a mesma dúvida ou as mesmas palavras é chamado de flooding. Isso é proibido. Apenas um post feito no lugar certo é suficiente. Pesquise antes de postar, talvez sua dúvida já está respondida em outro post. Favor leia as regras do fórum.

 

 

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 para o comentário
Compartilhar em outros sites

  • 4 semanas depois ...
  • Fundadores
Em 19/02/2020 at 09:08, Vitor Cortinovis disse:

Quando tiver mais tempo, voce analisa com mais calma seu codigo e tenta verificar novamente se há alguma brecha que possa estar tendo que está mandando para o display o texto online.

Estive olhando novamente para esse caso, e realmente o problema ocorreu internamente, no ACBrMTER...

Citar

 -- 18/02 15:30:59:708 -- Terminal: 192.168.15.106 - RecebeOnLine: SIM -
 -- 18/02 15:30:59:710 -- Terminal: 192.168.15.106 - RecebeResposta: 6 bytes -> OnLine
 -- 18/02 15:30:59:711 --   OnRecebeDados
 -- 18/02 15:30:59:712 --     EchoMode: mdeNormal

Por algum motivo, o retorno da Resposta do Pedido de "OnLine", foi quebrado em 2... e isso fez com que o texto "OnLine" chegasse no evento OnRecebeDados e não no Evento OnLine...

Creio que o problema possa estar em algum local da rotina "TACBrMTerConexao.OnBufferWaitDone"... mas para saber de forma mais exata, seria necessário inserir mais entradas de Log...

O problema ainda ocorre, ou após ajustar o KeepAlive, para 15 o problema não se manifestou mais ?

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 para o comentário
Compartilhar em outros sites

Fiz uma "gambiarra", escondendo texto "Online" usando EchoMode = mdeNone, o KeepAlive eu deixei em 60 segundos mesmo.

Essas medidas reduziram bem os problemas, porém quando seria para retornar "Online" eu escondo ele, mas eu notei um pequeno delay no aparelho, até pq tem essa rotinha intermediária para esconder o texto.

image.png.7b12b65221605b4e2ee1b0693683f18d.png

Sistemas para Bares, Restaurantes e Varejo

https://www.wllsistemas.com.br

 

Link para o comentário
Compartilhar em outros sites

Olha um teste que eu fiz em laboratório foi jogar o keepAlive para "1 segundo", com isso ficou mais propicio de aparecer o texto "Online" durante o lançamento dos pedidos.

A cada 10 ou 12 teclas pressionadas exibia o texto "Online" no display, com isso montei a gambiarra rss.

Um detalhe, no emulador da Gertec não consegui reproduzir isso, só com o aparelho físico que tive mais sucesso.

Editado por William F. L.
image.png.7b12b65221605b4e2ee1b0693683f18d.png

Sistemas para Bares, Restaurantes e Varejo

https://www.wllsistemas.com.br

 

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 1470 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...