This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Reading a subset of data on a BLE server

I am definitely missing something here, but I can't figure out how to specify a subset of data to read from my peripheral.

Here's the setup: my nrf51822 device is a server, publishing a custom service with custom characteristics.

I have in memory is the nrf51822 a long (2048 bytes) list of historical data.

I want to allow a client to be able to read a specific portion of this data rather than having to transfer all 2048 bytes (which I can't anyway).

The SoftDevice handles characteristic reads automatically, but even if I could intercept them I don't see how I can pass parameters to a characteristic read operation.

What is the official BLE way to do what I'm trying to do?

Parents
  • I'd say that the "Bluetooth way" of doing this is using a Control Point characteristic to which the Client writes which data period or interval it's interested in, and then letting the Server send the actual data as either Notifications or Indications on a Data characteristic.

    This scheme is implemented by for example the Glucose Profile and Service, so its profile document could be a useful place to start. The profile document is here, and the service document here.

Reply
  • I'd say that the "Bluetooth way" of doing this is using a Control Point characteristic to which the Client writes which data period or interval it's interested in, and then letting the Server send the actual data as either Notifications or Indications on a Data characteristic.

    This scheme is implemented by for example the Glucose Profile and Service, so its profile document could be a useful place to start. The profile document is here, and the service document here.

Children
No Data
Related