Ios 如何使用iPhone应用程序向BLE设备发送RGB信号?
我们正在开发iOS应用程序,其中需要将RGB信号传递到BLE设备,根据RGB代码,设备LED将发光。我们正在使用iOS应用程序中蓝牙框架的Ios 如何使用iPhone应用程序向BLE设备发送RGB信号?,ios,bluetooth-lowenergy,cbperipheral,cbcentralmanager,cbperipheralmanager,Ios,Bluetooth Lowenergy,Cbperipheral,Cbcentralmanager,Cbperipheralmanager,我们正在开发iOS应用程序,其中需要将RGB信号传递到BLE设备,根据RGB代码,设备LED将发光。我们正在使用iOS应用程序中蓝牙框架的cbperipal对象的CBCentralManager进行连接 我们正在设置特征和描述符UUID,但仍然无法在BLE设备上发送信号。下面是我们用来以十六进制字节格式传递RGB数据的代码 - (void)centralManager:(CBCentralManager )central didConnectPeripheral:(CBPeripheral )p
cbperipal
对象的CBCentralManager
进行连接
我们正在设置特征和描述符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对象时是否存在任何问题?您不能简单地创建CBMutableCharacteristic-您必须发现CBCharacteristic或从外围设备的characteristics属性检索它 如果您参考文档,您将看到 CBMutableCharacteristic对象表示 本地外围设备的服务(表示本地外围设备 按CBP(外围设备管理器对象) 及 CBCharacteristic对象尤其表示这些特征 远程外围设备的服务(远程外围设备是 由CBR(外围对象)表示
您在评论中表示无法发现设备的服务和特征-在这种情况下,我建议您检查发现代码或将其添加到问题中。我们尝试了此代码,但没有帮助。您如何设置自己的外围设备?这需要是传递给委托方法的外围设备。另外,您通常会调用
discoverServices
和discoverCharacteristicsForService
来获取CBCharacteristic
,而不是仅仅创建一个CBMutableCharacteristic
我们已经按照您所说的方式完成了操作,但只是提供了最终的方法代码数据,以便我们可以在这里找到正确的解决方案。这个方法有什么问题吗?是的,您不能简单地创建CBMutableCharacteristic-您必须发现CBCharacteristic或从外围设备的characteristics属性检索它。请参阅文档-CBMutableCharacteristic表示本地特性,而不是远程特性您需要查看查找代码-您必须从外围设备检索特性。