Jump to content

click.png

click.png

click.png

click.png

click.png

click.png

click.png click.png click.png

click.png

click.png

click.png

Seja-Profissional-Saiba-mais.png Beneficios_banner.png

 

Texto 'Online' exibindo no MicroTerminal


William F. L.
  • Este tópico foi criado há 676 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.

Link to comment
Share on other 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...

  • Like 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 to comment
Share on other 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á.

Link to comment
Share on other 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.

  • Like 1
Link to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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.

  • Like 1
  • Thanks 1
Link to comment
Share on other 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. :)

Edited by Vitor Cortinovis
Link to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other sites

  • 4 weeks later...
  • 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 to comment
Share on other 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.

Link to comment
Share on other 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.

Edited by William F. L.
Link to comment
Share on other sites

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

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.