如何使用iPhone应用程序发送RGB信号到BLE设备?

我们正在开发iOS应用程序,并且需要将RGB信号传递给BLE设备,并根据RGB代码设备LED发光。 我们在iOS应用程序中使用CBCentralManager为蓝牙框架的CBPeripheral对象进行连接。

我们正在设置特征和描述符UUID,但是我们仍然无法在BLE设备上发送信号。 这里是我们用来传递hex字节格式的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]; } 

我们是否正确的做法? 在发送数据或创buildCBMutableCharacteristic对象时是否有任何问题?

您不能简单地创build一个CBMutableCharacteristic – 您必须发现CBCharacteristic或从外设的特性属性中检索它。

如果你参考你将看到的文档

CBMutableCharacteristic对象表示本地外围设备服务的特征(本地外围设备由CBPeripheralManager对象表示)

CBC特性对象特别代表远程外设服务的特性(远程外设由CBPeripheral对象表示)

您在评论中指出,您无法发现设备的服务和特征 – 在这种情况下,我build议您检查一下您的发现代码或将其添加到您的问题中。