mirror of
https://github.com/nqrduck/nqrduck-spectrometer.git
synced 2024-12-22 16:27:48 +00:00
Improved pulse sequence structure.
This commit is contained in:
parent
17cc3837eb
commit
a671c339de
2 changed files with 35 additions and 5 deletions
|
@ -1,6 +1,8 @@
|
||||||
|
from collections import OrderedDict
|
||||||
class PulseSequence:
|
class PulseSequence:
|
||||||
def __init__(self) -> None:
|
def __init__(self, name) -> None:
|
||||||
self.events = list()
|
self.name = name
|
||||||
|
self.events = OrderedDict()
|
||||||
|
|
||||||
def get_event_names(self) -> list:
|
def get_event_names(self) -> list:
|
||||||
return [event.name for event in self.events]
|
return [event.name for event in self.events]
|
||||||
|
@ -8,11 +10,30 @@ class PulseSequence:
|
||||||
class Event:
|
class Event:
|
||||||
"""An event is a part of a pulse sequence. It has a name and a duration and different parameters that have to be set."""
|
"""An event is a part of a pulse sequence. It has a name and a duration and different parameters that have to be set."""
|
||||||
|
|
||||||
parameters = list()
|
|
||||||
|
|
||||||
def __init__(self, name: str, duration: float) -> None:
|
def __init__(self, name: str, duration: float) -> None:
|
||||||
|
self.parameters = OrderedDict()
|
||||||
self.name = name
|
self.name = name
|
||||||
self.duration = duration
|
self.duration = duration
|
||||||
|
|
||||||
def add_parameter(self, parameter) -> None:
|
def add_parameter(self, parameter) -> None:
|
||||||
self.parameters.append(parameter)
|
self.parameters.append(parameter)
|
||||||
|
|
||||||
|
def dump_sequence_data(self):
|
||||||
|
"""Returns a dict with all the data in the pulse sequence"""
|
||||||
|
data = {
|
||||||
|
"name": self.name,
|
||||||
|
"events": []
|
||||||
|
}
|
||||||
|
for event in self.events.keys():
|
||||||
|
event_data = {
|
||||||
|
"name": self.events[event].name,
|
||||||
|
"duration": self.events[event].duration,
|
||||||
|
"parameters": []
|
||||||
|
}
|
||||||
|
for parameter in self.events[event].parameters.keys():
|
||||||
|
event_data["parameters"].append({
|
||||||
|
"name": parameter,
|
||||||
|
"value": self.events[event].parameters[parameter].state
|
||||||
|
})
|
||||||
|
data["events"].append(event_data)
|
||||||
|
return data
|
|
@ -36,6 +36,15 @@ class TXPulse(BaseSpectrometerModel.PulseParameter):
|
||||||
self.rx_freq = 0
|
self.rx_freq = 0
|
||||||
self.rx_phase = 0
|
self.rx_phase = 0
|
||||||
|
|
||||||
|
class TXPhase(BaseSpectrometerModel.PulseParameter):
|
||||||
|
def __init__(self, name) -> None:
|
||||||
|
super().__init__(name)
|
||||||
|
self.phase = 0
|
||||||
|
|
||||||
|
class RXPhase(BaseSpectrometerModel.PulseParameter):
|
||||||
|
def __init__(self, name) -> None:
|
||||||
|
super().__init__(name)
|
||||||
|
self.phase = 0
|
||||||
|
|
||||||
class Gate(BaseSpectrometerModel.PulseParameter):
|
class Gate(BaseSpectrometerModel.PulseParameter):
|
||||||
def __init__(self, name) -> None:
|
def __init__(self, name) -> None:
|
Loading…
Reference in a new issue