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

BLE- nRFConnect + FTMS Profile /Indoor bike Data Characteristic

Project context:
--------------------
Server BLE  for home trainer diy

Target  (Bluetooth server) : Bluefruit nRF52 The feather
Library : BluefruitBLE
Client : nRF Connect (Android)

Problem description:

---------------------------

I'm checking the characteristic Indoor bike Data (0x2AD2)

In the specification (xml file found on the bluetooth web site) , there is a field "Instantaneous Speed  in the Inodoor bike data characteristic.

But this field is not shown by nRFConnect. And all the other fields are shifted .

my record implementation is the following:

typedef struct CIndoorBikeData_t {
  uint16_t flags;                           //flags (16bits) champ de bits défini ds l'xml et la spec
  int16_t InstantaneousSpeed;               // en km/h (résolution 0.01 ) (C1)                  !!!!! décalé par rapport à l'XML
  uint16_t AverageSpeed;                    // en km/h (résolution 0.01 ) (C2)                  !!!!! décalé par rapport à l'XML
  uint16_t InstantaneousCadence;            // en tr/mn, resolution 0.5  (C3)
  uint16_t AverageCadence;                  //en tr/mn, resolution 0.5  (C4)                    !!!!! décalé par rapport à l'XML
  uint16_t TotalDistance;                   //en m ,resolution 1  (C5)
  uint8_t TotalDistance2;                   //en m ,resolution 1  (C5)
  int16_t ResistanceLevel;                  //sans unité ,  (C6)                              !!!!! décalé par rapport à l'XML
  int16_t InstantaneousPower;               //en watts ,resolution 1  (C7)                   !!!!! décalé par rapport à l'XML 
  int16_t AveragePower;                     //en watts ,resolution 1  (C8)
  uint16_t TotalEnergy;                     //en kCalorie , resolution 1  (C9)
  uint16_t EnergyPerHour;                   //en kCalorie , resolution 1  (C9)
  int8_t EnergyPerMinute;                   //en kCalorie , resolution 1  (C9)
  uint8_t HeartRate;                        //Beats per minute with a resolution of 1 (C10)
  uint8_t MetabolicEquivalent;              // Metabolic equi. resolution 0.1 , (C11)
  uint16_t ElaspsedTime;                    // Second with a resolution of 1, (C12)
  uint16_t RemainingTime;                   //Second with a resolution of 1(C13)
  };

1/ Is the specification uptodate ? I think Zwift aggree with nRFconnect because it shows the same datas.

2/ When I notify this characteristic (0x2AD2) it is not shown as well as it should in nRFConnect. After a read it's OK!

Is there a problem with the fact that the record's size is 32bytes which is larger than 20 bytes?

Thanks

Vincent

Related