def add_task(self, task: task_base.TaskBase, tv_com: str, mcu_com: str = '') -> tuple: """ 新增指定任务并指定设备串口号 :param task: :param tv_com: :param mcu_com: :return: """ _task = self._task_set.get(tv_com, None) if _task is not None: logging.debug(f'add_task , {tv_com} old device: {_task.device}') if _task.state in [task_base.STATE_FINISH, task_base.STATE_FAIL]: task.device = _task.device self._task_set[tv_com] = task elif _task.state == task_base.STATE_RUNNING: return False, f'串口{tv_com} 已有任务' else: task_base.merge_scene(_task, task) return False, f'已存在任务,场景已成功追加到{tv_com}任务中!' else: task.device = dv.Device(tv_com, mcu_com) self._task_set[tv_com] = task logging.debug( f'add_task , {task} {id(task)} new device: {task.device}') return True, f'pass'
def create_dc_scene(self,devices_list, scene_name,exec_times): this_checker = ck.Checker( power_off=self.dc_dict["待机是否正常"], sub_screen=self.dc_dict["副屏是否正常(外置摄像头保存图片)"], power_on=self.dc_dict["开机是否正常"], ) if len(devices_list) == 0: self.scene_dcwake = scene_wake.SceneDCWake( name=scene_name, exec_time=exec_times, by=sc.BY_COUNT, checker=this_checker, mode=dk.MODE_QUICK ) self.scene_dcwake.save() self.attribute_init() self.creat_success_toast = toast(parent=self, text='DC待机场景\n创建成功!') self.creat_success_toast.move(QPoint(self.geometry().left() + self.width() * 0.3, self.geometry().top() + self.height() * 0.3)) self.creat_success_toast.ocl_signal.connect(self.open_scene_list) self.creat_success_toast.setModal(True) self.creat_success_toast.exec() else: self.scene_dcwake = scene_wake.SceneDCWake( name="DC待机", exec_time=1, checker=this_checker, mode=dk.MODE_QUICK ) self.attribute_init() self.scene_dcwake.device = dv.Device(devices_list[0][0], devices_list[0][1]) self.checkscene = sceneOneCheck(self.scene_dcwake) self.checkscene.reflash_sig.connect(self.showlog) self.checkscene.dependent_check_sig.connect(self.check_message) self.checkscene.start()
def create_scene_boot_enter(self, devices_list, scene_name, exec_times): this_checker = ck.Checker() if len(devices_list) == 0: self.scene_boot_enter = scene_boot_enter.SceneBootEnter( name=scene_name, exec_time=exec_times, by=sc.BY_COUNT, checker=this_checker, inner=self.onAndoff_dict["内置应用"], third=self.onAndoff_dict["第三方应用"], tv=self.onAndoff_dict["信源"]) self.scene_boot_enter.save() self.attribute_init() self.creat_success_toast = toast(parent=self, text='开机直达场景\n创建成功!') self.creat_success_toast.move( QPoint(self.geometry().left() + self.width() * 0.3, self.geometry().top() + self.height() * 0.3)) self.creat_success_toast.ocl_signal.connect(self.open_scene_list) self.creat_success_toast.exec() else: self.scene_boot_enter = scene_boot_enter.SceneBootEnter( name="开机直达", exec_time=1, checker=this_checker, inner=self.onAndoff_dict["内置应用"], third=self.onAndoff_dict["第三方应用"], tv=self.onAndoff_dict["信源"]) self.attribute_init() self.scene_boot_enter.device = dv.Device(devices_list[0][0], devices_list[0][1]) self.checkscene = sceneOneCheck(self.scene_boot_enter) self.checkscene.reflash_sig.connect(self.showlog) self.checkscene.dependent_check_sig.connect(self.check_message) self.checkscene.start()
def create_onoff_scene(self, devices_list, scene_name, exec_times): this_checker = ck.Checker( net=self.onAndoff_dict["网络是否回连成功"], usb=self.onAndoff_dict["移动存储设备挂载是否成功,U盘个数:"], hdmi=self.onAndoff_dict["HDMI出图是否成功"], blue_controller=self.onAndoff_dict["遥控器是否回连成功"], blue_speaker=self.onAndoff_dict["蓝牙音箱是否回连成功"], near=self.onAndoff_dict["近场唤醒是否成功"], far=self.onAndoff_dict["远场唤醒是否成功"], usb_count=self.usb_count, # a2dp_mac=self.a2dp_mac ) if len(devices_list) == 0: self.scene_onoff = scene_on_and_off.SceneOnAndOff( name=scene_name, exec_time=exec_times, by=sc.BY_COUNT, checker=this_checker, mode=self.mode, key_set=dict(volume=self.onAndoff_dict["音量+-"], channel=self.onAndoff_dict["频道+-"], pad=self.onAndoff_dict["五维键"], voice=self.onAndoff_dict['语音键']), dc_off_interval=self.waittime, on2check_interval=self.boottime, ad_root=self.ad_root, far=self.far) self.scene_onoff.save() self.attribute_init() self.creat_success_toast = toast(parent=self, text='开关机场景\n创建成功!') self.creat_success_toast.move( QPoint(self.geometry().left() + self.width() * 0.3, self.geometry().top() + self.height() * 0.3)) self.creat_success_toast.ocl_signal.connect(self.open_scene_list) self.creat_success_toast.exec() else: self.scene_onoff = scene_on_and_off.SceneOnAndOff( name="开机压测", exec_time=1, checker=this_checker, mode=self.mode, key_set=dict(volume=self.onAndoff_dict["音量+-"], channel=self.onAndoff_dict["频道+-"], pad=self.onAndoff_dict["五维键"], voice=self.onAndoff_dict['语音键']), dc_off_interval=self.waittime, on2check_interval=self.boottime, ad_root=self.ad_root, far=self.far) self.attribute_init() self.scene_onoff.device = dv.Device(devices_list[0][0], devices_list[0][1]) self.checkscene = sceneOneCheck(self.scene_onoff) self.checkscene.reflash_sig.connect(self.showlog) self.checkscene.dependent_check_sig.connect(self.check_message) self.checkscene.start()
def create_toscreen_scene(self, devices_list, scene_name, exec_times): this_checker = ck.Checker( launcher=True, # blue_controller=self.online_dict["遥控器是否回连成功"], # blue_speaker=self.online_dict["蓝牙音箱是否回连成功"], # near=self.online_dict["近场唤醒是否成功"], # far=self.online_dict["远场唤醒是否成功"], ) # brand_list = [] # for channel in ["腾讯视频", "爱奇艺", "酷喵", "QQ音乐MV", # "QQ音乐", "HDP", "电视家", # "本地视频", "信源"]: # if self.online_dict[channel] == True: # brand_list.append(channel) # print('brand_list', brand_list) if self.videomode == True: profile = '' else: profile = '' if len(devices_list) == 0: self.online_scene = scene_media.SceneMedia( name=scene_name, exec_time=exec_times, by=sc.BY_COUNT, profile=profile, checker=this_checker, brand_list=[], performance_str=self.lineEdit_7.text(), performance_interval=int(self.lineEdit_6.text()), # check_interval=self.lineEdit_2.text() ) self.online_scene.save() else: self.online_scene = scene_media.SceneMedia( name="开机直达", exec_time=1, profile=profile, checker=this_checker, brand_list=[], performance_str=self.lineEdit_7.text(), performance_interval=int(self.lineEdit_6.text()), # check_interval=self.lineEdit_2.text() ) task = task_base.TaskBase(name=scene_name, device=dv.Device(devices_list[0][0], devices_list[0][1]), scene_list=[self.online_scene]) # task.start() try: self.test = scene_test(task) self.test.sig.connect(self.inform_text) self.test.start() except: print(traceback.format_exc())
def create_online_scene(self, devices_list, scene_name, exec_times): this_checker = ck.Checker( blue_controller=self.online_dict["遥控器是否回连成功"], blue_speaker=self.online_dict["蓝牙音箱是否回连成功"], near=self.online_dict["近场唤醒是否成功"], far=self.online_dict["远场唤醒是否成功"], ) brand_list = [] for channel in [ "腾讯视频", "爱奇艺", "酷喵", "QQ音乐MV", "QQ音乐", "HDP", "电视家", "本地视频_大码率", "本地视频_混合编解码", "信源" ]: if self.online_dict[channel] == True: brand_list.append(channel) if len(devices_list) == 0: self.online_scene = scene_media.SceneMedia( name=scene_name, exec_time=exec_times, by=sc.BY_TIME, checker=this_checker, brand_list=brand_list, profile=self.lineEdit.text(), performance_str=self.performance_str, performance_interval=self.performance_interval, local_video=self.local_video # check_interval=self.lineEdit_2.text() ) self.attribute_init() self.online_scene.save() self.creat_success_toast = toast(parent=self, text='视频煲机场景\n创建成功!') self.creat_success_toast.move( QPoint(self.geometry().left() + self.width() * 0.3, self.geometry().top() + self.height() * 0.3)) self.creat_success_toast.ocl_signal.connect(self.open_scene_list) self.creat_success_toast.exec() else: self.online_scene = scene_media.SceneMedia( name="视频煲机", exec_time=1, checker=this_checker, brand_list=brand_list, profile=self.lineEdit.text(), performance_str=self.performance_str, performance_interval=self.performance_interval, local_video=self.local_video) self.attribute_init() self.online_scene.device = dv.Device(devices_list[0][0], devices_list[0][1]) self.checkscene = sceneOneCheck(self.online_scene) self.checkscene.reflash_sig.connect(self.showlog) self.checkscene.dependent_check_sig.connect(self.check_message) self.checkscene.start()
def create_scene_TV(self,devices_list, scene_name,exec_times): this_checker = ck.Checker( blue_controller=self.choice_dict["遥控器是否回连成功"], blue_speaker=self.choice_dict["蓝牙音箱是否回连成功"], near=self.choice_dict["近场唤醒是否成功"], far=self.choice_dict["远场唤醒是否成功"], # a2dp_mac=self.a2dp_mac ) chanel_list = [] for channel in ['HDMI1','HDMI2','HDMI3','ATV','DTMB']: if self.choice_dict[channel] == True: chanel_list.append(channel) if len(devices_list) == 0: self.SceneTV = scene_tv.SceneTV( name=scene_name, exec_time=exec_times, by=sc.BY_TIME, checker=this_checker, channel_list=chanel_list, channel_switch_interval=self.channel_switch_interval, performance_interval=self.performance_interval, check_interval=self.check_interval, performance_str=self.performance_str ) self.SceneTV.save() self.attribute_init() self.creat_success_toast = toast(parent=self, text='信源压测场景\n创建成功!') self.creat_success_toast.move(QPoint(self.geometry().left() + self.width() * 0.3, self.geometry().top() + self.height() * 0.3)) self.creat_success_toast.ocl_signal.connect(self.open_scene_list) self.creat_success_toast.exec() else: self.SceneTV = scene_tv.SceneTV( name="信源煲机", exec_time=1, checker=this_checker, channel_list=chanel_list, channel_switch_interval=self.channel_switch_interval, performance_interval=self.performance_interval, check_interval=self.check_interval, performance_str=self.performance_str ) self.attribute_init() self.SceneTV.device = dv.Device(devices_list[0][0], devices_list[0][1]) self.checkscene = sceneOneCheck(self.SceneTV) self.checkscene.reflash_sig.connect(self.showlog) self.checkscene.dependent_check_sig.connect(self.check_message) self.checkscene.start()
def create_monkeylogic_scene(self, devices_list, scene_name, exec_times): this_checker = ck.Checker( camera=self.monkeyLogic_dict["摄像头是否正常"], usb=self.monkeyLogic_dict["USB挂载正常,U盘个数:"], far=self.monkeyLogic_dict["远场语音是否唤醒正常"], net=self.monkeyLogic_dict['网络连接是否正常'], near=self.monkeyLogic_dict["近场语音是否唤醒正常"], blue_speaker=self.monkeyLogic_dict['蓝牙音箱是否回连成功'], blue_controller=self.monkeyLogic_dict['蓝牙遥控器是否回连成功'], usb_count=self.usb_count, # a2dp_mac=self.a2dp_mac ) if len(devices_list) == 0: self.monkeylogic_scene = scene_monkey.SceneMonkeyLogic( name=scene_name, exec_time=exec_times, by=sc.BY_TIME, mode=self.mode, checker=this_checker, switch_interval=self.switch_interval, check_interval=self.check_interval, packages=self.packages) self.monkeylogic_scene.save() self.attribute_init() self.creat_success_toast = toast(parent=self, text='逻辑Monkey场景\n创建成功!') self.creat_success_toast.move( QPoint(self.geometry().left() + self.width() * 0.3, self.geometry().top() + self.height() * 0.3)) self.creat_success_toast.ocl_signal.connect(self.open_scene_list) self.creat_success_toast.exec() else: self.monkeylogic_scene = scene_monkey.SceneMonkeyLogic( name="逻辑monkey", exec_time=1, mode=self.mode, checker=this_checker, switch_interval=self.switch_interval, check_interval=self.check_interval, packages=self.packages) self.attribute_init() self.monkeylogic_scene.device = dv.Device(devices_list[0][0], devices_list[0][1]) self.checkscene = sceneOneCheck(self.monkeylogic_scene) self.checkscene.reflash_sig.connect(self.showlog) self.checkscene.dependent_check_sig.connect(self.check_message) self.checkscene.start()
def create_recovery_scene(self, devices_list, scene_name, exec_times): this_checker = ck.Checker( launcher=self.recover_dict["launcher进入正常"], camera=self.recover_dict["摄像头驱动是否正常,是否能升降"], usb=self.recover_dict["移动存储设备是否能够成功挂载,U盘个数:"], wifi_driver=self.recover_dict["WiFi驱动是否正常"], far=self.recover_dict["远场语音是否能唤醒"], check_apk=self.recover_dict["检测第三方应用是否存在"], install_apk=self.recover_dict["批量安装APK(APK路径:xxx)"], usb_count=self.usb_count, apk_root=self.apk_root) if len(devices_list) == 0: self.recovery_scene = scene_recovery.SceneRecovery( name=scene_name, exec_time=exec_times, by=sc.BY_COUNT, checker=this_checker, retain_app=self.is_save_app, serial_open=self.is_open_Serial) self.recovery_scene.save() self.attribute_init() self.creat_success_toast = toast(parent=self, text='系统重置场景\n创建成功!') self.creat_success_toast.move( QPoint(self.geometry().left() + self.width() * 0.3, self.geometry().top() + self.height() * 0.3)) self.creat_success_toast.ocl_signal.connect(self.open_scene_list) self.creat_success_toast.exec() else: self.recovery_scene = scene_recovery.SceneRecovery( name="恢复出厂设置", exec_time=1, checker=this_checker, retain_app=self.is_save_app, serial_open=self.is_open_Serial) self.attribute_init() self.recovery_scene.device = dv.Device(devices_list[0][0], devices_list[0][1]) self.checkscene = sceneOneCheck(self.recovery_scene) self.checkscene.reflash_sig.connect(self.showlog) self.checkscene.dependent_check_sig.connect(self.check_message) self.checkscene.start()
return dp.Dependent(muc=self.near, bt_ct=self.blue_controller, bt_a2dp=self.blue_speaker) def set_window(self, window: str): """ 设置当前需要检测的window :param window: :return: """ logging.debug(f'set_window {window}') self.window = window if __name__ == '__main__': from utils import shellcmd com = 'com32' c = Checker(launcher=True, net=True, wifi=True, usb=True, hdmi=True, camera=True, near=False, far=True, blue_controller=True, blue_speaker=True) c.device = dv.Device(com) c.check() shellcmd.close_kk_serial(com)
if columns[-1] in ret: ret[columns[-1]] = columns[4] pid_ret[columns[-1]] = columns[0] logging.debug('pid, mem_name, mem:') for key, value in ret.items(): logging.debug('{} {} {}'.format(pid_ret[key], key, value)) return ret, pid_ret if __name__ == '__main__': from task.fd import FD from task.device import Device from utils import shellcmd, log log.init_logging() devices = Device('com20', '') com = 'com20' d = dv.Device(com) fd = FD("PID_test", devices, '20200523') fd.create_root() excel = fd.create_excel() print(fd.excel) p = Performance(process=['com.konka.applist', 'com.konka.systemadvert'], interval=5, device=d, fd=fd) p.start() time.sleep(60) p.terminal() shellcmd.close_kk_serial(com)
name='逻辑MONKEY', exec_time=30, by=sc.BY_TIME, checker=ck.Checker(), mode=scene_monkey.MODE_DEFAULT, switch_interval=10, ) scene8 = scene_wake.SceneDCWake( name='开机压测', exec_time=3, by=sc.BY_COUNT, checker=ck.Checker(), mode=dk.MODE_QUICK, ) scene9 = scene_wake.SceneDCWake( name='开机压测', exec_time=2, by=sc.BY_COUNT, checker=ck.Checker(), mode=dk.MODE_NORMAL, dc_off_tag='Waiting for Powerkey' ) task = TaskBase(name='task1', device=dv.Device('com32', ''), scene_list=[scene3]) ck_ret = task.check() task.start()