我正在使用Apple BLTE Transfer模拟iPhone作为外围设备。 我的目标是模拟使用心率测量配置文件的心率监测器。 (我知道如何生成数据但需要在外围端定义服务)
我已经在另一侧有一个代码来收集BLE心率监测器的数据。
我需要一些指导如何定义心率服务及其特征(在外围侧)。 我还看到了使用特定服务UUID(180D)和UUID的一些特性(例如2A37用于心率测量,2A29用于制造商名称等)我从哪里获得这些数字?它们的定义在哪里?
如果需要任何其他信息,请告知。
答案 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.)打开电源后,创建与心率服务匹配的CBMutableService
和CBMutableCharacteristics
。做广告,你会很高兴。