Pessoal eu estou implementando um protocolo de comunicação serial e estou enviando para porta serial com3 uma array de bytes fazendo assim:
SerialCom vetor = new SerialCom();
if ( vetor.PortaExiste("COM3") == true) {
System.out.println("Iniciando comunicação!");
SCom sc = new SCom("COM3",9600,2000);
sc.HabilitarEscrita();
sc.ObterIdDaPorta();
sc.AbrirPorta();
sc.EnviarUmArrayBytes(Pacote.pacote);
sc.FecharCom();
E para ler os dados da porta eu estou fazendo:
SerialCom st2 = new SerialCom();
if ( st2.PortaExiste("COM4") == true) {
System.out.println("Iniciando comunicação!");
SCom sc2 = new SCom("COM4",9600,2000);
sc2.HabilitarLeitura();
sc2.ObterIdDaPorta();
sc2.AbrirPorta();
sc2.LerDados();
System.out.println(sc2.entrada);
sc2.FecharCom();
}
Se precisarem das classes que usei eu coloco aqui tb…
O meu problema é que quando mando imprimir oque foi lido aparece NULL no console… abaixo temos o método LERDADOS
public 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 );
}
}
}
Como faço pra ler a array de byte que enviei?