1#!/usr/bin/env python
2#
3# Copyright (c) 2013 The Chromium Authors. All rights reserved.
4# Use of this source code is governed by a BSD-style license that can be
5# found in the LICENSE file.
6
7"""Sends a heart beat pulse to the currently online Android devices.
8This heart beat lets the devices know that they are connected to a host.
9"""
10# pylint: disable=W0702
11
12import sys
13import time
14
15from pylib import android_commands
16from pylib.device import device_utils
17
18PULSE_PERIOD = 20
19
20def main():
21  while True:
22    try:
23      devices = android_commands.GetAttachedDevices()
24      for device_serial in devices:
25        device_utils.DeviceUtils(device_serial).RunShellCommand(
26            'touch /sdcard/host_heartbeat')
27    except:
28      # Keep the heatbeat running bypassing all errors.
29      pass
30    time.sleep(PULSE_PERIOD)
31
32
33if __name__ == '__main__':
34  sys.exit(main())
35