我在外围模式下的 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 % @", 外围);
欢迎所有建议并高度赞赏。