Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(481)

Unified Diff: chrome/browser/chromeos/policy/device_status_collector.cc

Issue 1062853005: Map signal_strength from percentage to dBm per spec (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Tweaked comment. Created 5 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/chromeos/policy/device_status_collector.cc
diff --git a/chrome/browser/chromeos/policy/device_status_collector.cc b/chrome/browser/chromeos/policy/device_status_collector.cc
index d57319303d5a9686fe006802023ddd130fa5da19..9c43fc886570bf02f73ebe32a274243849dae953 100644
--- a/chrome/browser/chromeos/policy/device_status_collector.cc
+++ b/chrome/browser/chromeos/policy/device_status_collector.cc
@@ -636,6 +636,22 @@ void DeviceStatusCollector::GetLocation(
}
}
+int DeviceStatusCollector::ConvertSignalStrength(int signal_strength) {
+ // Shill attempts to convert attempts to convert from its internal dBm to a
Thiemo Nagel 2015/04/16 15:16:33 Please remove duplicate "attempts to convert".
Andrew T Wilson (Slow) 2015/04/17 14:41:02 Done.
+ // percentage range (from 1-100) by subtracting 120 from the raw dBm value,
Thiemo Nagel 2015/04/16 15:16:33 s/1-100/0-100/ s/substracting 120 from/adding 120
Andrew T Wilson (Slow) 2015/04/17 14:41:02 Done.
+ // and then clamping the result to the range 1-100.
Thiemo Nagel 2015/04/16 15:16:33 s/1-100/0-100/ I'd suggest to include some kind o
Andrew T Wilson (Slow) 2015/04/17 14:41:02 Done.
+ //
+ // To convert back to dBm, we subtract 120 from the percentage value to yield
+ // a clamped dBm value in the range of -119 to -20dBm.
+ //
+ // TODO(atwilson): Tunnel the raw dBm signal strength from Shill instead of
+ // doing the conversion here so we can report non-clamped values
+ // (crbug.com/463334).
+ DCHECK_GT(signal_strength, 0);
+ DCHECK_LE(signal_strength, 100);
+ return signal_strength - 120;
+}
+
void DeviceStatusCollector::GetNetworkInterfaces(
em::DeviceStatusReportRequest* request) {
// Maps shill device type strings to proto enum constants.
@@ -728,7 +744,12 @@ void DeviceStatusCollector::GetNetworkInterfaces(
// Copy fields from NetworkState into the status report.
em::NetworkState* proto_state = request->add_network_state();
proto_state->set_connection_state(connection_state_enum);
- proto_state->set_signal_strength(state->signal_strength());
+ // If shill has provided a signal strength, convert it to dBm and store it
Thiemo Nagel 2015/04/16 15:16:33 As far as I can see, this specific conversion shou
Andrew T Wilson (Slow) 2015/04/17 14:41:02 Only report this now for wifi networks.
+ // in the status report.
+ if (state->signal_strength()) {
+ proto_state->set_signal_strength(
+ ConvertSignalStrength(state->signal_strength()));
+ }
if (!state->device_path().empty())
proto_state->set_device_path(state->device_path());

Powered by Google App Engine
This is Rietveld 408576698