Jump to content

2 Dia do ACBr

Agradecemos a todos os presentes. Fotos e vídeos do evento serão disponibilizados em breve.
Site do Evento

Nova Loja Oficial
loja.projetoacbr.com.br
Ajude o projeto a crescer, com estilo

Comprar

Balança SM100 performance surpreendente

Tecnologia Japonesa   Teclado e Visor resistentes a água
Consumo inteligente de etiquetas   Baixo custo de manutenção
Comunicação Ethernet e WIFI independentes

Saiba mais

Impressora de Etiquetas ELGIN - L42 PRO

Protocolos PPLA, PPLB, ZPL, EPL (automático)
Porta USB padrão Opcionais: Ethernet, Serial, Paralela
Sensor de Etiquetas Móvel Garantia de 18 meses

Saiba mais

Tiago Tarifa Munhoz

ANSWERED Linux: Travamento ao carregar uma biblioteca do SAT

Recommended Posts

Estou trabalhando em um caso, em um programa interno da empresa, que trava ao ser chamado diretamente pelo ícone do ambiente gráfico (Xorg+LXDE) se o SAT estiver desligado e/ou desconectado. Ainda com o SAT desligado, se executado pelo terminal ou pelo próprio Lazarus, o programa abre normalmente.

Investigando, descobri que ao carregar a biblioteca do SAT, neste caso o da Elgin (libsatprotocolELGIN64bits.so), ela gera uma saída de erro, mas que aparentemente não atrapalha a sua execução.
A saída de erro é esta:
console1.jpg
ou pelo terminal:
console2.jpg

Suspeito que, quando nosso programa é executado pelo Xorg não há saída padrão (stdout e stderr) e portanto fica travado.

Com base neste cenário, tive a ideia de redirecionar esta saída para um arquivo de log, por exemplo. Porém, não estou conseguindo.
Com base no link abaixo, estou tentando fazer uma implementação na unit do ACBrUtil antes da biblioteca ser carregada, porém sem sucesso. O problema: a saída não é redirecionada.
http://wiki.freepascal.org/Console_Mode_Pascal (Tópico: Run in IDE with redirected output)

Alguém tem alguma sugestão que possa ser aplicada para que essa saída seja redirecionada (lembrando que o ambiente é Linux)?
Aproveitando: alguém já experienciou o mesmo que eu? Sabem se isso é algum bug?

Qualquer sugestão será bem vinda.

Nota: Para facilitar, a função que carrega a biblioteca é a FunctionDetect na linha 3562, na já mencionada ACBrUtil.

Share this post


Link to post
Share on other sites

Não compreendi exatamente, qual é o problema...

Consegue reproduzir o problema com o SATTeste ?

Se SIM, qual é o passo a passo, até o problema ?


Consultor SAC ACBr

Daniel Simões de Almeida
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Share this post


Link to post
Share on other sites

Resumindo: O problema não está no ACBrUtil, aparenta ser a aplicação mesmo. De qualquer forma, obrigado.

Explicando:

Citar

Não compreendi exatamente, qual é o problema... 

Eu suspeitava que por não haver uma saída padrão(stdout) e para erros (stderr), o componente ACBrUtil ficava "travado" aguardando alguma "saída padrão". Porém, eu estava enganado. No Xorg + LXDE exite sim uma saída padrão, fica em:  /home/usuário/.cache/lxsession/LXDE/run.log.
Neste mesmo lugar encontrei a saída de erro citada no meu primeiro comentário.
Maiores detalhes neste link: https://unix.stackexchange.com/questions/86698/where-does-the-output-from-an-application-started-from-the-window-manager-go

Citar

Consegue reproduzir o problema com o SATTeste ?

Boa... havia me esquecido dele. Fiz um teste com ele e o problema não ocorre. Creio então que o problema deva estar na aplicação e não no componente ACBrUtil, conforme eu suspeitava. (lembrando que estou sem debug, porque executando pelo Lazarus o problema não ocorre.)

Vou dar esse tópico como resolvido.

Obrigado.

  • Like 1

Share this post


Link to post
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...