Files
pide/script/test/test_thread.py
2022-08-25 10:40:57 +02:00

68 lines
1.9 KiB
Python

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")