• After 15+ years, we've made a big change: Android Forums is now Early Bird Club. Learn more here.

Apps Sample loss in Android app when retrieving data via BLE

victus

Lurker
I'm developing an Android app which retrieves data via BLE from a device in real-time.

As stated in the device's datasheet, BLE uses a 20-ms connection interval. Twenty user-data bytes (which is equal to 2- samples for each channel and 2-bytes running counter) are sent in GATT notifications. Data from the device is ping-pong buffered and up to six BLE-notification packets are sent every 14 ms based on an OSAL timer. The sample rate is set as 160 samples/sec. Each sample is 3 bytes and is sending 3 channels.

Each notification packet consists of 20 bytes containing the following:

Measurement Sample1 (Raw ADC data)
- Channel1 (3 bytes)
- Channel2 (3 bytes)
- Channel3 (3 bytes)

Measurement Sample 2 (Raw ADC data)
- Channel1 (3 bytes)
- Channel2 (3 bytes)
- Channel3 (3 bytes)

Afterwards I plot this data, but it looks like that I am only getting a sample rate around 105, while there should be 160 samples/sec. It just looks like some samples are missing looking from the signal.

I was wondering what could be the cause for that, is there a bug or a design flaw in the code? Are there any alternative methods to retrieve the data?

Here's a code that I use: https://codepaste.net/gqqgab
 
Back
Top Bottom