Exemple #1
0
def assignment_load_handler(obj_response, form_values):
    """
    Load camera assignment from file.
    """
    camera_assignment_old = redis_tools.get_dict(db, 'camera_assignment')
    mjpeg_info_dict = redis_tools.get_dict(db, 'mjpeg_info_dict')
    select_values = create_select_values(mjpeg_info_dict)

    # Load current camera assignment from file
    yaml_dict = file_tools.read_camera_assignment()
    camera_assignment_new = assignment_from_yaml_dict(yaml_dict)

    camera_assignment = {}
    for camera_id in camera_assignment_old:
        try:
            value = camera_assignment_new[camera_id]
        except KeyError:
            value = '--'
        if not value in select_values:
            value = '--'
        camera_assignment[camera_id] = value

    redis_tools.set_dict(db, 'camera_assignment', camera_assignment)
    set_camera_assignment(obj_response, camera_assignment, select_values)
    obj_response.attr('#message', 'style', 'color:black')
    obj_response.html('#message', 'Current camera assignment loaded')
    obj_response.attr('#message_table', 'style', 'display:none')
Exemple #2
0
def assignment_change_handler(obj_response, form_values):
    """
    Handles changes to the camera assignment
    """
    camera_assignment_old = redis_tools.get_dict(db, 'camera_assignment')
    camera_assignment_new = json_tools.decode_dict(form_values)
    redis_tools.set_dict(db, 'camera_assignment', camera_assignment_new)

    message_str = ''
    for k, v in camera_assignment_new.iteritems():
        if v != camera_assignment_old[k]:
            message_str = 'Assigned camera {0} to GUID {1}'.format(v, k)

    obj_response.attr('#message', 'style', 'color:black')
    obj_response.html('#message', message_str)
    obj_response.attr('#message_table', 'style', 'display:none')
Exemple #3
0
def clear_form_handler(obj_response, form_values):
    """
    Handles requests to clear form
    """
    camera_assignment = json_tools.decode_dict(form_values)
    camera_assignment = dict((k, '--') for k in camera_assignment)
    redis_tools.set_dict(db, 'camera_assignment', camera_assignment)

    # Update form
    mjpeg_info_dict = redis_tools.get_dict(db, 'mjpeg_info_dict')
    select_values = create_select_values(mjpeg_info_dict)
    set_camera_assignment(obj_response, camera_assignment, select_values)

    # Update message
    obj_response.attr('#message', 'style', 'color:black')
    obj_response.html('#message', 'Camera assignment cleared')
    obj_response.attr('#message_table', 'style', 'display:none')
Exemple #4
0
def setup_redis_db():
    # Create db and add empty camera assignment
    db = redis.Redis('localhost',db=config.redis_db)

    # Add mjpeg info dictionary
    mjpeg_info_dict = mjpeg_servers.get_mjpeg_info_dict()
    redis_tools.set_dict(db,'mjpeg_info_dict', mjpeg_info_dict)

    # Add external network interface
    machine_def = mct_introspection.get_machine_def()
    ip_iface_ext = iface_tools.get_ip_addr(machine_def['mct_master']['iface-ext'])
    redis_tools.set_str(db,'ip_iface_ext',ip_iface_ext)

    # Add default scale for image view
    scale_default = config.camera_view_table['scale_default']
    redis_tools.set_str(db,'scale', scale_default)
    return db
Exemple #5
0
def setup_redis_db():
    """
    Sets up the redis database for the camera assignemnt application
    """
    # Create db and add empty camera assignment
    db = redis.Redis('localhost', db=config.redis_db)

    machine_def = mct_introspection.get_machine_def()
    ip_iface_ext = iface_tools.get_ip_addr(
        machine_def['mct_master']['iface-ext'])
    redis_tools.set_str(db, 'ip_iface_ext', ip_iface_ext)

    mjpeg_info_dict = mjpeg_servers.get_mjpeg_info_dict()
    redis_tools.set_dict(db, 'mjpeg_info_dict', mjpeg_info_dict)

    camera_assignment = create_empty_assignment(mjpeg_info_dict)
    redis_tools.set_dict(db, 'camera_assignment', camera_assignment)
    return db
Exemple #6
0
def test_handler(obj_response, form_values):
    """
    Assign a test camera assignment - for development 
    """
    # Create a camera assignment
    camera_assignment = json_tools.decode_dict(form_values)
    cnt = 0
    test_camera_assignment = {}
    for k in camera_assignment:
        cnt += 1
        test_camera_assignment[k] = str(cnt)

    # Set camera assignment values
    mjpeg_info_dict = redis_tools.get_dict(db, 'mjpeg_info_dict')
    select_values = create_select_values(mjpeg_info_dict)
    set_camera_assignment(obj_response, test_camera_assignment, select_values)

    redis_tools.set_dict(db, 'camera_assignment', test_camera_assignment)
    obj_response.attr('#message', 'style', 'color:black')
    obj_response.html('#message', 'Created test assignment')
    obj_response.attr('#message_table', 'style', 'display:none')
Exemple #7
0
def index():

    if flask.g.sijax.is_sijax_request:
        flask.g.sijax.register_callback('assignment_change',
                                        assignment_change_handler)
        flask.g.sijax.register_callback('clear_form', clear_form_handler)
        flask.g.sijax.register_callback('assignment_save',
                                        assignment_save_handler)
        flask.g.sijax.register_callback('assignment_load',
                                        assignment_load_handler)
        flask.g.sijax.register_callback('timer_update', timer_update_handler)
        flask.g.sijax.register_callback('test', test_handler)
        return flask.g.sijax.process_request()

    else:
        # Get scale and compute image width
        scale, scale_options = common_args.get_scale(config, flask.request)
        image_width = int(config.camera_image['width'] * float(scale))
        image_height = int(config.camera_image['height'] * float(scale))

        camera_assignment = redis_tools.get_dict(db, 'camera_assignment')
        mjpeg_info_dict = redis_tools.get_dict(db, 'mjpeg_info_dict')
        ip_iface_ext = redis_tools.get_str(db, 'ip_iface_ext')
        select_values = create_select_values(mjpeg_info_dict)

        render_dict = {
            'mjpeg_info_dict': mjpeg_info_dict,
            'camera_assignment': camera_assignment,
            'select_values': select_values,
            'ip_iface_ext': ip_iface_ext,
            'scale_options': scale_options,
            'scale': scale,
            'image_width': image_width,
            'image_height': image_height,
        }

        redis_tools.set_dict(db, 'camera_assignment', camera_assignment)
        return flask.render_template('camera_assignment.html', **render_dict)
Exemple #8
0
def setup_redis_db():
    """
    Sets up the redis database for the camera assignemnt application
    """
    # Create db and add empty camera assignment
    db = redis.Redis('localhost',db=config.redis_db)

    mjpeg_info_dict = mjpeg_servers.get_mjpeg_info_dict()
    for camera, info in mjpeg_info_dict.iteritems():
        info['image_topic'] = info['image_topic'].replace('image_raw','image_calibrator')
    redis_tools.set_dict(db,'mjpeg_info_dict', mjpeg_info_dict)

    machine_def = mct_introspection.get_machine_def()
    ip_iface_ext = iface_tools.get_ip_addr(machine_def['mct_master']['iface-ext'])
    redis_tools.set_str(db,'ip_iface_ext',ip_iface_ext)

    scale_default = config.camera_view_table['scale_default']
    redis_tools.set_str(db,'scale', scale_default)

    target_info = file_tools.read_target_info(config.camera_calib_target_type)
    redis_tools.set_dict(db, 'target_info', target_info)

    return db
Exemple #9
0
def setup_redis_db():
    # Create db and add empty camera assignment
    db = redis.Redis('localhost', db=config.redis_db)

    # Add regions dictionary
    regions_dict = file_tools.read_tracking_2d_regions()
    redis_tools.set_dict(db, 'regions_dict', regions_dict)

    # Add extra video dictionary
    extra_video_dict = file_tools.read_logging_extra_video()
    redis_tools.set_dict(db, 'extra_video_dict', extra_video_dict)

    # Add mjpeg info dictionary
    mjpeg_info_dict = mjpeg_servers.get_mjpeg_info_dict()
    redis_tools.set_dict(db, 'mjpeg_info_dict', mjpeg_info_dict)

    # Add external network interface
    machine_def = mct_introspection.get_machine_def()
    ip_iface_ext = iface_tools.get_ip_addr(
        machine_def['mct_master']['iface-ext'])
    redis_tools.set_str(db, 'ip_iface_ext', ip_iface_ext)

    # Set operating mode
    redis_tools.set_str(db, 'current_mode', 'preview')

    ## Get frame rates
    frame_rate_dict = file_tools.read_frame_rates()
    redis_tools.set_dict(db, 'frame_rate_dict', frame_rate_dict)

    frame_rate = frame_rate_dict['tracking_2d']

    # Get logging directory  - add base path to directory, and create if it doesn't exist
    logging_params_dict = file_tools.read_logging_params()
    logging_params_dict['directory'] = os.path.join(
        os.environ['HOME'], logging_params_dict['directory'])
    if not os.path.exists(logging_params_dict['directory']):
        os.mkdir(logging_params_dict['directory'])
    redis_tools.set_dict(db, 'logging_params_dict', logging_params_dict)

    # Get lighting params
    mightex_params_dict = file_tools.read_mightex_params()
    lighting_params_dict = mightex_to_lighting_params(mightex_params_dict)

    redis_tools.set_dict(db, 'lighting_params_dict', lighting_params_dict)

    return db