diff options
author | TreeHugger Robot <treehugger-gerrit@google.com> | 2018-02-08 08:43:38 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2018-02-08 08:43:38 +0000 |
commit | 1d325ef88cdf03447d41e334d9d904e4d0f7b0c0 (patch) | |
tree | f96581d934915efb4eedf9a5765e0daef846a4a7 /service/java/com/android/server/wifi/WifiConfigManager.java | |
parent | 8cafc97bcb29b50a250cb56ac89a565434e115a3 (diff) | |
parent | 5911f3ed6149dd6f4a1b3407cc11c73934f21ae7 (diff) | |
download | android_frameworks_opt_net_wifi-1d325ef88cdf03447d41e334d9d904e4d0f7b0c0.tar.gz android_frameworks_opt_net_wifi-1d325ef88cdf03447d41e334d9d904e4d0f7b0c0.tar.bz2 android_frameworks_opt_net_wifi-1d325ef88cdf03447d41e334d9d904e4d0f7b0c0.zip |
Merge "Move wifi/ScanResult.averageRssi logic to service"
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 efadbd064..1cc0ee709 100644 --- a/service/java/com/android/server/wifi/WifiConfigManager.java +++ b/service/java/com/android/server/wifi/WifiConfigManager.java @@ -2014,7 +2014,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 |