forked from mirror/openwrt
wifi-scripts: iwinfo.uc: cache survey data in iface object
Extract survey fetching into get_survey() and store results in iface.survey, allowing access to full survey info (not just noise) for later use. Signed-off-by: Felix Fietkau <nbd@nbd.name>
This commit is contained in:
parent
26eab84f81
commit
e855f32bdd
1 changed files with 10 additions and 8 deletions
|
|
@ -21,15 +21,16 @@ function find_phy(wiphy) {
|
|||
return null;
|
||||
}
|
||||
|
||||
function get_noise(iface) {
|
||||
for (let phy in phys) {
|
||||
let channels = nl80211.request(nl80211.const.NL80211_CMD_GET_SURVEY, nl80211.const.NLM_F_DUMP, { dev: iface.ifname });
|
||||
for (let k, channel in channels)
|
||||
if (channel.survey_info.frequency == iface.wiphy_freq)
|
||||
return channel.survey_info.noise;
|
||||
}
|
||||
function get_survey(iface) {
|
||||
let channels = nl80211.request(nl80211.const.NL80211_CMD_GET_SURVEY, nl80211.const.NLM_F_DUMP, { dev: iface.ifname });
|
||||
for (let channel in channels)
|
||||
if (channel.survey_info?.frequency == iface.wiphy_freq)
|
||||
return channel.survey_info;
|
||||
return null;
|
||||
}
|
||||
|
||||
return -100;
|
||||
function get_noise(iface) {
|
||||
return iface.survey?.noise ?? -100;
|
||||
}
|
||||
|
||||
function get_country(iface) {
|
||||
|
|
@ -104,6 +105,7 @@ export function update() {
|
|||
let iface = ifaces[v.ifname] = v;
|
||||
|
||||
iface.mode = iftypes[iface.iftype] ?? 'unknown',
|
||||
iface.survey = get_survey(iface);
|
||||
iface.noise = get_noise(iface);
|
||||
iface.country = get_country(iface);
|
||||
iface.max_power = get_max_power(iface);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue