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()
Exemple #2
0
    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')),
                  N=arg_handle.get_args('xx') + i,
                  tt=arg_handle.get_args('tt'),
                  encrypt_flag=arg_handle.get_args('encrypt'),
                  self_addr=self_addr)
        if self_addr:
            sim.set_item('_ip', self_addr[0])
        sim.run_forever()
        sims.append(sim)
Exemple #3
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
Exemple #4
0
        for item in app.msgst:
            if 'delaytime' in app.msgst[item]:
                if app.msgst[item]['delaytime'] > max_delay:
                    max_delay = app.msgst[item]['delaytime']
                if app.msgst[item]['delaytime'] < min_delay:
                    min_delay = app.msgst[item]['delaytime']
                total_delay += app.msgst[item]['delaytime']
            else:
                pkg_lost += 1
                pkg_lost_list.append(item)

        LOG.info('Total package: %d' % len(app.msgst))
        if pkg_lost_list:
            LOG.error('Package with these ids have lost:')
            for i in pkg_lost_list:
                LOG.warn('%d' % i)
        LOG.error('Loss Rate: ' + "%.2f" %
                  (pkg_lost * 100.0 / arg_handle.get_args('number_to_send')) +
                  '%')
        LOG.info('MAX delay time: %dms' % max_delay)
        LOG.yinfo('MIN delay time: %dms' % min_delay)
        LOG.info('Average delay time(%d / %d): %.2fms' %
                 (total_delay, (len(app.msgst) - pkg_lost),
                  (total_delay + 0.0) / (len(app.msgst) - pkg_lost)))

    except KeyboardInterrupt:
        LOG.info('KeyboardInterrupt!')
        sys.exit()

    except Exception as e:
        LOG.error('something wrong!' + str(e))
Exemple #5
0
    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)

    #wifi_list = [('192.168.10.10',12345), ('192.168.10.13',12346), ('192.168.10.14',12347)]
    wifi_list = [('192.168.10.12', 12347)]
    mac_index = 0
    for wk in wifi_list:
        try:
            mac_index += 1
            newmac = arg_handle.get_args('mac') + str(mac_index)
            LOG.warn("mac:" + newmac + " bind IP:" + str(wk))
            sim = Sim(logger=LOG,
                      time_delay=arg_handle.get_args('time_delay'),
                      mac=newmac,
                      self_addr=wk)
            sim.run_forever()
        except Exception as e:
            LOG.error("bind rror:%s" % e)

    task_obj = Task('test-task', LOG)
    thread_list.append([task_obj.task_proc])
    sys_proc()

    if arg_handle.get_args('debug'):
        dmsg = {
            "method": "dm_set",
Exemple #6
0
    i = 0
    rs = []
    for pic in all_pics * 10:
        if i >= arg_handle.get_args('count'):
            break
        LOG.debug('create info for pic: %s' % pic)
        r = copy.deepcopy(msg)
        with open(picpath + os.path.sep + pic, "rb") as f:
            pic_str = base64.b64encode(f.read()).decode('utf-8')
        pic_type = 'jpeg'
        id = '%04d' % i
        r["name"] = "小狗狗" + id
        r["idenNum"] = "21122319850606" + id
        r["phone"] = "1888885" + id
        r["fileName"] = r["name"] + '.jpg'
        r["facePicBase64"] = "data:image/" + \
            pic_type + ';base64,' + pic_str
        r["fingerCode1"] = fingerCode_list[random.randint(
            0, len(fingerCode_list) - 1)]
        i += 1
        rs.append(r)
        LOG.warn('name: %s, picname: %s, fingerCode1: %s' %
                 (r["name"], pic, r["fingerCode1"]))

    update_token()
    for r in rs:
        LOG.info('Insert user: %s' % r["name"])
        send(url='http://%s:%s/scp-mdmapp/user/insertUser' % (arg_handle.get_args('server_IP'), arg_handle.get_args('server_port')),
             method='POST', payload=r)
        time.sleep(0.05)