| OLD | NEW |
| 1 # Copyright 2013 The Chromium Authors. All rights reserved. | 1 # Copyright 2013 The Chromium Authors. All rights reserved. |
| 2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
| 3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
| 4 | 4 |
| 5 import logging | 5 import logging |
| 6 from pylib import android_commands | 6 from pylib import android_commands |
| 7 from pylib.device import device_utils | 7 from pylib.device import device_utils |
| 8 | 8 |
| 9 | 9 |
| 10 class OmapThrottlingDetector(object): | 10 class OmapThrottlingDetector(object): |
| (...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 95 def IsThrottled(self): | 95 def IsThrottled(self): |
| 96 """True if currently throttled.""" | 96 """True if currently throttled.""" |
| 97 self._ReadLog() | 97 self._ReadLog() |
| 98 return self._throttled | 98 return self._throttled |
| 99 | 99 |
| 100 def _ReadLog(self): | 100 def _ReadLog(self): |
| 101 if not self._detector: | 101 if not self._detector: |
| 102 return False | 102 return False |
| 103 has_been_throttled = False | 103 has_been_throttled = False |
| 104 serial_number = self._device.old_interface.GetDevice() | 104 serial_number = self._device.old_interface.GetDevice() |
| 105 log = self._device.old_interface.RunShellCommand('dmesg -c') | 105 log = self._device.RunShellCommand('dmesg -c') |
| 106 degree_symbol = unichr(0x00B0) | 106 degree_symbol = unichr(0x00B0) |
| 107 for line in log: | 107 for line in log: |
| 108 if self._detector.BecameThrottled(line): | 108 if self._detector.BecameThrottled(line): |
| 109 if not self._throttled: | 109 if not self._throttled: |
| 110 logging.warning('>>> Device %s thermally throttled', serial_number) | 110 logging.warning('>>> Device %s thermally throttled', serial_number) |
| 111 self._throttled = True | 111 self._throttled = True |
| 112 has_been_throttled = True | 112 has_been_throttled = True |
| 113 elif self._detector.BecameUnthrottled(line): | 113 elif self._detector.BecameUnthrottled(line): |
| 114 if self._throttled: | 114 if self._throttled: |
| 115 logging.warning('>>> Device %s thermally unthrottled', serial_number) | 115 logging.warning('>>> Device %s thermally unthrottled', serial_number) |
| 116 self._throttled = False | 116 self._throttled = False |
| 117 has_been_throttled = True | 117 has_been_throttled = True |
| 118 temperature = self._detector.GetThrottlingTemperature(line) | 118 temperature = self._detector.GetThrottlingTemperature(line) |
| 119 if temperature is not None: | 119 if temperature is not None: |
| 120 logging.info(u'Device %s thermally throttled at %3.1f%sC', | 120 logging.info(u'Device %s thermally throttled at %3.1f%sC', |
| 121 serial_number, temperature, degree_symbol) | 121 serial_number, temperature, degree_symbol) |
| 122 | 122 |
| 123 if logging.getLogger().isEnabledFor(logging.DEBUG): | 123 if logging.getLogger().isEnabledFor(logging.DEBUG): |
| 124 # Print current temperature of CPU SoC. | 124 # Print current temperature of CPU SoC. |
| 125 temperature = self._detector.GetCurrentTemperature() | 125 temperature = self._detector.GetCurrentTemperature() |
| 126 if temperature is not None: | 126 if temperature is not None: |
| 127 logging.debug(u'Current SoC temperature of %s = %3.1f%sC', | 127 logging.debug(u'Current SoC temperature of %s = %3.1f%sC', |
| 128 serial_number, temperature, degree_symbol) | 128 serial_number, temperature, degree_symbol) |
| 129 | 129 |
| 130 # Print temperature of battery, to give a system temperature | 130 # Print temperature of battery, to give a system temperature |
| 131 dumpsys_log = self._device.old_interface.RunShellCommand( | 131 dumpsys_log = self._device.RunShellCommand('dumpsys battery') |
| 132 'dumpsys battery') | |
| 133 for line in dumpsys_log: | 132 for line in dumpsys_log: |
| 134 if 'temperature' in line: | 133 if 'temperature' in line: |
| 135 btemp = float([s for s in line.split() if s.isdigit()][0]) / 10.0 | 134 btemp = float([s for s in line.split() if s.isdigit()][0]) / 10.0 |
| 136 logging.debug(u'Current battery temperature of %s = %3.1f%sC', | 135 logging.debug(u'Current battery temperature of %s = %3.1f%sC', |
| 137 serial_number, btemp, degree_symbol) | 136 serial_number, btemp, degree_symbol) |
| 138 | 137 |
| 139 return has_been_throttled | 138 return has_been_throttled |
| 140 | 139 |
| OLD | NEW |