繁体   English   中英

在iOS上通过BLE接收数据,数据总是旧的

[英]receive Data via BLE on IOS, Data is always old

我是iOS编程的新手,我正尝试从BLE设备接收数据。 我能够连接到设备并将数据发送到设备。 问题是从BLE设备接收数据。

我将其用作BLE基础: LGBluetooth

问题:

 @property (nonatomic,strong) NSString* recievedData; //data recieved from Peripheral

 - (void)RecieveDataBLE:(LGPeripheral *)peripheral :(NSString*)Service_UUID :(NSString*)Characteristic_UUID {
     //Function to read Data from BLE Device
    [LGUtils readDataFromCharactUUID:Characteristic_UUID serviceUUID:Service_UUID
            peripheral:peripheral
             completion:^(NSData *data, NSError *error) {
                 NSLog(@"Data : %s Error : %@", (char *)[data bytes], error);
                 recievedData = [NSString stringWithUTF8String:[data bytes]];
    }

- (IBAction)sendDOWN:(id)sender {
    MessageLabel.hidden = NO;
    [self RecieveDataBLE:mBuddy:SERVICE_UUID_DEVICE_INFORMATION:CHARACTERISTIC_UUID_MANUFACTURER];
    MessageLabel.text = [NSString stringWithFormat:@"%@",recievedData]; //Output is always old!!
 }

调用sendDown操作后,应通过ReceiveDataBle函数读取数据。 然后,这将处理数据。 问题是,ReceiveDataBle总是为时已晚,并且不会在一定时间后立即接收信息。 回调函数将数据返回到ReceiveDataBle。 因此,当调用动作SendDown时,来自上次调用的数据将出现在MessageLabel中!

问题是,如何确保我拥有最新的可用数据,而不是过时的数据?

**显示更新的recevedData时可以使用此类型**

-(IBAction)sendDOWN:(id)sender
{
MessageLabel.hidden = NO;
   [LGUtils readDataFromCharactUUID:Characteristic_UUID
                                             serviceUUID:Service_UUID
                                              peripheral:peripheral
                                              completion:^(NSData *data, NSError *error) {
                                                  NSLog(@"Data : %s Error : %@", (char *)[data bytes], error);
 recievedData = [NSString stringWithUTF8String:[data bytes]];                                                                                                  
MessageLabel.text = [NSString stringWithFormat:@"%@",recievedData];  
}


}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM