将心率测量服务添加到iPhone作为外围设备

时间:2013-08-07 09:02:47

标签: iphone ios xcode core-bluetooth

我正在使用Apple BLTE Transfer模拟iPhone作为外围设备。 我的目标是模拟使用心率测量配置文件的心率监测器。 (我知道如何生成数据但需要在外围端定义服务)

我已经在另一侧有一个代码来收集BLE心率监测器的数据。

我需要一些指导如何定义心率服务及其特征(在外围侧)。 我还看到了使用特定服务UUID(180D)和UUID的一些特性(例如2A37用于心率测量,2A29用于制造商名称等)我从哪里获得这些数字?它们的定义在哪里?

如果需要任何其他信息,请告知。

2 个答案:

答案 0 :(得分:3)

心率服务详见bluetooth developer portal。 假设您已初始化名为CBPeripheralManager的{​​{1}},并且您已收到peripheralManager状态的peripheralManagerDidUpdateState:回调。以下是在此之后如何设置服务的方法。

CBPeripheralManagerStatePoweredOn

在此之后,您应该收到// Define the heart rate service CBMutableService *heartRateService = [[CBMutableService alloc] initWithType:[CBUUID UUIDWithString:@"180D"] primary:true]; // Define the sensor location characteristic char sensorLocation = 5; CBMutableCharacteristic *heartRateSensorLocationCharacteristic = [[CBMutableCharacteristic alloc] initWithType:[CBUUID UUIDWithString:@"0x2A38"] properties:CBCharacteristicPropertyRead value:[NSData dataWithBytesNoCopy:&sensorLocation length:1] permissions:CBAttributePermissionsReadable]; // Define the heart rate reading characteristic char heartRateData[2]; heartRateData[0] = 0; heartRateData[1] = 60; CBMutableCharacteristic *heartRateSensorHeartRateCharacteristic = [[CBMutableCharacteristic alloc] initWithType:[CBUUID UUIDWithString:@"2A37"] properties: CBCharacteristicPropertyNotify value:[NSData dataWithBytesNoCopy:&heartRateData length:2] permissions:CBAttributePermissionsReadable]; // Add the characteristics to the service heartRateService.characteristics = @[heartRateSensorLocationCharacteristic, heartRateSensorHeartRateCharacteristic]; // Add the service to the peripheral manager [peripheralManager addService:heartRateService]; 回调,表示成功添加。你应该同样添加device information service (0x180A)最后,你应该开始做广告:

peripheralManager:didAddService:error:

注意:心率服务也是我实施的第一个。好的选择。 ;)

答案 1 :(得分:2)

关于Gatt规格的所有内容都可以在Bluetooth Developer Site找到。你需要做的基本上是这样的:

1.)设置CBPeripheralManager

2.)打开电源后,创建与心率服务匹配的CBMutableServiceCBMutableCharacteristics。做广告,你会很高兴。