4

Bluetoothで接続された2つのiPhoneデバイスがあります。それらのデバイス間で信号強度を取得することは可能ですか?可能であれば、どのように?ありがとう、KD

4

1 に答える 1

8

Bluetoothを介してあるデバイスから別のデバイスにデータを転送するためのAppleサンプルプロジェクトをご覧ください。 BTLEAppleサンプルコード

RSSI(受信信号強度表示)の値で信号強度を知ることができます

サンプルコードでは、データを受信したときにRSSI値を取得します。ProjectのBTLECentralViewController.mで次のメソッドを確認します。

- (void)centralManager:(CBCentralManager *)central didDiscoverPeripheral:(CBPeripheral *)peripheral advertisementData:(NSDictionary *)advertisementData RSSI:(NSNumber *)RSSI
{
    // Reject any where the value is above reasonable range
    if (RSSI.integerValue > -15) {
        return;
    }

    // Reject if the signal strength is too low to be close enough (Close is around -22dB)
    if (RSSI.integerValue < -35) {
        return;
    }

    NSLog(@"Discovered %@ at %@", peripheral.name, RSSI);

    // Ok, it's in range - have we already seen it?
    if (self.discoveredPeripheral != peripheral) {

        // Save a local copy of the peripheral, so CoreBluetooth doesn't get rid of it
        self.discoveredPeripheral = peripheral;

        // And connect
        NSLog(@"Connecting to peripheral %@", peripheral);
        [self.centralManager connectPeripheral:peripheral options:nil];
    }
}

uが別のデバイスによる広告からデータを受信するたび。このuからRSSI値を受け取り、デバイスの強度と範囲を見つけることができます。

WikiのRSSIの詳細もご覧ください

これがお役に立てば幸いです。

于 2013-01-29T19:36:52.737 に答える