Qudi
Public Member Functions | Public Attributes | Static Public Attributes | List of all members
pulsed_master_logic.PulsedMasterLogic Class Reference

This logic module combines the functionality of two modules. More...

Inheritance diagram for pulsed_master_logic.PulsedMasterLogic:
Inheritance graph
[legend]
Collaboration diagram for pulsed_master_logic.PulsedMasterLogic:
Collaboration graph
[legend]

Public Member Functions

def __init__ (self, config, kwargs)
 Create PulsedMasterLogic object with connectors. More...
 
def on_activate (self)
 Initialisation performed during activation of the module.
 
def on_deactivate (self)
 
def fast_counter_constraints (self)
 Pulsed measurement properties ###.
 
def fast_counter_settings (self)
 
def ext_microwave_constraints (self)
 
def ext_microwave_settings (self)
 
def measurement_settings (self)
 
def timer_interval (self)
 
def analysis_methods (self)
 
def extraction_methods (self)
 
def analysis_settings (self)
 
def extraction_settings (self)
 
def signal_data (self)
 
def signal_alt_data (self)
 
def measurement_error (self)
 
def raw_data (self)
 
def laser_data (self)
 
def alternative_data_type (self)
 
def fit_container (self)
 
def set_measurement_settings (self, settings_dict=None, kwargs)
 Pulsed measurement methods ###. More...
 
def set_fast_counter_settings (self, settings_dict=None, kwargs)
 
def set_ext_microwave_settings (self, settings_dict=None, kwargs)
 
def set_analysis_settings (self, settings_dict=None, kwargs)
 
def set_extraction_settings (self, settings_dict=None, kwargs)
 
def set_timer_interval (self, interval)
 
def set_alternative_data_type (self, alt_data_type)
 
def manually_pull_data (self)
 
def toggle_ext_microwave (self, switch_on)
 
def ext_microwave_running_updated (self, is_running)
 
def toggle_pulse_generator (self, switch_on)
 
def pulser_running_updated (self, is_running)
 
def toggle_pulsed_measurement (self, start, stash_raw_data_tag='')
 
def toggle_pulsed_measurement_pause (self, pause)
 
def measurement_status_updated (self, is_running, is_paused)
 
def do_fit (self, fit_function, use_alternative_data=False)
 
def fit_updated (self, fit_name, fit_data, fit_result, use_alternative_data)
 
def save_measurement_data (self, tag, with_error)
 
def pulse_generator_constraints (self)
 Sequence generator properties ###.
 
def pulse_generator_settings (self)
 
def generation_parameters (self)
 
def analog_channels (self)
 
def digital_channels (self)
 
def saved_pulse_blocks (self)
 
def saved_pulse_block_ensembles (self)
 
def saved_pulse_sequences (self)
 
def sampled_waveforms (self)
 
def sampled_sequences (self)
 
def loaded_asset (self)
 
def generate_methods (self)
 
def generate_method_params (self)
 
def clear_pulse_generator (self)
 Sequence generator methods ###.
 
def sample_ensemble (self, ensemble_name, with_load=False)
 
def sample_ensemble_finished (self, ensemble)
 
def sample_sequence (self, sequence_name, with_load=False)
 
def sample_sequence_finished (self, sequence)
 
def load_ensemble (self, ensemble_name)
 
def load_sequence (self, sequence_name)
 
def loaded_asset_updated (self, asset_name, asset_type)
 
def save_pulse_block (self, block_instance)
 
def save_block_ensemble (self, ensemble_instance)
 
def save_sequence (self, sequence_instance)
 
def delete_pulse_block (self, block_name)
 
def delete_all_pulse_blocks (self)
 Helper method to delete all pulse blocks at once.
 
def delete_block_ensemble (self, ensemble_name)
 
def delete_all_block_ensembles (self)
 Helper method to delete all pulse block ensembles at once.
 
def delete_sequence (self, sequence_name)
 
def delete_all_pulse_sequences (self)
 Helper method to delete all pulse sequences at once.
 
def set_pulse_generator_settings (self, settings_dict=None, kwargs)
 
def set_generation_parameters (self, settings_dict=None, kwargs)
 
def generate_predefined_sequence (self, generator_method_name, kwarg_dict=None, sample_and_load=False)
 
def predefined_sequence_generated (self, asset_name, is_sequence)
 
def get_ensemble_info (self, ensemble)
 
def get_sequence_info (self, sequence)
 

Public Attributes

 status_dict
 

Static Public Attributes

 pulsedmeasurementlogic = Connector(interface='PulsedMeasurementLogic')
 
 sequencegeneratorlogic = Connector(interface='SequenceGeneratorLogic')
 
 sigDoFit = QtCore.Signal(str, bool)
 
 sigToggleMeasurement = QtCore.Signal(bool, str)
 
 sigToggleMeasurementPause = QtCore.Signal(bool)
 
 sigTogglePulser = QtCore.Signal(bool)
 
 sigToggleExtMicrowave = QtCore.Signal(bool)
 
 sigFastCounterSettingsChanged = QtCore.Signal(dict)
 
 sigMeasurementSettingsChanged = QtCore.Signal(dict)
 
 sigExtMicrowaveSettingsChanged = QtCore.Signal(dict)
 
 sigAnalysisSettingsChanged = QtCore.Signal(dict)
 
 sigExtractionSettingsChanged = QtCore.Signal(dict)
 
 sigTimerIntervalChanged = QtCore.Signal(float)
 
 sigAlternativeDataTypeChanged = QtCore.Signal(str)
 
 sigManuallyPullData = QtCore.Signal()
 
 sigMeasurementDataUpdated = QtCore.Signal()
 
 sigTimerUpdated = QtCore.Signal(float, int, float)
 
 sigFitUpdated = QtCore.Signal(str, np.ndarray, object, bool)
 
 sigMeasurementStatusUpdated = QtCore.Signal(bool, bool)
 
 sigPulserRunningUpdated = QtCore.Signal(bool)
 
 sigExtMicrowaveRunningUpdated = QtCore.Signal(bool)
 
 sigExtMicrowaveSettingsUpdated = QtCore.Signal(dict)
 
 sigFastCounterSettingsUpdated = QtCore.Signal(dict)
 
 sigMeasurementSettingsUpdated = QtCore.Signal(dict)
 
 sigAnalysisSettingsUpdated = QtCore.Signal(dict)
 
 sigExtractionSettingsUpdated = QtCore.Signal(dict)
 
 sigSavePulseBlock = QtCore.Signal(object)
 
 sigSaveBlockEnsemble = QtCore.Signal(object)
 
 sigSaveSequence = QtCore.Signal(object)
 
 sigDeletePulseBlock = QtCore.Signal(str)
 
 sigDeleteBlockEnsemble = QtCore.Signal(str)
 
 sigDeleteSequence = QtCore.Signal(str)
 
 sigLoadBlockEnsemble = QtCore.Signal(str)
 
 sigLoadSequence = QtCore.Signal(str)
 
 sigSampleBlockEnsemble = QtCore.Signal(str)
 
 sigSampleSequence = QtCore.Signal(str)
 
 sigClearPulseGenerator = QtCore.Signal()
 
 sigGeneratorSettingsChanged = QtCore.Signal(dict)
 
 sigSamplingSettingsChanged = QtCore.Signal(dict)
 
 sigGeneratePredefinedSequence = QtCore.Signal(str, dict)
 
 sigBlockDictUpdated = QtCore.Signal(dict)
 
 sigEnsembleDictUpdated = QtCore.Signal(dict)
 
 sigSequenceDictUpdated = QtCore.Signal(dict)
 
 sigAvailableWaveformsUpdated = QtCore.Signal(list)
 
 sigAvailableSequencesUpdated = QtCore.Signal(list)
 
 sigSampleEnsembleComplete = QtCore.Signal(object)
 
 sigSampleSequenceComplete = QtCore.Signal(object)
 
 sigLoadedAssetUpdated = QtCore.Signal(str, str)
 
 sigGeneratorSettingsUpdated = QtCore.Signal(dict)
 
 sigSamplingSettingsUpdated = QtCore.Signal(dict)
 
 sigPredefinedSequenceGenerated = QtCore.Signal(object, bool)
 

Detailed Description

This logic module combines the functionality of two modules.

It can be used to generate pulse sequences/waveforms and to control the settings for the pulse generator via SequenceGeneratorLogic. Essentially this part controls what is played on the pulse generator. Furthermore it can be used to set up a pulsed measurement with an already set-up pulse generator together with a fast counting device via PulsedMeasurementLogic.

The main purpose for this module is to provide a single interface while maintaining a modular structure for complex pulsed measurements. Each of the sub-modules can be used without this module but more care has to be taken in that case. Automatic transfer of information from one sub-module to the other for convenience is also handled here. Another important aspect is the use of this module in scripts (e.g. jupyter notebooks). All calls to sub-module setter functions (PulsedMeasurementLogic and SequenceGeneratorLogic) are decoupled from the calling thread via Qt queued connections. This ensures a more intuitive and less error prone use of scripting.

Constructor & Destructor Documentation

◆ __init__()

def pulsed_master_logic.PulsedMasterLogic.__init__ (   self,
  config,
  kwargs 
)

Create PulsedMasterLogic object with connectors.

Parameters
dictkwargs: optional parameters

Member Function Documentation

◆ delete_block_ensemble()

def pulsed_master_logic.PulsedMasterLogic.delete_block_ensemble (   self,
  ensemble_name 
)
Parameters
ensemble_name
Returns
:

◆ delete_pulse_block()

def pulsed_master_logic.PulsedMasterLogic.delete_pulse_block (   self,
  block_name 
)
Parameters
block_name
Returns
:

◆ delete_sequence()

def pulsed_master_logic.PulsedMasterLogic.delete_sequence (   self,
  sequence_name 
)
Parameters
sequence_name
Returns
:

◆ do_fit()

def pulsed_master_logic.PulsedMasterLogic.do_fit (   self,
  fit_function,
  use_alternative_data = False 
)
Parameters
strfit_function:
booluse_alternative_data:

◆ ext_microwave_running_updated()

def pulsed_master_logic.PulsedMasterLogic.ext_microwave_running_updated (   self,
  is_running 
)
Parameters
is_running

◆ fit_updated()

def pulsed_master_logic.PulsedMasterLogic.fit_updated (   self,
  fit_name,
  fit_data,
  fit_result,
  use_alternative_data 
)
Returns
:

◆ generate_predefined_sequence()

def pulsed_master_logic.PulsedMasterLogic.generate_predefined_sequence (   self,
  generator_method_name,
  kwarg_dict = None,
  sample_and_load = False 
)
Parameters
generator_method_name
kwarg_dict
sample_and_load
Returns
:

◆ loaded_asset_updated()

def pulsed_master_logic.PulsedMasterLogic.loaded_asset_updated (   self,
  asset_name,
  asset_type 
)
Parameters
asset_name
asset_type
Returns
:

◆ measurement_status_updated()

def pulsed_master_logic.PulsedMasterLogic.measurement_status_updated (   self,
  is_running,
  is_paused 
)
Parameters
is_running
is_paused

◆ on_deactivate()

def pulsed_master_logic.PulsedMasterLogic.on_deactivate (   self)
Returns
:

◆ pulser_running_updated()

def pulsed_master_logic.PulsedMasterLogic.pulser_running_updated (   self,
  is_running 
)
Parameters
is_running

◆ save_block_ensemble()

def pulsed_master_logic.PulsedMasterLogic.save_block_ensemble (   self,
  ensemble_instance 
)
Parameters
ensemble_instance
Returns
:

◆ save_pulse_block()

def pulsed_master_logic.PulsedMasterLogic.save_pulse_block (   self,
  block_instance 
)
Parameters
block_instance
Returns
:

◆ save_sequence()

def pulsed_master_logic.PulsedMasterLogic.save_sequence (   self,
  sequence_instance 
)
Parameters
sequence_instance
Returns
:

◆ set_alternative_data_type()

def pulsed_master_logic.PulsedMasterLogic.set_alternative_data_type (   self,
  alt_data_type 
)
Parameters
alt_data_type
Returns
:

◆ set_analysis_settings()

def pulsed_master_logic.PulsedMasterLogic.set_analysis_settings (   self,
  settings_dict = None,
  kwargs 
)
Parameters
settings_dict
kwargs

◆ set_ext_microwave_settings()

def pulsed_master_logic.PulsedMasterLogic.set_ext_microwave_settings (   self,
  settings_dict = None,
  kwargs 
)
Parameters
settings_dict
kwargs

◆ set_extraction_settings()

def pulsed_master_logic.PulsedMasterLogic.set_extraction_settings (   self,
  settings_dict = None,
  kwargs 
)
Parameters
settings_dict
kwargs

◆ set_fast_counter_settings()

def pulsed_master_logic.PulsedMasterLogic.set_fast_counter_settings (   self,
  settings_dict = None,
  kwargs 
)
Parameters
settings_dict
kwargs

◆ set_measurement_settings()

def pulsed_master_logic.PulsedMasterLogic.set_measurement_settings (   self,
  settings_dict = None,
  kwargs 
)

Pulsed measurement methods ###.

Parameters
settings_dict
kwargs

◆ set_timer_interval()

def pulsed_master_logic.PulsedMasterLogic.set_timer_interval (   self,
  interval 
)
Parameters
int|floatinterval: The timer interval to set in seconds.

◆ toggle_ext_microwave()

def pulsed_master_logic.PulsedMasterLogic.toggle_ext_microwave (   self,
  switch_on 
)
Parameters
switch_on

◆ toggle_pulse_generator()

def pulsed_master_logic.PulsedMasterLogic.toggle_pulse_generator (   self,
  switch_on 
)
Parameters
switch_on

◆ toggle_pulsed_measurement()

def pulsed_master_logic.PulsedMasterLogic.toggle_pulsed_measurement (   self,
  start,
  stash_raw_data_tag = '' 
)
Parameters
boolstart:
strstash_raw_data_tag:

◆ toggle_pulsed_measurement_pause()

def pulsed_master_logic.PulsedMasterLogic.toggle_pulsed_measurement_pause (   self,
  pause 
)
Parameters
pause

The documentation for this class was generated from the following file: