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)