2016年6月2日 几乎是强迫自己在更新 关于python的多线程处理

原创 2016年06月02日 00:35:04

老生常谈的东西

这是我这段代码的第21次更新了,依然不能实现全部的设计需求

然而都这个点儿了,先睡吧

欠下的债,早晚都要还的

try:
    import sys
    import time
    import os
    import platform
    import threading
    #os.chdir('../res')
    #sys.path.append(os.getcwd())
    #from adb import ADB

    #except ImportError as e:
    #   print("[f] Required module missing. %s" % e.args[0])
    #   sys.exit(-1)
except:
        pass

class StatusMonitor:
    def __init__(self):
        self.adb_task = None
        self._dict = {}
        try:
            base_dir = os.path.dirname(os.getcwd()) #Get the abs path for the config file
            configfile_path = os.path.join(base_dir, r'\untility\configfile.txt') #Get configfile.txt
            CONFIGFILE = open(configfile_path, 'r')
            adbstatus_path = os.path.join(base_dir, r'\logs\adb_status.txt')
            self.ADBFILE = open(adbstatus_path, 'a+')
        except:
            print ("File not exist")
            return False
        #Create a dict for the config file
        for line in CONFIGFILE:
            (key,value) = line.strip().split(':',maxsplit=1)
            self._dict[key] = value
        global adb_status_monitor
        self.adb_status_monitor = 1



    def device_state_monitor_start(self):
        #status = self.multiprocessing.Value('b', 1)
        #print ("Sub process for ADB_status monitor started ",status)
        #adb_task = multiprocessing.Process(target=device_state_monitor_start)
        #adb_task.start()
        #Check adb status
        while True:
            if self.adb_status_monitor == 1:
                Time_mark = time.strftime("%Y-%m-%d %H:%M:%S")
                self.ADBFILE.write(str(Time_mark + '  '))
                #adb_status = self._ABDInstance.shell_command('ping -c 5 localhost')
                adb_status = True
                if adb_status == True:
                    self.ADBFILE.write('ADB works normally')
                    self.ADBFILE.write('\n')
                    print ('ADB works normally')
                        #While ADB works normally, then check the Moneky process
                        #monkey_result = self.shell_command( "\ps|grep com.android.commands.monkey\")
                    monkey_result = True
                    if monkey_result == True:
                        self.ADBFILE.write('Monkey works normally')
                        self.ADBFILE.write('\n')
                        print ('Monkey works normally')
                    else:
                        self.ADBFILE.write('Monkey process is terminated')
                        self.ADBFILE.write('\n')
                        print ('Monkey works abnormally')
                else:
                    self.ADBFILE.write('ADB is disconnected,and Monkey process can not be found')
                    self.ADBFILE.write('\n')
                    print ('ADB is disconnected')
                #wait 10 minutes
                time.sleep(8)
            else:
                break

    def device_state_monitor_stop(self):
        global adb_status_monitor
        self.adb_status_monitor = 0
        self.ADBFILE.close()

    def regNewProcess(self):
        self.adb_task = threading.Thread(target=self.device_state_monitor_start)
        #self.adb_task.setDaemon(True)
        self.adb_task.start()
        print('The thread adb task start') #打印这句话证明线程启动
    """def check_parameters(self):
        #Check the config file for blank value
        configfile = self._dict
        print (configfile)
        for key in configfile:    
            if configfile[key] =='':
                print ([key], "Error: Value is blank")
                return False
            else:
                #print ([key,configfile[key]],'Pass')
                pass
        test_hour = self.get_parameters('TEST_HOUR')
        cycle_time = self.get_parameters('CYCLE_TIME')
        change_prof_hour = self.get_parameters('CHANGE_PROFILE_HOUR')
        test_type = self.get_parameters('TEST_TYPE')
        execute_method = self.get_parameters('EXECUTE_METHOD')
        #Check the Test_hour/Cycle_time/change_prof_hour
        if int(test_hour) < int(cycle_time):
            # 'TEST_HOUR' should longer than 'CYCLE_TIME'
            print ("Error: test_hour < cycle time is incorrect")
            return False
        elif int(cycle_time) < int(change_prof_hour):
            # 'CYCLE_TIME' should longer than 'CHANGE_PROFILE_TIME'
            print ("Error: cycle_time < change_prof_hour is incorrect")
            return False
        elif (test_type) != 'black'and (test_type) != 'white':
            # Only 'black' or 'white' is available in 'TEST_TYPE'
            print ("Error: test_type should be 'black' or 'white'.")
            return False
        elif (execute_method) != '1' and (execute_method) != '2':
            # Only '1' or '2' is available in 'EXECUTE_METHOD'
            print ("Error: execute_method should be '1' or '2'")
            return False
        else:
            print ("Check parameters completed.No error occurs")
        return True"""

    def get_parameters(self,item):
        value = self._dict.get(item,None)
        if value == None:
            print (item,' KEY error, please check the key_name')
        return value      
# Test module    
if __name__=='__main__':
    i = StatusMonitor()
    k = i.regNewProcess()
    #l = i.device_state_monitor_stop()
    mm = i.get_parameters('TEST_TYPE')
    print(k,mm)





版权声明:本文为博主原创文章,未经博主允许不得转载。

输入某人出生日期,计算年龄和距60岁的天数

问题及代码: /* * Copyright (c) 2016, 烟台大学计算机与控制工程学院 * All rights reserved. * 文件名称:date...
  • MIKASA3
  • MIKASA3
  • 2016年03月25日 17:10
  • 537

2005年6月27日 0时6分

都说身体是最重要的,人生还有那么长的路要走,何必在大学里就把身体搞垮了。坚持吃早饭,把胃养好;注意饮食习惯,健康最重要;睡眠习惯要好,早睡早起。希望我能做到~ ...
  • husoso
  • husoso
  • 2007年07月26日 18:52
  • 389

2005年6月25日 13时20分新一代q比特诞生

每一个接近我的人都很快有了归宿,,从以前到现在,弄的自己都无语了,莫非我就是传说中的……同学们,要找另一半的都来找我吧。cause im the super qbyte.发现我就是奉献型的,怎么我一把...
  • husoso
  • husoso
  • 2007年07月26日 18:59
  • 426

日期转化成大写 二〇〇七年十一月二十三日

select Substr(NewDate,1,4) ||       Case when substr(NewDate,5,1) = - then 年  else  substr(NewDate,5...
  • joe83004
  • joe83004
  • 2009年05月08日 15:53
  • 2271

2007年6月21日 星期四

做了一天那些页面,烦琐,查那么多字段出来显示,我得一个一个对应,真他娘的苦差事。小李儿这周开始上班啦,在这恭喜一下小李儿,还希望天天开开心心,别想那么多烦恼。另外工作刚开始肯定会遇到点困难的,要胜不骄...
  • liusping
  • liusping
  • 2008年08月25日 22:03
  • 135

用PowerBuilder制作指示灯

在安装各种软件或微软公司产品时会有直观可爱的条状指示灯,它总是以最直接的方式告诉我们工作的进程情况,在PowberBuilder 中也可以实现。 1. 创建一个应用程序(working-out)。 ...
  • happymagic
  • happymagic
  • 2014年11月21日 14:53
  • 391

日本海军纲鉴

岛国日本,象岛国英国一样早就是大陆势力扩张的目标。在1274年和1281年,忽必烈汗两次率强大的远征军企图入侵日本。在蒙古人的威胁下,日本人暂时停止了内战,团结起来控制敌人的登陆场。他们成功了,某种程...
  • softwave
  • softwave
  • 2006年09月25日 08:56
  • 1620

(2016年8月2号) 台风 从零开始

(2016年8月2号) 台风 从零开始 昨天台风登陆深圳,我把毕业工作不到两个月的工作辞掉了,裸辞,个中原因不愿细说,现在外面暴风骤雨,饿。 从互联网金融行业出来,不准备在找...
  • qq_35372688
  • qq_35372688
  • 2016年08月02日 09:30
  • 405

写在2016年最后一天,致以后的自己

2016年最后一天,写给未来的自己。
  • rcfalcon
  • rcfalcon
  • 2016年12月31日 14:56
  • 1175

2016年1月12日微软将结束IE8、IE9和IE10的技术支持

2016年1月12日微软将结束IE8、IE9和IE10的技术支持,将推出最终补丁鼓励用户升级到最新的浏览器。结束支持并不是说之后用户不能再使用,而是微软之后不再提供安全更新、兼容修复和技术支持,因此将...
  • Denny_Duan77
  • Denny_Duan77
  • 2016年01月07日 10:53
  • 1248
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:2016年6月2日 几乎是强迫自己在更新 关于python的多线程处理
举报原因:
原因补充:

(最多只允许输入30个字)