Ir para o conteúdo

 Voltar a PW3270 Suporte
Tela cheia

Comportamento estranho com java

17 de Junho de 2013, 20:44 , por Desconhecido - | Ninguém seguindo este artigo por enquanto.
Visualizado 129 vezes

Boa noite!

 

    Fiz um programa em java para recuperar os dados da tela e jogar em um arquivo. Ao enviar o PF8 para mudar de tela dou o comando que espera o terminal estar OK antes de continuar e o programa fica parado só executa quando pressiono alguma tecla ou movo o mouse.

    Alguém sabe o que pode ser isso?

    Segue abaixo trecho do código.

...

            for (int i = 0; i < quantidadeLinhas; i++) {
                String linha = host.getScreenContentAt(numLinha, 9, 71);
                bw.write(linha);
                bw.newLine();
                if (numLinha == 23) {
                    host.sendPFKey(8);
                    while (!host.isTerminalReady()) {
                        host.waitForTerminalReady(10);
                    }
                    fimFonte = host.getScreenContentAt(3, 2, 3);
                    if (fimFonte.equals("Bot")) {
                        numLinha = 25 + i - quantidadeLinhas;
                    }  else {
                        numLinha = 4;
                    }
                } else {
                    numLinha++;
                }
            }
 

...

Autor: José Santos Neto


55 comentários

  • 3f09f0772d9354bc3661d73bf02b0f60?only path=false&size=50&d=404Perry Werneck(usuário não autenticado)
    17 de Junho de 2013, 22:16

     

    Olá,

    Sim, já ví: Fila de mensagens parada! Você está em windows? Eu tive esse problema na implementação de algumas chamadas assincronas na versão 5 no windows 7. Acredito que, nas últimas versões, esse problema já esteja resolvido. Pena que ainda não implementei a jni nelas.

     

     

    • 75216caef20cec95982fc8797aac1501?only path=false&size=50&d=404José Santos Neto(usuário não autenticado)
      25 de Junho de 2013, 22:39

       

      Olá Perry,

          Mudei a estratégia, passei a verificar o conteúdo da tela procurando por alguma String específica antes de continuar e até aparecer minha tela uso o host.wait(1) como sugerido por você em outro post, mas mesmo assim a coisa só funciona se eu fico movendo o mouse. Uso o pw3270 4.2 1429 com ubuntu 10.04, tem alguma versão sem esse problema com suporte a Java?

         Uma coisa interessante, criei uma classe Tela com métodos para identificar e navegar entre as telas, quando testo essa classe funciona legal (movendo o mouse), mas quando uso outra classe (que se utiliza dessa classe Tela) que criei para alterar senhas não funciona nem movendo o mouse, nessa uso várias telas para selecionar sistemas e informar senhas. Já viu isso?

      private void mudaTelaArvoreSistemasTelaSiafiDesenvolvimento() {
        host.setStringAt(22, 16, SIAFI_DESENVOLVIMENTO);
        host.sendEnterKey();
        while (identificaTela() != TELA_SIAFI_DESENVOLVIMENTO) {
          host.wait(1);
        }
      }

Essa comunidade não possui posts nesse blog