4

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

我已经在另一边有一个代码来从 BLE 心率监视器收集数据。

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

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

4

2 回答 2

3

蓝牙开发者门户上详细介绍了心率服务。假设您有一个已初始化的CBPeripheralManager命名,并且您已经收到了带有状态的回调。以下是在此之后如何设置服务本身。peripheralManagerperipheralManagerDidUpdateState: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:指示添加成功的回调。您应该类似地添加设备信息服务(0x180A)最后,您应该开始广告:

NSDictionary *data = @{
    CBAdvertisementDataLocalNameKey:@"iDeviceName", 
    CBAdvertisementDataServiceUUIDsKey:@[[CBUUID UUIDWithString:@"180D"]]};

[peripheralManager startAdvertising:data];

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

于 2013-08-07T20:46:48.683 回答
2

有关 Gatt 规范的所有内容都可以在蓝牙开发者网站上找到。你需要做的基本上是这样的:

1.) 设置您的CBPeripheralManager

2.)开机后,创建CBMutableServiceCBMutableCharacteristics心率服务相匹配的和。给他们做广告,你会很高兴的。

于 2013-08-07T17:24:07.070 回答