我在外围模式的IOS设备(iPhone 4s,iOS 6.1.3)上使用LightBlue应用程序,在中央模式下使用另一个IOS设备(iPhone 4s,iOS 6.1.3)。
我正在使用Apple的BTLE Transfer示例代码,它在这两个设备上正常运行。但是,它不适用于LightBlue。因为我只想开发一个从血压设备读取数据的简单应用程序,我刚刚在Transfer.h文件中更改了以下服务和特征UUID
我的计划是在LightBlue上克隆一个真实的设备结构,然后开发一个中央应用程序来连接LightBlue外围设备(我认为它将与真实设备一起工作,因为我现在没有任何真正的设备)。我将设备设置为外围设备,第二个设备将修改应用程序(来自apple示例)作为中心或客户端。
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
}
}
问题是,这个委托方法已被触发,日志面板显示“发现LightBlue在-32”。它可能无法连接到Lightblue外设,因为我看不到代码行NSLog的输出(@“正在连接到外围%@“,外围设备);
欢迎并高度赞赏所有建议。