m = Map("Hearing Map", translate("Hearing Map")) m.pageaction = false s = m:section(NamedSection, "__hearingmap__") function s.render(self, sid) local tpl = require "luci.template" tpl.render_string([[ <% local utl = require "luci.util" local status = require "luci.tools.ieee80211" local stat = utl.ubus("dawn", "get_hearing_map", { }) local name, macs for name, macs in pairs(stat) do local count = 0 for a,b in pairs(macs) do for _ in pairs(b) do count = count + 1 end end %> <% local mac, data for mac, data in pairs(macs) do local mac2, data2 local count_macs = 0 local count_loop = 0 for _ in pairs(data) do count_macs = count_macs + 1 end for mac2, data2 in pairs(data) do %> <% if (count_macs > 1) then %> <% if (count_loop == 0 ) then %> <% end %> <% else %> <% end %> <% count_loop = count_loop + 1 end %> <% end %>
SSID Client MAC AP MAC Frequency HT Sup VHT Sup Signal RCPI RSNI Channel
Utilization
Station connect
to AP
Score
<%= name %>
<%= mac %><%= mac %><%= mac2 %> <%= "%.3f" %( data2.freq / 1000 ) %> GHz
(Channel: <%= "%d" %( status.frequency_to_channel(data2.freq) ) %>)
<%= (data2.ht_capabilities == true and data2.ht_support == true) and "True" or "False" %> <%= (data2.vht_capabilities == true and data2.vht_support == true) and "True" or "False" %> <%= "%d" %data2.signal %> <%= "%d" %data2.rcpi %> <%= "%d" %data2.rsni %> <%= "%.2f" %(data2.channel_utilization / 2.55) %> % <%= "%d" %data2.num_sta %> <%= "%d" %data2.score %>
<% end %> ]]) end return m