Skip to content
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

Slow counter overhaul #555

Merged
merged 53 commits into from
Jun 11, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
53 commits
Select commit Hold shift + click to select a range
489812b
Try new slow counter
Neverhorst Aug 28, 2019
a37da94
Slow counting seems to work now at much faster rates than before and …
Neverhorst Sep 2, 2019
2af3ca6
Small fixes
Neverhorst Sep 2, 2019
ad972ef
First attempt on a simple data input stream interface.
Neverhorst Sep 2, 2019
4ce6f58
New hardware module using the in streamer interface
Neverhorst Sep 3, 2019
f33b037
New hardware module using the in streamer interface
Neverhorst Sep 3, 2019
990d686
In principle everything is working now for the streamer
Neverhorst Sep 5, 2019
675e877
Better frame timing and more optimized plotting
Neverhorst Sep 6, 2019
d7605a4
Add config for testing
Neverhorst Sep 6, 2019
52f1a25
Added "QtCore.Slot" decorators and changed naming of GUI objects
Neverhorst Sep 6, 2019
1de9d86
Added snapshot action and artwork
Neverhorst Sep 6, 2019
271ae94
Handled setting of moving average via GUI and remove/add smoothed gra…
Neverhorst Sep 6, 2019
15c474c
Forgot ui file.
Neverhorst Sep 6, 2019
e8bfe71
Tweaked tooltips
Neverhorst Sep 6, 2019
5beee1c
Merge remote-tracking branch 'origin/master' into slow_counter_overhaul
Neverhorst Sep 6, 2019
00fe373
Adapted imports to recent core changes
Neverhorst Sep 6, 2019
028db83
Fixed plot performance by setting pen width to 1px
Neverhorst Sep 9, 2019
c7a8a37
WIP
Neverhorst Sep 12, 2019
975478f
Implemented trace selection for view and data acquisition
Neverhorst Sep 13, 2019
13ee09d
Crude current value selection functionality
Neverhorst Sep 13, 2019
f62c0d3
Improved cureent value display
Neverhorst Sep 13, 2019
ddb2af2
Better data buffer handling tailored to NI API
Neverhorst Sep 16, 2019
74fb6ba
Added single point read functionality
Neverhorst Sep 16, 2019
eb7aa55
Various bugfixes.
Neverhorst Sep 16, 2019
d994f60
Fixed data saving
Neverhorst Sep 16, 2019
110a5ed
Cleanup of channel acquisition/view configuration
Neverhorst Sep 17, 2019
ae40b37
Bugfix
Neverhorst Sep 17, 2019
4690a94
Bugfix
Neverhorst Sep 17, 2019
f0b1e2f
bugfix
Neverhorst Sep 17, 2019
cf6d826
bugfix
Neverhorst Sep 17, 2019
5ece89f
bugfix
Neverhorst Sep 17, 2019
9569a15
Updated example configs in doc strings
Neverhorst Sep 17, 2019
019f65c
Moved GUI files into subfolder
Neverhorst Sep 17, 2019
0018015
Started working on a stream reader dummy module.
Neverhorst Sep 17, 2019
f6cd800
First test of instream dummy
Neverhorst Sep 18, 2019
e665808
bugfixing instream dummy
Neverhorst Sep 18, 2019
4390a16
Removed test.cfg and included new modules with dummy in default.cfg
Neverhorst Sep 18, 2019
6e81135
Added second y-axis to stream plot
Neverhorst Sep 18, 2019
3a1ffed
Added second y-axis to stream plot
Neverhorst Sep 18, 2019
a1b8db3
Better color coding of the plots
Neverhorst Sep 18, 2019
7645481
Improved readability
Neverhorst Oct 11, 2019
f7a996c
Merge branch 'master' into slow_counter_overhaul
Neverhorst Nov 21, 2019
168402e
Revision in progress for new time series streamer
Neverhorst Dec 1, 2019
f615f9a
Added ConfigOption for antialiased time series graph.
Neverhorst Dec 4, 2019
54509cf
Merge branch 'master' into slow_counter_overhaul
Neverhorst Dec 4, 2019
353a02d
Reverted countergui.py back to master branch state.
Neverhorst Dec 4, 2019
108b022
Removed obsolete ni_x_series_counter HW module.
Neverhorst Dec 4, 2019
ccb22c9
Removed hardware template module from qudi tutorials that somehow mad…
Neverhorst Dec 4, 2019
80f0d0c
Removed obsolete testing modules that should have never been in master
Neverhorst Dec 4, 2019
cfb7e29
Updated changelog.
Neverhorst Dec 4, 2019
d82dfe8
Removed test.cfg that should not be in master
Neverhorst Dec 4, 2019
62b2140
Minor bugfixing
Neverhorst Jan 30, 2020
57cf7ba
Merge branch 'master' into slow_counter_overhaul
Neverhorst Jun 10, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
102 changes: 102 additions & 0 deletions artwork/icons/oxygen/source_svg/camera_lens.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added artwork/icons/qudiTheme/22x22/trace-snapshot.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
592 changes: 592 additions & 0 deletions artwork/icons/qudiTheme/source_svg/stop-record-counter.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
508 changes: 508 additions & 0 deletions artwork/icons/qudiTheme/source_svg/trace-snapshot.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
35 changes: 32 additions & 3 deletions config/example/default.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,23 @@ hardware:
connect:
fitlogic: 'fitlogic'

mydummyinstreamer:
module.Class: 'data_instream_dummy.InStreamDummy'
digital_channels: # optional, must provide at least one digital or analog channel
- 'digital 1'
- 'digital 2'
- 'digital 3'
analog_channels: # optional, must provide at least one digital or analog channel
- 'analog 1'
- 'analog 2'
digital_event_rates: # optional, must have as many entries as digital_channels or just one
- 10
- 1000
- 10000
analog_amplitudes: # optional, must have as many entries as analog_channels or just one
- 5
- 10

mydummycounter:
module.Class: 'slow_counter_dummy.SlowCounterDummy'
source_channels: 4
Expand Down Expand Up @@ -84,6 +101,13 @@ hardware:
cameradummy:
module.Class: 'camera.camera_dummy.CameraDummy'
logic:
timeserieslogic:
module.Class: 'time_series_reader_logic.TimeSeriesReaderLogic'
max_frame_rate: 20
connect:
_streamer_con: 'mydummyinstreamer'
_savelogic_con: 'savelogic'

simpledatalogic:
module.Class: 'simple_data_logic.SimpleDataLogic'
connect:
Expand Down Expand Up @@ -334,10 +358,10 @@ gui:
man:
module.Class: 'manager.managergui.ManagerGui'

counter:
module.Class: 'counter.countergui.CounterGui'
timeseries:
module.Class: 'time_series.time_series_gui.TimeSeriesGui'
connect:
counterlogic1: 'counterlogic'
_time_series_logic_con: 'timeserieslogic'

confocal:
module.Class: 'confocal.confocalgui.ConfocalGui'
Expand Down Expand Up @@ -459,3 +483,8 @@ gui:
connect:
camera_logic: 'camera_logic'
savelogic: 'savelogic'

counter:
module.Class: 'counter.countergui.CounterGui'
connect:
counterlogic1: 'counterlogic'
39 changes: 0 additions & 39 deletions config/test.cfg

This file was deleted.

7 changes: 7 additions & 0 deletions documentation/changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,12 @@ The potential sequence_options are:
* `FORCED` (only output as sequence possible)
* Added interfuse to correct geometrical aberration on scanner via polynomial transformations
* added the option to do a purely analog ODMR scan.
* Added new GUI, logic, interface and hardware modules to replace the "slow counter" tool in the
future. The new tools are designed to be able to stream any kind of time series data efficiently
for multiple analog and digital channels. See example config on how to set up the
time series/streaming modules (_time_series_gui.py_, _time_series_reader_logic.py_).
For a drop-in replacement of the obsolete slow counter together with a NI x-series card,
please use _ni_x_series_in_streamer.py_ as hardware module.
* added multi channel option to process_interface and process_control_interface
* added the option of an additional path for fit methods
* added a hardware file for power supply Teledyne T3PS3000
Expand All @@ -70,6 +76,7 @@ The potential sequence_options are:
* reworked the QDPlotter to now contain fits and a scalable number of plots. Attention: custom notebooks might break by this change.
* Set proper minimum wavelength value in constraints of Tektronix AWG7k series HW module
* Fixed bug affecting interface overloading of Qudi modules
*


Config changes:
Expand Down
27 changes: 26 additions & 1 deletion gui/counter/countergui.py
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,6 @@ def __init__(self, config, **kwargs):
def on_activate(self):
""" Definition and initialisation of the GUI.
"""

self._counting_logic = self.counterlogic1()

#####################
Expand Down Expand Up @@ -193,6 +192,32 @@ def on_activate(self):
self._counting_logic.sigCountingModeChanged.connect(self.update_counting_mode_ComboBox)
self._counting_logic.sigCountStatusChanged.connect(self.update_count_status_Action)

# Throw a deprecation warning pop-up to encourage users to switch to
# TimeSeriesGui/TimeSeriesReaderLogic
dialog = QtWidgets.QDialog(self._mw)
dialog.setWindowTitle('Deprecation warning')
label1 = QtWidgets.QLabel('Deprecation Warning:')
label1.setAlignment(QtCore.Qt.AlignHCenter | QtCore.Qt.AlignVCenter)
font = label1.font()
font.setPointSize(12)
label1.setFont(font)
label2 = QtWidgets.QLabel('The modules CounterGui, CounterLogic and '
'NationalInstrumentsXSeries are deprecated for time series '
'streaming (also called "slow counting") and will be removed in '
'the future.\nPlease consider switching to TimeSeriesGui, '
'TimeSeriesReaderLogic and NIXSeriesInStreamer.\nSee default.cfg '
'for a configuration template.')
label2.setAlignment(QtCore.Qt.AlignVCenter)
label2.setWordWrap(True)
button_box = QtWidgets.QDialogButtonBox(QtWidgets.QDialogButtonBox.Ok)
button_box.setCenterButtons(True)
layout = QtWidgets.QVBoxLayout()
layout.addWidget(label1)
layout.addWidget(label2)
layout.addWidget(button_box)
button_box.accepted.connect(dialog.accept)
dialog.setLayout(layout)
dialog.exec()
return 0

def show(self):
Expand Down
Loading