Code

wireless plugins: Interpret noise/power values >100 as (dBm + 256).
[collectd.git] / src / wireless.c
index 285fb744748c64714aa7eed8948e2f5b73df73c3..fdea9d3bfdce76af90cc2733636cbe2ce6b2ea43 100644 (file)
@@ -128,7 +128,9 @@ static int wireless_read (void)
                        power = 1.0; /* invalid */
                else if ((power >= 0.0) && (power <= 100.0))
                        power = wireless_percent_to_power (power);
-               else if (power > 100.0)
+               else if ((power > 100.0) && (power <= 256.0))
+                       power = power - 256.0;
+               else if (power > 0.0)
                        power = 1.0; /* invalid */
 
                /* noise [dBm] < 0.0 */
@@ -137,7 +139,9 @@ static int wireless_read (void)
                        noise = 1.0; /* invalid */
                else if ((noise >= 0.0) && (noise <= 100.0))
                        noise = wireless_percent_to_power (noise);
-               else if (noise > 100.0)
+               else if ((noise > 100.0) && (noise <= 256.0))
+                       noise = noise - 256.0;
+               else if (noise > 0.0)
                        noise = 1.0; /* invalid */
 
                wireless_submit (device, "signal_quality", quality);