-
Notifications
You must be signed in to change notification settings - Fork 29
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Laser Scanning Toolchain #169
Draft
Neverhorst
wants to merge
80
commits into
main
Choose a base branch
from
laser-scanning-toolchain
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
Conversation
This file contains 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
…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.
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
DataInStreamInterface
that contain one stream channel with laser frequency (Hz) or wavelength (m) data.Optionally, it can also connect to a
ScannableLaserInterface
hardware 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
DataInStreamInterface
data 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.md
and in extensionsetup_instream_buffer.md
andsetup_instream_sync.md
.How Has This Been Tested?
So far only with dummy modules
ScannableLaserDummy
andInStreamDummy
in 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.).