Important changes to forums and questions
All forums and questions are now archived. To start a new conversation or read the latest updates go to forums.mbed.com.
8 years, 10 months ago.
Newbie, GATT communication question
Hi,
This is the first BLE app I'm writing (Android), so I would be happy to get some feedback. Basically, I have a peripheral device that accumulates data over some time, during which the central client may not be around to receive it. Then, at some point, I want to transfer all the data from the peripheral server to the client. What is the optimal way to do this? Here is what I had thought about so far:
Option A: The client writes to a second characteristic, indicating it wants to read. Upon onDataWritten, I update the first characteristic with one of the values. I repeat this until there is no more data, and upon that, send an "empty" data packet message so the client knows to stop requesting more data.
Option B: Assuming that my data can fit within a single BLE packet, I can try to catch onDataRead (https://developer.mbed.org/questions/4224/onDataRead-callback-like-onDataWritten/), and for every attempt, send back a new piece of data. However ,this looks slightly more complicated.
Any other recommendations? I don't need to transfer huge amounts of data. Probably a few Kb. Speed is not a big concern.
Thanks,
Shay