8

Corebluetoothフレームワークを使用してアプリを開発しています。

BLEデバイスに接続してRSSI値を取得します。

RSSIを定期的に読み取る機能を設定しました。タイマーコードは以下のとおりです。

NSTimer *timer;
timer = [NSTimer scheduledTimerWithTimeInterval:1.2f target:self selector:@selector(detectRSSI) userInfo:nil repeats:YES];

そしてdetectRSSIコードは以下のとおりです

- (void)detectRSSI
{
    [self.peripheral readRSSI];
}

だから問題は、

関数は正常に動作しますが、時間間隔を1.2秒未満に設定すると、

ペリフェラルDidUpdateRSSIは、次のようなエラーメッセージをランダムに報告します。

The operation was cancelled.

そして、レートが1.2秒以上であれば、それは起こりません。

RSSI値をより頻繁に(0.5秒以下)読み取るアイデアはありますか?

4

1 に答える 1