Skip to content

Commit

Permalink
Merge pull request #1 from hoodlabpurdue/remove_logic
Browse files Browse the repository at this point in the history
Remove logic and begin adding grating scan
  • Loading branch information
bcerjan authored Mar 27, 2025
2 parents b8b96d0 + d2005fc commit 0950fb1
Show file tree
Hide file tree
Showing 28 changed files with 2,466 additions and 136 deletions.
127 changes: 127 additions & 0 deletions cfg/grating_scan.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,127 @@
global:
# list of modules to load when starting
startup_modules: []

# Module server configuration for accessing qudi GUI/logic/hardware modules from remote clients
remote_modules_server:
address: 'localhost'
port: 12345

# Server port for serving the active qudi module namespace locally (localhost).
# Used by e.g. the Qudi jupyter kernel.
namespace_server_port: 18861

# If this flag is set (True), all arguments passed to qudi module APIs from remote
# (jupyter notebook, qudi console, remote modules) will be wrapped and passed "per value"
# (serialized and de-serialized). This is avoiding a lot of inconveniences with using numpy in
# remote clients.
# If you do not want to use this workaround and know what you are doing, you can disable this
# feature by setting this flag to False.
force_remote_calls_by_value: True

# Qss stylesheet for controlling the appearance of the GUIs.
# Absolute path or relative to qudi.artwork.styles
stylesheet: 'qdark.qss'

# Default root directory for measurement data storage. All eventual data sub-directories should
# be contained within this directory. This is not enforced, just convention.
# The fallback directory is <user home>/qudi/Data/
# default_data_dir: C:\Users\neverhorst\qudi\Data

# Save data to daily data sub-directories by default
daily_data_dirs: True


gui:
grating_scan_gui:
module.Class: 'terascan.terascan_gui.TerascanGui'
connect:
terascan_logic: terascan_logic

logic:
terascan_logic:
module.Class: 'terascan_logic.TerascanLogic'
connect:
laser: scanning_laser_logic
wavemeter: wavemeter_logic
counter: fast_counter_logic
daq: daq_reader_logic # Note that this logic assumes there is exactly one (digital) input to the DAQ.
options:
record_length_ms: 1 # Length of data (in ms) to take at each wavelength. Only integers.


daq_reader_logic:
module.Class: 'common.daq_reader_logic.DAQReaderLogic'
connect:
daq: nidaq # daq_reader_dummy
options:
update_interval: 0 # Period in ms to check for data updates. Integers only. 0 is as fast as possible


wavemeter_logic:
module.Class: 'common.wavemeter_logic.WavemeterLogic'
connect:
wavemeter: wavemeter # wavemeter_dummy


fast_counter_logic:
module.Class: 'common.fast_counter_logic.FastCounterLogic'
connect:
fast_counter: swabian_timetagger # fast_counter_dummy


scanning_laser_logic:
module.Class: 'common.scanning_laser_logic.ScanningLaserLogic'
connect:
laser: solstis_laser # scanning_laser_dummy
options:
min_wavelength: 0.700 # in um
max_wavelength: 0.800 # in um


hardware:

# Real Hardware:
nidaq:
module.Class: 'daq.nidaq.NIDAQ'
options:
device_str: 'Dev2'
channels:
signal:
description: 'Laser Lock TTL'
type: 0 # 0 for Digital, 1 for Analog
name: 'line0' # The name as idintified by the card
port: 1 # port number identified by the card

wavemeter:
module.Class: 'wavemeter.high_finesse_wavemeter.HighFinesseWavemeter'

swabian_timetagger:
module.Class: 'timetagger.swabian_tagger.SwabianTimeTagger'
options:
channels:
counts: 1 # label and channel number on the time tagger (1,2,3,4)

solstis_laser:
module.Class: 'laser.solstis_laser.SolstisLaser'
options:
host_ip_addr: '192.168.1.225' # IP address of control computer
laser_ip_addr: '192.168.1.222' # IP address of laser
laser_port: 39933 # Port number to connect on
scan_rate: 13 # See "solstis_constants.py" TeraScanRate Enum for values
scan_type: 2 # see "solstis_constants.py" TeraScanType Enum for values

# Dummy Hardware:
daq_reader_dummy:
module.Class: 'dummy.daq_reader_dummy.DAQReaderDummy'

fast_counter_dummy:
module.Class: 'dummy.fast_counter_dummy.FastCounterDummy'

wavemeter_dummy:
module.Class: 'dummy.wavemeter_dummy.WavemeterDummy'

scanning_laser_dummy:
module.Class: 'dummy.scanning_laser_dummy.ScanningLaserDummy'


70 changes: 34 additions & 36 deletions cfg/terascan.cfg
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
global:
# list of modules to load when starting
startup_modules: []
startup_modules: [terascan_gui]

# Module server configuration for accessing qudi GUI/logic/hardware modules from remote clients
remote_modules_server:
Expand Down Expand Up @@ -42,41 +42,41 @@ logic:
terascan_logic:
module.Class: 'terascan_logic.TerascanLogic'
connect:
laser: scanning_laser_logic
wavemeter: wavemeter_logic
counter: fast_counter_logic
daq: daq_reader_logic # Note that this logic assumes there is exactly one (digital) input to the DAQ.
laser: solstis_laser
wavemeter: wavemeter
counter: swabian_timetagger
daq: nidaq # Note that this logic assumes there is exactly one (digital) input to the DAQ.
options:
record_length_ms: 1 # Length of data (in ms) to take at each wavelength. Only integers.


daq_reader_logic:
module.Class: 'common.daq_reader_logic.DAQReaderLogic'
connect:
daq: nidaq # daq_reader_dummy
options:
update_interval: 0 # Period in ms to check for data updates. Integers only. 0 is as fast as possible
# daq_reader_logic:
# module.Class: 'common.daq_reader_logic.DAQReaderLogic'
# connect:
# daq: nidaq # daq_reader_dummy
# options:
# update_interval: 0 # Period in ms to check for data updates. Integers only. 0 is as fast as possible


wavemeter_logic:
module.Class: 'common.wavemeter_logic.WavemeterLogic'
connect:
wavemeter: wavemeter # wavemeter_dummy
# wavemeter_logic:
# module.Class: 'common.wavemeter_logic.WavemeterLogic'
# connect:
# wavemeter: wavemeter # wavemeter_dummy


fast_counter_logic:
module.Class: 'common.fast_counter_logic.FastCounterLogic'
connect:
fast_counter: swabian_timetagger # fast_counter_dummy
# fast_counter_logic:
# module.Class: 'common.fast_counter_logic.FastCounterLogic'
# connect:
# fast_counter: swabian_timetagger # fast_counter_dummy


scanning_laser_logic:
module.Class: 'common.scanning_laser_logic.ScanningLaserLogic'
connect:
laser: solstis_laser # scanning_laser_dummy
options:
min_wavelength: 0.700 # in um
max_wavelength: 0.800 # in um
# scanning_laser_logic:
# module.Class: 'common.scanning_laser_logic.ScanningLaserLogic'
# connect:
# laser: solstis_laser # scanning_laser_dummy
# options:
# min_wavelength: 0.700 # in um
# max_wavelength: 0.800 # in um


hardware:
Expand Down Expand Up @@ -108,20 +108,18 @@ hardware:
host_ip_addr: '192.168.1.225' # IP address of control computer
laser_ip_addr: '192.168.1.222' # IP address of laser
laser_port: 39900 # Port number to connect on
scan_rate: 13 # See "solstis_constants.py" TeraScanRate Enum for values
scan_type: 2 # see "solstis_constants.py" TeraScanType Enum for values

# Dummy Hardware:
daq_reader_dummy:
module.Class: 'dummy.daq_reader_dummy.DAQReaderDummy'
# daq_reader_dummy:
# module.Class: 'dummy.daq_reader_dummy.DAQReaderDummy'

fast_counter_dummy:
module.Class: 'dummy.fast_counter_dummy.FastCounterDummy'
# fast_counter_dummy:
# module.Class: 'dummy.fast_counter_dummy.FastCounterDummy'

wavemeter_dummy:
module.Class: 'dummy.wavemeter_dummy.WavemeterDummy'
# wavemeter_dummy:
# module.Class: 'dummy.wavemeter_dummy.WavemeterDummy'

scanning_laser_dummy:
module.Class: 'dummy.scanning_laser_dummy.ScanningLaserDummy'
# scanning_laser_dummy:
# module.Class: 'dummy.scanning_laser_dummy.ScanningLaserDummy'


Loading

0 comments on commit 0950fb1

Please sign in to comment.