hc-05在TextVieww中显示传入的数据

时间:2017-08-25 06:37:24

标签: java android mobile bluetooth

我已经在堆栈上搜索了所有主题,我仍然坚持使用它。

我尝试做的是首先通过蓝牙从微控制器显示输入数据到TextView strDlugosc和strLenght。

之后的下一步将所有数据分成温度和电压TextViews。

我不知道它继续发生它没有显示它......

请帮帮我

//buttony
Button b_Onled1, b_Onled2, b_Offled1, b_Offled2;
TextView temp_1, temp_2, nap_1, nap_2, strLenght, strDlugosc;
String address = null;


private ProgressDialog progress;
BluetoothAdapter Bta = null;
BluetoothSocket btSocket = null;
private boolean isBtConnected = false;
final int handlerState = 0;
protected static final int SUCCESS_CONNECT = 0;
protected static final int MESSAGE_READ = 1;

//SPP UUID
static final UUID mojeUUID = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB");


@Override
protected void onCreate(final Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_kontrola__led);

    Intent newint = getIntent();
    address = newint.getStringExtra(MainActivity.EXTRA_ADDRESS);


    //wywolanie
    b_Onled1 = (Button) findViewById(R.id.b_Onled1);
    b_Onled2 = (Button) findViewById(R.id.b_Onled2);
    b_Offled1 = (Button) findViewById(R.id.b_Offled1);
    b_Offled2 = (Button) findViewById(R.id.b_Offled2);
    temp_1 = (TextView) findViewById(R.id.temp_1);
    temp_2 = (TextView) findViewById(R.id.temp_2);
    nap_1 = (TextView) findViewById(R.id.nap_1);
    nap_2 = (TextView) findViewById(R.id.nap_2);
    strLenght = (TextView) findViewById(R.id.strLenght);
    strDlugosc = (TextView) findViewById(R.id.strDlugosc);


    //wywolaj klase by polaczyc
    new PolaczBT().execute();


    //KOMENDY ONCLICK
    b_Onled1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            wlaczLED1();
        }
    });

    b_Onled2.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            wlaczLED2();
        }
    });

    b_Offled1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            wylaczLED1();
        }
    });

    b_Offled2.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            wylaczLED2();
        }
    });


}

Handler mHandler = new Handler() {

    @Override
    public void handleMessage(Message msg) {
        switch (msg.what) {

            case MESSAGE_READ:

                ConnectThread connectthread = new ConnectThread(btSocket);
                connectthread.start();

                final byte[] readBuf = (byte[]) msg.obj;
                final String readMessage = new String(readBuf, 0, msg.arg1);

                strLenght.setText(readMessage);
                break;
        }
        super.handleMessage(msg);
    }
};


private void Disconnect() {
    if (btSocket != null) //jezeli socket jest zajety
    {
        try {
            btSocket.close(); //przerwij polaczenie
        } catch (IOException e) {
            msg("ERROR");
        }
    }
    finish(); // powraca do pierwszego layuoutu
}

private void wylaczLED1() {
    if (btSocket != null) {
        try {
            btSocket.getOutputStream().write("01D0$".toString().getBytes());
        } catch (IOException e) {
            msg("ERROR");
        }
    }
}

private void wylaczLED2() {
    if (btSocket != null) {
        try {
            btSocket.getOutputStream().write("02D0$".toString().getBytes());
        } catch (IOException e) {
            msg("ERROR");
        }
    }
}

private void wlaczLED1() {
    if (btSocket != null) {
        try {
            btSocket.getOutputStream().write("01D1$".toString().getBytes());
        } catch (IOException e) {
            msg("ERROR");
        }
    }
}

private void wlaczLED2() {
    if (btSocket != null) {
        try {
            btSocket.getOutputStream().write("02D1$".toString().getBytes());
        } catch (IOException e) {
            msg("ERROR");
        }
    }
}


//************************************************************************
//metoda do przywolywania TOAST*******************************************
//************************************************************************
private void msg(String s) {
    Toast.makeText(getApplicationContext(), s, Toast.LENGTH_LONG).show();
}


//*************************************************************************
//POLACZENIE BLUETOOTH*****************************************************
//*************************************************************************
private class PolaczBT extends AsyncTask<Void, Void, Void> {
    private boolean ConnectSuccess = true;

    @Override
    protected void onPreExecute() {
        progress = ProgressDialog.show(Kontrola_Led.this, "Laczenie...", "Prosze czekaj!");
    }

    @Override
    protected Void doInBackground(Void... devices) {
        try {
            if (btSocket == null || !isBtConnected) {
                Bta = BluetoothAdapter.getDefaultAdapter();
                BluetoothDevice dyspozycyjnosc = Bta.getRemoteDevice(address);
                btSocket = dyspozycyjnosc.createInsecureRfcommSocketToServiceRecord(mojeUUID);
                BluetoothAdapter.getDefaultAdapter().cancelDiscovery();
                btSocket.connect();
            }
        } catch (IOException e) {
            ConnectSuccess = false;
        }
        return null;
    }


    @Override
    protected void onPostExecute(Void result) {
        super.onPostExecute(result);

        if (!ConnectSuccess) {
            msg("Blad polaczenia. Czy SPP BLUETOOTH dziala? Ponow probe. ");
            finish();
        } else {
            msg("Connected.");
            isBtConnected = true;
        }
        progress.dismiss();
    }
}

StringBuilder sb = new StringBuilder();

class ConnectThread extends Thread {
    final BluetoothSocket mmSocket;
    final InputStream mmInStream;
    final OutputStream mmOutStream;

    public ConnectThread(BluetoothSocket socket) {

        mmSocket = socket;
        InputStream tmpIn = null;
        OutputStream tmpOut = null;

        try {
            tmpIn = socket.getInputStream();
            tmpOut = socket.getOutputStream();
        } catch (IOException e) {
        }

        mmInStream = tmpIn;
        mmOutStream = tmpOut;
    }

    public void run() {

        byte[] buffer = new byte[128];
        int bytes;

        while (true) {
            try {
                bytes = mmInStream.read(buffer);
                String strIncom = new String(buffer, 0, bytes);
                sb.append(strIncom);
                int endOfLineIndex = sb.indexOf("\r\n");
                if (endOfLineIndex > 0){
                    String sbprint = sb.substring(0, endOfLineIndex);
                    strDlugosc.setText(sbprint);
                }

                mHandler.obtainMessage(Kontrola_Led.MESSAGE_READ, bytes, -1, buffer).sendToTarget();



            } catch (IOException e) {
                break;
            }
        }

    }
}
}

0 个答案:

没有答案