我想使用我的 iPad 连接 OLS426 蓝牙低功耗模块,通过蓝牙模块上的串行端口发送数据。我已成功连接蓝牙模块。在连接中,iPad作为中枢,蓝牙模块作为外设。
这是我的问题:
(1)
[peripheral setNotifyValue:YES forCharacteristic:characteristic];
我在didDiscoverCharacteristicsForService中订阅了蓝牙模块。
- (void)peripheral:(CBPeripheral *)peripheral didUpdateNotificationStateForCharacteristic:(CBCharacteristic *)characteristic error:(NSError *)error{
NSLog(@"Subscribed");
}
订阅后,终端上打印“已订阅”日志。这是否意味着我已成功订阅该设备?
(2)
我还尝试在 didDiscoverCharacteristicsForService 中写入特征值。
[peripheral writeValue: data forCharacteristic:characteristic type:CBCharacteristicWriteWithResponse];
由于我将类型设置为CBCharacteristicWriteWithResponse,所以我认为如果写入不成功,就会出现错误。然而,没有错误。
- (void)peripheral:(CBPeripheral *)peripheral didUpdateValueForCharacteristic:(CBCharacteristic *)characteristic error:(NSError *)error{
NSLog(@"Hello sent");
}
我的问题是为什么在我设置特征值后没有打印“Hello sent”?
(3)
我想通过蓝牙模块上的串口发送一些数据。我只能从特征(例如心率监测器)读取数据,或将数据写入特征。在蓝牙模块的服务中,我发现一个叫做“串口”的服务,它下面有一个特性叫做“先进先出”。所以我想我应该将数据写入该特征,以便通过串行端口发送数据。谁能告诉我我的想法是否正确?
最佳答案
1) 是的。
2) 当特征值发生独立于您自己写入该特征的变化时,将调用 didUpdateValueForCharacteristic
。
3) 您读过connectBlue document吗?如何通过 FIFO 特性读取/写入数据?
关于iOS 蓝牙问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24719473/