Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado

Pessoal, tudo na paz.

Entao estou querendo usar o ACBRMonitor em meu projeto, baixei a versao 0.9.9b, instalei sem problemas, ai instalei o emulador da Bematech, Epson e Sweda e tudo normal, instalei com0com para virtualizar as portas com3 e com4, ate ai normal, tudo isso feito em um Windows XP que é tambem uma maquina virtual, pois usa MAC.

Consegui fazer os emuladores das ECF rodarem sem problema e consegui via o ACBRmonitor acessar e passar todos os camandos, ate ai 100%

O problema veio quando fui testar o uso do ACBrMonitor via TCP/IP usando as instrucoes eu ativei o TelNet que se conecta e retorna a mensagem abaixo:

ACBrMonitor Ver. 0.9.9b

Conectado em: 19/04/12 12:18:47

Máquina: 127.0.0.1

Esperando por comandos.

Ai seguindo os comando eu tentei usar o ECF.Ativar ou qualquer outro, o que ocorre é o sistema espera um tempo e depois da a mensagem

Conexao ao host perdida

Achei que poderia ser problema do Telnet, ai fiz uma classe de exemplo em JAVA e só consigo me conectar e ler a mensagem de "boas vindas", os demais comandos quando tento ler a resposta ocorre uma exceção que o inputstream foi resetado.

Em outras palavras alguém já passou por isso, creio que se resolver o problema via Telnet o do Java é a mesma coisa, será que o fato do Windows ser Virualizado tem problema ? pois fiz os testes usando diretamente o ACBrMonitor e funcionou tudo, outra coisa via arquivos TXT ele respondeu 100% tb, somente via TCP/IP que esta com problema.

Obrigado.

Postado

Olá pessoal, entao via telnet eu consegui apos apertar o rapidamente coloco o ponto "." e outro ai funciona.

Ja no Java que é o mais importante nao esta rolando ja tentei usar o exemplo que vem e nao funciona quando envio um comando somente a conexao, veja os testes de comando que fiz.


String ComandoEnviar = "ECF.Ativar" + "\u0013\u0010" + "." + "\u0013\u0010";

String ComandoEnviar = "ECF.Ativar" + "\u0013\u0010\u0046\u0013\u0010";

String ComandoEnviar = "ECF.Ativar" + "\n" + "." + "\n";

Em todos os casos ele perde a conexão, estou usando como exemplo o código java fornecido com o ACBrMonitor. Obrigado. Eis o Código que usei como exemplo sem alteração

public class TesteAcbr {


    public static void main(String[] args) {

        String Retorno = "";

        java.net.Socket TelnetACBr = null;

        java.io.PrintWriter out = null;

        java.io.BufferedReader in = null;

        String Leitura = "";

        short b = -1;

        String ComandoEnviar = "ECF.Ativar" + "\u0013\u0010" + ".";

        char OK = 'N';

        // cria o socket

        try {

            TelnetACBr = new java.net.Socket("localhost", 3434);

            out = new java.io.PrintWriter(TelnetACBr.getOutputStream(), true);

            in = new java.io.BufferedReader(new java.io.InputStreamReader(TelnetACBr.getInputStream()));

            OK = 'S';

        } catch (java.net.UnknownHostException e) {

            Retorno = "Erro: Host desconhecido! Verifique as configuracoes de rede: " + "\n\n" + e.getMessage();

        } catch (java.io.IOException e) {

            Retorno = "Erro: Falha de comunicao com o ACBrMonitor, contate o suporte tecnico: " + "\n\n" + e.getMessage();

        } catch (Exception e) {

            Retorno = "Erro: tentando conectar com o ACBrMonitor. Contate o suporte tecnico: " + "\n\n" + e.getMessage();

        }

        if (OK == 'S') {

            // envia o comando e busca o retorno

            try {

                out.println(ComandoEnviar.trim());

                out.flush();


                Leitura = "";

                while (b != 3) {

                    b = (short) in.read();

                    if (b != 3) {

                        Leitura += (char) (;

                    }

                }

                Retorno = Leitura;


                in.close();

                out.close();

                TelnetACBr.close();

            } catch (Exception e) {

                Retorno = "Erro: Falha ao ler o retorno do ACBrMonitor. Contate o suporte tecnico: " + "\n\n" + e.getMessage();

            }

        }

        System.err.println(Retorno);

    }

}

[/code]

  • Fundadores
Postado

Não sou programador Java... mas parece que o exemplo está desatualizado...

Veja:

"ECF.Ativar" + "\u0013\u0010" + ".";

Não seria algo como:

"ECF.Ativar" + "\u0013\u0010" + "." +"\u0013\u0010";

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

Entao eu tentei colocar este comando

"ECF.Ativar" + "\u0013\u0010" + "." +"\u0013\u0010";

Mas tambem nao funcionou, ai eu vi la no final a linha

out.println(ComandoEnviar.trim());

Que é a que envia o comando o qual já adiciona uma quebra de linha ao final do comando println, entao eu mudei ele para somente print e coloquei o que voce indicou, mas mesma coisa.

Obrigado.

Postado

Olá, garela achei a solução deve-se passar ao final do comando os caracteres '\r' + '\n' + "." + '\r' + '\n', com isso o comando ficaria


enviaComando.print(comando.toUpperCase() + '\r' + '\n' + "." + '\r' + '\n');

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