Added basic pulse parameters

This commit is contained in:
jupfi 2023-07-11 11:18:29 +02:00
parent 8b0afc8d2d
commit 6c01242112
5 changed files with 69 additions and 3 deletions

View file

@ -14,8 +14,8 @@ class BaseSpectrometerModel(ModuleModel):
def add_setting(self, name, value, description) -> None: def add_setting(self, name, value, description) -> None:
self.settings[name] = self.Setting(name, value, description) self.settings[name] = self.Setting(name, value, description)
def add_pulse_parameter_option(self, name, options) -> None: def add_pulse_parameter_option(self, name, pulse_parameter_class) -> None:
self.pulse_parameter_options[name] = options self.pulse_parameter_options[name] = pulse_parameter_class
class Setting: class Setting:
"""A setting for the spectrometer is a value that is the same for all events in a pulse sequence. """A setting for the spectrometer is a value that is the same for all events in a pulse sequence.
@ -34,5 +34,11 @@ class BaseSpectrometerModel(ModuleModel):
class PulseParameter: class PulseParameter:
def __init__(self, name): def __init__(self, name):
self.name = name self.name = name
def get_pixmap(self):
raise NotImplementedError
def get_options(self):
raise NotImplementedError

View file

@ -0,0 +1,60 @@
from PyQt6.QtGui import QPixmap
from pathlib import Path
from .base_spectrometer_model import BaseSpectrometerModel
class TXPulse(BaseSpectrometerModel.PulseParameter):
def __init__(self, name) -> None:
super().__init__(name)
self.tx_state = False
self.tx_phase = 0
# Create a button
self.button = QPushButton(self)
self.button.setGeometry(0, 0, 200, 200)
# Set a custom image for the button
image_path = "resources/wip_no_pulse.png"
pixmap = QPixmap(image_path)
self.button.setIcon(pixmap)
self.button.setIconSize(pixmap.size())
class RectPulse():
def __init__(self, name) -> None:
super().__init__(name)
class SincPulse():
def __init__(self, name) -> None:
super().__init__(name)
class GaussianPulse():
def __init__(self, name) -> None:
super().__init__(name)
class RXReadout(BaseSpectrometerModel.PulseParameter):
def __init__(self, name) -> None:
super().__init__(name)
self.rx_freq = 0
self.rx_phase = 0
class Gate(BaseSpectrometerModel.PulseParameter):
def __init__(self, name) -> None:
super().__init__(name)
self.state = False
def get_pixmap(self):
self_path = Path(__file__).parent
if self.state is False:
image_path = self_path / "resources/pulseparameter/wip_no_txpulse.png"
elif self.state is True:
image_path = self_path / "resources/pulseparameter/wip_txpulse.png"
pixmap = QPixmap(str(image_path))
return pixmap
def get_options(self):
return (bool, self.state)
def set_options(self, options):
self.state = options

View file

@ -31,7 +31,7 @@ class BaseSpectrometerView(ModuleView):
logger.debug("Adding setting to settings view: %s", setting.name) logger.debug("Adding setting to settings view: %s", setting.name)
# Create a label for the setting # Create a label for the setting
label = QLabel(setting.name) label = QLabel(setting.name)
label.setMinimumWidth(70) label.setMinimumWidth(120)
# Add an QLineEdit for the setting # Add an QLineEdit for the setting
line_edit = QLineEdit(str(setting.value)) line_edit = QLineEdit(str(setting.value))
line_edit.setMinimumWidth(100) line_edit.setMinimumWidth(100)

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB