2

我在外围模式下的 IOS 设备(iPhone 4s、iOS 6.1.3)和中央模式下的另一台 IOS 设备(iPhone 4s、iOS 6.1.3)上使用 LightBlue 应用程序。

我正在使用来自 Apple 的BTLE Transfer示例代码,它在这两种设备上都能正常工作。但是,它不适用于 LightBlue。因为我只想开发一个从血压设备读取数据的简单应用程序,所以我刚刚在 Transfer.h 文件中更改了以下服务和特征 UUID

定义 TRANSFER_SERVICE_UUID @"1810"

定义 TRANSFER_CHARACTERISTIC_UUID @"2A49" // 只读取值

我的计划是在 LightBlue 上克隆一个真实的设备结构,然后开发一个中央应用程序来连接 LightBlue 外围设备(我认为它可以与真实设备一起使用,因为我目前没有任何真实设备)。我将一个设备设置为外围设备,第二个设备将安装修改后的应用程序(来自苹果示例)作为中心或客户端。

Apple 提供的以下委托方法:

- (void)centralManager:(CBCentralManager *)central didDiscoverPeripheral:(CBPeripheral *)peripheral advertisementData:(NSDictionary *)advertisementData RSSI:(NSNumber *)RSSI
{
    // Reject any where the value is above reasonable range
    if (RSSI.integerValue > -15) {
        return;
    }
    
    // Reject if the signal strength is too low to be close enough (Close is around -22dB)
    if (RSSI.integerValue < -35) {
        return;
    }
    
    NSLog(@"Discovered %@ at %@", peripheral.name, RSSI);
    
    // Ok, it's in range - have we already seen it?
    if (self.discoveredPeripheral != peripheral) {
        
        // Save a local copy of the peripheral, so CoreBluetooth doesn't get rid of it
        self.discoveredPeripheral = peripheral;
        
        // And connect
        NSLog(@"Connecting to peripheral %@", peripheral);
        [self.centralManager connectPeripheral:peripheral options:nil];
        self.connectingPeripheral=peripheral; // this line of code I have added as recommended from a member
    }
}

问题是,这个委托方法已经被触发并且日志面板显示“在 -32 发现 LightBlue”。它可能无法连接到 Lightblue 外围设备,因为我看不到代码行 NSLog(@"Connecting to peripheral % @", 外围);

欢迎所有建议并高度赞赏。

4

0 回答 0