60 lines
1.9 KiB
Python
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)
|