通过蓝牙同时发送几个值



我正在开发一个基于蓝牙的应用程序,当我试图将数据从iPhone发送到另一个设备时,我遇到了问题。

当我只需要发送一个值时,我没有问题,使用这样的东西:

- (void)sendData:(NSInteger)mel {
    NSData *myData = [NSData dataWithBytes:&mel length:sizeof(mel)];
    [self.myDevice writeValue:myData forCharacteristic:self.myCharacteristic type:CBCharacteristicWriteWithoutResponse];
}

但是,对于某些特征,我需要同时发送2个或更多的值(例如在这种情况下,变量mel和另一个),但我还没有能够做到这一点。

有人知道怎么做吗?提前谢谢。

更新1

我尝试发送的两个值是

unsigned char bytes[] = {mel, interval};
NSMutableData *myData = [NSMutableData new];
[myData appendBytes:&bytes length:sizeof(bytes)];
[self.myDevice writeValue:myData forCharacteristic:self.myCharacteristic type:CBCharacteristicWriteWithoutResponse];

如果第二个值不存在

您不能使用sizeof(bytes)来获取数组中的字节数。它只会返回4,因为这是char *的大小。

一种选择是使用sizeof(mel) + sizeof(interval)而不是sizeof(bytes)

最新更新