Fórum Comunicação Serial rs232 em java utilizando NETBEANS Windows7 #391390

26/11/2010

0



    EU estou querendo desenvolver programa que faz comunicacao serial com protocolo rs232 no netbeans do windows 7, eu estava tentanto add bibliotecas no NETbeans mais nao consegui tb e nem sei como add-las(se alguem pude ajudar tb nessa parta). 
Se alguem puder dar um help!!!!!

abrazz

 
Joao Pedro

Joao Pedro

Responder

Posts

26/11/2010

Joao Pedro

  A esqueci de falar, eu ja sei como funciona o protocolo rs232!!
Responder

Gostei + 0

27/11/2010

Joao Pedro

bom galera,

eu estava construindo o programa pra fazer comunicacao serial no netbeans, adicionei uma biblioteca chamada comm.jarquando eu rodo o programa da um erro assim:
Error loading SolarisSerial: java.lang.UnsatisfiedLinkError: no SolarisSerialParallel in java.library.pathCaught java.lang.UnsatisfiedLinkError: com.sun.comm.SolarisDriver.readRegistrySerial(Ljava/util/Vector;Ljava/lang/String;)I while loading driver com.sun.comm.SolarisDriverErro durante o procedimento. STATUSjavax.comm.NoSuchPortExceptionJava Result: 1CONSTRUÍDO COM SUCESSO (tempo total: 1 segundo) 

OBS: eu nao estou usando esse com.sun.comm(SolarisSerial)!!! eu estou usando apenas javax.comm, lembrando que as duas CLASSES faz parte da biblioteca comm.jar
package utilitarios;
import javax.comm.*;import java.io.*;//classe Principalpublic class SComm implements Runnable, SerialPortEventListener{//propriedadesprivate String Porta;public String Dadoslidos;public int nodeBytes;private int baudrate;private int timeout;private CommPortIdentifier cp;private SerialPort porta;private OutputStream saida;private InputStream entrada;private Thread threadLeitura;//indicadoresprivate boolean IDPortaOK; //true porta EXISTEprivate boolean PortaOK;// true porta abertaprivate boolean Leitura;private boolean Escrita;//construtor default paridade : par//baudrate: 9600 bps stopbits: 2 COM 1public SComm(){ Porta = "COM1"; baudrate = 9600; timeout = 1000;};//um Objeto ComObj é passado ao construtor//com detalhes de qual porta abrir//e informações sobre configuraçõespublic SComm( String p , int b , int t ){ this.Porta = p; this.baudrate = b; this.timeout = t;};//habilita escrita de dadospublic void HabilitarEscrita(){ Escrita = true; Leitura = false;}//habilita leitura de dadospublic void HabilitarLeitura(){ Escrita = false; Leitura = true;}//Obtém o ID da PORTApublic void ObterIdDaPorta(){ try {     cp = CommPortIdentifier.getPortIdentifier(Porta);     if ( cp == null ) {     System.out.println("A " + Porta + " nao existe!" );     System.out.println("ERRO!Abortando..." );     IDPortaOK = false;     System.exit(1);     }    IDPortaOK = true;   }    catch (Exception e)   {    System.out.println("Erro durante o procedimento. STATUS" + e );    IDPortaOK = false;    System.exit(1);    }  }//Abre a comunicação da portapublic void AbrirPorta(){  try {  porta = (SerialPort)cp.open("SComm",timeout);  PortaOK = true;  System.out.println("Porta aberta com sucesso!");  //configurar parâmetros  porta.setSerialPortParams(baudrate,  porta.DATABITS_8,  porta.STOPBITS_2,  porta.PARITY_NONE); } catch (Exception e) { PortaOK = false; System.out.println("Erro ao abrir a porta! STATUS: " + e ); System.exit(1); }}//função que envie um bit para a porta serialpublic 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 );    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);         }  }//leitura de dados na serialpublic void LerDados(){  if (Escrita == true){  try {    entrada = porta.getInputStream();    System.out.println("FLUXO OK!");      }    catch (Exception e)        {       System.out.println("Erro.STATUS: " + e );       System.exit(1);         }  try {    porta.addEventListener(this);    System.out.println("SUCESSO. Porta aguardando...");      }     catch (Exception e)         {       System.out.println("Erro ao criar listener: ");       System.out.println("STATUS: " + e);       System.exit(1);          }       porta.notifyOnDataAvailable(true);  try {     threadLeitura = new Thread(this);     threadLeitura.start();      }      catch (Exception e) {     System.out.println("Erro ao iniciar leitura: " + e );                            }      }   }//método RUN da thread de leiturapublic void run(){   try {     Thread.sleep(5000);       }      catch (Exception e) {       System.out.println("Erro. Status = " + e );                           }       }//gerenciador de eventos de leitura na serialpublic void serialEvent(SerialPortEvent ev){switch (ev.getEventType()) {case SerialPortEvent.BI:case SerialPortEvent.OE:case SerialPortEvent.FE:case SerialPortEvent.PE:case SerialPortEvent.CD:case SerialPortEvent.CTS:case SerialPortEvent.DSR:case SerialPortEvent.RI:case SerialPortEvent.OUTPUT_BUFFER_EMPTY:break;case SerialPortEvent.DATA_AVAILABLE:byte[] bufferLeitura = new byte[20];
  try {     while ( entrada.available() > 0 ) {     nodeBytes = entrada.read(bufferLeitura);       }     String Dadoslidos = new String(bufferLeitura);     if (bufferLeitura.length == 0)         {     System.out.println("Nada lido!");          }  else if (bufferLeitura.length == 1 )          {     System.out.println("Apenas um byte foi lido!");          }  else {     System.out.println(Dadoslidos);       }       }     catch (Exception e)     {   System.out.println("Erro durante a leitura: " + e );      }   System.out.println("n.o de bytes lidos : " + nodeBytes );   break;      }   }//função que fecha a conexãopublic void FecharCom(){  try {    porta.close();    System.out.println("CONEXAO FECHADA>>FIM..");      }    catch (Exception e)         {    System.out.println("ERRO AO FECHAR. STATUS: " + e );    System.exit(0);          }}//Acessorespublic String obterPorta()  {return Porta;  }public int obterBaudrate()  {return baudrate;  }}




Responder

Gostei + 0

03/12/2010

Rodrigo Andrade

Boa tarde, amigo parece que vc tem um erro de biblioteca, vc já conferiu se tem todas as necessárias? Outra coisa é que a porta que vc está selecionando parece não estar disponível...
Responder

Gostei + 0

03/12/2010

Joao Pedro

boa tarde,

   Eu consegui resolve o problema! agora comunicacao esta funcionando 100%
 vlw pela ajuda abraço
Responder

Gostei + 0

03/12/2010

Rodrigo Andrade

Ok... coloca como concluido...
Responder

Gostei + 0

10/12/2010

Dyego Carmo

Resolvido ?

Responder

Gostei + 0

10/12/2010

Dyego Carmo

Utilize o projeto RXTX... eole funciona no Windows 7 !
Responder

Gostei + 0

10/12/2010

Joao Pedro

entao estou utilizando a comm.jar


valeu pela dica

abrazz
Responder

Gostei + 0

27/12/2010

Dyego Carmo

Deu certo ?

Fico no aguardo !
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar