Exemple #1
0
def send_data_to_iottalk(yolo_id, time_stamp, track_bbs_ids):

    try:

        obj_box = []
        obj_box.append(yolo_id)
        obj_box.append(time_stamp)

        for det in track_bbs_ids:

            x1, y1, x2, y2, id, cat = [
                int(p) if isinstance(p, int) else p for p in det
            ]

            person = []
            person.append(id)
            person.append(x1)
            person.append(y1)
            person.append(x2)
            person.append(y2)

            obj_box.append(person)

        DAN.push('Box-I', str(obj_box))
        print('push')

    except Exception as e:
        print(e)
        if str(e).find('mac_addr not found:') != -1:
            print('Reg_addr is not found. Try to re-register...')
            DAN.device_registration_with_retry(ServerURL, Reg_addr)
        else:
            print('Connection failed due to unknow reasons.')
Exemple #2
0
def init_iottalk(IoTTalk_IP, IoTTalk_Port, Register_Address):

    ServerURL = 'http://' + IoTTalk_IP + ':' + str(IoTTalk_Port)
    Reg_addr = Register_Address

    DAN.profile['dm_name'] = 'ObjBox'
    DAN.profile['df_list'] = ['Box-I']
    DAN.profile['d_name'] = None  # None for autoNaming
    DAN.device_registration_with_retry(ServerURL, Reg_addr)
Exemple #3
0
def send_all_data_to_iottalk(data_list):

    try:
        DAN.push('Box-I', str(data_list))
        print('push')

    except Exception as e:
        print(e)
        if str(e).find('mac_addr not found:') != -1:
            print('Reg_addr is not found. Try to re-register...')
            DAN.device_registration_with_retry(ServerURL, Reg_addr)
        else:
            print('Connection failed due to unknow reasons.')
    def sort_index(room_id):
        g.name_list = CheckBoxServer.name_list[room_id]
        enable_list = list(map(str, request.form.getlist("person")))
        print(enable_list)
        g.enable_list = enable_list

        enable_ids = []
        for username in enable_list:
            enable_ids.append(CheckBoxServer.username_table[username])

        DAN.push('Cmd-I', str([room_id, enable_ids]))

        return render_template("index.html")
Exemple #5
0
def send_boxes_to_iottalk(boxes):

    #print(type(buf))
    #array = buf.tolist()
    #print(len(buf))

    #boxes_information = json.dumps(boxes)
    #print(boxes_information)

    #print(data)
    #print(len(data))

    try:
        # @0: json
        #print(boxes)

        obj_box = [boxes[0]['timer']]

        for i in range(len(boxes)):

            person = []

            id = boxes[i]['id']
            x1 = boxes[i]['x1']
            y1 = boxes[i]['y1']
            x2 = boxes[i]['x2']
            y2 = boxes[i]['y2']

            person.append(id)
            person.append(x1)
            person.append(y1)
            person.append(x2)
            person.append(y2)

            obj_box.append(person)

        DAN.push('Box-I', str(obj_box))
        print('push')

        #if(len(boxes) > 0):
        #DAN.push('Box-I', int(boxes[0]['stamp']))

    except Exception as e:
        print(e)
        if str(e).find('mac_addr not found:') != -1:
            print('Reg_addr is not found. Try to re-register...')
            DAN.device_registration_with_retry(ServerURL, Reg_addr)
        else:
            print('Connection failed due to unknow reasons.')
def send_location_to_iottalk(time_stamp, beacon_dataset):

    try:
        location = [time_stamp]
        for user_id in beacon_dataset.keys():
            room_id = beacon_dataset[user_id][0]
            position = beacon_dataset[user_id][1]
            location.append(
                [int(room_id),
                 int(user_id), position[0], position[1]])

        #print(location)

        DAN.push('Loc-I', str(location))
    except Exception as e:
        print(e)
        if str(e).find('mac_addr not found:') != -1:
            print('Reg_addr is not found. Try to re-register...')
            DAN.device_registration_with_retry(ServerURL, Reg_addr)
        else:
            print('Connection failed due to unknow reasons.')
import cv2
import time
import threading
import os
import glob

import iottalk_package.DAN as DAN

ServerURL = 'http://192.168.1.134:9999'
#Reg_addr = None #if None, Reg_addr = MAC address
Reg_addr = "B06EBF60298F"

DAN.profile['dm_name'] = 'Cmd'
DAN.profile['df_list'] = ['Cmd-I']
DAN.profile['d_name'] = None  # None for autoNaming
DAN.device_registration_with_retry(ServerURL, Reg_addr)


# username -> id
def generate_username():

    username_file = "username.txt"
    username_table = {}

    if os.path.exists(username_file):

        with open(username_file, 'r') as f:

            for line in f.readlines():

                l = line.strip().split("=")
def receive_frame_from_iottalk():

    global all_beacon_information_record

    start_time = time.time()
    #time.sleep(0.02)

    #print('start receive frame from iottalk')
    all_boxes_information = list()
    all_beacon_information = list()
    display_ids = list()
    display_ids_record = None
    try:

        # pull boxes information
        pull_box = False
        box = DAN.pull('Box-O')

        #print(box_x, box_y, box_ids, frame_id)

        # pull beacon information
        user = DAN.pull('Loc-O')

        # pull display information
        display_ids = DAN.pull('Cmd-O')


        # boxes information
        if box != None:

            print("pull boxes information")
            #rint(box)

            box_list = ast.literal_eval(box[0])
            box_time_stamp = box_list[0]

            #print('frame: {}'.format(frame_id))

            for i in range(1, len(box_list)):
                #print('person: {}'.format(box_ids[i]))
                #print('x: {}, {}'.format(box_x[i*2], box_x[i*2+1]))
                #print('y: {}, {}'.format(box_y[i*2], box_y[i*2+1]))

                boxes_information = dict()
                boxes_information['stamp'] = box_time_stamp
                boxes_information['id'] = box_list[i][0]
                boxes_information['x1'] = box_list[i][1]
                boxes_information['y1'] = box_list[i][2]
                boxes_information['x2'] = box_list[i][3]
                boxes_information['y2'] = box_list[i][4]

                all_boxes_information.append(boxes_information)

            #print(all_boxes_information)
            pull_box = True

        # beacon information
        if user != None:

            print("pull beacon information")
            #print(user)

            user_list = ast.literal_eval(user[0])
            user_time_stamp = user_list[0]

            for i in range(1, len(user_list)):
                #print('person: {}'.format(user_ids[i]))
                #print('x: {}'.format(user_x[i]))
                #print('y: {}'.format(user_y[i]))

                beacon_information = dict()
                beacon_information['stamp'] = user_time_stamp
                beacon_information['id'] = user_list[i][0]
                beacon_information['x'] = user_list[i][1]
                beacon_information['y'] = user_list[i][2]

                all_beacon_information.append(beacon_information)

            all_beacon_information_record = all_beacon_information

        # display information
        if display_ids != None:

            #print("pull display information")
            #print(display_ids)

            display_ids = ast.literal_eval(display_ids[0])
            display_ids_record = list(display_ids)

            #print(display_ids)
        #display_ids_record = [1, 2]

        #time.sleep(0.02)
        #print((all_boxes_information, display_ids_record, all_beacon_information_record), time.time() - start_time)
        return (all_boxes_information, display_ids_record, all_beacon_information_record)
            #return (tmp_boxes, tmp_enable_name, tmp_beacon)

            
            #print(frame_id)
            #print(box_coord)
            #print(box_id)

            #print(box_coord)
            
            #box_coords = json.loads(box_coord[0])
            #print(str(frame_id[0]) + ' : ' + str(box_coords))

            #boxes_information['stamp'] = frame_id[0]
            #boxes_information['id'] = box_id[0]
            #boxes_information['x1'] = box_coord[0]
            #boxes_information['y1'] = box_coord[1]
            #boxes_information['x2'] = box_coord[2]
            #boxes_information['y2'] = box_coord[3]
            #print(boxes_information)

            #all_boxes_information = data[0].split('|')
            #all_boxes_information_size = len(all_boxes_information)
            #boxes_information = all_boxes_information[0]
            #enable_name = all_boxes_information[all_boxes_information_size - 1]
            #print(person_information)
            
            
            
            #tmp_boxes = json.loads(boxes_information)
            #tmp_enable_name = json.loads(enable_name)
            #print(tmp_boxes)
            #print(tmp_enable_name)

            #tmp_beacon = list()
            #for i in range(1, all_boxes_information_size - 1):
            #    tmp_beacon.append(json.loads(all_boxes_information[i]))

            #print(tmp_beacon)
            
            #tmp_nparray = np.array(tmp_array)
            #tmp_buf = tmp_nparray.astype('uint8')
            #frame = cv2.imdecode(tmp_buf, 1)
            #cv2.imshow('Receive',frame)
            #cv2.waitKey(1)

            #return (tmp_boxes, tmp_enable_name, tmp_beacon)

    except Exception as e:
        print(e)
        if str(e).find('mac_addr not found:') != -1:
            print('Reg_addr is not found. Try to re-register...')
            DAN.device_registration_with_retry(ServerURL, Reg_addr)
        else:
            print('Connection failed due to unknow reasons.')
            #time.sleep(1)    

    #time.sleep(0.02)
    return None
def receive_all_data_from_iottalk():

    #print('start receive frame from iottalk')
    yolo_dataset = {}
    yolo_time_stamp = {}

    beacon_dataset = {}
    beacon_time_stamp = None

    enable_ids = []
    cmd_room_id = None

    try:

        # pull boxes information
        box = DAN.pull('Box-O')

        # boxes information
        if box != None:

            #print("pull boxes information")
            #rint(box)

            box_list = ast.literal_eval(box[0])
            #print("box_list : {}".format(box_list))


            for i in range(len(box_list)):
                yolo_id = box_list[i][0]
                #print("yolo_id : {}".format(yolo_id))
                if yolo_id not in yolo_dataset:
                    yolo_dataset[yolo_id] = []

                box_data = box_list[i][1]

                time_stamp = box_data[0]
                yolo_time_stamp[yolo_id] = time_stamp
                #print("time_stamp : {}".format(time_stamp))

                #print("box_data : {}".format(box_data))
                for j in range(1, len(box_data)):
                    det = box_data[j]
                    id, x1, y1, x2, y2 = [int(p) for p in det]
                    yolo_dataset[yolo_id].append([x1, y1, x2, y2, id])

        #print("yolo_dataset : {}".format(yolo_dataset))
        #print("yolo_time_stamp : {}".format(yolo_time_stamp))


        # pull beacon information
        beacon = DAN.pull('Loc-O')

        # beacon information
        if beacon != None:

            #print("pull beacon information")
            #rint(box)

            beacon_list = ast.literal_eval(beacon[0])
            beacon_time_stamp = beacon_list[0]

            #print('frame: {}'.format(frame_id))

            for i in range(1, len(beacon_list)):

                location = beacon_list[i]
                room_id, user_id, x, y = [int(p) for p in location]
                room_id = room_id
                user_id = user_id
                
                if room_id not in beacon_dataset:
                    beacon_dataset[room_id] = {}
                beacon_dataset[room_id][user_id] = [x, y]

        # pull cmd information
        cmd = DAN.pull('Cmd-O')

        # cmd information
        if cmd != None:

            #print("pull cmd information")
            #rint(box)

            cmd_list = ast.literal_eval(cmd[0])
            cmd_room_id = cmd_list[0]

            #print('frame: {}'.format(frame_id))

            for user_id in cmd_list[1]:

                enable_ids.append(user_id)

        return (yolo_time_stamp, yolo_dataset, beacon_time_stamp, beacon_dataset, cmd_room_id, enable_ids)

    except Exception as e:
        print(e)
        if str(e).find('mac_addr not found:') != -1:
            print('Reg_addr is not found. Try to re-register...')
            DAN.device_registration_with_retry(ServerURL, Reg_addr)
        else:
            print('Connection failed due to unknow reasons.')
            #time.sleep(1)    

    #time.sleep(0.02)
    return None