Какова максимальная скорость, с которой я могу сканировать сети Wi-Fi на Mac, используя Apple CoreWLAN Framework?

Я пытаюсь многократно сканировать сети WiFi в моем окружении, чтобы потом извлечь из них некоторую информацию (например, RSSI, шум и т. Д.). Для меня важно иметь возможность быстро выполнять несколько сканирований, чтобы я мог делать это в разных местах дома / этажа.

Итак, я написал этот простой код в main.c проекта Objective C. Он сканирует сети, отображает, сколько сетей было найдено, ждет 1 секунду и повторяет процесс.

#import <Cocoa/Cocoa.h>
#import <Foundation/Foundation.h>
#import <CoreWLAN/CoreWLAN.h>

int main(int argc, const char * argv[]) {

    @autoreleasepool {

        CWInterface *currentInterface = [CWInterface interface];
        NSLog(@"Interface: %@\n", currentInterface);

        NSArray *networks;

        while (true) {

            networks = [[currentInterface scanForNetworksWithName:nil error:nil] allObjects];
            NSLog(@"%lu networks found.", (unsigned long)networks.count);
            usleep(1000000);

        }

    }
    return 0;
}

Вывод, который я получаю, выглядит примерно так:

2015-05-22 15:32:09.103 WifiScannerXcode2[42928:13413575] Interface: <CWInterface: 0x6100000c1730> [interfaceName=en0]
2015-05-22 15:32:11.614 WifiScannerXcode2[42928:13413575] 37 networks found.
2015-05-22 15:32:12.632 WifiScannerXcode2[42928:13413575] 37 networks found.
2015-05-22 15:32:13.652 WifiScannerXcode2[42928:13413575] 37 networks found.
2015-05-22 15:32:15.297 WifiScannerXcode2[42928:13413575] 37 networks found.
2015-05-22 15:32:16.315 WifiScannerXcode2[42928:13413575] 37 networks found.
2015-05-22 15:32:17.336 WifiScannerXcode2[42928:13413575] 37 networks found.
2015-05-22 15:32:18.358 WifiScannerXcode2[42928:13413575] 37 networks found.
2015-05-22 15:32:19.378 WifiScannerXcode2[42928:13413575] 37 networks found.
2015-05-22 15:32:22.902 WifiScannerXcode2[42928:13413575] 47 networks found.
2015-05-22 15:32:23.928 WifiScannerXcode2[42928:13413575] 47 networks found.
2015-05-22 15:32:25.568 WifiScannerXcode2[42928:13413575] 49 networks found.
2015-05-22 15:32:26.590 WifiScannerXcode2[42928:13413575] 49 networks found.
2015-05-22 15:32:27.611 WifiScannerXcode2[42928:13413575] 49 networks found.
2015-05-22 15:32:28.632 WifiScannerXcode2[42928:13413575] 49 networks found.
2015-05-22 15:32:29.656 WifiScannerXcode2[42928:13413575] 49 networks found.
2015-05-22 15:32:30.684 WifiScannerXcode2[42928:13413575] 49 networks found.
2015-05-22 15:32:34.205 WifiScannerXcode2[42928:13413575] 39 networks found.
2015-05-22 15:32:35.854 WifiScannerXcode2[42928:13413575] 39 networks found.
2015-05-22 15:32:36.874 WifiScannerXcode2[42928:13413575] 39 networks found.
2015-05-22 15:32:37.896 WifiScannerXcode2[42928:13413575] 39 networks found.
2015-05-22 15:32:38.916 WifiScannerXcode2[42928:13413575] 39 networks found.
2015-05-22 15:32:39.936 WifiScannerXcode2[42928:13413575] 39 networks found.
2015-05-22 15:32:40.960 WifiScannerXcode2[42928:13413575] 39 networks found.
2015-05-22 15:32:41.981 WifiScannerXcode2[42928:13413575] 39 networks found.
2015-05-22 15:32:45.507 WifiScannerXcode2[42928:13413575] 39 networks found.
2015-05-22 15:32:47.151 WifiScannerXcode2[42928:13413575] 40 networks found.
2015-05-22 15:32:48.176 WifiScannerXcode2[42928:13413575] 40 networks found.
2015-05-22 15:32:49.201 WifiScannerXcode2[42928:13413575] 40 networks found.
2015-05-22 15:32:50.225 WifiScannerXcode2[42928:13413575] 40 networks found.
2015-05-22 15:32:51.246 WifiScannerXcode2[42928:13413575] 40 networks found.
2015-05-22 15:32:52.268 WifiScannerXcode2[42928:13413575] 40 networks found.
2015-05-22 15:32:53.289 WifiScannerXcode2[42928:13413575] 40 networks found.
2015-05-22 15:32:56.806 WifiScannerXcode2[42928:13413575] 40 networks found.

Я заметил, что данные сгруппированы в наборы по ~8 выборок, то есть только через 8 секунд они фактически выполняют эффективное сканирование новых сетей. Я не вижу никаких документов, подтверждающих, что это так, поэтому мой вопрос: "сколько мне нужно ждать, чтобы сделать эффективное сканирование и как мне его достичь?"

С помощью встроенного в Mac средства диагностики Wireless Diagnostic я могу выполнять эффективное сканирование примерно каждые 3 секунды. Как мне достичь этого уровня?

0 ответов

Другие вопросы по тегам