<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress/2.0.7" -->
<rss version="2.0" 
	xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
	<title>Comments on: Escrevendo na Porta Serial com Java</title>
	<link>http://www.rafaelquines.com/blog/2007/01/escrevendo-na-porta-serial-com-java/</link>
	<description>Blog do Rafael Quines</description>
	<pubDate>Wed, 08 Sep 2010 10:01:40 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.0.7</generator>

	<item>
		<title>by: Diogo Lucena</title>
		<link>http://www.rafaelquines.com/blog/2007/01/escrevendo-na-porta-serial-com-java/#comment-30141</link>
		<pubDate>Sat, 29 May 2010 14:52:29 +0000</pubDate>
		<guid>http://www.rafaelquines.com/blog/2007/01/escrevendo-na-porta-serial-com-java/#comment-30141</guid>
					<description>Vocês poderiam me ajudar? Como mexer em uma porta usb com conector bluetooth através de um programa de celular.</description>
		<content:encoded><![CDATA[<p>Vocês poderiam me ajudar? Como mexer em uma porta usb com conector bluetooth através de um programa de celular.
</p>
]]></content:encoded>
				</item>
	<item>
		<title>by: Rafael Quines</title>
		<link>http://www.rafaelquines.com/blog/2007/01/escrevendo-na-porta-serial-com-java/#comment-24182</link>
		<pubDate>Sat, 23 May 2009 18:34:24 +0000</pubDate>
		<guid>http://www.rafaelquines.com/blog/2007/01/escrevendo-na-porta-serial-com-java/#comment-24182</guid>
					<description>Olá Eduardo. É o seguinte, quando vc está aguardando alguma escrita na porta serial, nao precisa especificamente "aguardar".. qnd vc chama onDataAvaiable e setListener, vc está configurando uma interrupção, que qnd vier algo na porta serial, automaticamente irá ser chamado esse metodo.

Bom, qnd aprendi a manipular a porta serial, segui o seguinte exemplo: http://www.guj.com.br/article.show.logic?id=148

Abraço</description>
		<content:encoded><![CDATA[<p>Olá Eduardo. É o seguinte, quando vc está aguardando alguma escrita na porta serial, nao precisa especificamente &#8220;aguardar&#8221;.. qnd vc chama onDataAvaiable e setListener, vc está configurando uma interrupção, que qnd vier algo na porta serial, automaticamente irá ser chamado esse metodo.</p>
<p>Bom, qnd aprendi a manipular a porta serial, segui o seguinte exemplo: <a href="http://www.guj.com.br/article.show.logic?id=148" rel="nofollow">http://www.guj.com.br/article.show.logic?id=148</a></p>
<p>Abraço
</p>
]]></content:encoded>
				</item>
	<item>
		<title>by: Eduardo Farias</title>
		<link>http://www.rafaelquines.com/blog/2007/01/escrevendo-na-porta-serial-com-java/#comment-24177</link>
		<pubDate>Sat, 23 May 2009 16:34:14 +0000</pubDate>
		<guid>http://www.rafaelquines.com/blog/2007/01/escrevendo-na-porta-serial-com-java/#comment-24177</guid>
					<description>Ficarei muito grato se vc puder me ajudar.
Obrigado.

Eduardo Farias.</description>
		<content:encoded><![CDATA[<p>Ficarei muito grato se vc puder me ajudar.<br />
Obrigado.</p>
<p>Eduardo Farias.
</p>
]]></content:encoded>
				</item>
	<item>
		<title>by: Eduardo Farias</title>
		<link>http://www.rafaelquines.com/blog/2007/01/escrevendo-na-porta-serial-com-java/#comment-24176</link>
		<pubDate>Sat, 23 May 2009 16:31:47 +0000</pubDate>
		<guid>http://www.rafaelquines.com/blog/2007/01/escrevendo-na-porta-serial-com-java/#comment-24176</guid>
					<description>Continuando:

protected void ImprimePortas(){
for (int i = 0 ; i </description>
		<content:encoded><![CDATA[<p>Continuando:</p>
<p>protected void ImprimePortas(){<br />
for (int i = 0 ; i
</p>
]]></content:encoded>
				</item>
	<item>
		<title>by: Eduardo Farias</title>
		<link>http://www.rafaelquines.com/blog/2007/01/escrevendo-na-porta-serial-com-java/#comment-24175</link>
		<pubDate>Sat, 23 May 2009 16:30:25 +0000</pubDate>
		<guid>http://www.rafaelquines.com/blog/2007/01/escrevendo-na-porta-serial-com-java/#comment-24175</guid>
					<description>package SrComm;

import java.*;
import gnu.io.CommPortIdentifier;
import java.util.*;

public class SerialComm {

//*********************************
//Variáveis
//*********************************
//variáveis para identificar portas
protected String[] portas;
protected Enumeration listaDePortas;

//construtor
public SerialComm(){
listaDePortas = CommPortIdentifier.getPortIdentifiers();
}

//retorna as portas disponíveis
public String[] ObterPortas(){
return portas;
}

//Copia portas para um Array
protected void ListarPortas(){
int i = 0;
portas = new String[10];
while (listaDePortas.hasMoreElements()) {
CommPortIdentifier ips =
(CommPortIdentifier)listaDePortas.nextElement();
portas[i] = ips.getName();
i++;
}
}

//pesquisa se a Porta existe
public boolean PortaExiste(String COMp){
String temp;
boolean e = false;
while (listaDePortas.hasMoreElements()) {
CommPortIdentifier ips =
(CommPortIdentifier)listaDePortas.nextElement();
temp = ips.getName();
if (temp.equals(COMp)== true) {
e = true;
}
}
return e;
}

//imprime as portas disponíveis
protected void ImprimePortas(){
for (int i = 0 ; i </description>
		<content:encoded><![CDATA[<p>package SrComm;</p>
<p>import java.*;<br />
import gnu.io.CommPortIdentifier;<br />
import java.util.*;</p>
<p>public class SerialComm {</p>
<p>//*********************************<br />
//Variáveis<br />
//*********************************<br />
//variáveis para identificar portas<br />
protected String[] portas;<br />
protected Enumeration listaDePortas;</p>
<p>//construtor<br />
public SerialComm(){<br />
listaDePortas = CommPortIdentifier.getPortIdentifiers();<br />
}</p>
<p>//retorna as portas disponíveis<br />
public String[] ObterPortas(){<br />
return portas;<br />
}</p>
<p>//Copia portas para um Array<br />
protected void ListarPortas(){<br />
int i = 0;<br />
portas = new String[10];<br />
while (listaDePortas.hasMoreElements()) {<br />
CommPortIdentifier ips =<br />
(CommPortIdentifier)listaDePortas.nextElement();<br />
portas[i] = ips.getName();<br />
i++;<br />
}<br />
}</p>
<p>//pesquisa se a Porta existe<br />
public boolean PortaExiste(String COMp){<br />
String temp;<br />
boolean e = false;<br />
while (listaDePortas.hasMoreElements()) {<br />
CommPortIdentifier ips =<br />
(CommPortIdentifier)listaDePortas.nextElement();<br />
temp = ips.getName();<br />
if (temp.equals(COMp)== true) {<br />
e = true;<br />
}<br />
}<br />
return e;<br />
}</p>
<p>//imprime as portas disponíveis<br />
protected void ImprimePortas(){<br />
for (int i = 0 ; i
</p>
]]></content:encoded>
				</item>
	<item>
		<title>by: Eduardo Farias</title>
		<link>http://www.rafaelquines.com/blog/2007/01/escrevendo-na-porta-serial-com-java/#comment-24174</link>
		<pubDate>Sat, 23 May 2009 16:29:59 +0000</pubDate>
		<guid>http://www.rafaelquines.com/blog/2007/01/escrevendo-na-porta-serial-com-java/#comment-24174</guid>
					<description>Essas são as classes que usei:

package SrComm;

import java.*;
import gnu.io.CommPortIdentifier;
import gnu.io.SerialPort;
import gnu.io.SerialPortEvent;
import gnu.io.SerialPortEventListener;
import java.io.*;



//classe Principal
public class SComm implements Runnable, SerialPortEventListener {

//propriedades
    private 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;
    protected String peso;

//indicadores
    private boolean IDPortaOK; //true porta EXISTE
    private boolean PortaOK;// true porta aberta
    private boolean Leitura;
    private boolean Escrita;


    public void setPeso(String peso){
        this.peso = peso;

}

public String getPeso(){
        return peso;

}

//construtor default paridade : par
//baudrate: 9600 bps stopbits: 2 COM 1
    public SComm() {
        Porta = "COM1";
        baudrate = 9600;
        timeout = 1000;
    }

//um Objeto ComObj é passado ao construtor
//com detalhes de qual porta abrir
//e informações sobre configurações
    public SComm(String p, int b, int t) {
        this.Porta = p;
        this.baudrate = b;
        this.timeout = t;
    }
//habilita escrita de dados
    public void HabilitarEscrita() {

         System.out.println("Teste Habilita Escrita1");

        Escrita = true;
        Leitura = false;
    }

//habilita leitura de dados
    public void HabilitarLeitura() {

         System.out.println("Teste Habilita Leitura2");

        Escrita = false;
        Leitura = true;
    }

//Obtém o ID da PORTA
    public void ObterIdDaPorta() {

         System.out.println("Teste Obeter Porta3");

        try {
            cp = CommPortIdentifier.getPortIdentifier(Porta);
            if (cp == null) {
                System.out.println("Não existem portas disponíveis.");
                System.out.println("ERRO!Abortando...");
                IDPortaOK = false;
                System.exit(1);
            }
            IDPortaOK = true;
        } catch (Exception e) {
            System.out.println("A porta " + Porta + " não existe" + e);
            IDPortaOK = false;
            System.exit(1);
        }
    }

//Abre a comunicação da porta
    public void AbrirPorta() {

         System.out.println("Teste Abrir Porta 4");

        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);
           porta.setFlowControlMode(SerialPort.FLOWCONTROL_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 serial
    public void EnviarUmaString(String msg) {

         System.out.println("Teste Enviar String 5");

        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 serial
    public void LerDados() {

         System.out.println("Teste Ler dados 6");

        if (Escrita == false) {
            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 leitura
    public void run() {

        System.out.println("Teste Run 7");

        try {
            Thread.sleep(5000);
        } catch (Exception e) {
            System.out.println("Erro. Status = " + e);
        }
    }

    public void serialEvent(SerialPortEvent ev){

         System.out.println("Teste Serial Event 8");

        StringBuffer bufferLeitura = new StringBuffer();
        int novoDado = 0;
            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:

                //Novo algoritmo de leitura.
                while(novoDado != -1){
                    try{
                        novoDado = entrada.read();
                        if(novoDado == -1){
                            break;
                        }
                        if('\r' == (char)novoDado){
                            bufferLeitura.append('\n');
                        }else{
                            bufferLeitura.append((char)novoDado);
                        }
                    }catch(IOException ioe){
                        System.out.println("Erro de leitura serial: " + ioe);
                    }
                }
                setPeso(new String(bufferLeitura));
                System.out.println(getPeso());
            break;
        }
}

//gerenciador de eventos de leitura na serial
  //  public 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() &#62; 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ão
    public void FecharCom() {

         System.out.println("Teste Fechar Com 9");

        try {
            porta.close();
            System.out.println("CONEXAO FECHADA&#62;&#62;FIM..");
        } catch (Exception e) {
            System.out.println("ERRO AO FECHAR. STATUS: " + e);
            System.exit(0);
        }
    }

//Acessores
    public String obterPorta() {
        return Porta;
    }

    public int obterBaudrate() {
        return baudrate;
    }
}</description>
		<content:encoded><![CDATA[<p>Essas são as classes que usei:</p>
<p>package SrComm;</p>
<p>import java.*;<br />
import gnu.io.CommPortIdentifier;<br />
import gnu.io.SerialPort;<br />
import gnu.io.SerialPortEvent;<br />
import gnu.io.SerialPortEventListener;<br />
import java.io.*;</p>
<p>//classe Principal<br />
public class SComm implements Runnable, SerialPortEventListener {</p>
<p>//propriedades<br />
    private String Porta;<br />
    public String Dadoslidos;<br />
    public int nodeBytes;<br />
    private int baudrate;<br />
    private int timeout;<br />
    private CommPortIdentifier cp;<br />
    private SerialPort porta;<br />
    private OutputStream saida;<br />
    private InputStream entrada;<br />
    private Thread threadLeitura;<br />
    protected String peso;</p>
<p>//indicadores<br />
    private boolean IDPortaOK; //true porta EXISTE<br />
    private boolean PortaOK;// true porta aberta<br />
    private boolean Leitura;<br />
    private boolean Escrita;</p>
<p>    public void setPeso(String peso){<br />
        this.peso = peso;</p>
<p>}</p>
<p>public String getPeso(){<br />
        return peso;</p>
<p>}</p>
<p>//construtor default paridade : par<br />
//baudrate: 9600 bps stopbits: 2 COM 1<br />
    public SComm() {<br />
        Porta = &#8220;COM1&#8243;;<br />
        baudrate = 9600;<br />
        timeout = 1000;<br />
    }</p>
<p>//um Objeto ComObj é passado ao construtor<br />
//com detalhes de qual porta abrir<br />
//e informações sobre configurações<br />
    public SComm(String p, int b, int t) {<br />
        this.Porta = p;<br />
        this.baudrate = b;<br />
        this.timeout = t;<br />
    }<br />
//habilita escrita de dados<br />
    public void HabilitarEscrita() {</p>
<p>         System.out.println(&#8221;Teste Habilita Escrita1&#8243;);</p>
<p>        Escrita = true;<br />
        Leitura = false;<br />
    }</p>
<p>//habilita leitura de dados<br />
    public void HabilitarLeitura() {</p>
<p>         System.out.println(&#8221;Teste Habilita Leitura2&#8243;);</p>
<p>        Escrita = false;<br />
        Leitura = true;<br />
    }</p>
<p>//Obtém o ID da PORTA<br />
    public void ObterIdDaPorta() {</p>
<p>         System.out.println(&#8221;Teste Obeter Porta3&#8243;);</p>
<p>        try {<br />
            cp = CommPortIdentifier.getPortIdentifier(Porta);<br />
            if (cp == null) {<br />
                System.out.println(&#8221;Não existem portas disponíveis.&#8221;);<br />
                System.out.println(&#8221;ERRO!Abortando&#8230;&#8221;);<br />
                IDPortaOK = false;<br />
                System.exit(1);<br />
            }<br />
            IDPortaOK = true;<br />
        } catch (Exception e) {<br />
            System.out.println(&#8221;A porta &#8221; + Porta + &#8221; não existe&#8221; + e);<br />
            IDPortaOK = false;<br />
            System.exit(1);<br />
        }<br />
    }</p>
<p>//Abre a comunicação da porta<br />
    public void AbrirPorta() {</p>
<p>         System.out.println(&#8221;Teste Abrir Porta 4&#8243;);</p>
<p>        try {<br />
            porta = (SerialPort) cp.open(&#8221;SComm&#8221;, timeout);<br />
            PortaOK = true;<br />
            System.out.println(&#8221;Porta aberta com sucesso!&#8221;);</p>
<p>//configurar parâmetros<br />
           porta.setSerialPortParams(baudrate,<br />
                    porta.DATABITS_8,<br />
                    porta.STOPBITS_2,<br />
                    porta.PARITY_NONE);<br />
           porta.setFlowControlMode(SerialPort.FLOWCONTROL_NONE);<br />
       } catch (Exception e) {<br />
            PortaOK = false;<br />
            System.out.println(&#8221;Erro ao abrir a porta! STATUS: &#8221; + e);<br />
            System.exit(1);<br />
        }<br />
    }</p>
<p>//função que envie um bit para a porta serial<br />
    public void EnviarUmaString(String msg) {</p>
<p>         System.out.println(&#8221;Teste Enviar String 5&#8243;);</p>
<p>        if (Escrita == true) {<br />
            try {<br />
                saida = porta.getOutputStream();<br />
                System.out.println(&#8221;FLUXO OK!&#8221;);<br />
            } catch (Exception e) {<br />
                System.out.println(&#8221;Erro.STATUS: &#8221; + e);<br />
            }<br />
            try {<br />
                System.out.println(&#8221;Enviando um byte para &#8221; + Porta);<br />
                System.out.println(&#8221;Enviando : &#8221; + msg);<br />
                saida.write(msg.getBytes());<br />
                Thread.sleep(100);<br />
                saida.flush();<br />
            } catch (Exception e) {<br />
                System.out.println(&#8221;Houve um erro durante o envio. &#8220;);<br />
                System.out.println(&#8221;STATUS: &#8221; + e);<br />
                System.exit(1);<br />
            }<br />
        } else {<br />
            System.exit(1);<br />
        }<br />
    }</p>
<p>//leitura de dados na serial<br />
    public void LerDados() {</p>
<p>         System.out.println(&#8221;Teste Ler dados 6&#8243;);</p>
<p>        if (Escrita == false) {<br />
            try {<br />
                entrada = porta.getInputStream();<br />
                System.out.println(&#8221;FLUXO OK!&#8221;);<br />
            } catch (Exception e) {<br />
                System.out.println(&#8221;Erro.STATUS: &#8221; + e);<br />
                System.exit(1);<br />
            }<br />
            try {<br />
                porta.addEventListener(this);<br />
                System.out.println(&#8221;SUCESSO. Porta aguardando&#8230;&#8221;);<br />
            } catch (Exception e) {<br />
                System.out.println(&#8221;Erro ao criar listener: &#8220;);<br />
                System.out.println(&#8221;STATUS: &#8221; + e);<br />
                System.exit(1);<br />
            }<br />
            porta.notifyOnDataAvailable(true);<br />
            try {<br />
                threadLeitura = new Thread(this);<br />
                threadLeitura.start();</p>
<p>            } catch (Exception e) {<br />
                System.out.println(&#8221;Erro ao iniciar leitura: &#8221; + e);<br />
            }<br />
        }<br />
    }</p>
<p>//método RUN da thread de leitura<br />
    public void run() {</p>
<p>        System.out.println(&#8221;Teste Run 7&#8243;);</p>
<p>        try {<br />
            Thread.sleep(5000);<br />
        } catch (Exception e) {<br />
            System.out.println(&#8221;Erro. Status = &#8221; + e);<br />
        }<br />
    }</p>
<p>    public void serialEvent(SerialPortEvent ev){</p>
<p>         System.out.println(&#8221;Teste Serial Event 8&#8243;);</p>
<p>        StringBuffer bufferLeitura = new StringBuffer();<br />
        int novoDado = 0;<br />
            switch (ev.getEventType()) {<br />
            case SerialPortEvent.BI:<br />
            case SerialPortEvent.OE:<br />
            case SerialPortEvent.FE:<br />
            case SerialPortEvent.PE:<br />
            case SerialPortEvent.CD:<br />
            case SerialPortEvent.CTS:<br />
            case SerialPortEvent.DSR:<br />
            case SerialPortEvent.RI:<br />
            case SerialPortEvent.OUTPUT_BUFFER_EMPTY:<br />
            break;<br />
            case SerialPortEvent.DATA_AVAILABLE:</p>
<p>                //Novo algoritmo de leitura.<br />
                while(novoDado != -1){<br />
                    try{<br />
                        novoDado = entrada.read();<br />
                        if(novoDado == -1){<br />
                            break;<br />
                        }<br />
                        if(&#8217;\r&#8217; == (char)novoDado){<br />
                            bufferLeitura.append(&#8217;\n&#8217;);<br />
                        }else{<br />
                            bufferLeitura.append((char)novoDado);<br />
                        }<br />
                    }catch(IOException ioe){<br />
                        System.out.println(&#8221;Erro de leitura serial: &#8221; + ioe);<br />
                    }<br />
                }<br />
                setPeso(new String(bufferLeitura));<br />
                System.out.println(getPeso());<br />
            break;<br />
        }<br />
}</p>
<p>//gerenciador de eventos de leitura na serial<br />
  //  public void serialEvent(SerialPortEvent ev) {<br />
  //      switch (ev.getEventType()) {<br />
  //          case SerialPortEvent.BI:<br />
  //          case SerialPortEvent.OE:<br />
  //          case SerialPortEvent.FE:<br />
  //          case SerialPortEvent.PE:<br />
  //          case SerialPortEvent.CD:<br />
  //          case SerialPortEvent.CTS:<br />
  //          case SerialPortEvent.DSR:<br />
  //          case SerialPortEvent.RI:<br />
  //          case SerialPortEvent.OUTPUT_BUFFER_EMPTY:<br />
  //              break;<br />
  //          case SerialPortEvent.DATA_AVAILABLE:<br />
  //              byte[] bufferLeitura = new byte[20];<br />
  //              try {<br />
  //                  while (entrada.available() &gt; 0) {<br />
  //                      nodeBytes = entrada.read(bufferLeitura);<br />
  //                  }<br />
  //                 String Dadoslidos = new String(bufferLeitura);<br />
  //                  if (bufferLeitura.length == 0) {<br />
  //                      System.out.println(&#8221;Nada lido!&#8221;);<br />
  //                  } else if (bufferLeitura.length == 1) {<br />
  //                      System.out.println(&#8221;Apenas um byte foi lido!&#8221;);<br />
  //                  } else {<br />
  //                      System.out.println(Dadoslidos);<br />
  //                  }<br />
  //              } catch (Exception e) {<br />
  //                 System.out.println(&#8221;Erro durante a leitura: &#8221; + e);<br />
  //              }<br />
  //              System.out.println(&#8221;n.o de bytes lidos : &#8221; + nodeBytes);<br />
  //              break;<br />
  //    }<br />
// }</p>
<p>//função que fecha a conexão<br />
    public void FecharCom() {</p>
<p>         System.out.println(&#8221;Teste Fechar Com 9&#8243;);</p>
<p>        try {<br />
            porta.close();<br />
            System.out.println(&#8221;CONEXAO FECHADA&gt;&gt;FIM..&#8221;);<br />
        } catch (Exception e) {<br />
            System.out.println(&#8221;ERRO AO FECHAR. STATUS: &#8221; + e);<br />
            System.exit(0);<br />
        }<br />
    }</p>
<p>//Acessores<br />
    public String obterPorta() {<br />
        return Porta;<br />
    }</p>
<p>    public int obterBaudrate() {<br />
        return baudrate;<br />
    }<br />
}
</p>
]]></content:encoded>
				</item>
	<item>
		<title>by: Eduardo Farias</title>
		<link>http://www.rafaelquines.com/blog/2007/01/escrevendo-na-porta-serial-com-java/#comment-24173</link>
		<pubDate>Sat, 23 May 2009 16:28:53 +0000</pubDate>
		<guid>http://www.rafaelquines.com/blog/2007/01/escrevendo-na-porta-serial-com-java/#comment-24173</guid>
					<description>Cara eu não sou programador. Acho que o meu erro está no Main. O meu código escreve e depois tenta ler algum dado da serial. Vc poderia me dar alguma sujestão de código que fica esperando receber dados da serial? Consigo escrever numa boa, mas não to conseguindo testar a leitura.



package comunicaçãoserial2;

import java.*;
import SrComm.SComm;
import SrComm.SerialComm;



public class Main extends SerialComm  {
public Main(){
super();
}

public static void main(String[] args){


Main st = new Main();
if ( st.PortaExiste("COM4") == true) {
System.out.println("Iniciando comunicação!");
SComm sc = new SComm("COM4",9600,2000);
sc.HabilitarEscrita();
sc.ObterIdDaPorta();
sc.AbrirPorta();
sc.EnviarUmaString("Eu sou o Cara!");
sc.FecharCom();
}

Main st2 = new Main();
if ( st2.PortaExiste("COM4") == true) {
System.out.println("Iniciando comunicação!");
SComm sc2 = new SComm("COM4",9600,2000);
sc2.HabilitarLeitura();
sc2.ObterIdDaPorta();
sc2.AbrirPorta();
sc2.LerDados();

try {
Thread.sleep(1000);
} catch (InterruptedException ex) {
System.out.println("Erro na Thread: " + ex);
}

sc2.FecharCom();

}
}
}</description>
		<content:encoded><![CDATA[<p>Cara eu não sou programador. Acho que o meu erro está no Main. O meu código escreve e depois tenta ler algum dado da serial. Vc poderia me dar alguma sujestão de código que fica esperando receber dados da serial? Consigo escrever numa boa, mas não to conseguindo testar a leitura.</p>
<p>package comunicaçãoserial2;</p>
<p>import java.*;<br />
import SrComm.SComm;<br />
import SrComm.SerialComm;</p>
<p>public class Main extends SerialComm  {<br />
public Main(){<br />
super();<br />
}</p>
<p>public static void main(String[] args){</p>
<p>Main st = new Main();<br />
if ( st.PortaExiste(&#8221;COM4&#8243;) == true) {<br />
System.out.println(&#8221;Iniciando comunicação!&#8221;);<br />
SComm sc = new SComm(&#8221;COM4&#8243;,9600,2000);<br />
sc.HabilitarEscrita();<br />
sc.ObterIdDaPorta();<br />
sc.AbrirPorta();<br />
sc.EnviarUmaString(&#8221;Eu sou o Cara!&#8221;);<br />
sc.FecharCom();<br />
}</p>
<p>Main st2 = new Main();<br />
if ( st2.PortaExiste(&#8221;COM4&#8243;) == true) {<br />
System.out.println(&#8221;Iniciando comunicação!&#8221;);<br />
SComm sc2 = new SComm(&#8221;COM4&#8243;,9600,2000);<br />
sc2.HabilitarLeitura();<br />
sc2.ObterIdDaPorta();<br />
sc2.AbrirPorta();<br />
sc2.LerDados();</p>
<p>try {<br />
Thread.sleep(1000);<br />
} catch (InterruptedException ex) {<br />
System.out.println(&#8221;Erro na Thread: &#8221; + ex);<br />
}</p>
<p>sc2.FecharCom();</p>
<p>}<br />
}<br />
}
</p>
]]></content:encoded>
				</item>
	<item>
		<title>by: Rafael Quines</title>
		<link>http://www.rafaelquines.com/blog/2007/01/escrevendo-na-porta-serial-com-java/#comment-24156</link>
		<pubDate>Sat, 23 May 2009 03:57:57 +0000</pubDate>
		<guid>http://www.rafaelquines.com/blog/2007/01/escrevendo-na-porta-serial-com-java/#comment-24156</guid>
					<description>Olá Eduardo. Teria que dar uma analisada no seu código. Mas normalmente o que faço é usar um adaptador USBxSerial,e ligar o TX no RX pra testar, assim, tudo o que eu escrevo, eu recebo tb. Mas a resposta é nao, vc nao precisa ter um dispositivo, com o Hyperterminal deveria funcionar, inclusive já fiz isso. Vc implementou o método serialEvent? como disse, teria que dar uma olhada no código..

abraço</description>
		<content:encoded><![CDATA[<p>Olá Eduardo. Teria que dar uma analisada no seu código. Mas normalmente o que faço é usar um adaptador USBxSerial,e ligar o TX no RX pra testar, assim, tudo o que eu escrevo, eu recebo tb. Mas a resposta é nao, vc nao precisa ter um dispositivo, com o Hyperterminal deveria funcionar, inclusive já fiz isso. Vc implementou o método serialEvent? como disse, teria que dar uma olhada no código..</p>
<p>abraço
</p>
]]></content:encoded>
				</item>
	<item>
		<title>by: Eduardo Farias</title>
		<link>http://www.rafaelquines.com/blog/2007/01/escrevendo-na-porta-serial-com-java/#comment-24128</link>
		<pubDate>Fri, 22 May 2009 02:45:55 +0000</pubDate>
		<guid>http://www.rafaelquines.com/blog/2007/01/escrevendo-na-porta-serial-com-java/#comment-24128</guid>
					<description>Cara me tira uma duvida!!!
Fiz um código baseado nos arquivos que encontrei na Net para enviar e ler dados pela serial utilizando a API RxTx. Consegui testar a escrita de dados utilizando o Virtual Serial Port, ou seja, criava um par de portas conectadas virtualmente e enviava dados de uma porta pra outra(NetBeans e Hiperterminal).O problema é que não estou conseguindo ler no NetBeans que eu escrevo no Hiperterminal, ai vai a pergunta: Para que eu possa efetuar a leitura eu tenho que ter um dispositivo conectado a porta serial ou estou com algum problema de código?</description>
		<content:encoded><![CDATA[<p>Cara me tira uma duvida!!!<br />
Fiz um código baseado nos arquivos que encontrei na Net para enviar e ler dados pela serial utilizando a API RxTx. Consegui testar a escrita de dados utilizando o Virtual Serial Port, ou seja, criava um par de portas conectadas virtualmente e enviava dados de uma porta pra outra(NetBeans e Hiperterminal).O problema é que não estou conseguindo ler no NetBeans que eu escrevo no Hiperterminal, ai vai a pergunta: Para que eu possa efetuar a leitura eu tenho que ter um dispositivo conectado a porta serial ou estou com algum problema de código?
</p>
]]></content:encoded>
				</item>
	<item>
		<title>by: Rafael Quines</title>
		<link>http://www.rafaelquines.com/blog/2007/01/escrevendo-na-porta-serial-com-java/#comment-22527</link>
		<pubDate>Sun, 22 Mar 2009 20:49:41 +0000</pubDate>
		<guid>http://www.rafaelquines.com/blog/2007/01/escrevendo-na-porta-serial-com-java/#comment-22527</guid>
					<description>Blz. Estou a disposição p/ eventuais dúvidas...

Abraço</description>
		<content:encoded><![CDATA[<p>Blz. Estou a disposição p/ eventuais dúvidas&#8230;</p>
<p>Abraço
</p>
]]></content:encoded>
				</item>
</channel>
</rss>
