Ejemplo n.º 1
0
def add_latest_picture_url(camera_id: str, url: str) -> None:
    cameras = gcameras = get_camera_config()
    for camera in cameras:
        if camera['camera_id'] == camera_id:
            camera['latest_picture_url'] = url
    set_camera_config(new_camera_config = cameras)
    return
Ejemplo n.º 2
0
def create_camera(name: str, camera_device_id: int, timer: list, resolution: dict, trimming: dict) -> None:
    cameras = get_camera_config()
    tank_id = get_config_item('TANK_ID')

    camera_id = generate_camera_id(tank_id)

    new_camera = {
        'camera_id': camera_id,
        'name': name,
        'camera_device_id': camera_device_id,
        'resolution': {
            'x': resolution['x'],
            'y': resolution['y'],
        },
        'timer': list(timer),
        'trimming': {
            'top': trimming['top'],
            'bottom': trimming['bottom'],
            'left': trimming['left'],
            'right': trimming['right'],
        },
        'latest_picture_url': ''
    }
    cameras.append(new_camera)

    set_camera_config(cameras)

    logger(
        INFO,
        'Create new camera 📸\n' + json.dumps(new_camera),
        True,
        False
    )
    return
Ejemplo n.º 3
0
def update_camera(
    camera_id: str,
    name: str,
    camera_device_id: int,
    resolution: dict,
    timer: list,
    trimming: dict
) -> None:
    cameras = get_camera_config()

    updated_camera = {
        'camera_id': camera_id,
        'name': name,
        'camera_device_id': camera_device_id,
        'resolution': {
            'x': resolution['x'],
            'y': resolution['y'],
        },
        'timer': list(timer),
        'trimming': {
            'top': trimming['top'],
            'bottom': trimming['bottom'],
            'left': trimming['left'],
            'right': trimming['right'],
        },
        'latest_picture_url': ''
    }

    for camera in cameras:
        if camera['camera_id'] == camera_id:
            camera['name'] = name
            camera['camera_device_id'] = camera_device_id
            camera['resolution'] = resolution
            camera['timer'] = timer
            camera['trimming'] = trimming
            updated_camera['latest_picture_url'] = camera['latest_picture_url']
        
    set_camera_config(cameras)

    logger(
        INFO,
        f'Update camera 📸\ncamera_id = {camera_id}\n' + json.dumps(updated_camera),
        True,
        False
    )
    return
Ejemplo n.º 4
0
def main():
    now = datetime.datetime.now()
    hour, minute = now.hour, now.minute
    cameras = get_camera_config()

    target_camera_ids = []

    # 全てのカメラをチェック
    for camera in cameras:
        # timerがなかったら次へ
        if 'timer' not in camera:
            continue

        timers = camera['timer']

        # 対象のカメラが今写真を取るべきかチェック
        for timer in timers:
            if timer['hour'] == hour and timer['minute'] == minute:
                target_camera_ids.append(camera['camera_id'])
                continue
    
    take_pictures(target_camera_ids)
Ejemplo n.º 5
0
def get_camera_config_by_id(camera_id: str) -> dict:
    cameras = get_camera_config()
    for camera in cameras:
        if camera['camera_id'] == camera_id:
            return camera
    return {}
Ejemplo n.º 6
0
def get_cameras() -> list:

    cameras = get_camera_config()
    return cameras