首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >核心WLAN MCS索引?

核心WLAN MCS索引?
EN

Stack Overflow用户
提问于 2018-01-07 01:29:31
回答 1查看 241关注 0票数 1

按住Option键并单击Wi-Fi状态栏项目时,我正在尝试重新创建当前Wi-Fi网络显示的信息。显示的参数之一是MCS Index,但我找不到任何使用CWInterface类查询此值的方法,这是我获得大多数其他数据的地方:

代码语言:javascript
复制
if let interface = CWWiFiClient.shared().interface() {
    rssi = interface.rssiValue()
    noise = interface.noiseMeasurement()
    // etc.
}

由于Wi-Fi状态栏项目和airport命令行工具都显示MCS索引,因此似乎应该有某种方法来查询它:

代码语言:javascript
复制
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 sample code似乎表明MCS索引应该是可用的,但我在文档或代码完成中没有看到它。

有没有办法通过Core WLAN或其他框架获得这个值,或者这是我需要根据其他值进行计算的东西?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-07 03:44:23

我发现了另一个可以报告WiFi状态的Python脚本wifi_status.py。从线条上

代码语言:javascript
复制
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})

可以得出结论,可以使用键值编码来检索这些属性。

这真的很有效:

代码语言:javascript
复制
if let iface = CWWiFiClient.shared().interface() {
    if let mcsIndex = iface.value(forKey: "mcsIndex") as? Int {
        print(mcsIndex)
    }
}

但我现在知道这种方法是否得到了官方的支持,或者在未来是否会起作用,所以使用风险自负。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48129952

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档