我正在尝试重新创建当前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 sample code似乎表明MCS索引应该是可用的,但在文档或代码完成中看不到它。
有没有什么方法可以通过核心WLAN或其他框架获得这个价值,或者这是我需要根据其他价值计算的东西?
最佳答案
我找到了另一个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})
我们可以得出结论,这些属性可以通过
键值编码。
这真的很管用:
if let iface = CWWiFiClient.shared().interface() {
if let mcsIndex = iface.value(forKey: "mcsIndex") as? Int {
print(mcsIndex)
}
}
但我现在知道如果这种方法得到官方支持,
或者将来会有用的,所以使用的风险由你自己承担。
关于swift - 核心WLAN MCS索引?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48129952/