luci-olsr: add snr for olsr neighbours and update Legend
authorPatrick Grimm <patrick@lunatiki.de>
Wed, 10 Jul 2013 17:52:38 +0000 (17:52 +0000)
committerPatrick Grimm <patrick@lunatiki.de>
Wed, 10 Jul 2013 17:52:38 +0000 (17:52 +0000)
applications/luci-olsr/luasrc/controller/olsr.lua
applications/luci-olsr/luasrc/tools/olsr.lua
applications/luci-olsr/luasrc/view/status-olsr/legend.htm
applications/luci-olsr/luasrc/view/status-olsr/neighbors.htm

index bef7e52eb170dd5cc4e542c9cd5b7a5331cf2279..daedcf54d94ad08e8ecd26a7c9abf6bf8ac07c91 100644 (file)
@@ -227,9 +227,9 @@ function action_neigh(json)
                                for assocmac, assot in pairs(val.list) do
                                        assocmac = string.lower(assocmac or "")
                                        if rmac == assocmac then
-                                               signal = tonumber(assot.signal)
-                                               noise = tonumber(assot.noise)
-                                               snr = signal/noise
+                                               signal = tonumber(assot.signal)*-1
+                                               noise = tonumber(assot.noise)*-1
+                                               snr = noise - signal
                                        end
                                end
                        end
index 425d09a31e13aa7712420d2cc20c7fe3d25ab859..dfd8262f0d37c69dbdff8eeda33494c853817a6a 100644 (file)
@@ -26,3 +26,17 @@ function etx_color(etx)
        return color
 end
 
+function snr_color(snr)
+       local color = "#bb3333"
+       if snr == 0 then
+               color = "#bb3333"
+       elseif snr > 30 then
+               color = "#00cc00"
+       elseif snr > 20 then
+               color = "#ffcb05"
+       elseif snr > 5 then
+               color = "#ff6600"
+       end
+       return color
+end
+
index 55b839f52faf9e561f1afc5ad22103b5cdb78d28..7575c122f36a6ced0eec42742cf5287ec6bfc8e2 100644 (file)
@@ -3,9 +3,18 @@
        <li><strong>LQ: </strong><%:Success rate of packages received from the neighbour%></li>
        <li><strong>NLQ: </strong><%:Success rate of packages sent to the neighbour%></li>
        <li><strong>ETX: </strong><%:Expected retransmission count%></li>
-       <li><strong><span style="color:#00cc00"><%:Green%></span></strong>:<%:Very good (ETX < 2)%></li>
-       <li><strong><span style="color:#ffcb05"><%:Yellow%></span></strong>:<%:Good (2 < ETX < 4)%></li>
-       <li><strong><span style="color:#ff6600"><%:Orange%></span></strong>:<%:Still usable (4 < ETX < 10)%></li>
-       <li><strong><span style="color:#bb3333"><%:Red%></span></strong>:<%:Bad (ETX > 10)%></li>
+       <ul>
+               <li><strong><span style="color:#00cc00"><%:Green%></span></strong>:<%:Very good (ETX < 2)%></li>
+               <li><strong><span style="color:#ffcb05"><%:Yellow%></span></strong>:<%:Good (2 < ETX < 4)%></li>
+               <li><strong><span style="color:#ff6600"><%:Orange%></span></strong>:<%:Still usable (4 < ETX < 10)%></li>
+               <li><strong><span style="color:#bb3333"><%:Red%></span></strong>:<%:Bad (ETX > 10)%></li>
+       </ul>
+       <li><strong>SNR: </strong><%:Signal Noise Ratio%></li>
+       <ul>
+               <li><strong><span style="color:#00cc00"><%:Green%></span></strong>:<%:Very good (SNR > 30)%></li>
+               <li><strong><span style="color:#ffcb05"><%:Yellow%></span></strong>:<%:Good (30 > SNR > 20)%></li>
+               <li><strong><span style="color:#ff6600"><%:Orange%></span></strong>:<%:Still usable (20 > SNR > 5)%></li>
+               <li><strong><span style="color:#bb3333"><%:Red%></span></strong>:<%:Bad (SNR < 5)%></li>
+       </ul>
 </ul>
 
index 0fb9bc0a3c181adf9689055f98cef46a83e3254a..f3b374536e77ecd0a3a532232214fa83bfb8ba9d 100644 (file)
@@ -24,6 +24,7 @@ if luci.http.formvalue("status") == "1" then
                        link.linkCost = 0
                end
                local color = olsrtools.etx_color(link.linkCost)
+               local snr_color = olsrtools.snr_color(link.snr)
                defaultgw_color = ""
                if link.defaultgw == 1 then
                        defaultgw_color = "#ffff99"
@@ -43,6 +44,7 @@ if luci.http.formvalue("status") == "1" then
                        signal = string.format("%.3f", link.signal),
                        noise = string.format("%.3f", link.noise),
                        color = color,
+                       snr_color = snr_color,
                        dfgcolor = defaultgw_color,
                        proto = link.proto
                        }
@@ -100,7 +102,7 @@ end
                                                '<td class="cbi-section-table-titles" style="background-color:%s">%s</td>' +
                                                '<td class="cbi-section-table-titles" style="background-color:%s" title="Signal: %s Noise: %s">%s</td>' +
                                                '</tr>',
-                                               neigh.dfgcolor, neigh.ifn, neigh.lip, neigh.lmac, neigh.dfgcolor, neigh.lq, neigh.dfgcolor, neigh.nlq, neigh.color, neigh.cost, neigh.color, neigh.signal, neigh.noise, neigh.snr || '?'
+                                               neigh.dfgcolor, neigh.ifn, neigh.lip, neigh.lmac, neigh.dfgcolor, neigh.lq, neigh.dfgcolor, neigh.nlq, neigh.color, neigh.cost, neigh.snr_color, neigh.signal, neigh.noise, neigh.snr || '?'
                                        );
                                }
 
@@ -140,6 +142,7 @@ end
                        end
 
                        color = olsrtools.etx_color(link.linkCost)
+                       snr_color = olsrtools.snr_color(link.snr)
 
                        defaultgw_color = ""
                        if link.defaultgw == 1 then
@@ -158,7 +161,7 @@ end
                        <td class="cbi-section-table-titles" style="background-color:<%=defaultgw_color%>"><%=string.format("%.3f", link.linkQuality)%></td>
                        <td class="cbi-section-table-titles" style="background-color:<%=defaultgw_color%>"><%=string.format("%.3f", link.neighborLinkQuality)%></td>
                        <td class="cbi-section-table-titles" style="background-color:<%=color%>"><%=string.format("%.3f", link.linkCost)%></td>
-                       <td class="cbi-section-table-titles" style="background-color:<%=color%>" title="Signal: <%=string.format("%.3f", link.signal)%> Noise: <%=string.format("%.3f", link.noise)%>"><%=string.format("%.3f", link.snr)%></td>
+                       <td class="cbi-section-table-titles" style="background-color:<%=snr_color%>" title="Signal: <%=string.format("%.3f", link.signal)%> Noise: <%=string.format("%.3f", link.noise)%>"><%=string.format("%.3f", link.snr)%></td>
                </tr>
                <% 
                        i = ((i % 2) + 1)