summaryrefslogtreecommitdiffstats
path: root/service/java/com/android/server/wifi/WifiConfigManager.java
diff options
context:
space:
mode:
authorMichael Plass <mplass@google.com>2018-01-31 11:37:40 -0800
committerMichael Plass <mplass@google.com>2018-01-31 17:01:11 -0800
commit5911f3ed6149dd6f4a1b3407cc11c73934f21ae7 (patch)
tree7e5efaf1f33d43942ae4a8611371556a4df9f447 /service/java/com/android/server/wifi/WifiConfigManager.java
parent993290c3bff01d19df80c10804a6afb2dec6d484 (diff)
downloadandroid_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.java9
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