1 # Copyright (c) 2013 The Chromium OS Authors. All rights reserved. 2 # Use of this source code is governed by a BSD-style license that can be 3 # found in the LICENSE file. 4 5 # Setup wardmodem package root and other autotest paths. 6 import common 7 8 import state_machine 9 10 class CallMachine(state_machine.StateMachine): 11 """ 12 This state machine simulates an active call over a registered network. 13 14 """ 15 # ########################################################################## 16 # Functions overriden from base class. 17 def get_well_known_name(self): 18 """ Returns the well known name for this machine. """ 19 return 'call_machine' 20 21 22 # ########################################################################## 23 # State machine API functions. 24 def connect_call(self): 25 """ Connect a call on a reigstered network. """ 26 power_level = self._state['power_level'] 27 if power_level == 'FULL': 28 self._update_state({'call_status': 'CONNECTED'}, 3000) 29 # Update level indicators 30 self._update_state({'level_call': 1}, 3000) 31 else: 32 self._logger.info(self._tag_with_name( 33 "Attempted to connect a call at power level: %s. Ignored." % 34 power_level)) 35 self._respond_ok() 36 37 38 def disconnect_call(self): 39 """ Disconnect an active call on a registered network. """ 40 self._update_state({'call_status': 'DISCONNECTED'}, 3000) 41 # Update level indicators 42 self._update_state({'level_call': 0}, 3000) 43 self._respond_ok() 44