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

General question about the GATT concept of Control Point


I think my question is a general question about the BLE GATT concept of "Control Point".

1- A control point is a special characteristic.
2- A control point is a characteristic which aim is to written by a client to update a server. So through a control point, a client can modify the server.
3- I think there is a general template to use a control point and the aim of this post is to have some generales informations about the use of control point.
4- for example , the following characteristics are controle points:
    Bond Management Control Point       0x2AA4
    BSS Control Point            0x2B2B
    CGM Specific Ops Control Point        0x2AAC
    Cycling Power Control Point              0x2A66
    Fitness Machine Control Point      0x2AD9


5- To use a Control Point the client must first initiate a handshake:
     1-  the client write into the control point  a special code to initialize the handshake
     2-  the server answer with an acknoledge  (SUCCESS) and do some specifics thinks like initialize some applications      characteristics for example..
     3- the client write an other code, with a parameter  into the control point
     4- the server get the parameter and update its datas .
     5- the server acknoledge the handshake...


so it's explained in the specifications and it's always the same flow chart. Only  the registers, the values and the functional aim are differents ...

My problem is that I'm not able to implement this .I haven't  found  any sample.

The general question is :
- Is there any implementation of a control point flow chart beetween client and server?
- what is the difference beetween a write command and a write request?
- how can the server answer to a request? which API with ESP32 for example? or Bluefruit?

thank you
Vincent

Related