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

Unified Diff: tools/telemetry/telemetry/internal/platform/power_monitor/android_power_monitor_base.py

Issue 1432093002: Improve readability of power monitoring code and add additional (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix issue 556653 Created 5 years, 1 month 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: tools/telemetry/telemetry/internal/platform/power_monitor/android_power_monitor_base.py
diff --git a/tools/telemetry/telemetry/internal/platform/power_monitor/android_power_monitor_base.py b/tools/telemetry/telemetry/internal/platform/power_monitor/android_power_monitor_base.py
new file mode 100644
index 0000000000000000000000000000000000000000..3bec7a3a5aa203874c08a26f851008885c83529b
--- /dev/null
+++ b/tools/telemetry/telemetry/internal/platform/power_monitor/android_power_monitor_base.py
@@ -0,0 +1,45 @@
+# Copyright 2014 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import logging
+
+from telemetry.internal.platform import power_monitor
+
+
+class AndroidPowerMonitorBase(power_monitor.PowerMonitor):
+
+ # Abstract class.
+ # pylint: disable=abstract-method
+
+ def _ParseVoltage(self, millivolts):
+ # Parse voltage information.
+ # If voltage is None, use 4.0 as default.
+ # Otherwise, convert millivolts to volts.
+ if millivolts is None:
+ # Converting at a nominal voltage of 4.0V, as those values are obtained by
+ # a heuristic, and 4.0V is the voltage we set when using a monsoon device.
+ voltage = 4.0
+ logging.warning('Unable to get device voltage. Using %s.', voltage)
+ else:
+ voltage = float(millivolts) / 1000
+ logging.info('Device voltage at %s', voltage)
+ return voltage
+
+ def _LogPowerAnomalies(self, power_data, package):
+ # Log anomalies in power data.
+ if power_data['energy_consumption_mwh'] == 0:
+ logging.warning('Power data is returning 0 for system total usage. %s'
+ % (power_data))
+ if power_data['application_energy_consumption_mwh'] == 0:
+ logging.warning('Power data is returning 0 usage for %s. %s'
+ % (package, power_data))
+
+ def _ChargingOff(self, battery):
+ battery.SetCharging(False)
+
+ def _ChargingOn(self, battery):
+ if battery.GetCharging():
+ logging.warning('Charging re-enabled during test.'
+ 'Results may be inaccurate.')
+ battery.SetCharging(True)

Powered by Google App Engine
This is Rietveld 408576698