Почему, когда мое мобильное приложение получает данные от моего 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. Спасибо