Ios 如何启用自定义CBDescriptor值?

Ios 如何启用自定义CBDescriptor值?,ios,objective-c,bluetooth-lowenergy,Ios,Objective C,Bluetooth Lowenergy,我正在开发BLE应用程序(与健康相关),因为我有一个从BLE设备获取ECG值的选项。我需要在我的应用程序中启用8个波形来获取ECG数据 我的问题是如何使用CBDescriptor启用所有波形。我需要将如下数据传递给CBDescriptor。 波形ID的格式 0:8位、1:16位、2:32位、3:64位、4:128位、5:8位*3、6:16位*3、7:32位*3 uint8_t waveArray[8] = {0x02,0x00,0x02,0x00,0x00,0x00,0x00,0x00};

我正在开发BLE应用程序(与健康相关),因为我有一个从BLE设备获取ECG值的选项。我需要在我的应用程序中启用8个波形来获取ECG数据

我的问题是如何使用CBDescriptor启用所有波形。我需要将如下数据传递给CBDescriptor。 波形ID的格式 0:8位、1:16位、2:32位、3:64位、4:128位、5:8位*3、6:16位*3、7:32位*3

 uint8_t waveArray[8] = {0x02,0x00,0x02,0x00,0x00,0x00,0x00,0x00};
 NSData *waveData = [NSData dataWithBytes:waveArray length:sizeof(waveArray)/sizeof(uint8_t)];
[peripheral writeValue:waveData forDescriptor:descript];

但我并没有从设备上得到任何回应。请帮帮我。

我终于找到了问题的答案。首先,我们需要为CBDescriptor调用discover方法

[peripheral discoverDescriptorsForCharacteristic:characteristic];
-(void)peripheral:(CBPeripheral *)peripheral didDiscoverDescriptorsForCharacteristic:(CBCharacteristic *)characteristic  error:(NSError *)error {
 NSArray *Descroptors = [characteristic descriptors];
 CBDescriptor *descript;
 [peripheral setNotifyValue:YES forCharacteristic:characteristic];

for (descript in Descroptors)
{
    if ([descript.UUID isEqual:[CBUUID UUIDWithString:KT_WP_WC_CHARACTERISTIC]])
     {
         uint8_t waveArray[9] = {0x02,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00};//Your data which you need to send to BLE device
         NSData *waveData = [NSData dataWithBytes:waveArray length:sizeof(waveArray)/sizeof(uint8_t)];
         [peripheral writeValue:waveData forDescriptor:descript];
          NSLog(@"waveData ==%@",waveData);           
          CBUUID * sCBUUID = [CBUUID UUIDWithString:KT_WP_SERVICE];
          CBUUID * cCBUUID = [CBUUID UUIDWithString:KT_WP_WF_CHARACTERISTIC];
          [self CBUUIDwriteValue:sCBUUID characteristicUUID:cCBUUID p:peripheral data:waveData];
       }else
       {            
          const unsigned char bytes[] = { 0x28, 0x00 };//Your data which you need to send BLE device
          NSData *descriptorData = [NSData dataWithBytes:bytes length:2];            
          CBUUID * sCBUUID = [CBUUID UUIDWithString:KT_WP_SERVICE];
          CBUUID * cCBUUID = [CBUUID UUIDWithString:KT_WP_WF_CHARACTERISTIC];
           [self CBUUIDwriteValue:sCBUUID characteristicUUID:cCBUUID p:peripheral data:descriptorData];   
        }
  }

}