| # Copyright (c) 2013 The Chromium OS Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| # Setup wardmodem package root and other autotest paths. |
| import common |
| |
| import state_machine |
| |
| class CallMachine(state_machine.StateMachine): |
| """ |
| This state machine simulates an active call over a registered network. |
| |
| """ |
| # ########################################################################## |
| # Functions overriden from base class. |
| def get_well_known_name(self): |
| """ Returns the well known name for this machine. """ |
| return 'call_machine' |
| |
| |
| # ########################################################################## |
| # State machine API functions. |
| def connect_call(self): |
| """ Connect a call on a reigstered network. """ |
| power_level = self._state['power_level'] |
| if power_level == 'FULL': |
| self._update_state({'call_status': 'CONNECTED'}, 3000) |
| # Update level indicators |
| self._update_state({'level_call': 1}, 3000) |
| else: |
| self._logger.info(self._tag_with_name( |
| "Attempted to connect a call at power level: %s. Ignored." % |
| power_level)) |
| self._respond_ok() |
| |
| |
| def disconnect_call(self): |
| """ Disconnect an active call on a registered network. """ |
| self._update_state({'call_status': 'DISCONNECTED'}, 3000) |
| # Update level indicators |
| self._update_state({'level_call': 0}, 3000) |
| self._respond_ok() |