diff --git a/src/quackseq/options.py b/src/quackseq/options.py index 47781f2..24ec4ef 100644 --- a/src/quackseq/options.py +++ b/src/quackseq/options.py @@ -107,6 +107,7 @@ class NumericOption(Option): self.is_float = is_float self.min_value = min_value self.max_value = max_value + self.slider = slider def set_value(self, value): """Sets the value of the option.""" @@ -134,6 +135,7 @@ class NumericOption(Option): "is_float": self.is_float, "min_value": self.min_value, "max_value": self.max_value, + "slider": self.slider, } @classmethod @@ -182,7 +184,6 @@ class FunctionOption(Option): value: The value of the option. """ self.value = value - self.value_changed.emit() def get_function_by_name(self, name): """Returns the function with the given name. diff --git a/src/quackseq/pulseparameters.py b/src/quackseq/pulseparameters.py index 196c3e9..dbfa189 100644 --- a/src/quackseq/pulseparameters.py +++ b/src/quackseq/pulseparameters.py @@ -104,12 +104,12 @@ class TXPulse(PulseParameter): self.add_option(NumericOption(self.TX_PHASE, 0)) self.add_option( NumericOption( - self.N_PHASE_CYCLES, 1, is_float=False, min_value=1, max_value=360 + self.N_PHASE_CYCLES, 1, is_float=False, min_value=1, max_value=360, slider=False ) ) self.add_option( NumericOption( - self.PHASE_CYCLE_LEVEL, 0, is_float=False, min_value=0, max_value=10 + self.PHASE_CYCLE_LEVEL, 0, is_float=False, min_value=0, max_value=10, slider=False ) ) self.add_option( diff --git a/src/quackseq/pulsesequence.py b/src/quackseq/pulsesequence.py index 23f33bf..ddfe6f2 100644 --- a/src/quackseq/pulsesequence.py +++ b/src/quackseq/pulsesequence.py @@ -63,6 +63,7 @@ class PulseSequence: """ if event.name in self.get_event_names(): raise ValueError(f"Event with name {event.name} already exists in the pulse sequence") + self.events.append(event) def create_event(self, event_name: str, duration: str) -> "Event": @@ -211,8 +212,8 @@ class QuackSequence(PulseSequence): If you want to implement your own spectrometer specific pulse sequence, you can inherit from the PulseSequence class. """ - TX_PULSE = "TXPulse" - RX_READOUT = "RXParameters" + TX_PULSE = "TX" + RX_READOUT = "RX" def __init__(self, name: str, version: str = None) -> None: """Initializes the pulse sequence.""" diff --git a/src/quackseq/spectrometer/spectrometer_model.py b/src/quackseq/spectrometer/spectrometer_model.py index bd7def0..87182e0 100644 --- a/src/quackseq/spectrometer/spectrometer_model.py +++ b/src/quackseq/spectrometer/spectrometer_model.py @@ -25,11 +25,11 @@ class QuackSettings(OrderedDict): return categories def get_settings_by_category(self, category): - settings = [] + settings = dict() - for setting in self.values(): + for key, setting in self.items(): if setting.category == category: - settings.append(setting) + settings[key] = setting return settings diff --git a/src/quackseq/spectrometer/spectrometer_settings.py b/src/quackseq/spectrometer/spectrometer_settings.py index 858e0b4..5685fb6 100644 --- a/src/quackseq/spectrometer/spectrometer_settings.py +++ b/src/quackseq/spectrometer/spectrometer_settings.py @@ -31,10 +31,10 @@ class Setting(): description (str): A description of the setting. default: The default value of the setting. """ - super().__init__() self.name = name self.category = category self.description = description + self.default = default if default is not None: self.value = default # Update the description with the default value @@ -57,6 +57,8 @@ class NumericalSetting(Setting): self.description_limit_info(description, min_value, max_value), default, ) + self.min_value = min_value + self.max_value = max_value def description_limit_info(self, description: str, min_value, max_value) -> str: """Updates the description with the limits of the setting if there are any. @@ -89,6 +91,7 @@ class FloatSetting(NumericalSetting): description (str) : A description of the setting min_value : The minimum value of the setting max_value : The maximum value of the setting + slider : If the setting should be displayed as a slider (only in the GUI not used in this GUI) """ DEFAULT_LENGTH = 100 @@ -101,9 +104,12 @@ class FloatSetting(NumericalSetting): description: str, min_value: float = None, max_value: float = None, + slider = False ) -> None: """Create a new float setting.""" super().__init__(name, category, description, default, min_value, max_value) + self.slider = slider + @property def value(self): """The value of the setting. In this case, a float.""" @@ -135,9 +141,11 @@ class IntSetting(NumericalSetting): description: str, min_value=None, max_value=None, + slider = False ) -> None: """Create a new int setting.""" super().__init__(name, category, description, default, min_value, max_value) + self.slider = slider @property