Как получить правильные значения от монитора сердечного ритма Polar

Мое приложение андроида получает данные от Polar Heart Rate Monitor через соединение Bluetooth. Моя проблема в том, что я получаю такую ​​строку:

Мой код для получения данных:

final Handler handler = new Handler(); final byte delimiter = 10; //This is the ASCII code for a newline character stopWorker = false; readBufferPosition = 0; readBuffer = new byte[1024]; workerThread = new Thread(new Runnable() { public void run() { while(!Thread.currentThread().isInterrupted() && !stopWorker) { try { int bytesAvailable = mmInputStream.available(); if(bytesAvailable > 0) { byte[] packetBytes = new byte[bytesAvailable]; mmInputStream.read(packetBytes); for(int i=0;i<bytesAvailable;i++) { byte b = packetBytes[i]; if(b == delimiter) { byte[] encodedBytes = new byte[readBufferPosition]; // System.arraycopy(readBuffer, 0, encodedBytes, 0, encodedBytes.length); final String data = new String(encodedBytes, "ASCII"); readBufferPosition = 0; handler.post(new Runnable() { public void run() { pulsText.setText(data); } }); } else { readBuffer[readBufferPosition++] = b; } } } } catch (IOException ex) { stopWorker = true; } } } }); workerThread.start(); 

Я попытался изменить эту строку несколькими способами, но я все еще получаю неверные данные:

  final String data = new String(encodedBytes, "ASCII"); 

Как я могу решить эту проблему?

Пожалуйста помоги !!!

Датчик не дает вам печатаемых строк (например, NMEA), а двоичных данных, которые необходимо проанализировать. Вы можете заглянуть в синтаксический анализатор данных MyTracks Polar Sensor для вдохновения.

Вы используете available и read неправильно (но способ, которым вы пользуетесь, может иметь большую удачу большую часть времени).

Единицы измерения (основанные на проекте Raspberry Pi Challenge в JavaOne) Проект «Сердце стекла» показывает, как это можно разобрать в виде набора Heartbeat для отображения или передачи в другие системы.