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

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

我需要一些指导来定义心率服务及其特征(在外围设备上)。
我还看到了特定服务UUID(180D)和某些特征UUID的用法(例如,用于心率测量的2A37,用于制造商名称的2A29等)。从哪里获得这些编号?在哪里定义?

如果还有其他信息,请告知。

最佳答案

心率服务在bluetooth developer portal上有详细说明。
假设您已经初始化了一个名为CBPeripheralManagerperipheralManager,并且您已经收到带有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];

之后,您应该收到peripheralManager:didAddService:error:回调,指示添加成功。您应该类似地添加device information service (0x180A)最后,您应该以以下内容开始广告:
NSDictionary *data = @{
    CBAdvertisementDataLocalNameKey:@"iDeviceName",
    CBAdvertisementDataServiceUUIDsKey:@[[CBUUID UUIDWithString:@"180D"]]};

[peripheralManager startAdvertising:data];

注意:心率服务也是我首先实施的。好的选择。 ;)

10-08 05:38