1#!/usr/bin/env python3 2# coding=utf-8 3 4# 5# Copyright (c) 2021 Huawei Device Co., Ltd. 6# Licensed under the Apache License, Version 2.0 (the "License"); 7# you may not use this file except in compliance with the License. 8# You may obtain a copy of the License at 9# 10# http://www.apache.org/licenses/LICENSE-2.0 11# 12# Unless required by applicable law or agreed to in writing, software 13# distributed under the License is distributed on an "AS IS" BASIS, 14# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15# See the License for the specific language governing permissions and 16# limitations under the License. 17# 18 19import os 20from distributed.common.devices import DeviceAdapter 21from distributed.common.devices import HDCDeviceAdapter 22 23 24############################################################################## 25############################################################################## 26 27class DeviceManager: 28 def __init__(self): 29 self.has_hdc_tool = False 30 self.phone_device_list = [] 31 self.ivi_device_list = [] 32 self.tv_device_list = [] 33 self.watch_device_list = [] 34 self.make_device_list() 35 36 def make_device_adapter(self, device_info_list, device_name): 37 if self.has_hdc_tool: 38 device = HDCDeviceAdapter(device_sn=device_info_list[0], 39 remote_ip=device_info_list[2], 40 repote_port=device_info_list[3], 41 name=device_name) 42 else: 43 device = DeviceAdapter(device_sn=device_info_list[0], 44 remote_ip=device_info_list[2], 45 repote_port=device_info_list[3], 46 name=device_name) 47 return device 48 49 def make_device_list(self): 50 device_info_list = self.get_device_info_list() 51 print(device_info_list) 52 53 for item in device_info_list: 54 if len(item) != 4: 55 continue 56 if item[1] == "phone": 57 index = len(self.phone_device_list) + 1 58 device_name = "PHONE%s" % index 59 device = self.make_device_adapter(item, device_name) 60 self.phone_device_list.append(device) 61 setattr(self, device.name, device) 62 elif item[1] == "ivi": 63 index = len(self.ivi_device_list) + 1 64 device_name = "IVI%s" % index 65 device = self.make_device_adapter(item, device_name) 66 self.ivi_device_list.append(device) 67 setattr(self, device.name, device) 68 elif item[1] == "tv": 69 index = len(self.tv_device_list) + 1 70 device_name = "TV%s" % index 71 device = self.make_device_adapter(item, device_name) 72 self.tv_device_list.append(device) 73 setattr(self, device.name, device) 74 elif item[1] == "watch": 75 index = len(self.watch_device_list) + 1 76 device_name = "WATCH%s" % index 77 device = self.make_device_adapter(item, device_name) 78 self.watch_device_list.append(device) 79 setattr(self, device.name, device) 80 return 81 82 def get_device_info_list(self): 83 device_info_list = [] 84 tmp_path = os.path.join(os.environ.get('PYTEST_RESULTPATH'), "temp") 85 device_info_file_path = os.path.join(tmp_path, 86 "device_info_file.txt") 87 88 if os.path.exists(device_info_file_path): 89 with open(device_info_file_path, "r") as file_handle: 90 lines = file_handle.readlines() 91 for line in lines: 92 line = line.replace("\n", "") 93 line = line.strip() 94 temp = line.split(",") 95 device_info_list.append(temp) 96 return device_info_list 97 98 99############################################################################## 100############################################################################## 101 102