Files
2022-06-01 16:18:43 +02:00

60 lines
1.9 KiB
Python

from cam_server.pipeline.utils import *
from logging import getLogger
import time
from cam_server.utils import update_statistics, init_statistics
_logger = getLogger(__name__)
NAME = "TEST_STR"
INTERVAL = 0.01
def run(stop_event, statistics, parameter_queue, cam_client, pipeline_config, output_stream_port,
background_manager, user_scripts_manager=None):
set_log_tag(NAME)
exit_code = 0
pars = init_pipeline_parameters(pipeline_config)
try:
init_statistics(statistics)
set_log_tag(" [" + str(pipeline_config.get_name()) + ":" + str(output_stream_port) + "]")
sender = create_sender(output_stream_port, stop_event)
_logger.debug("Transceiver started. %s" % log_tag)
# Indicate that the startup was successful.
stop_event.clear()
counter = 0
while not stop_event.is_set():
try:
start = time.time()
data = {}
data[NAME+":counter"]=counter
data[NAME+":parameters"]=str(pars)
send(sender, data, None, None)
update_statistics(sender)
counter = counter+1
sleep = INTERVAL-(time.time()-start)
if sleep>0:
time.sleep(sleep)
except Exception as e:
_logger.exception("Could not process message: " + str(e) + ". %s" % log_tag)
if abort_on_error():
stop_event.set()
_logger.info("Stopping transceiver. %s" % log_tag)
except:
_logger.exception("Exception while trying to start the receive and process thread. %s" % log_tag)
exit_code = 1
raise
finally:
_logger.info("Stopping transceiver. %s" % log_tag)
if sender:
try:
sender.close()
except:
pass
sys.exit(exit_code)