X-Git-Url: https://git.archive.openwrt.org/?p=project%2Fluci.git;a=blobdiff_plain;f=modules%2Fadmin-full%2Fluasrc%2Fview%2Fadmin_network%2Fwifi_overview.htm;h=795edc4f389af5a4cc5e9755cafd9169e500614d;hp=251f767d23272ca0d9a0d5444716e13de5a46189;hb=6090617a9b97e386070f6f70b7c23aa404cc4149;hpb=4d3ddb03a308629abc4f9c37686c5d2351ce5950 diff --git a/modules/admin-full/luasrc/view/admin_network/wifi_overview.htm b/modules/admin-full/luasrc/view/admin_network/wifi_overview.htm index 251f767d2..795edc4f3 100644 --- a/modules/admin-full/luasrc/view/admin_network/wifi_overview.htm +++ b/modules/admin-full/luasrc/view/admin_network/wifi_overview.htm @@ -17,7 +17,10 @@ $Id$ local sys = require "luci.sys" local utl = require "luci.util" - local uci = require "luci.model.uci".cursor_state() + local uci = require "luci.model.uci".cursor() + local wlm = require "luci.model.wireless" + + wlm.init(uci) function guess_wifi_hw(ifname) local name, idx = ifname:match("^([a-z]+)(%d+)") @@ -65,16 +68,14 @@ $Id$ -- dunno yet else - return "Unkown 802.11 Wireless Controller" + return "Generic 802.11 Wireless Controller" end end - function guess_wifi_signal(info) - local snr = -1 * ((info.noise or 0) - (info.signal or 0)) - local scale = math.floor(snr / 5) + function guess_wifi_signal(scale) local icon - if not info.bssid or info.bssid == "00:00:00:00:00:00" then + if scale < 0 then icon = resource .. "/icons/signal-none.png" elseif scale < 1 then icon = resource .. "/icons/signal-0.png" @@ -91,103 +92,56 @@ $Id$ return icon end - function percent_wifi_signal(info) - local qc = info.quality or 0 - local qm = info.quality_max or 0 - - if info.bssid and qc > 0 and qm > 0 then - return math.floor((100 / qm) * qc) - else - return 0 - end - end - - function find_wifi_devices() - local devs = { } - uci:foreach("wireless", "wifi-device", - function(s) - local dev = s['.name'] - local act = 0 - devs[dev] = { active = 0, networks = { } } - - uci:foreach("wireless", "wifi-iface", - function(s) - if s.device == dev then - if s.up == "1" then act = act + 1 end - devs[dev].networks[#devs[dev].networks+1] = { - active = (s.up == "1"), - ifname = s.ifname, - info = sys.wifi.getiwinfo(s.ifname or s.device) - } - end - end) - - devs[dev].hwname = guess_wifi_hw(dev) - devs[dev].active = (act > 0) - end) - - return devs - end - - function find_wifi_frequency(state) - if state.active then - return string.format("%d (%.03f GHz)", - state.networks[1].info.channel, - state.networks[1].info.frequency / 1000); - else - return "n/a" - end - end - - - local devices = find_wifi_devices() + local devices = wlm:get_devices() local arpcache = { } sys.net.arptable(function(e) arpcache[e["HW address"]] = e["IP address"] end) -%> <%+header%> -

<%:a_s_iw_overview Wireless Overview%>

+

<%:Wireless Overview%>

- <% for dev, state in utl.kspairs(devices) do %> - + <% for _, dev in ipairs(devices) do local nets = dev:get_networks() %> +
- + - <% if #state.networks > 0 then %> - <% for i, net in ipairs(state.networks) do %> + <% if #nets > 0 then %> + <% for i, net in ipairs(nets) do %> <% end %> @@ -202,13 +156,13 @@ $Id$
.png" style="float:left; margin-right:10px" />.png" style="float:left; margin-right:10px" /> - <%=state.hwname%> (<%=dev%>)
- Channel: <%=find_wifi_frequency(state)%> | - Bitrate: <%=state.active and (state.networks[1].info.bitrate / 1000) .. " Mb/s" or "n/a"%> + <%=guess_wifi_hw(dev:name())%> (<%=dev:name()%>)
+ <% if nets[1] then %> + Channel: <%=nets[1]:channel() or "?"%> (<%=nets[1]:frequency() or "?"%> GHz) | + Bitrate: <%=nets[1]:bitrate() or "?"%> Mb/s + <% end %>
- Find and join network + Find and join network Provide new network
-
- <%=percent_wifi_signal(net.info)%>% +
+ <%=net:signal_percent()%>%
- SSID: <%=utl.pcdata(net.info.ssid)%> | - Mode: <%=net.info.mode%>
- BSSID: <%=net.info.bssid%> | - Encryption: <%=net.info.enctype%> + SSID: <%=utl.pcdata(net:active_ssid())%> | + Mode: <%=net:active_mode_i18n()%>
+ BSSID: <%=net:active_bssid()%> | + Encryption: <%=net:active_encryption()%>
- Edit this network - Delete this network + Edit this network + ">Delete this network
- + <% end %> -

<%:a_s_iw_overview2 Associated Stations%>

+

<%:Associated Stations%>

@@ -222,12 +176,12 @@ $Id$ <% local count = -1 %> - <% for dev, state in utl.kspairs(devices) do %> - <% for _, net in ipairs(state.networks) do %> - <% for mac, info in utl.kspairs(net.info.assoclist) do info.bssid = mac; count = count + 1 %> + <% for _, dev in ipairs(devices) do local nets = dev:get_networks() %> + <% for _, net in ipairs(nets) do %> + <% for mac, info in utl.kspairs(net:assoclist()) do count = count + 1 %> - - + +
<%=net.info.ssid%><%=net:active_ssid()%> <%=mac%> <%=arpcache[mac] or "n/a"%> <%=info.signal%> dBm