Problem with Bluetooth BLE characteristic not decoded by nRFConnect

Hi,

Scope : Bluetooth BLE Server implementation
Target : Arduino/Bluefruit The feather (Bluetooth)
Library used : Bluefruit BLE
Implementation : Cycling Power 0x1818
Problem :

The characteristics of the service are not recognised (decoded) by an application like (nrf Connect). It means that the Cycling power measurement characteristic is shown as binary. same for Cycling Power feature. but the Sensor location charactistic is shown as enumerate : good
The problem is that I think I initialize all the characteristics withe the same procedure…

Ideas/Questions:

Is it a problem of descriptor?
I didn’t declare any descriptor.
Is it a problem of CCCD ? I didn’t use this concept.

Thank you for your answer.
Vincent

void setupCPS(void)
{
   CyclingPower_Service.begin();
  //CPS_Measurement : caractéristique (0x2A63)
    CPS_Measurement.setProperties(CHR_PROPS_NOTIFY | CHR_PROPS_INDICATE |CHR_PROPS_READ );
    CPS_Measurement.setPermission(SECMODE_OPEN, SECMODE_NO_ACCESS);
    CPS_Measurement.setFixedLen(SIZE_CPS_MEAS_DATA);
    CPS_Measurement.begin();//validation de l'attachement de la caractéristique au service
  
    // init de la variale globale cscData contient les données utiles du capteur de cadence et vitesse
    gCPSMeasurementData.sensor.flags = 0; // Aucune option, seul le champ Instantaneous Power est mis à jour!
    gCPSMeasurementData.sensor.InstantaneousPower = 0;
    gCPSMeasurementData.sensor.PedalPowerBalance = 0;
    gCPSMeasurementData.sensor.AccumulatedTorque = 0;
    gCPSMeasurementData.sensor.CumulWheelRevolutionData = 0;
    gCPSMeasurementData.sensor.LastEventTimeWheelRevolutionData=0;
    gCPSMeasurementData.sensor.CumulCrankRevolutionData=0;
    gCPSMeasurementData.sensor.LastEventTimeCrankRevolutionData=0;
    gCPSMeasurementData.sensor.MaximumForceMagnitude=0;
    gCPSMeasurementData.sensor.MinimumForceMagnitude=0;
    gCPSMeasurementData.sensor.MaximumTorqueMagnitude=0;
    gCPSMeasurementData.sensor.MinimumForceMagnitude=0;
    gCPSMeasurementData.sensor.MaximumMinimumAngle[0]=0;
    gCPSMeasurementData.sensor.MaximumMinimumAngle[1]=0;
    gCPSMeasurementData.sensor.MaximumMinimumAngle[2]=0;
    gCPSMeasurementData.sensor.TopDeadSpotAngle=0;
    gCPSMeasurementData.sensor.BottomDeadSpotAngle=0;
    gCPSMeasurementData.sensor.AccumulatedEnergy=0;
  
    //on met à jour la caractéristique avec ses données d'init
    CPS_Measurement.write(gCPSMeasurementData.bPaquet_CPS_Meas, SIZE_CPS_MEAS_DATA );


      //CPS_Feature : caractéristique (0x2A65)
    CPS_Feature.setProperties(CHR_PROPS_NOTIFY | CHR_PROPS_INDICATE |CHR_PROPS_READ  );
    CPS_Feature.setPermission(SECMODE_OPEN, SECMODE_NO_ACCESS);
    CPS_Feature.setFixedLen(4);
    CPS_Feature.begin();//validation de l'attachement de la caractéristique au service
    uint32_t myCPSFeature;
    myCPSFeature=8;               // aucune option gérée !!!!
    CPS_Feature.write32(myCPSFeature); 

    //CPS_SensorLocation : caractéristique (0x2A5D)
    CPS_SensorLocation.setProperties(CHR_PROPS_NOTIFY | CHR_PROPS_INDICATE |CHR_PROPS_READ );
    CPS_SensorLocation.setPermission(SECMODE_OPEN, SECMODE_NO_ACCESS);
    CPS_SensorLocation.setFixedLen(1);
    CPS_SensorLocation.begin();//validation de l'attachement de la caractéristique au service
    uint8_t myCPSSensorLocation;
    myCPSSensorLocation=12;               // Capteur dans la roue arrière (Rear Wheel)
    CPS_SensorLocation.write8(myCPSSensorLocation); 

    
}