1*6777b538SAndroid Build Coastguard Worker#!/usr/bin/env vpython3 2*6777b538SAndroid Build Coastguard Worker# 3*6777b538SAndroid Build Coastguard Worker# Copyright 2013 The Chromium Authors 4*6777b538SAndroid Build Coastguard Worker# Use of this source code is governed by a BSD-style license that can be 5*6777b538SAndroid Build Coastguard Worker# found in the LICENSE file. 6*6777b538SAndroid Build Coastguard Worker 7*6777b538SAndroid Build Coastguard Worker"""Sends a heart beat pulse to the currently online Android devices. 8*6777b538SAndroid Build Coastguard WorkerThis heart beat lets the devices know that they are connected to a host. 9*6777b538SAndroid Build Coastguard Worker""" 10*6777b538SAndroid Build Coastguard Worker# pylint: disable=W0702 11*6777b538SAndroid Build Coastguard Worker 12*6777b538SAndroid Build Coastguard Workerimport sys 13*6777b538SAndroid Build Coastguard Workerimport time 14*6777b538SAndroid Build Coastguard Worker 15*6777b538SAndroid Build Coastguard Workerimport devil_chromium 16*6777b538SAndroid Build Coastguard Workerfrom devil.android import device_utils 17*6777b538SAndroid Build Coastguard Worker 18*6777b538SAndroid Build Coastguard WorkerPULSE_PERIOD = 20 19*6777b538SAndroid Build Coastguard Worker 20*6777b538SAndroid Build Coastguard Workerdef main(): 21*6777b538SAndroid Build Coastguard Worker devil_chromium.Initialize() 22*6777b538SAndroid Build Coastguard Worker 23*6777b538SAndroid Build Coastguard Worker while True: 24*6777b538SAndroid Build Coastguard Worker try: 25*6777b538SAndroid Build Coastguard Worker devices = device_utils.DeviceUtils.HealthyDevices(denylist=None) 26*6777b538SAndroid Build Coastguard Worker for d in devices: 27*6777b538SAndroid Build Coastguard Worker d.RunShellCommand(['touch', '/sdcard/host_heartbeat'], 28*6777b538SAndroid Build Coastguard Worker check_return=True) 29*6777b538SAndroid Build Coastguard Worker except: 30*6777b538SAndroid Build Coastguard Worker # Keep the heatbeat running bypassing all errors. 31*6777b538SAndroid Build Coastguard Worker pass 32*6777b538SAndroid Build Coastguard Worker time.sleep(PULSE_PERIOD) 33*6777b538SAndroid Build Coastguard Worker 34*6777b538SAndroid Build Coastguard Worker 35*6777b538SAndroid Build Coastguard Workerif __name__ == '__main__': 36*6777b538SAndroid Build Coastguard Worker sys.exit(main()) 37