コード例 #1
0
def init_worker():
    with worker_ctx() as worker:
        try:
            worker.init()
            xcamserver.socket_server.init(worker.frame_size)
            xcamserver.socket_server.data_size = worker.frame_size
            # if xcamserver.socket_server is None:
            #     xcamserver.socket_server = SocketServer()
            server_addr = xcamserver.socket_server.server_socket.getsockname()
            # Connect to SocketServer
            client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
            client_socket.connect(server_addr)
            client_addr = client_socket.getsockname()

            # Socket server listens the camera worker
            xcamserver.socket_server.camera_addr = client_addr

            # Camera writes data to the socket
            connection = client_socket.makefile(mode='wb')
            worker.camera_handler = connection
            worker.stream_address = server_addr

            xcamserver.socket_server.run()
        except Exception as e:
            print('%s' % str(repr(e)))
        finally:
            return meta2json(worker.get_meta())
コード例 #2
0
def get_metadata():
    with worker_ctx() as worker:
        try:
            data = worker.get_meta()
        except:
            pass
        finally:
            return meta2json(data)
コード例 #3
0
def stop_worker():
    with worker_ctx() as worker:
        try:
            worker.stop()
        except:
            pass
        finally:
            return meta2json(worker.get_meta())
コード例 #4
0
def close():
    with worker_ctx() as worker:
        try:
            worker.close()
            xcamserver.socket_server.close()
        except:
            pass
        finally:
            return meta2json(worker.get_meta())
コード例 #5
0
def start_worker():
    print('Starting worker')
    # Contexts are for preventing overlapping accesses to resources
    with worker_ctx() as worker:
        # if not worker.initialized:
        #     print('Worker is not initialized. Call /init before calling /start')
        #     worker.status = 'ERROR'
        #     worker.error = 'Worker is not initialized. Call /init before calling /start'
        #     return get_metadata()
        try:
            # worker.set_handler(worker.camera_handler)
            worker.start()
        except:
            return meta2json(worker.get_meta())
        else:
            print('Worker is starting.')
            return meta2json(worker.get_meta())
コード例 #6
0
def close_worker():
    with worker_ctx() as worker:
        try:
            worker.close()
        finally:
            return meta2json(worker.get_meta())
コード例 #7
0
ファイル: base_test.py プロジェクト: Moskari/xcamserver
 def tearDown(self):
     with xcamserver.worker_ctx() as worker:
         worker.close()
     xcamserver.socket_server.close()