【发布时间】:2015-04-28 19:10:56
【问题描述】:
我们正在开发 iOS 应用程序,其中我们需要将 RGB 信号传递给 BLE 设备,并且基于 RGB 代码,设备 LED 会发光。我们正在使用CBCentralManager 为iOS 应用中蓝牙框架的CBPeripheral 对象进行连接。
我们正在设置特征和描述符 UUID,但仍然无法在 BLE 设备上发送信号。这是我们用来以十六进制字节格式传递 RGB 数据的代码。
- (void)centralManager:(CBCentralManager )central didConnectPeripheral:(CBPeripheral )peripheral
{
NSLog(@"connect peripheral");
unsigned char bytes[] = { 0x5, 0x1, 0x70, 0x70, 0x70, 0x70, 0x48, 0x49,0x48, 0x49, 0x48, 0x65, 0x48, 0x49, 0x48, 0x48};
NSData *nsData = [[NSData alloc] initWithBytes:bytes length:sizeof(bytes)];
CBMutableCharacteristic *myCharacteristic = [[CBMutableCharacteristic alloc] initWithType:[CBUUID UUIDWithString:@"00002a46-0000-1000-8000-00805f9b34fb"] properties:CBCharacteristicPropertyWriteWithoutResponse value:nil permissions:CBAttributePermissionsReadable];
CBMutableDescriptor *yourDescriptor = [[CBMutableDescriptor alloc]initWithType:userDescriptionUUID value:@"00002902-0000-1000-8000-00805f9b34fb"];
myCharacteristic.descriptors = @[yourDescriptor];
[myCharacteristic setValue:nsData];
[self.peripheral writeValue:nsData forCharacteristic:myCharacteristic type:CBCharacteristicWriteWithoutResponse];
[self.peripheral setNotifyValue:YES forCharacteristic:myCharacteristic];
}
我们做得对吗?发送数据或创建CBMutableCharacteristic 对象有什么问题吗?
【问题讨论】:
-
我们尝试了这段代码,但没有帮助。 github.com/RedBearLab/iOS/tree/master/Examples/BLE%20RGB/…
-
你是如何设置
self.peripheral的?这需要是传递给委托方法的外围设备。此外,您通常会调用discoverServices和discoverCharacteristicsForService来获取CBCharacteristic,而不仅仅是创建CBMutableCharacteristic -
我们按照你说的方法做了,只是提供了最终的方法代码数据,以便我们可以在这里找到正确的解决方案。我们在这个方法中做错了什么?
-
是的,您不能简单地创建 CBMutableCharacteristic - 您必须发现 CBCharacteristic 或从外围设备的特性属性中检索它。请参阅文档 - CBMutableCharacteristic 表示 本地 特征,而不是远程特征
-
您需要查看您的发现代码 - 您必须从外围设备中检索特征。
标签: ios bluetooth-lowenergy cbperipheral cbcentralmanager cbperipheralmanager