mirror of
https://github.com/nqrduck/nqrduck-pulseprogrammer.git
synced 2024-11-09 11:20:01 +00:00
Fixed issue with decimals.
This commit is contained in:
parent
80e66c8aad
commit
9dfa5ec41b
2 changed files with 8 additions and 11 deletions
|
@ -1,5 +1,4 @@
|
||||||
import logging
|
import logging
|
||||||
from decimal import Decimal
|
|
||||||
from collections import OrderedDict
|
from collections import OrderedDict
|
||||||
from PyQt6.QtCore import pyqtSignal
|
from PyQt6.QtCore import pyqtSignal
|
||||||
from nqrduck.module.module_model import ModuleModel
|
from nqrduck.module.module_model import ModuleModel
|
||||||
|
@ -18,15 +17,15 @@ class PulseProgrammerModel(ModuleModel):
|
||||||
self.pulse_parameter_options = OrderedDict()
|
self.pulse_parameter_options = OrderedDict()
|
||||||
self.pulse_sequence = PulseSequence("Untitled pulse sequence")
|
self.pulse_sequence = PulseSequence("Untitled pulse sequence")
|
||||||
|
|
||||||
def add_event(self, event_name: str, duration: Decimal = 20):
|
def add_event(self, event_name: str, duration: float = 20):
|
||||||
"""Add a new event to the current pulse sequence.
|
"""Add a new event to the current pulse sequence.
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
event_name (str): A human-readable name for the event
|
event_name (str): A human-readable name for the event
|
||||||
duration (Decimal): The duration of the event in µs. Defaults to 20.
|
duration (float): The duration of the event in µs. Defaults to 20.
|
||||||
"""
|
"""
|
||||||
self.pulse_sequence.events.append(
|
self.pulse_sequence.events.append(
|
||||||
PulseSequence.Event(event_name, "%.16gu" % duration)
|
PulseSequence.Event(event_name, "%.16gu" % float(duration))
|
||||||
)
|
)
|
||||||
logger.debug(
|
logger.debug(
|
||||||
"Creating event %s with object id %s",
|
"Creating event %s with object id %s",
|
||||||
|
|
|
@ -1,7 +1,5 @@
|
||||||
import logging
|
import logging
|
||||||
import functools
|
import functools
|
||||||
from collections import OrderedDict
|
|
||||||
from decimal import Decimal
|
|
||||||
from PyQt6.QtGui import QValidator
|
from PyQt6.QtGui import QValidator
|
||||||
from PyQt6.QtWidgets import (
|
from PyQt6.QtWidgets import (
|
||||||
QFormLayout,
|
QFormLayout,
|
||||||
|
@ -180,7 +178,7 @@ class PulseProgrammerView(ModuleView):
|
||||||
logger.debug("Adding event to pulseprogrammer view: %s", event.name)
|
logger.debug("Adding event to pulseprogrammer view: %s", event.name)
|
||||||
# Create a label for the event
|
# Create a label for the event
|
||||||
event_label = QLabel(
|
event_label = QLabel(
|
||||||
"%s : %.16g µs" % (event.name, (event.duration * Decimal(1e6)))
|
"%s : %.16g µs" % (event.name, (event.duration * 1e6))
|
||||||
)
|
)
|
||||||
event_layout.addWidget(event_label)
|
event_layout.addWidget(event_label)
|
||||||
|
|
||||||
|
@ -433,7 +431,7 @@ class EventOptionsWidget(QWidget):
|
||||||
duration_label = QLabel("Duration:")
|
duration_label = QLabel("Duration:")
|
||||||
duration_lineedit = QLineEdit()
|
duration_lineedit = QLineEdit()
|
||||||
unit_label = QLabel("µs")
|
unit_label = QLabel("µs")
|
||||||
duration_lineedit.setText("%.16g" % (self.event.duration * Decimal(1e6)))
|
duration_lineedit.setText("%.16g" % (self.event.duration * 1e6))
|
||||||
duration_layout.addWidget(duration_label)
|
duration_layout.addWidget(duration_label)
|
||||||
duration_layout.addWidget(duration_lineedit)
|
duration_layout.addWidget(duration_lineedit)
|
||||||
duration_layout.addWidget(unit_label)
|
duration_layout.addWidget(unit_label)
|
||||||
|
@ -545,13 +543,13 @@ class AddEventDialog(QDialog):
|
||||||
"""
|
"""
|
||||||
return self.name_input.text()
|
return self.name_input.text()
|
||||||
|
|
||||||
def get_duration(self) -> Decimal:
|
def get_duration(self) -> float:
|
||||||
"""Returns the duration entered by the user, or a fallback value."
|
"""Returns the duration entered by the user, or a fallback value."
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
Decimal: The duration value provided by the user, or 20
|
float: The duration value provided by the user, or 20
|
||||||
"""
|
"""
|
||||||
return Decimal(self.duration_lineedit.text() or 20)
|
return self.duration_lineedit.text() or 20
|
||||||
|
|
||||||
def check_input(self) -> None:
|
def check_input(self) -> None:
|
||||||
"""Checks if the name and duration entered by the user is valid. If it is, the dialog is accepted. If not, the user is informed of the error."""
|
"""Checks if the name and duration entered by the user is valid. If it is, the dialog is accepted. If not, the user is informed of the error."""
|
||||||
|
|
Loading…
Reference in a new issue