private class SocketThread extends Thread {
private final BluetoothSocket mmSocket;
private InputStream mmInStream;
private OutputStream mmOutStream;
public SocketThread(BluetoothSocket socket) {
mmSocket = socket;
try {
mmInStream = socket.getInputStream();
mmOutStream = socket.getOutputStream();
} catch (IOException e) {
showMessage("Get Stream error");
}
}
public void run() {
byte[] buffer = new byte[1024];
int bytes;
while (true) {
try {
bytes = mmInStream.read(buffer);
String strBuf = new String(buffer, 0, bytes);
System.out.println("CHECK: " + strBuf);
// showMessage(strBuf);
SystemClock.sleep(1);
} catch (IOException e) {
showMessage("Socket disconneted");
break;
}
}
}
안녕하세요 안드로이드와 아두이노를 블루투스를 통해 값을 받아오는 과정에서 문제가 생겨 질문드립니다.
아두이노에서 두개의 센서를 활용해 각각의 값을 안드로이드에 전송하려는데, 만약에 "AAA35.62" (AAA는 각각의 센서값을 구분하기 위해 넣은 문자 값입니다.)이 값을 보내면 안드로이드에서 받아보니, 어쩔 때는 "AAA" 어쩔때는 "36.52" 이값만 또는 아예 값이 애매하게 잘린 .52 이렇게 값이 들어옵니다. 제대로 "AAA35.62"이렇게 받아오고 싶을 때는 어떻게 해야하나요?
아두이노에서 안드로이드로 값을 보낼때는
bluetooth.println("AAA"+ String(value)); delay(1000) 이렇게 보냈습니다.
위의 소스는 값을 받아오는 안드로이드 소스 부분입니다.
strbuf 값이 아두이노에서 받아오는 것인데요.. 왜 이런 문제가 생기는지 모르겠습니다.