Почему мой inputStream читает данные отдельно от Arduino через HC-05 Bluetooth? - PullRequest
0 голосов
/ 16 марта 2019

Почему, когда мое мобильное приложение получает данные от моего Arduino, оно читает данные отдельно, как это.

2019-03-16 20:19:31.607 13245-16118/com.kneeraphy.kneeraphy D/BluetoothConnectionServ: InputStream: -
2019-03-16 20:19:31.607 13245-16118/com.kneeraphy.kneeraphy D/BluetoothConnectionServ: InputStream: 0.13
2019-03-16 20:19:33.598 13245-16118/com.kneeraphy.kneeraphy D/BluetoothConnectionServ: InputStream: -
2019-03-16 20:19:33.631 13245-16118/com.kneeraphy.kneeraphy D/BluetoothConnectionServ: InputStream: 0.38
2019-03-16 20:19:35.622 13245-16118/com.kneeraphy.kneeraphy D/BluetoothConnectionServ: InputStream: -
2019-03-16 20:19:35.623 13245-16118/com.kneeraphy.kneeraphy D/BluetoothConnectionServ: InputStream: 0.30

Итак, вместо того, чтобы читать его как -0.13, -0.38 и -0.30, он выглядит так, вот почему у меня возникают ошибки при попытке сохранить данные в базу данных, потому что он не может прочитать отрицательное значение (-) подписать как int или double. Вот мой код в моем классе ConnectedThread:

private class ConnectedThread extends Thread{

        private final BluetoothSocket mmSocket;
        private final InputStream mmInStream;
        private final OutputStream mmOutStream;
        private String itemId;
        DatabaseHelper myDb;

        public ConnectedThread(BluetoothSocket socket, String exerciseId){
            Log.d(TAG, "ConnectedThread: Started.");

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


            myDb = new DatabaseHelper(mContext);

            mProgressDialog.dismiss();

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

            mmInStream = tmpIn;
            mmOutStream = tmpOut;
        }//End public ConnectedThread

    public void run(){
            byte[] buffer = new byte[1024];

            int bytes;
            int bytCount;

            while (true){
                //read from input stream
                try {

                    bytes = mmInStream.read(buffer);


                    String incomingMessage = new String(buffer,0,bytes);
                    Log.d(TAG, "InputStream: " + incomingMessage);


                } catch (IOException e) {
                    Log.e(TAG, "write: Error reading inputStream." + e.getMessage());
                    break;
                }

            }
    }//end public run

А вот мой простой код в Arduino:

#include <MPU6050_tockn.h>
#include <Wire.h>

MPU6050 mpu6050(Wire);

long timer = 0;
String myString;


void setup() {
  Serial.begin(9600);
  Wire.begin();
  mpu6050.begin();
  mpu6050.calcGyroOffsets(true);
}

void loop() {

    mpu6050.update();

    Serial.println(mpu6050.getGyroY());

  delay(2000);

} 

Я не знаю, находится ли он в коде Arduino или в коде моей Android Studio. Спасибо

...