Ios 如何启用自定义CBDescriptor值?
我正在开发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位*3Ios 如何启用自定义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};
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];
}
}
}