Receber dados de uma maquina de analises laboratoriais

0 respostas
antoniosales

Ola a todos,

Estou tentado receber dados de uma máquina que faz analise laboratoriais, O nome é Counter 19 wiener lab, http://www.wiener-lab.com.ar/wienerw/br/instrumentos_open.vsp?nid=27396,
O manual do desenvolvedor é bem limitado e diz o seguinte:

Se a confirmação de solicitação estiver ativada, o equipamento irá se comunicar com o computador externo nos seguintes casos:

O Wiener lab. Counter 19 CP envia um ENQ (05 Hex) e aguarda até 4 segundos pela resposta do computador externo. Se o computador não responder, mais um ENQ (05 Hex) será enviado. Se falhar novamente, o analisador interrompe a transmissão e registra um erro de transmissão;

O computador externo deve responder enviando um ACK (06 Hex). Se qualquer outra resposta for recebida, outro ENQ (05 Hex) será enviado pelo analisador (no máximo dois ENQs [05 Hex] serão enviados);

Em seguida, o analisador envia

Corpo do texto

EOT (04 Hex)

ETX (03 Hex)

Desconexão.

O equipamento envia um ETX (03 Hex) e aguarda 4 segundos pela resposta do computador externo. Se nenhuma resposta for recebida, mais um ETX (03 Hex) será enviado; o equipamento aguarda 4 segundos antes de desistir e emite um alarme de erro de comunicação.

Se o computador externo responder ACK, a transmissão será concluída com êxito. Se o computador responder NACK (15 Hex), o analisador repetirá a transmissão a partir da etapa 3. Se a resposta recebida do computador não for ACK(06 Hex) nem NACK (15 Hex), o analisador enviará ETX (03 Hex) novamente.

Acontece que estou tentado enviar essa informação, ANK, da seguinte maneira:

public void EnviarUmaString(String msg){ 
              if (Escrita==true) { 
                try { 
                    saida = porta.getOutputStream(); 
                    System.out.println("FLUXO OK!"); 
                } catch (Exception e) { 
                     System.out.println("Erro.STATUS: " + e ); 
                } 
                try { 
                   System.out.println("Enviando um byte para " + Porta ); 
                   System.out.println("Enviando : " + msg ); 
                   //String H = stringToHex(msg);
                   saida.write(msg.getBytes()); 
                   Thread.sleep(100); 
                   saida.flush(); 
                } catch (Exception e) { 
                   System.out.println("Houve um erro durante o envio. "); 
                   System.out.println("STATUS: " + e ); 
                   //System.exit(1); 
                } 
               } else { 
                      //System.exit(1); 
               } 
       }

Só que não tem sucesso, a máquina aguarda 4 segundos e emite um erro de transmissão, acredito que seja parecido com uma comunicação de balanças. se alguem ja trabalhou com essa ou alguma maquina parecido eu agradeço a ajuda

Antonio Sales

Criado 23 de julho de 2012
Respostas 0
Participantes 1