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