마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

블루투스 모듈과 통신에서 데이터 손실 문제 [closed]

0 추천

        public void run() {
            Log.i(TAG, "BEGIN mConnectedThread");
            byte[] buffer = new byte[1024];
            int bytes;

            // Keep listening to the InputStream while connected
            while (true) {
                try {
                    // Read from the InputStream
                    bytes = mmInStream.read(buffer);
                   
                    while (bytes < 28) {
                    bytes = bytes + mmInStream.read(buffer);
                   }
             
                    // Send the obtained bytes to the UI Activity
                    mHandler.obtainMessage(MainActivity.MESSAGE_READ, bytes, -1, buffer)
                            .sendToTarget();
                    
                } catch (IOException e) {
                    Log.e(TAG, "disconnected", e);
                    connectionLost();
                    // Start the service over to restart listening mode
                    BluetoothChatService.this.start();
                    break;
                }
            }
        }

블루투스 모듈에서 29바이트의 데이터를 받아 출력을 해야합니다.

T 28  P 002 S 00000  C 00000 같이 나와야합니다.

그런데 값이 손실되어 이상하게 나왔습니다.

인터넷에 찾아보니 블루투스가 데이터를 쪼개서 전송해서 그렇다는 말이 있어 데이터를 모아서 보내는 방법으로

했습니다. 소스의 중간에 while (bytes < 28) 부분이 제가 수정해본 것인데.. 제가 프로그래밍을

거의 모르는 전자과 학생이라 제대로

한건지 모르겠습니다. 다시 출력을 보니 S 00000 C 00000 이렇게 조금 길어졌을 뿐 여전히 잘 안나왔습니다.

찾아보니 스타트비트와 앤드비트를  이용하는 것도 있던데

어떻게 하는건지 좀 가르쳐주길 부탁드립니다.... 만약 T를 시작, C를 끝으로 한다면 코드를 어떻게 짜야할까요?

 

질문을 종료한 이유: 스스로 해결..
익명사용자 님이 2014년 5월 24일 질문
2014년 5월 25일 closed
안녕하세요 저도 블루투스 데이터수신때문에그런데 조언좀 구할수 있을까요?
...