1.手机端向蓝牙设备发送写入数据后会有一个回调方法
//写入数据后的回调
- (void)peripheral:(CBPeripheral *)peripheral
didWriteValueForCharacteristic:(CBCharacteristic *)
characteristic error:(nullable NSError *)error
因为我们这边的设备是血压仪,是向外设发送开始测量之后,然后把测量的数据返回来,所以要进到上面的方法里。
2.数据返回后会进入下面的方法
//获取的charateristic的值
-(void)peripheral:(CBPeripheral *)peripheral didUpdateValueForCharacteristic:(CBCharacteristic *)characteristic error:(NSError *)error{
self.UUID2data = [NSData data];
self.UUID2data = characteristic.value;
NSString *datastring = [self convertDataToHexStr:self.UUID2data];
NSLog(@"datastring = %@",datastring);
NSString *str = @"550f03";
if ([datastring containsString:str]) {
NSString *UUID2str = [datastring substringWithRange:NSMakeRange(6, 16)];
self.UUID2TF.text = UUID2str;
}
因为我们的数据包前面三位是固定的而且没什么用,所以要截取掉,这样有用的数据就出来了,还需要提一下characteristic.value是16进制的需要进行转换在展示