import threading import queue import traceback from bsread import source, Source, PUB, SUB, PUSH, PULL, DEFAULT_DISPATCHER_URL from cam_server.pipeline.configuration import PipelineConfig #from processing import run as processing_pipeline from cam_server.pipeline.types.processing import run as processing_pipeline class Namespace(object): def __init__(self, **kwds): self.__dict__.update(kwds) def __repr__(self): items = self.__dict__.items() temp = [] for name, value in items: if not name.startswith('_'): temp.append('%s=%r' % (name, value)) temp.sort() return 'Namespace(%s)' % str.join(', ', temp) statistics=Namespace() pipeline_config = PipelineConfig("test_pipeline", parameters={"camera_name": "simulation", "function":"transparent"}) def run_pipeline(port, pipeline_config, parameter_queue, stop_event): print ("Startint pipeline on port: ", port) try: processing_pipeline(stop_event, statistics, parameter_queue, camera_client, pipeline_config, port, MockBackgroundManager()) except: traceback.print_exc() def get_data(port): with source(host="127.0.0.1", port=port, mode=SUB, receive_timeout = 3000) as stream: data = stream.receive() if not data: raise Exception("Received None message.") print (data.data.data.keys()) OUTPUT_PORT = 12005 stop_event = threading.Event() parameter_queue = queue.Queue() thread = threading.Thread(target=run_pipeline, args=(OUTPUT_PORT,pipeline_config, parameter_queue, stop_event)) thread.start() get_data(OUTPUT_PORT) stop_event.set() thread.join(5.0) print ("Done") OUTPUT_PORT = 12006 stop_event = threading.Event() parameter_queue = queue.Queue() thread = threading.Thread(target=run_pipeline, args=(OUTPUT_PORT,pipeline_config, parameter_queue, stop_event)) thread.start() get_data(OUTPUT_PORT) stop_event.set() thread.join(5.0) print ("Done")