Unexpected return when converting String to Integer in Java

0

I have a java code in which it receives motor rotation data. In Java with I get a String I need to convert to Integer to make a comparison to know if the engine has switched on or not. When I receive the string I give print on the screen and the value correctly appears, but in the conversion to the integer only it receives the value null, because it will be that the String is correct but when it converts I rtorna null, has another method of conversion?

Follow the code below:

package tanio;

import javax.swing.SwingWorker;

public class obterrpm extends SwingWorker {

    public SerialVirtualCom3 arduino6;
     String valorrpm;
     int valorrpmint;


    protected Object doInBackground() throws Exception {

         SerialVirtualCom3  arduino6 = new SerialVirtualCom3("COM3", 9600,0);

        arduino6.receberDados();



        while(true){
        delay.delay(300);
        valorrpm = arduino6.getPeso();
        //System.out.println(valorrpm); //printa o valor corretamente
        valorrpmint = Integer.parseInt(valorrpm); //conversao para o int

        System.out.println(valorrpmint); //retorno e null
        //chamarTelaPrincipal.rpm.setText(String.format("%s",arduino6.getPeso()));
        //chamarTelaPrincipal.rpm.setText(String.format("%s", valorrpmint));





    }



    }   
}

SerialVirtualCom3

packagetanio;importgnu.io.CommPortIdentifier;importgnu.io.NoSuchPortException;importgnu.io.SerialPort;importgnu.io.SerialPortEvent;importgnu.io.SerialPortEventListener;importjava.io.IOException;importjava.io.InputStream;importjava.io.OutputStream;importjava.net.InetAddress;importjava.net.UnknownHostException;importjava.sql.ResultSet;importjava.util.ArrayList;importjava.util.Iterator;importjavax.swing.JOptionPane;importjavax.swing.SwingWorker;publicclassSerialVirtualCom3implementsRunnable,SerialPortEventListener{publicStringDadoslidos;publicintnodeBytes;privateintbaudrate;privateinttimeout;privateCommPortIdentifiercp;privateSerialPortporta;privateOutputStreamsaida;privateInputStreamentrada;privateThreadthreadLeitura;privatebooleanIDPortaOK;privatebooleanPortaOK;privatebooleanLeitura;privatebooleanEscrita;privateStringPorta;protectedStringpeso;publiccharvalorlido;publicvoidsetPeso(Stringpeso){this.peso=peso;}publicStringgetPeso(){returnpeso;}publicSerialVirtualCom3(Stringp,intb,intt){this.Porta=p;this.baudrate=b;this.timeout=t;}publicvoidHabilitarEscrita(){Escrita=true;Leitura=false;}publicvoidHabilitarLeitura(){Escrita=false;Leitura=true;}//////////////////////////////////////////////////////////*publicvoidObterIdDaPorta(){try{cp=CommPortIdentifier.getPortIdentifier(Porta);if(cp!=null){//System.out.println("Sucesso");


                    IDPortaOK = true; 

        //            ligado = 0;
            //        desligado = 1;

                }
                }

            /*
                IDPortaOK = false;
                ligado = 1;
                desligado = 0;
                //ligado = 1;
                //desligado = 0
                }
                */          
            catch (NoSuchPortException e) {

                e.printStackTrace();

                //System.out.println("Nao ha Conexao!");
              //  JOptionPane.showMessageDialog(null, "Houve um erro na Conexão!\nVerifique o cabo usb!");
                //teste de tratamento desta excessao

                //ligado = 1;
                //desligado = 0;
                //ObterIdDaPorta();
                //IDPortaOK = false;


            }
        }



//*/

//////////////////////////////////////////////////////

/*

public void ObterIdDaPorta(){

    boolean flag = false;

//  while (flag == false ){

        try {

        cp = CommPortIdentifier.getPortIdentifier(Porta);

        if ( cp == null ) {

            System.out.println("Erro na porta");

            IDPortaOK = false;
            JOptionPane.showMessageDialog(null, "Houve um erro na Conexão!\nVerifique o cabo usb!");
           // FecharCom();

            //ObterIdDaPorta();

            //System.exit(1);

        }

        IDPortaOK = true;
 //       flag = true;

    } catch (Exception e) {

        e.printStackTrace();
        //System.out.println("Erro obtendo ID da porta: " + e);

           JOptionPane.showMessageDialog(null, "Houve um erro na Conexão!\nVerifique o cabo usb!");
            //JOptionPane.showMessageDialog(null, "Houve um erro na Conexão!");
        IDPortaOK = false;
        //FecharCom();
        //flag = false;


        //ObterIdDaPorta();
        //System.exit(1);
    }
    }
  //  }
//}
//}



*/

/*
public void AbrirPorta(){

    try {


        porta = (SerialPort)cp.open("SerialComLeitura", timeout);

        PortaOK = true;

        //configurar parâmetros

        porta.setSerialPortParams(baudrate,

        porta.DATABITS_8,

        porta.STOPBITS_1,

        porta.PARITY_NONE);

        porta.setFlowControlMode(SerialPort.FLOWCONTROL_NONE);

    }catch(Exception e){

        e.printStackTrace();
        //PortaOK = false;

        //System.out.println("Erro abrindo comunicação: " + e);
        JOptionPane.showMessageDialog(null, "Houve um erro na Conexão!\nVerifique o cabo usb!");
        FecharCom();

        //System.exit(1);

    }

}

*/







        public void AbrirPorta(){



               try {

                porta = (SerialPort)cp.open("SerialComLeitura", timeout);

                if (porta != null) {


                //configurar parâmetros

                porta.setSerialPortParams(baudrate,

                porta.DATABITS_8,

                porta.STOPBITS_1,

                porta.PARITY_NONE);

                porta.setFlowControlMode(SerialPort.FLOWCONTROL_NONE);

              //  System.out.println("Sucesso no tratamento do erro de abrir porta!");

                PortaOK = true;



                }
    }
            catch(Exception e){


                e.printStackTrace();

                //System.out.println("houve um erro ao tratar a excessao do abrir porta!");
                //JOptionPane.showMessageDialog(null, "Houve um erro na Conexão!\nVerifique o cabo usb!");
                //teste de tratamento desta excessao

                //ligado = 1;
                //desligado = 0;
                //FecharCom();
                //ObterIdDaPorta();
                //AbrirPorta();

                //ObterIdDaPorta();
                //AbrirPorta();
                //IDPortaOK = false;


                /*
                e.printStackTrace();
                //PortaOK = false;

                //System.out.println("Erro abrindo comunicação: " + e);
                JOptionPane.showMessageDialog(null, "Houve um erro na Conexão!\nVerifique o cabo usb!");
                FecharCom();
                */
                //System.exit(1);

            }

        }






























public void LerDados(){

    if (Escrita == false){

        try {

            entrada = porta.getInputStream();

        } catch (Exception e) {
            e.printStackTrace();
             //System.out.println("Erro de stream: " + e);
            //JOptionPane.showMessageDialog(null, "Houve um erro na Conexão!\nVerifique o cabo usb!");
            //FecharCom();
            //AbrirPorta();
            //LerDados();
          //  System.exit(1);

        }

        try {

            porta.addEventListener(this);

        } catch (Exception e) {
            e.printStackTrace();

            //System.out.println("Erro de listener: " + e);
            //JOptionPane.showMessageDialog(null, "Houve um erro na Conexão!\nVerifique o cabo usb!");
            //FecharCom();
          //  AbrirPorta();
        //    LerDados();
            //System.exit(1);

        }

        porta.notifyOnDataAvailable(true);

        try {

            threadLeitura = new Thread(this);

            threadLeitura.start();

           run();

        } catch (Exception e) {
            e.printStackTrace();
            //System.out.println("Erro de Thred: " + e);
         //   JOptionPane.showMessageDialog(null, "Houve um erro na Conexão!\nVerifique o cabo usb!");
           // FecharCom();
            //AbrirPorta();
            //LerDados();
        }

    }

}

public void escrever(int msg){

    if (Escrita==true) {

        try {

            saida = porta.getOutputStream();

            //System.out.println("FLUXO OK!");

        } catch (Exception e) {
            e.printStackTrace();
           System.out.println("Erro.STATUS: " + e );
            //JOptionPane.showMessageDialog(null, "Houve um erro na Conexão!\nVerifique o cabo usb!\nReconecte o Cabo e Aguarde alguns segundos!");
            //FecharCom();

            //enviarDados(msg);
        }

        try {

            //System.out.println("Enviando um byte para " + Porta );

            //System.out.println("Enviando : " + msg );

            saida.write(msg);

            Thread.sleep(100);

            saida.flush();

        } catch (Exception e) {
            e.printStackTrace();
            //System.out.println("Houve um erro durante o envio. ");

            System.out.println("STATUS: " + e );
            //JOptionPane.showMessageDialog(null, "Houve um erro na Conexão!\nVerifique o cabo usb!");
            //FecharCom();
            //System.exit(1);

        }

    } else {

       // System.exit(1);
        //JOptionPane.showMessageDialog(null, "Houve um erro na Conexão!\nVerifique o cabo usb!");
        //FecharCom();
    }

}

public void run(){

    try {

        Thread.sleep(5);

    } catch (Exception e) {
        e.printStackTrace();

        //System.out.println("Erro de Thred: " + e);
        //JOptionPane.showMessageDialog(null, "Houve um erro na Conexão!\nVerifique o cabo usb!");
        //FecharCom(); 
        //run();
    }

}

public void serialEvent(SerialPortEvent ev){        

    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);
          //          JOptionPane.showMessageDialog(null, "Houve um erro na Conexão!\nVerifique o cabo usb!");

                }

            }

            setPeso(new String(bufferLeitura));

            //System.out.println(getPeso());



        break;

    }

}

public void FecharCom(){

    try {

        porta.close();

    } catch (Exception e) {
        e.printStackTrace();
     //   System.out.println("Erro fechando porta: " + e);
      //  JOptionPane.showMessageDialog(null, "Houve um erro na Conexão!\nVerifique o cabo usb!");
       // FecharCom();
//        System.exit(0);

    }

}

public String obterPorta(){

    return Porta;

}



public int obterBaudrate(){

    return baudrate;

}



public void enviarDados(int msg)
{
    HabilitarEscrita();


    ObterIdDaPorta();

    AbrirPorta();

    escrever(msg);


    FecharCom();
}


String receberDados(){

    HabilitarLeitura();
    ObterIdDaPorta();
    AbrirPorta();
    LerDados();
    return getPeso();
}


}
    
asked by anonymous 03.10.2017 / 23:00

0 answers