Changeset 6633

Show
Ignore:
Timestamp:
12/07/10 12:13:39 (2 years ago)
Author:
soma
Message:

modules/freifunk: Wifi status was not showing on brcm47xx.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • luci/trunk/modules/freifunk/luasrc/view/freifunk/public_status.htm

    r6592 r6633  
    11<% 
    2 local sys = require "luci.sys" 
    3 local twa = require "luci.tools.webadmin" 
     2require "luci.sys" 
     3require "luci.tools.webadmin" 
     4 
    45-- System 
    5 local system, model, memtotal, memcached, membuffers, memfree = sys.sysinfo() 
    6 local uptime = twa.date_format(tonumber(sys.uptime())) 
    7 local_time = os.date("%c") 
    8 local load1, load5, load15 = sys.loadavg() 
     6 
     7local system, model, memtotal, memcached, membuffers, memfree = luci.sys.sysinfo() 
     8local uptime = luci.sys.uptime() 
     9local load1, load5, load15 = luci.sys.loadavg() 
    910local load = string.format("%.2f, %.2f, %.2f", load1, load5, load15) 
    1011local memory = string.format("%.2f MB (%.0f%% %s, %.0f%% %s, %.0f%% %s)", 
     
    1718        tostring(translate("free")) 
    1819) 
     20local_time = os.date("%c") 
     21local uptime = luci.tools.webadmin.date_format(tonumber(uptime)) 
    1922 
    20 -- wireless 
    21 local ntm = require "luci.model.network".init() 
    22 local devices  = ntm:get_wifidevs() 
    23 local netlist = { } 
    24 local netdevs = { } 
    25 local dev 
    26 local has_iwinfo = pcall(require, "iwinfo") 
     23-- Wireless 
     24local uci = require "luci.model.uci".cursor() 
     25ifaces = {} 
     26uci:foreach("wireless", "wifi-iface", function(s) 
     27    if s.network then 
     28        table.insert(ifaces, s.network) 
     29        if (uci:get("network", s.network, "ifname")) then 
     30            has_ifaces = true 
     31        end 
     32    end 
     33end) 
    2734 
    2835-- Routes 
    29 local defroutev4 = sys.net.defaultroute() 
    30 local defroutev6 = sys.net.defaultroute6 () 
     36local defroutev4 = luci.sys.net.defaultroute() 
     37local defroutev6 = luci.sys.net.defaultroute6 () 
    3138 
    3239%> 
     
    4552</div> 
    4653 
    47 <% if devices[1] then %> 
    48  
     54<% if has_ifaces == true then %> 
    4955<div class="cbi-map"> 
    5056    <h2><%:Wireless Overview%></h2> 
    51      
    52         <% if not has_iwinfo then %> 
    53             <div class="errorbox"> 
    54                 <strong><%:Package libiwinfo required!%></strong><br /> 
    55                 <%_The <em>libiwinfo</em> package is not installed. You must install this component for working wireless configuration!%> 
    56             </div> 
    57         <% end %> 
    58  
    5957        <div class="cbi-section"> 
    6058            <div class="cbi-section-node"> 
     
    6664                        <th class="cbi-section-table-cell"><%:BSSID%></th> 
    6765                        <th class="cbi-section-table-cell"><%:Channel%></th> 
    68                         <th class="cbi-section-table-cell"><%:Mode%></th> 
    69                         <th class="cbi-section-table-cell"><%:TX%>-<%:Power%></th> 
    70                         <th class="cbi-section-table-cell"><%:Interface%></th> 
     66                        <th class="cbi-section-table-cell"><%:Mode%></th><th><%:TX%>-<%:Power%></th> 
    7167                    </tr> 
    72     <%  
    73     for _, dev in ipairs(devices) do 
    74     local net 
    75         for _, net in ipairs(dev:get_wifinets()) do 
    76             netlist[#netlist+1] = net:ifname() 
    77             netdevs[net:ifname()] = dev:name() 
    7868 
    79             if net.iwdata.ifname then 
    80                 local signal = net.iwinfo.signal or "N/A" 
    81                 local noise = net.iwinfo.noise or "N/A" 
    82                 local q = net.iwinfo.quality or "0" 
    83                 local qmax = net.iwinfo.quality_max or "100" 
    84                 local qperc = q / qmax * 100 
     69                     
     70    <% for k,v in pairs(ifaces) do 
     71    local iface = uci:get("network", v, "ifname") 
     72        if iface then 
     73                iwinf = luci.sys.wifi.getiwinfo(iface) 
     74            local signal = iwinf.signal 
     75            local noise = iwinf.noise 
     76            local q = iwinf.quality 
     77            local qmax = iwinf.quality_max 
     78            local qperc = q / qmax * 100 
     79             
     80            if qperc == 0 then 
     81                                icon = "signal-none.png" 
     82            elseif qperc < 26 then 
     83                icon = "signal-0-25.png" 
     84            elseif qperc < 51 then 
     85                icon = "signal-25-50.png" 
     86            elseif qperc < 76 then 
     87                                icon = "signal-50-75.png" 
     88            elseif qperc < 100 then 
     89                                icon = "signal-75-100.png" 
     90            else 
     91                icon = "signal-0.png" 
     92            end 
    8593 
    86                 if qperc == 0 then 
    87                     icon = "signal-none.png" 
    88                 elseif qperc < 26 then 
    89                     icon = "signal-0-25.png" 
    90                 elseif qperc < 51 then 
    91                     icon = "signal-25-50.png" 
    92                 elseif qperc < 76 then 
    93                     icon = "signal-50-75.png" 
    94                 elseif qperc < 100 then 
    95                     icon = "signal-75-100.png" 
    96                 else 
    97                     icon = "signal-0.png" 
    98                 end 
     94            signal_string = "<img src='"..resource.."/icons/"..icon.."' title='Signal: "..signal.." db / Noise: "..noise.." db' alt='Signal Quality'></img>" 
    9995 
    100                 signal_string = "<img src='"..resource.."/icons/"..icon.."' title='Signal: "..signal.." db / Noise: "..noise.." db' alt='Signal Quality'></img>" 
    101  
    102                 local ssid = net.iwinfo.ssid or "N/A" 
    103                 local bssid = net.iwinfo.bssid or "N/A" 
    104                 local chan = net.iwinfo.channel or "N/A" 
    105                 local mode = net.iwinfo.mode or "N/A" 
    106                 local txpwr = net.iwinfo.txpower or "N/A" 
    107                 if txpwr ~= "N/A" then 
    108                     txpwr = txpwr.." dbm" 
    109                 end 
    110                 local bitrate = net.iwinfo.bitrate or "N/A" 
    111                 if bitrate ~= "N/A" then 
    112                     bitrate = ( bitrate / 1000 ).."Mb/s" 
    113                 end 
    114                 local interface = net.iwdata.ifname or "N/A" 
    115     %> 
    116                         <tr class="cbi-section-table-row cbi-rowstyle-1"> 
     96            local ssid = iwinf.ssid 
     97            local bssid = iwinf.bssid    
     98            local chan = iwinf.channel 
     99            local mode = iwinf.mode 
     100            local txpwr = iwinf.txpower.." dbm" 
     101            local bitrate = (iwinf.bitrate / 1000).."Mb/s" 
     102            %> 
     103                    <tr class="cbi-section-table-row cbi-rowstyle-1"> 
    117104                        <td class="cbi-value-field"><%=signal_string%></td> 
    118105                        <td class="cbi-value-field"><%=bitrate%></td> 
     
    120107                        <td class="cbi-value-field"><%=bssid%></td> 
    121108                        <td class="cbi-value-field"><%=chan%></td> 
    122                         <td class="cbi-value-field"><%=mode%></td> 
    123                         <td class="cbi-value-field"><%=txpwr%></td> 
    124                         <td class="cbi-value-field"><%=interface%></td> 
     109                        <td class="cbi-value-field"><%=mode%></td><td><%=txpwr%></td> 
    125110                    </tr> 
    126             <% end 
    127         end 
    128     end %> 
    129             </table> 
     111        <% end %> 
     112    <% end %> 
     113                </table> 
    130114        </div> 
    131115    </div> 
     
    136120    <h2><%:Default routes%></h2> 
    137121        <div class="cbi-section"> 
    138             <div class="cbi-section-node"> 
    139                 <table class="cbi-section-table"> 
    140  
    141 <% if not defroutev4 and not defroutev6 then %> 
    142     <%:No default routes known.%> 
    143 <%else%> 
     122                        <div class="cbi-section-node"> 
     123                                <table class="cbi-section-table"> 
     124                    <% if not defroutev4 and not defroutev6 then %> 
     125                        <%:No defaultroutes known.%> 
     126                    <%else%> 
    144127                        <tr class="cbi-section-table-titles"> 
    145128                            <th class="cbi-section-table-cell"><%:Network%></th> 
     
    148131                            <th class="cbi-section-table-cell"><%:Metric%></th> 
    149132                        </tr> 
    150  
    151133    <% if defroutev4 then %> 
    152  
    153134                        <tr class="cbi-section-table-row cbi-rowstyle-1"> 
    154135                            <td class="cbi-value-field"><%=defroutev4.dest:string()%></td> 
     
    157138                            <td class="cbi-value-field"><%=defroutev4.metric%></td> 
    158139                        </tr> 
    159  
    160     <% end 
    161     if defroutev6 then %> 
    162  
     140    <% end %> 
     141    <% if defroutev6 then %> 
    163142                        <tr class="cbi-section-table-row cbi-rowstyle-2"> 
    164143                            <td class="cbi-value-field"><%=defroutev6.dest:string()%></td> 
     
    167146                            <td class="cbi-value-field"><%=defroutev6.metric%></td> 
    168147                        </tr> 
    169  
    170148    <% end %> 
    171  
    172149                </table> 
    173150        </div> 
    174151    </div> 
    175152</div> 
     153 
    176154<% end %> 
    177155 
    178156<%+footer%> 
     157