diff --git a/.cuvis/log.cfg b/.cuvis/log.cfg new file mode 100644 index 0000000..e69de29 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..cace7ec --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +/.venv +/.venv39 +/exit diff --git a/EX05_recordSingleImages.py b/EX05_recordSingleImages.py index e3ef8f9..3590043 100644 --- a/EX05_recordSingleImages.py +++ b/EX05_recordSingleImages.py @@ -6,7 +6,7 @@ import cuvis -### default directories and files +# default directories and files data_dir = None lib_dir = None @@ -29,7 +29,7 @@ loc_output = os.path.join(os.getcwd(), "EX05_images") # parameters -loc_exptime = 100 #in ms +loc_exptime = 100 # in ms loc_nimgs = 10 @@ -50,7 +50,7 @@ def run_example_recordSingleImage( acquisitionContext = cuvis.AcquisitionContext(calibration) saveArgs = cuvis.SaveArgs(export_dir=recDir, allow_overwrite=True, - allow_session_file=True) + allow_session_file=True) cubeExporter = cuvis.CubeExporter(saveArgs) while acquisitionContext.state == cuvis.HardwareState.Offline: diff --git a/EX06_recordVideo.py b/EX06_recordVideo.py index fbb5528..ed5009a 100644 --- a/EX06_recordVideo.py +++ b/EX06_recordVideo.py @@ -7,7 +7,7 @@ import cuvis -### default directories and files +# default directories and files data_dir = None lib_dir = None @@ -30,7 +30,7 @@ loc_output = os.path.join(os.getcwd(), "EX06_video") # parameters -loc_exptime = 100 #in ms +loc_exptime = 100 # in ms loc_autoexp = False loc_fps = 2 @@ -50,15 +50,15 @@ def run_example_recordVideo(userSettingsDir=loc_settings, print("loading acquisition context...") acquisitionContext = cuvis.AcquisitionContext(calibration) - session_info = cuvis.SessionData("video",0,0) + session_info = cuvis.SessionData("video", 0, 0) acquisitionContext.session_info = session_info print("prepare saving of measurements...") saveArgs = cuvis.SaveArgs(export_dir=recDir, - allow_overwrite=True, - allow_session_file=True, - fps=fps, - operation_mode=cuvis.OperationMode.Software) + allow_overwrite=True, + allow_session_file=True, + fps=fps, + operation_mode=cuvis.OperationMode.Software) print("writing files to: {}".format(recDir)) cubeExporter = cuvis.CubeExporter(saveArgs) @@ -90,16 +90,12 @@ def run_example_recordVideo(userSettingsDir=loc_settings, acquisitionContext.set_continuous(True) print("configuring worker...") - workerSettings = cuvis.WorkerSettings(keep_out_of_sequence=False, - poll_intervall=10, - worker_count=0, - hard_limit=10, - soft_limit=10, - can_drop=True) + workerSettings = cuvis.WorkerSettings() worker = cuvis.Worker(workerSettings) worker.set_acquisition_context(acquisitionContext) worker.set_processing_context(processingContext) worker.set_exporter(cubeExporter) + worker.start_processing() print("recording...! (will stop after 2 minutes)") start = datetime.now() @@ -111,20 +107,23 @@ def run_example_recordVideo(userSettingsDir=loc_settings, else: time.sleep(0.001) - workerContainer = worker.get_next_result(1000) #in ms + workerContainer = worker.get_next_result(1000) # in ms if workerContainer.mesu.data is not None: print("current handle index: {}".format( workerContainer.mesu.session_info.sequence_number)) - if worker.queue_limits[1] == worker.queue_used: - print("worker queue is full! Main() loop can not keep up!") + + workerState = worker.state + if workerState.resultsInQueue == worker.output_queue_limit: + print("worker output queue is full! Main() loop can not keep up!") break - if acquisitionContext.queue_size == acquisitionContext.queue_used: + + if workerState.measurementsInQueue == worker.mandatory_queue_limit: print("acquisition queue is full! Worker can not keep up!") break print("acquisition stopped...") acquisitionContext.set_continuous(False) - + worker.stop_processing() cuvis.shutdown() print("finished.") diff --git a/EX06_recordVideo_async.py b/EX06_recordVideo_async.py index 83f1229..6fb32e9 100644 --- a/EX06_recordVideo_async.py +++ b/EX06_recordVideo_async.py @@ -7,8 +7,7 @@ import cuvis - -### default directories and files +# default directories and files data_dir = None lib_dir = None @@ -31,7 +30,7 @@ loc_output = os.path.join(os.getcwd(), "EX06_video") # parameters -loc_exptime = 100 #in ms +loc_exptime = 100 # in ms loc_autoexp = False loc_fps = 2 @@ -39,36 +38,37 @@ async def state_changed_callback(state, component_states): print(f'camera is {state.name}') + async def worker_collect_mesu_task(workerContainer: cuvis.WorkerResult): if workerContainer.mesu.data is not None: - print("current handle index: {}".format( - workerContainer.mesu.session_info.sequence_number)) + print("current handle index: {}".format( + workerContainer.mesu.session_info.sequence_number)) async def run_example_recordVideo(userSettingsDir=loc_settings, - factoryDir=loc_factory, - recDir=loc_output, - exposure=loc_exptime, - autoExp=loc_autoexp, - fps=loc_fps): + factoryDir=loc_factory, + recDir=loc_output, + exposure=loc_exptime, + autoExp=loc_autoexp, + fps=loc_fps): print("loading user settings...") cuvis.init(userSettingsDir) cuvis.set_log_level("info") - + print("loading calibration (factory)...") calibration = cuvis.Calibration(factoryDir) print("loading acquisition context...") acquisitionContext = cuvis.AcquisitionContext(calibration) - session_info = cuvis.SessionData('video',0,0) + session_info = cuvis.SessionData('video', 0, 0) acquisitionContext.session_info = session_info print("prepare saving of measurements...") saveArgs = cuvis.SaveArgs(export_dir=recDir, - allow_overwrite=True, - allow_session_file=True, - fps=fps, - operation_mode=cuvis.OperationMode.Software) + allow_overwrite=True, + allow_session_file=True, + fps=fps, + operation_mode=cuvis.OperationMode.Software) print("writing files to: {}".format(recDir)) cubeExporter = cuvis.CubeExporter(saveArgs) @@ -102,12 +102,7 @@ async def run_example_recordVideo(userSettingsDir=loc_settings, await acquisitionContext.set_continuous_async(True) print("configuring worker...") - workerSettings = cuvis.WorkerSettings(keep_out_of_sequence=False, - poll_intervall=10, - worker_count=0, - hard_limit=10, - soft_limit=10, - can_drop=True) + workerSettings = cuvis.WorkerSettings() worker = cuvis.Worker(workerSettings) worker.set_acquisition_context(acquisitionContext) worker.set_processing_context(processingContext) @@ -116,13 +111,14 @@ async def run_example_recordVideo(userSettingsDir=loc_settings, print("recording...! (will stop after 2 minutes)") worker.register_worker_callback(worker_collect_mesu_task) + worker.start_processing() await a.sleep(2 * 60) worker.reset_worker_callback() print("acquisition stopped...") await acquisitionContext.set_continuous_async(False) - + worker.stop_processing() cuvis.shutdown() print("finished.") @@ -163,7 +159,7 @@ async def run_example_recordVideo(userSettingsDir=loc_settings, fps = int(fps) a.run(run_example_recordVideo(userSettingsDir, factoryDir, recDir, exposure, - autoExp, fps)) + autoExp, fps)) while 1: sys.exit(0) diff --git a/EX07_recordVideoFromSessionFile.py b/EX07_recordVideoFromSessionFile.py index 2803a93..ba6d624 100644 --- a/EX07_recordVideoFromSessionFile.py +++ b/EX07_recordVideoFromSessionFile.py @@ -6,7 +6,7 @@ import cuvis -### default directories and files +# default directories and files data_dir = None lib_dir = None @@ -30,7 +30,7 @@ loc_output = os.path.join(os.getcwd(), "EX07_video") # parameters -loc_exptime = 100 #in ms +loc_exptime = 100 # in ms loc_autoexp = False loc_fps = 2 @@ -51,15 +51,15 @@ def run_example_recordVideoFromSessionFile(userSettingsDir=loc_settings, print("loading acquisition context...") acquisitionContext = cuvis.AcquisitionContext(session, simulate=True) # # using images from session file instead of camera - session_info = cuvis.SessionData("video",0,0) + session_info = cuvis.SessionData("video", 0, 0) acquisitionContext.session_info = session_info print("prepare saving of measurements...") saveArgs = cuvis.SaveArgs(export_dir=recDir, - allow_overwrite=True, - allow_session_file=True, - fps=fps, - operation_mode=cuvis.OperationMode.Internal) + allow_overwrite=True, + allow_session_file=True, + fps=fps, + operation_mode=cuvis.OperationMode.Internal) print("writing files to: {}".format(recDir)) cubeExporter = cuvis.CubeExporter(saveArgs) @@ -86,22 +86,18 @@ def run_example_recordVideoFromSessionFile(userSettingsDir=loc_settings, print("initializing simulated hardware...") acquisitionContext.integration_time = exposure - acquisitionContext.operation_mode =cuvis.OperationMode.Internal + acquisitionContext.operation_mode = cuvis.OperationMode.Internal acquisitionContext.fps = fps acquisitionContext.auto_exp = autoExp acquisitionContext.set_continuous(True) print("configuring worker...") - workerSettings = cuvis.WorkerSettings(keep_out_of_sequence=False, - poll_intervall=10, - worker_count=0, - hard_limit=10, - soft_limit=10, - can_drop=True) + workerSettings = cuvis.WorkerSettings() worker = cuvis.Worker(workerSettings) worker.set_acquisition_context(acquisitionContext) worker.set_processing_context(processingContext) worker.set_exporter(cubeExporter) + worker.start_processing() print("recording...! (will stop after 2 minutes)") start = datetime.now() @@ -113,20 +109,23 @@ def run_example_recordVideoFromSessionFile(userSettingsDir=loc_settings, else: time.sleep(0.001) - workerContainer = worker.get_next_result() + workerContainer = worker.get_next_result(0) if workerContainer.mesu.data is not None: print("current handle index: {}".format( workerContainer.mesu.session_info.sequence_number)) - if worker.get_queue_limits()["soft_limit"] == worker.get_queue_used(): - print("worker queue is full! Main() loop can not keep up!") + + workerState = worker.state + if workerState.resultsInQueue == worker.output_queue_limit: + print("worker output queue is full! Main() loop can not keep up!") break - if acquisitionContext.queue_size == acquisitionContext.queue_used: + + if workerState.measurementsInQueue == worker.mandatory_queue_limit: print("acquisition queue is full! Worker can not keep up!") break print("acquisition stopped...") acquisitionContext.set_continuous(False) - + worker.stop_processing() cuvis.shutdown() print("finished.") @@ -167,7 +166,7 @@ def run_example_recordVideoFromSessionFile(userSettingsDir=loc_settings, fps = int(fps) run_example_recordVideoFromSessionFile(userSettingsDir, factoryDir, recDir, exposure, - autoExp, fps) + autoExp, fps) while 1: sys.exit(0)