13f085823Sopenharmony_ci#!/usr/bin/env python3 23f085823Sopenharmony_ci# coding=utf-8 33f085823Sopenharmony_ci 43f085823Sopenharmony_ci# 53f085823Sopenharmony_ci# Copyright (c) 2021 Huawei Device Co., Ltd. 63f085823Sopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License"); 73f085823Sopenharmony_ci# you may not use this file except in compliance with the License. 83f085823Sopenharmony_ci# You may obtain a copy of the License at 93f085823Sopenharmony_ci# 103f085823Sopenharmony_ci# http://www.apache.org/licenses/LICENSE-2.0 113f085823Sopenharmony_ci# 123f085823Sopenharmony_ci# Unless required by applicable law or agreed to in writing, software 133f085823Sopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS, 143f085823Sopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 153f085823Sopenharmony_ci# See the License for the specific language governing permissions and 163f085823Sopenharmony_ci# limitations under the License. 173f085823Sopenharmony_ci# 183f085823Sopenharmony_ci 193f085823Sopenharmony_ciimport os 203f085823Sopenharmony_ci 213f085823Sopenharmony_cifrom distributed.common.devices import DeviceShell 223f085823Sopenharmony_ci 233f085823Sopenharmony_ci 243f085823Sopenharmony_ci############################################################################## 253f085823Sopenharmony_ci############################################################################## 263f085823Sopenharmony_ci 273f085823Sopenharmony_ciclass DeviceManager: 283f085823Sopenharmony_ci def __init__(self, result_path): 293f085823Sopenharmony_ci self.is_hdc = True 303f085823Sopenharmony_ci self.phone_device_list = [] 313f085823Sopenharmony_ci self.ivi_device_list = [] 323f085823Sopenharmony_ci self.tv_device_list = [] 333f085823Sopenharmony_ci self.watch_device_list = [] 343f085823Sopenharmony_ci self.make_device_list(result_path) 353f085823Sopenharmony_ci 363f085823Sopenharmony_ci @staticmethod 373f085823Sopenharmony_ci def get_device_info_list(result): 383f085823Sopenharmony_ci device_info_list = [] 393f085823Sopenharmony_ci tmp_path = os.path.join(result, "temp") 403f085823Sopenharmony_ci device_info_file_path = os.path.join(tmp_path, 413f085823Sopenharmony_ci "device_info_file.txt") 423f085823Sopenharmony_ci 433f085823Sopenharmony_ci if os.path.exists(device_info_file_path): 443f085823Sopenharmony_ci with open(device_info_file_path, "r") as file_handle: 453f085823Sopenharmony_ci lines = file_handle.readlines() 463f085823Sopenharmony_ci for line in lines: 473f085823Sopenharmony_ci line = line.replace("\n", "") 483f085823Sopenharmony_ci line = line.strip() 493f085823Sopenharmony_ci temp = line.split(",") 503f085823Sopenharmony_ci device_info_list.append(temp) 513f085823Sopenharmony_ci return device_info_list 523f085823Sopenharmony_ci 533f085823Sopenharmony_ci def make_device_adapter(self, device_info_list, device_name): 543f085823Sopenharmony_ci device = DeviceShell(self.is_hdc, device_sn=device_info_list[0], 553f085823Sopenharmony_ci remote_ip=device_info_list[2], 563f085823Sopenharmony_ci repote_port=device_info_list[3], 573f085823Sopenharmony_ci name=device_name) 583f085823Sopenharmony_ci return device 593f085823Sopenharmony_ci 603f085823Sopenharmony_ci def make_device_list(self, result_path): 613f085823Sopenharmony_ci device_info_list = self.get_device_info_list(result_path) 623f085823Sopenharmony_ci for item in device_info_list: 633f085823Sopenharmony_ci if len(item) != 4: 643f085823Sopenharmony_ci continue 653f085823Sopenharmony_ci if item[1] == "phone": 663f085823Sopenharmony_ci index = len(self.phone_device_list) + 1 673f085823Sopenharmony_ci device_name = "PHONE%s" % index 683f085823Sopenharmony_ci device = self.make_device_adapter(item, device_name) 693f085823Sopenharmony_ci self.phone_device_list.append(device) 703f085823Sopenharmony_ci setattr(self, device.name, device) 713f085823Sopenharmony_ci elif item[1] == "ivi": 723f085823Sopenharmony_ci index = len(self.ivi_device_list) + 1 733f085823Sopenharmony_ci device_name = "IVI%s" % index 743f085823Sopenharmony_ci device = self.make_device_adapter(item, device_name) 753f085823Sopenharmony_ci self.ivi_device_list.append(device) 763f085823Sopenharmony_ci setattr(self, device.name, device) 773f085823Sopenharmony_ci elif item[1] == "tv": 783f085823Sopenharmony_ci index = len(self.tv_device_list) + 1 793f085823Sopenharmony_ci device_name = "TV%s" % index 803f085823Sopenharmony_ci device = self.make_device_adapter(item, device_name) 813f085823Sopenharmony_ci self.tv_device_list.append(device) 823f085823Sopenharmony_ci setattr(self, device.name, device) 833f085823Sopenharmony_ci elif item[1] == "watch": 843f085823Sopenharmony_ci index = len(self.watch_device_list) + 1 853f085823Sopenharmony_ci device_name = "WATCH%s" % index 863f085823Sopenharmony_ci device = self.make_device_adapter(item, device_name) 873f085823Sopenharmony_ci self.watch_device_list.append(device) 883f085823Sopenharmony_ci setattr(self, device.name, device) 893f085823Sopenharmony_ci return 903f085823Sopenharmony_ci 913f085823Sopenharmony_ci############################################################################## 923f085823Sopenharmony_ci############################################################################## 93