Erro na comunicação serial! HELP

9 respostas
W

A eww galera…

Estou fazendo um projeto q comunica atraves da porta serial com um produto aqui da empresa.
Porém estou com dificuldades. Estou tentando criar um fluxo, através da linha:

OutputStream saida =  serial.getOutputStream();

O problema e q quando executo esta linha, ocorre uma exceção :

java.lang.NullPointerException

Alguem sabe p q esta acontecendo isso.Estou usando o linux fedora e API JAVAX.COMM

gratoo

9 Respostas

psandrelli

Coloca mais código, pelo menos o que vem antes dessa linha. Pra galera analisar o que pode estar dando nullpointer.

Rodrigo_Vieira_Pinto

A exceção está sendo disparada nessa linha?

Se estiver, verifique se o objeto “serial” foi instanciado.

Se não for nessa linha, verifique na linha que ela está sendo disparada se algum objeto não foi instanciado.

W

olha..meu codigo inteiro e o seguinte:

public class RWComunication 
{
	InputStream entrada;
	OutputStream saida;
	
	SerialPort serial;
	
	public void rwConfig() throws IOException
	{
		try
		{
			entrada = serial.getInputStream();
			saida = serial.getOutputStream();
		}
		catch(NullPointerException e)
		{
			System.out.println("ERRO :" + e );
            System.exit(0);
		}
	}
	
	public void sendData(int data) throws IOException, InterruptedException
	{
		saida = serial.getOutputStream();
		saida.write(data);
		Thread.sleep(1000);
		saida.flush();		
	}
}

no main, eu chamo o metodo par abrir a porta e ela abre normalmente.
O erro ocorre quando tento cria um fluxo chamando o metodo rwConifg.

Se tivere algum ideia, me ajude.

Grato.

lcegatti

Se o NullPointer ocorre no rwconfig então é seu objeto serial que está nullo, verifique como vc está setando os valores dele.

flwss…

W

entaummm…

naum entendi oq vc quis dizer com “setando os valores dele”??
eu li no java.doc dele q retorna null somente quando a porta nao suporta o envio de dados…

o q sera q pod ser???

gratoo

rdantas

Prezado Werner,

Vc está declarando ‘serial’, mas não está em lugar nenhum instanciando-o. EX.: serial = new SerialPort();

valew!

W

O problema e q essa classe SerialPort e uma classe abstrata…
e naum posso instancia-la… :cry: :cry:

vlw

lcegatti

Tp primeiro vc precisa saber qual porta vc vai pegar, o uso seria ± assim:

int segundos = 5000;
String aplicacaoNome = "Teste"; //Nome da classe que irá abrir a porta
CommPortIdentifier cpi;  
cpi = CommPortIdentifier.getPortIdentifier("COM2");
SerialPort sp = (SerialPort) cpi.open(aplicacaoNome,segundos);

flwss…

Rodrigo_Vieira_Pinto

Tem um tutorial aqui mesmo no GUJ falando sobre comunicação serial. Entre lá e dê uma olhada.

Tá bem explicado, aí vc tira todas essas dúvidas.

Criado 14 de janeiro de 2008
Ultima resposta 14 de jan. de 2008
Respostas 9
Participantes 5