Comunicação Serial rs232 em java utilizando NETBEANS Windows7
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
Curtidas 0
Respostas
Joao Pedro
26/11/2010
A esqueci de falar, eu ja sei como funciona o protocolo rs232!!
GOSTEI 0
Joao Pedro
26/11/2010
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
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; }}
GOSTEI 0
Rodrigo Andrade
26/11/2010
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...
GOSTEI 0
Joao Pedro
26/11/2010
boa tarde,
Eu consegui resolve o problema! agora comunicacao esta funcionando 100%
vlw pela ajuda abraço
Eu consegui resolve o problema! agora comunicacao esta funcionando 100%
vlw pela ajuda abraço
GOSTEI 0
Rodrigo Andrade
26/11/2010
Ok... coloca como concluido...
GOSTEI 0
Dyego Carmo
26/11/2010
Resolvido ?
GOSTEI 0
Dyego Carmo
26/11/2010
Utilize o projeto RXTX... eole funciona no Windows 7 !
GOSTEI 0
Joao Pedro
26/11/2010
entao estou utilizando a comm.jar
valeu pela dica
abrazz
valeu pela dica
abrazz
GOSTEI 0
Dyego Carmo
26/11/2010
Deu certo ?
Fico no aguardo !
Fico no aguardo !
GOSTEI 0