Exemplo n.º 1
0
def mysql_recv_process(client, recv_data):
    recv_str = alphabet.hexbytes2str(recv_data)
    recv_json = json.loads(recv_str)
    logger.info('Recv JSON:%s' % (str(recv_json)))
    cmd_num = recv_json.get('CmdNum', 0)
    linear_flag = recv_json.get('Linear', True)
    mydb = ml.mysql_client(host="182.61.47.202", user="******")
    res_dict = {'Result': []}
    if cmd_num > 0:
        cmd_list = recv_json.get('Cmd', None)
        logger.info("Recv cmd_list: %s" % (str(cmd_list)))
        info_list = recv_json.get('Info', None)
        logger.info("Recv info_list: %s" % (str(info_list)))
    else:
        res_dict['Result'].append("Command number under 1")
        logger.info("Command number under 1")

    for cmd_index in cmd_list:
        if (cmd_index == None):
            res_dict['Result'].append('cmd empty')
            if linear_flag == True:
                logger.info('Recv Empty CMD of JSON, Break')
                break
            else:
                logger.info('Recv Empty CMD of JSON, Continue')
                continue

        mysql_cb = callback_dict.get(cmd_index, None)
        if mysql_cb == None:
            res_dict['Result'].append("Can't find callback[%s]" % (cmd_index))
            if linear_flag == True:
                logger.info("Can't find callback[%s], Break" % (cmd_index))
                break
            else:
                logger.info("Can't find callback[%s], Continue" % (cmd_index))
                continue

        if info_list != None:
            res = mysql_cb(mydb, info_list[cmd_list.index(cmd_index)])
        else:
            res = mysql_cb(mydb, None)
        logger.info('Excute CallBack Function Success')

        res_dict['Result'].append(res)
        logger.info('Send JSON:%s' % (str(res_dict)))

    client.send(alphabet.str2hexbytes(json.dumps(res_dict,
                                                 ensure_ascii=False)))
    if cmd_num > 0:
        mydb.close()
Exemplo n.º 2
0
 def tmp_echo(write_file, read_file):
     time.sleep(0.1)
     #print ('start echo thread')
     tmp_w_pipe = os.open(write_file,
                          os.O_SYNC | os.O_CREAT | os.O_RDWR)
     os.write(tmp_w_pipe, alphabet.str2hexbytes(echo_str))
     #print ('echo write echo done')
     tmp_r_pipe = os.open(read_file, os.O_RDONLY)
     #print ('echo open read_file done')
     while True:
         buf = alphabet.hexbytes2str(os.read(tmp_r_pipe, 32))
         if buf == echo_str:
             return 0
         time.sleep(1)
Exemplo n.º 3
0
def heartbeat(logger):
    tcp_client = tcp_connect()
    mysql_cmd = {'CmdNum': 1, 'Linear': True, 'Cmd': ['heartbeat']}
    mutexFlag = mutex.acquire(False)
    if mutexFlag:
        tcp_client.send(
            alphabet.str2hexbytes(json.dumps(mysql_cmd, ensure_ascii=False)))
        res = tcp_recv(tcp_client, logger)
        if res != None:
            recv_json = json.loads(alphabet.hexbytes2str(res))
            logger.info('Heart Beat Echo Recv %s' % (str(recv_json)))
    else:
        logger.info('Heart Beat mutex acquire Fail, push to next period')
    mutex.release()
    timer_sched(heartbeat, argv=(logger, ))
    tcp_client.close()
Exemplo n.º 4
0
def get_fund_base_info(logger):
    tcp_client = tcp_connect()
    logger.info('get_fund_base_info Enter')
    mysql_cmd = {
        'CmdNum': 2,
        'Linear': True,
        'Cmd': ['select', 'show'],
        'Info': [{
            'Name': 'Fund'
        }, {
            'Table': 'InfoSummary'
        }]
    }

    logger.info('Waiting Muxtex...')
    mutexFlag = mutex.acquire(True)
    logger.info('TCP Send %s' % (str(mysql_cmd)))
    tcp_client.send(
        alphabet.str2hexbytes(json.dumps(mysql_cmd, ensure_ascii=False)))
    res = tcp_recv(tcp_client, logger)
    if res != None:
        recv_json = json.loads(alphabet.hexbytes2str(res))
        logger.info('TCP Recv %s' % (str(recv_json)))
    logger.info('Muxtex Release...')
    mutex.release()
    code_list = []
    if res != None:
        recv_json = json.loads(alphabet.hexbytes2str(res))
        logger.info('TCP Recv %s' % (str(recv_json)))
        res_list = recv_json['Result'][1]
        logger.info(res_list)
        for index_list in res_list:
            name = index_list[0]
            code = index_list[1]
            code_list.append(code)
            logger.info('Name:%s Code:%s' % (name, code))
        for code_index in code_list:
            logger.info('Starting Process By Code:%s' % (code_index))
            pt = multiprocessing.Process(target=spiderF.main_process,
                                         args=(code_index, logger))
            pt.start()
    timer_sched(get_fund_base_info, argv=(logger, ))
    tcp_client.close()
Exemplo n.º 5
0
def esp8266_client_send(client, send_data):
    client.send(alphabet.str2hexbytes(send_data + '\r'))
Exemplo n.º 6
0
import sys

sys.path.append('./alphabet')
import alphabet_pro as alphabet

if __name__ == "__main__":
    print(
        str(alphabet.hexstr2int('0123')) + ' <-> ' + alphabet.int2hexstr(291))
    print(
        alphabet.hexstr2asciistr('30313233') + ' <-> ' +
        alphabet.asciistr2hexstr('0123'))
    print(
        str(alphabet.str2hexbytes('123')) + ' <-> ' +
        alphabet.hexbytes2str(b'\x31\x32\x33'))
    print(
        str(alphabet.hexstr2bytes('123abc')) + ' <-> ' +
        alphabet.bytes2hexstr(b'\x12\x3a\xbc'))
Exemplo n.º 7
0
 def write(self, write_data):
     return os.write(self.write_pipe, alphabet.str2hexbytes(write_data))