Базовый индекс WLAN MCS?

Я пытаюсь воссоздать информацию, отображаемую для текущей сети Wi-Fi при щелчке опции на элементе строки состояния Wi-Fi. Одним из показанных параметров является индекс MCS, но я не могу найти способ запросить это значение, используя CWInterface класс, где я получаю большинство других данных:

if let interface = CWWiFiClient.shared().interface() {
    rssi = interface.rssiValue()
    noise = interface.noiseMeasurement()
    // etc.
}

Поскольку и строка состояния Wi-Fi, и инструмент командной строки аэропорта отображают индекс MCS, кажется, что должен быть какой-то способ его запросить:

MacBook:~ mark$ /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -I
     agrCtlRSSI: -46
     agrExtRSSI: 0
    agrCtlNoise: -90
    agrExtNoise: 0
          state: running
        op mode: station 
     lastTxRate: 878
        maxRate: 1300
lastAssocStatus: 0
    802.11 auth: open
      link auth: wpa2-psk
          BSSID: xx:xx:xx:xx:xx:xx
           SSID: MyWiFi
            MCS: 7
        channel: 149,80

Мне также показался пример кода Python, который, кажется, указывает на то, что индекс MCS должен быть доступен, но я не вижу его в документах или дополнении кода.

Есть ли какой-то способ получить это значение через Core WLAN или какую-то другую инфраструктуру, или это то, что мне нужно рассчитать на основе других значений?

1 ответ

Решение

Я нашел другой скрипт Python wifi_status.py, который сообщает о состоянии WiFi. Из линий

def wifi_status(properties=('bssid', 'channel', 'txRate', 'mcsIndex', 'rssi', 'noise')):
    xface = CWWiFiClient.sharedWiFiClient().interface()
    while True:
        yield({name: getattr(xface, name)() for name in properties})

можно сделать вывод, что эти атрибуты могут быть получены с помощью Key-Value Coding.

И это действительно работает:

if let iface = CWWiFiClient.shared().interface() {
    if let mcsIndex = iface.value(forKey: "mcsIndex") as? Int {
        print(mcsIndex)
    }
}

Но теперь у меня есть идея, если этот подход официально поддерживается или будет работать в будущем, поэтому используйте его на свой страх и риск.

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