mirror of
				https://github.com/ARM-software/workload-automation.git
				synced 2025-10-31 07:04:17 +00:00 
			
		
		
		
	RTConfig: Added android runtime config
Added a runtime config for android specific settings, currently supported are screen brightness, rotation and airplane mode.
This commit is contained in:
		| @@ -4,7 +4,7 @@ from collections import defaultdict, OrderedDict | |||||||
| from wa.framework.exception import ConfigError | from wa.framework.exception import ConfigError | ||||||
| from wa.framework.plugin import Plugin, Parameter | from wa.framework.plugin import Plugin, Parameter | ||||||
| from wa.utils.misc import resolve_cpus, resolve_unique_domain_cpus | from wa.utils.misc import resolve_cpus, resolve_unique_domain_cpus | ||||||
| from wa.utils.types import caseless_string | from wa.utils.types import caseless_string, enum | ||||||
|  |  | ||||||
| from devlib.exception import TargetError | from devlib.exception import TargetError | ||||||
| from devlib.utils.misc import unique | from devlib.utils.misc import unique | ||||||
| @@ -809,3 +809,77 @@ class CpuidleRuntimeConfig(RuntimeConfig): | |||||||
|                 if state.name not in common_idle_states: |                 if state.name not in common_idle_states: | ||||||
|                     common_idle_states.append(state) |                     common_idle_states.append(state) | ||||||
|         return common_idle_states |         return common_idle_states | ||||||
|  |  | ||||||
|  | ScreenOrientation = enum(['NATURAL', 'LEFT', 'INVERTED', 'RIGHT']) | ||||||
|  |  | ||||||
|  |  | ||||||
|  | class AndroidRuntimeConfig(RuntimeConfig): | ||||||
|  |  | ||||||
|  |     name = 'rt-android' | ||||||
|  |  | ||||||
|  |     @staticmethod | ||||||
|  |     def set_brightness(obj, value): | ||||||
|  |         if value is not None: | ||||||
|  |             obj.config['brightness'] = value | ||||||
|  |  | ||||||
|  |     @staticmethod | ||||||
|  |     def set_airplane_mode(obj, value): | ||||||
|  |         if value is not None: | ||||||
|  |             obj.config['airplane_mode'] = value | ||||||
|  |  | ||||||
|  |     @staticmethod | ||||||
|  |     def set_rotation(obj, value): | ||||||
|  |         if value is not None: | ||||||
|  |             obj.config['rotation'] = value.value | ||||||
|  |  | ||||||
|  |     def __init__(self, target): | ||||||
|  |         self.config = defaultdict(dict) | ||||||
|  |         super(AndroidRuntimeConfig, self).__init__(target) | ||||||
|  |  | ||||||
|  |     def initialize(self): | ||||||
|  |         if self.target.os != 'android': | ||||||
|  |             return | ||||||
|  |  | ||||||
|  |         param_name = 'brightness' | ||||||
|  |         self._runtime_params[param_name] = \ | ||||||
|  |             RuntimeParameter(param_name, kind=int, | ||||||
|  |                               constraint=lambda x: 0 <= x <= 255, | ||||||
|  |                               default=127, | ||||||
|  |                               setter=self.set_brightness, | ||||||
|  |                               description=""" | ||||||
|  |                               Specify the screen brightness to be set for | ||||||
|  |                               the device | ||||||
|  |                               """) | ||||||
|  |         param_name = 'airplane_mode' | ||||||
|  |         self._runtime_params[param_name] = \ | ||||||
|  |             RuntimeParameter(param_name, kind=bool, | ||||||
|  |                               setter=self.set_airplane_mode, | ||||||
|  |                               description=""" | ||||||
|  |                               Specify whether airplane mode should be | ||||||
|  |                               enabled for the device | ||||||
|  |                               """) | ||||||
|  |         param_name = 'rotation' | ||||||
|  |         self._runtime_params[param_name] = \ | ||||||
|  |             RuntimeParameter(param_name, kind=ScreenOrientation, | ||||||
|  |                               setter=self.set_rotation, | ||||||
|  |                               description=""" | ||||||
|  |                               Specify the screen orientation for the device | ||||||
|  |                               """) | ||||||
|  |  | ||||||
|  |     def check_target(self): | ||||||
|  |         if self.target.os != 'android': | ||||||
|  |             raise ConfigError('Target does not appear to be running Android') | ||||||
|  |  | ||||||
|  |     def validate_parameters(self): | ||||||
|  |         pass | ||||||
|  |  | ||||||
|  |     def commit(self): | ||||||
|  |         if 'airplane_mode' in self.config: | ||||||
|  |             self.target.set_airplane_mode(self.config['airplane_mode']) | ||||||
|  |         if 'brightness' in self.config: | ||||||
|  |             self.target.set_brightness(self.config['brightness']) | ||||||
|  |         if 'rotation' in self.config: | ||||||
|  |             self.target.set_rotation(self.config['rotation']) | ||||||
|  |  | ||||||
|  |     def clear(self): | ||||||
|  |         self.config = {} | ||||||
|   | |||||||
| @@ -5,7 +5,8 @@ from wa.framework.exception import ConfigError | |||||||
| from wa.framework.target.runtime_config import (SysfileValuesRuntimeConfig, | from wa.framework.target.runtime_config import (SysfileValuesRuntimeConfig, | ||||||
|                                                 HotplugRuntimeConfig, |                                                 HotplugRuntimeConfig, | ||||||
|                                                 CpufreqRuntimeConfig, |                                                 CpufreqRuntimeConfig, | ||||||
|                                                 CpuidleRuntimeConfig) |                                                 CpuidleRuntimeConfig, | ||||||
|  |                                                 AndroidRuntimeConfig) | ||||||
| from wa.utils.types import obj_dict | from wa.utils.types import obj_dict | ||||||
|  |  | ||||||
|  |  | ||||||
| @@ -17,6 +18,7 @@ class RuntimeParameterManager(object): | |||||||
|         HotplugRuntimeConfig, |         HotplugRuntimeConfig, | ||||||
|         CpufreqRuntimeConfig, |         CpufreqRuntimeConfig, | ||||||
|         CpuidleRuntimeConfig, |         CpuidleRuntimeConfig, | ||||||
|  |         AndroidRuntimeConfig, | ||||||
|     ] |     ] | ||||||
|  |  | ||||||
|     def __init__(self, target): |     def __init__(self, target): | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user