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

BLE receiver 프레임 생성 방법에 대해 문의

0 추천

BLE가 받는 데이터가 20BYTE 받고 그뒤에 다시 받고 20byte씩 나눠서 받는 것을 확인했습니다.

이것을 데이터 패킷형태로

첫번재 데이터는 구분자(cmd) 두번째 총 패킷 길이(length) 마지막 끝 결정자(end)로 

구성을 할려고합니다.

아래와 같이 BLE 데이터를 받는 부분에서 처리를 해야할거같은데..

CMD는 0x11 ,0x22 머 이런식으로 될거고

LEN은 전체 길이 CMD부터 END POINT까지의 총 길이

DATA 실제 데이터 내용

END 한 패킷의 종료를 알리는 부분 0xEE로 구성할 예정입니다.

새로운 버퍼를 생성하여

byte[] buffer = new byte[(byte)data[1]];

첫번째 들어온 데이터의 2번째 데이터가 길이니깐 길이 만큼 받기위해 구성을 해주고

또한 패킷을 20byte씩 나누기 때문에 패킷의 개수를 지정한 int 변수가 하나 있어야할 거같은데..

어떻게 진행을 해야할까요???

혹시 구성된 소스나 참조할 자료가 있으면 부탁드리겠습니다. 

@Override
        public void onCharacteristicChanged(BluetoothGatt gatt, BluetoothGattCharacteristic characteristic) {
            final byte[] data = characteristic.getValue();

            if (data != null && data.length > 0)  {
                String da_data11 = byte2hex(data);
                Log.i(TAG, "받은데이터 : "+da_data11);

                mHandler.obtainMessage(ServiceClass.MESSAGE_READ, new String(data)).sendToTarget();
            }

            if(mDefaultChar == null && isWritableCharacteristic(characteristic)) {
                mDefaultChar = characteristic;
            }
        };

 

 

쿠쿠부다스 (6,470 포인트) 님이 2017년 8월 18일 질문

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...