diff options
author | Michael Plass <mplass@google.com> | 2018-01-31 11:37:40 -0800 |
---|---|---|
committer | Michael Plass <mplass@google.com> | 2018-01-31 17:01:11 -0800 |
commit | 5911f3ed6149dd6f4a1b3407cc11c73934f21ae7 (patch) | |
tree | 7e5efaf1f33d43942ae4a8611371556a4df9f447 /service/java/com/android/server/wifi/WifiConfigManager.java | |
parent | 993290c3bff01d19df80c10804a6afb2dec6d484 (diff) | |
download | android_frameworks_opt_net_wifi-5911f3ed6149dd6f4a1b3407cc11c73934f21ae7.tar.gz android_frameworks_opt_net_wifi-5911f3ed6149dd6f4a1b3407cc11c73934f21ae7.tar.bz2 android_frameworks_opt_net_wifi-5911f3ed6149dd6f4a1b3407cc11c73934f21ae7.zip |
Move wifi/ScanResult.averageRssi logic to service
Move the averaging logic formerly in
android.net.wifi.ScanResult#averageRssi()
to inline code in the one place it was used.
This needs a unit test, but defer adding one for a later CL because
the value of doing this averaging at all should be revaluated.
No functional change.
Bug: 68401944
Test: Unit tests
Test: Manually check logging
Change-Id: I7d4f5860726c1870b1fe21aeaa2f432961218397
Diffstat (limited to 'service/java/com/android/server/wifi/WifiConfigManager.java')
-rw-r--r-- | service/java/com/android/server/wifi/WifiConfigManager.java | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/service/java/com/android/server/wifi/WifiConfigManager.java b/service/java/com/android/server/wifi/WifiConfigManager.java index e443cd425..ffde57f7e 100644 --- a/service/java/com/android/server/wifi/WifiConfigManager.java +++ b/service/java/com/android/server/wifi/WifiConfigManager.java @@ -1996,7 +1996,14 @@ public class WifiConfigManager { scanDetail.setSeen(); result.level = info.getRssi(); // Average the RSSI value - result.averageRssi(previousRssi, previousSeen, SCAN_RESULT_MAXIMUM_AGE_MS); + long maxAge = SCAN_RESULT_MAXIMUM_AGE_MS; + long age = result.seen - previousSeen; + if (previousSeen > 0 && age > 0 && age < maxAge / 2) { + // Average the RSSI with previously seen instances of this scan result + double alpha = 0.5 - (double) age / (double) maxAge; + result.level = (int) ((double) result.level * (1 - alpha) + + (double) previousRssi * alpha); + } if (mVerboseLoggingEnabled) { Log.v(TAG, "Updating scan detail cache freq=" + result.frequency + " BSSID=" + result.BSSID |