示例#1
0
 def __init__(self, name='default-task', logger=None):
     self.tasks = {}
     self.lock = threading.RLock()
     if logger:
         self.LOG = logger
     else:
         self.LOG = MyLogger(name + '.log', clevel=logging.DEBUG)
     self.need_stop = False
示例#2
0
def start_sim():
    for sim_name in List_sim:
        Sim = None
        if sim_name == 'air':
            for i in range(0, 3):
                Log = MyLogger(join('log', '%s%s.log' % (sim_name, i)),
                               clevel=logging.CRITICAL,
                               rlevel=logging.WARN)
                Sim = Air
                sim = Sim(logger=Log,
                          mac=''.join(random.sample(mac_sample_str, 12)),
                          time_delay=500)
                sim.run_forever()
                device_online_list.append(sim)
        elif sim_name == 'hanger':
            Log = MyLogger(join('log', '%s.log' % (sim_name)),
                           clevel=logging.CRITICAL,
                           rlevel=logging.WARN)
            Sim = Hanger
            sim = Sim(logger=Log,
                      mac=''.join(random.sample(mac_sample_str, 12)),
                      time_delay=500)
            sim.run_forever()
            device_online_list.append(sim)
        elif sim_name == 'waterfilter':
            Log = MyLogger(join('log', '%s.log' % (sim_name)),
                           clevel=logging.CRITICAL,
                           rlevel=logging.WARN)
            Sim = Waterfilter
            sim = Sim(logger=Log,
                      mac=''.join(random.sample(mac_sample_str, 12)),
                      time_delay=500)
            sim.run_forever()
            device_online_list.append(sim)
        elif sim_name == 'airfilter':
            Log = MyLogger(join('log', '%s.log' % (sim_name)),
                           clevel=logging.CRITICAL,
                           rlevel=logging.WARN)
            Sim = AirFilter
            sim = Sim(logger=Log,
                      mac=''.join(random.sample(mac_sample_str, 12)),
                      time_delay=500)
            sim.run_forever()
            device_online_list.append(sim)
        elif sim_name == 'washer':
            Log = MyLogger(join('log', '%s.log' % (sim_name)),
                           clevel=logging.CRITICAL,
                           rlevel=logging.WARN)
            Sim = Washer
            sim = Sim(logger=Log,
                      mac=''.join(random.sample(mac_sample_str, 12)),
                      time_delay=500)
            sim.run_forever()
            device_online_list.append(sim)
示例#3
0
def sys_init():
    # sys log init
    global LOG
    LOG = MyLogger(os.path.abspath(sys.argv[0]).replace(
        'py', 'log'), clevel=logging.DEBUG, renable=False)
    global cprint
    cprint = cprint(os.path.abspath(sys.argv[0]).replace('py', 'log'))

    # cmd arg init
    global arg_handle
    arg_handle = ArgHandle()
    arg_handle.run()
    LOG.info("Let's go!!!")
示例#4
0
def sys_init():
    global LOG
    LOG = MyLogger(os.path.abspath(sys.argv[0]).replace('py', 'log'), clevel=logging.INFO,
                   rlevel=logging.WARN)
    global cprint
    cprint = cprint(__name__)

    global arg_handle
    arg_handle = ArgHandle()
    arg_handle.run()

    global thread_list
    thread_list = []
    LOG.info("Let's go!!!")
示例#5
0
    def _init_(self, name, log_dir):
        self.name = name
        self.log_dir = log_dir
        self.log_dir += os.path.sep + datetime.datetime.now().strftime('%Y%m%d_%H%M%S') + \
            '-' + self.name + os.path.sep
        self.log_dir = common_APIs.dirit(self.log_dir)
        try:
            os.mkdir(self.log_dir)
        except Exception as er:
            print('Can not create log dir: %s\n[[%s]]' % (
                self.log_dir, str(er)))
            sys.exit()

        # create the log obj
        self.LOG = MyLogger(self.log_dir + 'output.log', cenable=True)
示例#6
0
def start_sims():
    if not os.path.exists(log_path):
        os.mkdir(log_path)
    if del_log_before_start:
        del_all_files(log_path)
    addr_len = 0
    if bind_self:
        addr_list = get_connected_ipv4_list()
        addr_len = len(addr_list)
    mac_mid = "Air"  # Ascii of "Air_"
    mac_head = ("%s%s" % (mac_prefix[0:1], mac_mid))
    for i in range(0, sim_num):
        #mac_tmp = mac_prefix + sim_type+"mac"+str(i)
        mac_tmp = ("%s%02x" % (mac_head, i))
        log = MyLogger(join(log_path, '%s-%s.log' % (sim_type, mac_tmp)),
                       clevel=eval(cl_level),
                       flevel=eval(fl_level))
        log.warn("device mac:%s" % (mac_tmp, ))
        sim = eval(sim_type)
        if bind_self and addr_len > 0:
            if force_dev_num and i >= addr_len:
                log.error("devices should not more than net cards number!")
                break
            addr_index = i % (addr_len)
            sim_temp = sim(logger=log,
                           mac=mac_tmp,
                           addr=rout_addr,
                           self_addr=(addr_list[addr_index], int(start_port)))
        else:
            log.error("no any net card is connected!")
            sys.exit(-666)
            #sim_temp = sim(logger=log, mac=mac_tmp)
        #sim_temp.sdk_obj.heartbeat_interval = heartbeat_interval
        sim_temp.run_forever()
        device_online_list.append(sim_temp)
        if start_one_by_one:
            log.warn("press any key to start next devices")
            raw_input()
示例#7
0
def replay(record_list, rLOG):
    global testresults
    testresults = {}
    global testcases
    testcases = {}
    global newwhitelist
    newwhitelist = {}
    global testnum
    testnum = 0
    global failnum
    failnum = 0
    global LOG
    LOG = rLOG

    global log_dir
    log_dir = config.result_dir + datetime.datetime.now().strftime('%Y%m%d_%H%M%S') + os.path.sep
    try:
        os.mkdir(log_dir)
    except Exception as er:
        LOG.error('Can not create log dir: %s\n[[%s]]' % (log_dir, str(er)))
        # sys.exit()

    temp_LOG = LOG
    for record in record_list:
        LOG = temp_LOG
        LOG.yinfo('To replay module: %s...' % record)
        global sub_log_dir
        sub_log_dir = log_dir + PurePosixPath(record).stem + os.path.sep
        global fitters
        fitters = import_module('fitters.' + PurePosixPath(record).stem + '_fitter')
        try:
            os.mkdir(sub_log_dir)
        except Exception as er:
            LOG.error('Can not create log dir: %s\n[[%s]]' % (sub_log_dir, str(er)))
            # sys.exit()

        LOG = MyLogger(sub_log_dir + '%s.log' % PurePosixPath(record).stem, clevel=logging.DEBUG)
        report(_replayone(record))
示例#8
0
class Task():
    def __init__(self, name='default-task', logger=None):
        self.tasks = {}
        self.lock = threading.RLock()
        if logger:
            self.LOG = logger
        else:
            self.LOG = MyLogger(name + '.log', clevel=logging.DEBUG)
        self.need_stop = False

    def stop(self):
        self.need_stop = True
        self.LOG.warn('Thread %s stoped!' % (__name__))

    def add_task(self, name, func, run_times=1, interval=5, *argv):
        self.lock.acquire()
        if name and func and int(run_times) >= 1 and int(interval) >= 1:
            pass
        else:
            self.LOG.error("Invalid task: %s, run_times: %d, internal: %d" %
                           (name, int(run_times), int(interval)))
        self.LOG.info("To add task: %s, run_times: %d, internal: %d" %
                      (name, int(run_times), int(interval)))
        self.tasks[name] = {
            'func': func,
            'run_times': int(run_times),
            'interval': int(interval),
            'now_seconds': 0,
            'argv': argv,
            'state': 'active',
            'name': name
        }
        self.lock.release()

    def del_task(self, name):
        self.lock.acquire()
        self.LOG.warn("To delete task:%s" % (name))
        if name in self.tasks:
            del self.tasks[name]
        self.lock.release()

    def show_tasks(self):
        if self.tasks:
            for task in self.tasks:
                self.LOG.info(task + ":")
                for item in sorted(self.tasks[task]):
                    self.LOG.yinfo("    " + item.ljust(20) + ':' +
                                   str(self.tasks[task][item]).rjust(20))
        else:
            self.LOG.warn("No task...")

    def task_proc(self):
        while self.need_stop == False:
            if len(self.tasks) == 0:
                self.LOG.debug("No task!\n")
            '''
            for task in self.tasks:
                if self.tasks[task]['state'] == 'inactive':
                    self.del_task(task)
            '''
            try:
                self.lock.acquire()
                for task in self.tasks:
                    if self.tasks[task]['state'] != 'active':
                        continue
                    self.tasks[task]['now_seconds'] += 1
                    if self.tasks[task]['now_seconds'] >= self.tasks[task][
                            'interval']:
                        if callable(self.tasks[task]['func']):
                            # self.LOG.info("It is time to run %s: " % (
                            #    task) + self.tasks[task]['func'].__name__ + str(self.tasks[task]['argv']))
                            self.tasks[task]['func'](
                                *(self.tasks[task]['argv']))
                        elif callable(eval(self.tasks[task]['func'])):
                            # self.LOG.info("It is time to run %s: " % (
                            #    task) + self.tasks[task]['func'] + str(self.tasks[task]['argv']))
                            eval(self.tasks[task]['func'] + '(*' +
                                 str(self.tasks[task]['argv']) + ')')
                        else:
                            self.LOG.error(
                                "Uncallable task: %s, will disable it!")
                            self.tasks[task]['state'] = 'inactive'
                        self.tasks[task]['now_seconds'] = 0
                        self.tasks[task]['run_times'] -= 1
                        if self.tasks[task]['run_times'] == 0:
                            self.LOG.info("stop task:%s" % (task))
                            self.tasks[task]['state'] = 'inactive'
                    else:
                        pass
                self.lock.release()
                time.sleep(0.1)

            except RuntimeError:
                pass
示例#9
0
        else:
            self.LOG.error('Close connection failed!')

    def send_data(self, data):
        return self.connection.send_once(data)

    def recv_data(self):
        datas = self.connection.recv_once()
        return datas


# 空调遥控器模拟程序入口
if __name__ == '__main__':
    # sys log init
    LOG = MyLogger(os.path.abspath(sys.argv[0]).replace('py', 'log'),
                   clevel=logging.INFO,
                   renable=False)

    cprint = cprint(os.path.abspath(sys.argv[0]).replace('py', 'log'))

    # cmd arg init
    arg_handle = ArgHandle()
    arg_handle.run()

    # sys init
    sys_init()

    # multi thread
    global thread_list
    thread_list = []
示例#10
0
# 系统初始化函数,在所有模块开始前调用
def sys_init():
    LOG.info("Let's go!!!")


# 系统清理函数,系统退出前调用
def sys_cleanup():
    LOG.info("Goodbye!!!")


# 主程序入口
if __name__ == '__main__':
    # sys log init
    LOG = MyLogger(os.path.abspath(sys.argv[0]).replace('py', 'log'),
                   clevel=logging.DEBUG,
                   rlevel=logging.WARN)
    cprint = cprint(__name__)

    # sys init
    sys_init()

    # cmd arg init
    arg_handle = ArgHandle()
    arg_handle.run()

    # multi thread
    global thread_list
    thread_list = []

    # create serial objs
示例#11
0
def sys_join():
    for th in thread_ids:
        th.join()


def sys_init():
    LOG.info("Let's go!!!")


def sys_cleanup():
    LOG.info("Goodbye!!!")


if __name__ == '__main__':
    LOG = MyLogger(os.path.abspath(sys.argv[0]).replace('py', 'log'),
                   clevel=logging.INFO,
                   rlevel=logging.WARN)
    cprint = cprint(__name__)

    sys_init()

    arg_handle = ArgHandle()
    arg_handle.run()

    global thread_list
    thread_list = []

    device_type = arg_handle.get_args('device_type')
    device_cls = chr(ord(device_type.lower()[0]) -
                     32) + device_type.lower()[1:]
    Sim = eval(device_cls)
示例#12
0
class TestCase(object):
    __metaclass__ = ABCMeta

    def _init_(self, name, log_dir):
        self.name = name
        self.log_dir = log_dir
        self.log_dir += os.path.sep + datetime.datetime.now().strftime('%Y%m%d_%H%M%S') + \
            '-' + self.name + os.path.sep
        self.log_dir = common_APIs.dirit(self.log_dir)
        try:
            os.mkdir(self.log_dir)
        except Exception as er:
            print('Can not create log dir: %s\n[[%s]]' % (
                self.log_dir, str(er)))
            sys.exit()

        # create the log obj
        self.LOG = MyLogger(self.log_dir + 'output.log',
                            cenable=True, with_print=True)

    def setup(self):
        pass

    def teardown(self):
        pass

    #@istest
    #@with_setup(setup, teardown)
    def test(self):
        self.common_init()
        result = 0
        try:
            result = self.run()
        # except Exception as e:
        #    traceback.print_exc()
        #    self.LOG.critical(str(e))
        #    assert False
        finally:
            self.common_cleanup()

    @abstractmethod
    def run(self):
        pass

    def common_init(self):
        pass

    def common_cleanup(self):
        pass

    def case_pass(self, success_info='pass'):
        self.LOG.info(success_info)
        assert True
        return True

    def case_fail(self, error_info='fail'):
        self.LOG.error(error_info)
        assert False
        return False

    def do_setup(self, config_data):
        self.LOG.info('call do_setup')
        if 'setup' in config_data:
            self.LOG.info('Maybe have data')
            setup_list = config_data['setup']
            for i in setup_list:
                for k in i:
                    self.LOG.info(k)

    def do_run(self, config_data):
        self.LOG.info('call core')

    def do_teardown(self, config_data):
        self.LOG.info('call do_teardown')
示例#13
0
def sys_join():
    for th in thread_ids:
        th.join()


def sys_init():
    LOG.info("Let's go!!!")


def sys_cleanup():
    LOG.info("Goodbye!!!")


if __name__ == '__main__':
    LOG = MyLogger(os.path.abspath(sys.argv[0]).replace('py', 'log').replace(
        'exe', 'log'),
                   clevel=logging.INFO,
                   rlevel=logging.WARN)
    cprint = cprint(__name__)

    sys_init()

    arg_handle = ArgHandle()
    arg_handle.run()

    global thread_list
    thread_list = []

    sims = {}
    log_level = logging.DEBUG

    zigbee_obj = ZIGBEE('COM' + arg_handle.get_args('serial_port'),
示例#14
0
by Kobe Gong. 2018-1-3
"""

import asyncio
import functools
import logging
import os
import re
import struct
import sys
import threading
import time

from basic.log_tool import MyLogger

LOG = MyLogger(os.path.abspath(sys.argv[0]).replace(
    'py', 'log'), clevel=logging.DEBUG, renable=False)


def xxoo(func):
    @functools.wraps(func)
    def tmp(self, *args, **kwargs):
        LOG.debug(func.__name__ + ' is called!')
        return func(self, *args, **kwargs)
    return tmp


class AsyncBase():
    @xxoo
    def __init__(self, logger=None):
        self.LOG = logger
        self.loop = asyncio.new_event_loop()
示例#15
0
            self.set_connection_state(False)
        else:
            self.LOG.error('Close connection failed!')

    def send_data(self, data):
        return self.connection.send_once(data)

    def recv_data(self):
        datas = self.connection.recv_once()
        return datas


# 空调模拟程序入口
if __name__ == '__main__':
    # sys log init
    LOG = MyLogger(os.path.abspath(sys.argv[0]).replace('py', 'log'), clevel=logging.DEBUG,
                   rlevel=logging.WARN)
    cprint = cprint(os.path.abspath(sys.argv[0]).replace('py', 'log'))

    # cmd arg init
    arg_handle = ArgHandle()
    arg_handle.run()

    # sys init
    sys_init()

    # multi thread
    global thread_list
    thread_list = []

    # create clients
    clients = []
示例#16
0
    enable_flog = True
    monitor_s = arg_handle.get_args('monitor_s')
    disp_sleep_s = arg_handle.get_args('disp_sleep_s')
    cmd_index = arg_handle.get_args('cmd_index')

    if arg_handle.get_args('device_count') > 1:
        log_level = logging.INFO
        # enable_flog = False

    sims = []
    ttt = asyncio.ensure_future(GenRealTimeReport(sims, monitor_s, cmd_index))
    start = time.time()
    for i in range(arg_handle.get_args('device_count')):
        dev_LOG = MyLogger('.\\log_folder\\dev_sim_%d_%d.log' %
                           (cmd_index, arg_handle.get_args('xx') + i),
                           clevel=log_level,
                           flevel=log_level,
                           fenable=enable_flog,
                           cenable=False)
        self_addr = None
        self_ip = None
        if ipv4_list:
            id = i % len(ipv4_list)
            # self_addr = (ipv4_list[id], random.randint(
            # arg_handle.get_args('server_port'), 65535))
            self_addr = (ipv4_list[id], 0)
            dev_LOG.warn('self addr is: %s' % (str(self_addr)))

        if self_addr:
            self_ip = self_addr[0]
        device_timeout = arg_handle.get_args('dto')
        if not device_timeout == None:
示例#17
0
    sys.exit()


if __name__ == '__main__':
    sys_init()
    loop = asyncio.get_event_loop()

    if arg_handle.get_args('device_count') > 1:
        log_level = logging.WARN
    else:
        log_level = logging.INFO

    sims = []
    for i in range(arg_handle.get_args('device_count')):
        dev_LOG = MyLogger('dev_sim_%d.log' % (arg_handle.get_args('xx') + i),
                           clevel=log_level,
                           flevel=log_level,
                           fenable=False)

        coro = loop.create_connection(
            lambda: Door(config_file=arg_handle.get_args('config_file'),
                         logger=dev_LOG,
                         N=arg_handle.get_args('xx') + i,
                         tt=arg_handle.get_args('tt'),
                         encrypt_flag=arg_handle.get_args('encrypt')),
            arg_handle.get_args('server_IP'),
            arg_handle.get_args('server_port'))
        transport, protocol = loop.run_until_complete(coro)
        asyncio.ensure_future(protocol.run_forever())
        sims.append(protocol)

    loop.run_forever()
示例#18
0
        return (r.status_code, r.json(), r.headers)
    except json.decoder.JSONDecodeError:
        return (r.status_code, r.text, r.headers)
    except:
        return (400, {}, {})


if __name__ == "__main__":
    global LOG
    global cprint
    global arg_handle
    cprint = cprint()
    arg_handle = ArgHandle()
    arg_handle.run()

    LOG = MyLogger(os.path.abspath(sys.argv[0]).replace(
        'py', 'log'), clevel=logging.DEBUG, fenable=False)
    picpath = "pics"
    if not os.path.exists(picpath):
        LOG.error('no pics dir!!!')
        sys.exit()

    msg = {
        "name": "小狗狗test",
        "userType": "1",
        "sex": "1",
        "idenType": "111",
        "birth": "",
        "idenNum": "211223198708080088",
        "nation": "1",
        "origin": "阿富汗",
        "phone": "18888888888",
示例#19
0
                print("file:%s is removed" % (file, ))


if __name__ == '__main__':
    delallLog()
    sys_init()
    global ipv4_list
    if arg_handle.get_args('device_count') > 1:
        log_level = logging.DEBUG
    else:
        log_level = logging.DEBUG

    sims = []
    for i in range(arg_handle.get_args('device_count')):
        dev_LOG = MyLogger('dev_sim_%d.log' % (i),
                           clevel=log_level,
                           flevel=log_level,
                           fenable=True)

        if ipv4_list:
            id = i % len(ipv4_list)
            #self_addr = (ipv4_list[id], random.randint(
            #arg_handle.get_args('server_port'), 65535))
            self_addr = (ipv4_list[id], 0)
            dev_LOG.warn('self addr is: %s' % (str(self_addr)))
        else:
            self_addr = None

        sim = Dev(logger=dev_LOG,
                  config_file=arg_handle.get_args('config_file'),
                  server_addr=(arg_handle.get_args('server_IP'),
                               arg_handle.get_args('server_port')),
示例#20
0
def sys_join():
    for th in thread_ids:
        th.join()


def sys_init():
    LOG.info("Let's go!!!")


def sys_cleanup():
    LOG.info("Goodbye!!!")


if __name__ == '__main__':
    LOG = MyLogger(os.path.abspath(sys.argv[0]).replace('py', 'log'), clevel=logging.INFO,
                   rlevel=logging.WARN)
    cprint = cprint(__name__)

    sys_init()

    arg_handle = ArgHandle()
    arg_handle.run()

    global thread_list
    thread_list = []

    sims = {}
    if arg_handle.get_args('device_count') > 1:
        log_level = logging.WARN
    else:
        log_level = logging.INFO