Questions about implementation of Fitness Machine ControlPoint flow chart

Aim: Smart Home Trainer developpment ( Zwift connexion)
Hardware: Bluefruit The feater (nRF52832)
Library : Nordic sdk + Bluefruit

Problem: Difficulties with the implementation of the Fitness Machine Control Point (0x2AD9)
I have many questions about the understanding of control points in GATT specification

Q1: Properties of the control point : Read is excluded. How can the client read the control point after a write of the server?
When a write is detected by the server (callbak), the server receive the goog Opcode to initialise the transaction.
In my software, the server answer with a write ((0X01= SUCCESS) into the control point characteristic.
But it doesn’t work.
How should the server write the response to a write request to Fitness Machine control point?
(sequence diagram of specification FTMS p74/78)
Q2: Explanations about the Procedure executed by the server (FTMS specification §4.16.2.22 p 64/78)
" The server must answer with the Response Code (0xx80)" :
How can the server send the Response Code? Which command? Which characteristic? Which API ?
" The Request op Code field shall be set to the correct value":
I understand that the server write the opcode in the control point. Is it correct?
Which command should it use to update the control point with the opcode : write, notify, indicate???

Thank you
Vincent

You will have to provide links to the datasheets for the various devices you are using. Keep in mind that we know nothing about your project except what you tell us.

When I was working GATT stood for "General Agreement on Tariffs and Trade"

...R

Aim: Smart Home Trainer developpment ( Zwift connexion)
Hardware: Bluefruit The feater (nRF52832)
Library : Nordic sdk + Bluefruit

Problem: Difficulties with the implementation of the Fitness Machine Control Point (0x2AD9)
I have many questions about the understanding of control points in GATT specification

Q1: Properties of the control point : Read is excluded. How can the client read the control point after a write of the server?
=> See attached file :org.bluetooth.service.fitness_machine.xml:

-

Optional

-

Excluded

Mandatory

Excluded

Excluded

Excluded

Excluded

Mandatory

Excluded

Excluded

When a write is detected by the server (callbak), the server receive the goog Opcode to initialise the transaction.
In my software, the server answer with a write ((0X01= SUCCESS) into the control point characteristic.
But it doesn’t work.
How should the server write the response to a write request to Fitness Machine control point?
(sequence diagram of specification FTMS p74/78):

!(http://C:\Users\F085404\Documents\sans titre.png)

Q2: Explanations about the Procedure executed by the server (FTMS specification §4.16.2.22 p 64/78)
" The server must answer with the Response Code (0xx80)" :
How can the server send the Response Code? Which command? Which characteristic? Which API ?
" The Request op Code field shall be set to the correct value":
I understand that the server write the opcode in the control point. Is it correct?
Which command should it use to update the control point with the opcode : write, notify, indicate???

Thank you
Vincent

ajout de la spécification !

FTMS_v1.0.pdf (1.29 MB)

I can't make sense of your Reply #2. I think it would be necessary to be familiar with the Fitness Machine to understand your reply.

There are 78 pages in the PDF. Sorry, but I am much too lazy to read all of that just so I can explain it to you. If there is a particular page that is relevant to your problem please let me know.

...R

Dear Robin,
Thank you for your interest !

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 its explained in the specifications and its always the same flow chart, it's the registers, the values and the functional aim which are differents ...

My problem is that I'm not able to implement this .I have found no 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

..

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

You still have not explained what GATT is but I am not familiar with BLE so I don't think I can help.

Perhaps it would be worth modifying your Original Post and changing the Title so it refers to BLE to attract the attention of people who do know about it.

...R

ok. i do that.
Thank you Robin.

if you paid money for any of this, have you asked the people where you got it? Also, where does the arduino or its variants come into the picture on this product/project?