Laser Scanning Toolchain#169
Draft
Neverhorst wants to merge 90 commits into
Draft
Conversation
…en trying to change anything in the streamer
…es NOT interpolate.
Wavemeter_histogram_logic runs repeatatly by a QTqueued connection. This logic has access on the time series reader logic, while both are connected to their instreamer, respectively. It is to be checked if this implementation of logic being connected to logic is done properly. Moreover, the data acquistion/ synchronisation is implemented in the following way: The samples to read from the hardware are determined by the faster acquiring count instreamer. Upon this value the wavelength is then queried and directly interpolated in the hardware file as soon as at least one value is available. Thus a data array of equal size is generated. The time trace for the scatterplot is extracted from the wave instreamer.
-New gui file with subscript _2 -generating main window without QT Designer / .ui file -Implemented InteractiveCurvesWidget such that the current laser position is visible as marker with the move_marker_selection method -Implemented an axis toggle option between nm and Hz The logic is changed in such a fashion that it needs the time series reader application to be running with only one digital channel. For this an additional signal in the time_series_reader_logic.py is added which emits only the most recent data points of the time series instreamer and is received in the wavemeter_histogram_logic.py.
-Implementation of saving, fitting, envelope, toggle of bottom dockwidget and autoscale histogram functionality
-Try to improve performance by introduced separate gui refresh rate and plotdataitem with the ability to set a downsampling. Further, first try of two separate start buttons is implemented.
GUI: -Histogram region; show all data; added dockwidgets; restore default LOGIC: -Improved the binning of the histogram such that no empty bin; saving of envelope data
-Set up of remote connection; netobtain and new config (not commited) -Hence hardware file cannot emit signal for current wavelength any more -small adjustments for Gui
-Added name tag option for saving -Enabled saving again while acqusition is running
-Added signal (sigStopWavemeter) in timer_series_logic to fix interplay. (When timeseries is stopped the wavemeter data acquisition is stopped.) -Enabled fitting of envelope
commit changes in order to update main: -mw anritsu, awg, unit.py, config
# Conflicts: # src/qudi/gui/time_series/time_series_gui.py # src/qudi/logic/time_series_reader_logic.py
-moved to newest version of the main branch (meaning that especially instream interface changes merged) -added awg model -config wavemeter_rework -the high_finesse_wavemeter hardware module is the one from kilians pull request -new logic&gui (wavemeter_scanning; naming has to be changed) -in the timeseries logic solely a signal for the interplay is added -high_finesse_constants version from kilian
-harxware module
…e PR. Handling of wm_start_time.
… logic stop the qudi stream accordingly. -Fully enabled NaNs for the histogram process and green GUI marker
…E scanning toolchain" accordeingly.
# Conflicts: # src/qudi/hardware/wavemeter/high_finesse_constants.py # src/qudi/hardware/wavemeter/high_finesse_proxy.py # src/qudi/hardware/wavemeter/high_finesse_wavemeter.py # src/qudi/hardware/wavemeter/high_finesse_wrapper.py
…gic side -generic stop signal from time_series_reader_logic.py -formatting
…anning toolchain. Tested with dummy.
…ed to generate a button/icon in the GUI which allows for displaying all data (and not only the maximum number of data points defined in the conig). Still needs to be done: modify the laser_scanning_gui and make sure about the functionality of the button
…t related functionality, which is only callable when there is no acquisition running.
…ed unnecessary commented lines.
…All configured channels are streamed and deactivated channels are streamed with a place holder. Instream Buffer can create new worker thread if old is None (important for remote clients). Remote buffers are kept alive with instream_keepalive in case they are deactivated due to deactivation of a client.
…ing of the wavelength/counts is indepentent. Added the option to use the wavelength as bounds during a scan, which is only possible of the recording already started.
… works with the current Logic/GUI.
…get. Added direction button that sets the inital direction of a laser scan and allows direction change during a scan. The scan is supervised by the logic. For this to work, the laser hardware file should not set boundaries at the start of a scan but keep the config boundaries.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
This PR introduces a toolchain to visualize and process data from specialized streaming modules based on
DataInStreamInterfacethat contain one stream channel with laser frequency (Hz) or wavelength (m) data.Optionally, it can also connect to a
ScannableLaserInterfacehardware implementation to actively control laser scanning (settings/start/stop) during data acquisition.In the absence of a scannable laser hardware module, the data stream is just recorded and the actual laser scanning is assumed to be controlled from elsewhere.
Additionally this PR introduces tooling and interfuse modules to distribute
DataInStreamInterfacedata streams to multiple qudi modules in mixed local/remote environments.Motivation and Context
Incorporates and expands changes proposed in PRs #132 and #120 into a complete toolchain solution.
These PRs as well as their branches wavemeter_scanning and scannable_laser_interface can be safely deleted upon merging this PR.
Fixes Issue #59
For more information about using this toolchain, please refer to the new documentation
setup_laserscanning.mdand in extensionsetup_instream_buffer.mdandsetup_instream_sync.md.How Has This Been Tested?
So far only with dummy modules
ScannableLaserDummyandInStreamDummyin a remote module setup (2 qudi processes).You can use these configs as a starting point for tests:
laserscanning_test_remote.cfg
laserscanning_test_local.cfg
Important
Implementation and testing of actual hardware modules is needed before merging. Help is appreciated.
Screenshots:
Types of changes
Checklist:
/docs/changelog.md.(syntax, indentation, mutable default values, etc.).