1#!/usr/bin/env python3 2# 3# Copyright 2021 - The Android Open Source Project 4# 5# Licensed under the Apache License, Version 2.0 (the 'License'); 6# you may not use this file except in compliance with the License. 7# You may obtain a copy of the License at 8# 9# http://www.apache.org/licenses/LICENSE-2.0 10# 11# Unless required by applicable law or agreed to in writing, software 12# distributed under the License is distributed on an 'AS IS' BASIS, 13# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14# See the License for the specific language governing permissions and 15# limitations under the License. 16 17 18class BaseCellConfig: 19 """ Base cell configuration class. 20 21 Attributes: 22 output_power: a float indicating the required signal level at the 23 instrument's output. 24 input_power: a float indicating the required signal level at the 25 instrument's input. 26 """ 27 # Configuration dictionary keys 28 PARAM_UL_PW = 'pul' 29 PARAM_DL_PW = 'pdl' 30 31 def __init__(self, log): 32 """ Initialize the base station config by setting all its 33 parameters to None. 34 Args: 35 log: logger object. 36 """ 37 self.log = log 38 self.output_power = None 39 self.input_power = None 40 self.band = None 41 42 def incorporate(self, new_config): 43 """ Incorporates a different configuration by replacing the current 44 values with the new ones for all the parameters different to None. 45 Args: 46 new_config: 5G cell configuration object. 47 """ 48 for attr, value in vars(new_config).items(): 49 if value is not None: 50 setattr(self, attr, value) 51