Mageia Bugzilla – Attachment 3361 Details for
Bug 8228
[RESOLVED]drakx-net doesn't handle signal strength reported in dBm (negative values)
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
New Account
|
Forgot Password
[patch]
Patch to allow wpa_cli to report signale strength in dBm
monitor.pm.patch (text/plain), 1.55 KB, created by
Derek Jennings
on 2013-01-13 16:20:50 CET
(
hide
)
Description:
Patch to allow wpa_cli to report signale strength in dBm
Filename:
MIME Type:
Creator:
Derek Jennings
Created:
2013-01-13 16:20:50 CET
Size:
1.55 KB
patch
obsolete
>--- /usr/lib/libDrakX/network/monitor.pm 2012-10-12 08:13:03.000000000 +0100 >+++ monitor.pm 2013-01-13 16:15:27.000000000 +0000 >@@ -32,7 +32,7 @@ > } > if ($results && $list) { > #- bssid / frequency / signal level / flags / ssid >- while ($results =~ /^((?:[0-9a-f]{2}:){5}[0-9a-f]{2})\t(\d+)\t(\d+)\t(.*?)\t(.*)$/mg) { >+ while ($results =~ /^((?:[0-9a-f]{2}:){5}[0-9a-f]{2})\t(\d+)\t(-?\d+)\t(.*?)\t(.*)$/mg) { > my ($ap, $frequency, $signal_strength, $flags, $essid) = ($1, $2, $3, $4, $5); > $networks{$ap}{ap} ||= $ap; > #- wpa_supplicant may list the network two times, use ||= >@@ -48,8 +48,19 @@ > #- this should be standardized at some point > $_->{signal_strength} = int($_->{signal_strength}/3.5) > foreach values %networks; >+ } >+# TODO - Check if all drivers now report signal strength in dBm >+ if (any { $_->{signal_strength} < 0 } values %networks) { >+ #- wpa_supplicant now reports signal in dBm >+ #- convert to % scale assuming -45 =100% -98 = 1% >+ foreach (values %networks) { >+ $_->{signal_strength} = int(100*(98+$_->{signal_strength})/53); >+ $_->{signal_strength} = 100 if $_->{signal_strength} > 100; >+ $_->{signal_strength} = 1 if $_->{signal_strength} < 1; >+ } > } > >+ > #- network id / ssid / bssid / flags > while ($list =~ /^(\d+)\t(.*?)\t(.*?)\t(.*)$/mg) { > foreach my $net (uniq(if_($networks{$3}, $networks{$3}), grep { $_->{essid} eq $2 } values(%networks))) {
--- /usr/lib/libDrakX/network/monitor.pm 2012-10-12 08:13:03.000000000 +0100 +++ monitor.pm 2013-01-13 16:15:27.000000000 +0000 @@ -32,7 +32,7 @@ } if ($results && $list) { #- bssid / frequency / signal level / flags / ssid - while ($results =~ /^((?:[0-9a-f]{2}:){5}[0-9a-f]{2})\t(\d+)\t(\d+)\t(.*?)\t(.*)$/mg) { + while ($results =~ /^((?:[0-9a-f]{2}:){5}[0-9a-f]{2})\t(\d+)\t(-?\d+)\t(.*?)\t(.*)$/mg) { my ($ap, $frequency, $signal_strength, $flags, $essid) = ($1, $2, $3, $4, $5); $networks{$ap}{ap} ||= $ap; #- wpa_supplicant may list the network two times, use ||= @@ -48,8 +48,19 @@ #- this should be standardized at some point $_->{signal_strength} = int($_->{signal_strength}/3.5) foreach values %networks; + } +# TODO - Check if all drivers now report signal strength in dBm + if (any { $_->{signal_strength} < 0 } values %networks) { + #- wpa_supplicant now reports signal in dBm + #- convert to % scale assuming -45 =100% -98 = 1% + foreach (values %networks) { + $_->{signal_strength} = int(100*(98+$_->{signal_strength})/53); + $_->{signal_strength} = 100 if $_->{signal_strength} > 100; + $_->{signal_strength} = 1 if $_->{signal_strength} < 1; + } } + #- network id / ssid / bssid / flags while ($list =~ /^(\d+)\t(.*?)\t(.*?)\t(.*)$/mg) { foreach my $net (uniq(if_($networks{$3}, $networks{$3}), grep { $_->{essid} eq $2 } values(%networks))) {
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 8228
:
3333
| 3361