From 3fe8cf487f9caaf16dc74c6312f3835a83014ca1 Mon Sep 17 00:00:00 2001 From: jupfi Date: Sat, 29 Jul 2023 17:11:45 +0200 Subject: [PATCH] Switched to decimals --- src/nqrduck_pulseprogrammer/controller.py | 6 ++++-- src/nqrduck_pulseprogrammer/model.py | 2 +- src/nqrduck_pulseprogrammer/view.py | 5 +++-- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/nqrduck_pulseprogrammer/controller.py b/src/nqrduck_pulseprogrammer/controller.py index ec8f7fa..eafcf33 100644 --- a/src/nqrduck_pulseprogrammer/controller.py +++ b/src/nqrduck_pulseprogrammer/controller.py @@ -1,5 +1,6 @@ import logging import json +import decimal from PyQt6.QtCore import pyqtSlot from nqrduck.module.module_controller import ModuleController from nqrduck_spectrometer.pulsesequence import PulseSequence @@ -36,8 +37,9 @@ class PulseProgrammerController(ModuleController): for event in self.module.model.pulse_sequence.events: if event.name == event_name: try: - event.duration = duration - except ValueError: + # The u is for microseconds + event.duration = duration + "u" + except decimal.InvalidOperation: logger.error("Duration must be a positive number") # Emit signal to the nqrduck core to show an error message self.module.nqrduck_signal.emit("notification", ["Error", "Duration must be a positive number"]) diff --git a/src/nqrduck_pulseprogrammer/model.py b/src/nqrduck_pulseprogrammer/model.py index 12c038a..0f97f6f 100644 --- a/src/nqrduck_pulseprogrammer/model.py +++ b/src/nqrduck_pulseprogrammer/model.py @@ -16,7 +16,7 @@ class PulseProgrammerModel(ModuleModel): self.pulse_sequence = PulseSequence("Untitled pulse sequence") def add_event(self, event_name): - self.pulse_sequence.events.append(PulseSequence.Event(event_name, 20e-6)) + self.pulse_sequence.events.append(PulseSequence.Event(event_name, "20u")) logger.debug("Creating event %s with object id %s", event_name, id(self.pulse_sequence.events[-1])) # Create a default instance of the pulse parameter options and add it to the event diff --git a/src/nqrduck_pulseprogrammer/view.py b/src/nqrduck_pulseprogrammer/view.py index b80a34c..aba0f17 100644 --- a/src/nqrduck_pulseprogrammer/view.py +++ b/src/nqrduck_pulseprogrammer/view.py @@ -2,6 +2,7 @@ import logging import functools from collections import OrderedDict from pathlib import Path +from decimal import Decimal from PyQt6.QtGui import QIcon from PyQt6.QtWidgets import QMessageBox, QGroupBox, QFormLayout, QTableWidget, QVBoxLayout, QPushButton, QHBoxLayout, QLabel, QDialog, QLineEdit, QDialogButtonBox, QWidget, QCheckBox, QToolButton, QFileDialog, QSizePolicy from PyQt6.QtCore import pyqtSlot, pyqtSignal @@ -107,7 +108,7 @@ class PulseProgrammerView(ModuleView): for event in self.module.model.pulse_sequence.events: logger.debug("Adding event to pulseprogrammer view: %s", event.name) # Create a label for the event - event_label = QLabel("%s : %s µs" % (event.name, str(event.duration * 1e6))) + event_label = QLabel("%s : %s µs" % (event.name, str(event.duration * Decimal(1e6)))) event_layout.addWidget(event_label) # Delete the old widget and create a new one @@ -241,7 +242,7 @@ class EventOptionsWidget(QWidget): duration_label = QLabel("Duration:") duration_lineedit = QLineEdit() unit_label = QLabel("µs") - duration_lineedit.setText(str(self.event.duration * 1e6)) + duration_lineedit.setText(str(self.event.duration * Decimal(1e6))) duration_layout.addWidget(duration_label) duration_layout.addWidget(duration_lineedit) duration_layout.addWidget(unit_label)