mirror of
https://github.com/nqrduck/quackseq-limenqr.git
synced 2024-11-18 09:31:01 +00:00
Fixed bug with multiple pulses.
This commit is contained in:
parent
3e9763f317
commit
f422854857
1 changed files with 16 additions and 8 deletions
|
@ -330,7 +330,7 @@ class LimeNQRController(SpectrometerController):
|
||||||
pulse_amplitude, pulse_shape, modulated_phase
|
pulse_amplitude, pulse_shape, modulated_phase
|
||||||
)
|
)
|
||||||
pof_ext = self.calculate_and_set_offsets(
|
pof_ext = self.calculate_and_set_offsets(
|
||||||
lime, pulse_shape, events, event, pulse_amplitude
|
lime, pulse_shape, events, event, pulse_amplitude, sequence
|
||||||
)
|
)
|
||||||
|
|
||||||
pfr.extend(pfr_ext)
|
pfr.extend(pfr_ext)
|
||||||
|
@ -486,7 +486,7 @@ class LimeNQRController(SpectrometerController):
|
||||||
return pfr, pdr, pam, pph
|
return pfr, pdr, pam, pph
|
||||||
|
|
||||||
def calculate_and_set_offsets(
|
def calculate_and_set_offsets(
|
||||||
self, lime: PyLimeConfig, pulse_shape, events, current_event, pulse_amplitude
|
self, lime: PyLimeConfig, pulse_shape, events, current_event, pulse_amplitude, sequence
|
||||||
) -> list:
|
) -> list:
|
||||||
"""This method calculates and sets the offsets for the limr object.
|
"""This method calculates and sets the offsets for the limr object.
|
||||||
|
|
||||||
|
@ -496,11 +496,12 @@ class LimeNQRController(SpectrometerController):
|
||||||
events (list): The pulse sequence events
|
events (list): The pulse sequence events
|
||||||
current_event (Event): The current event
|
current_event (Event): The current event
|
||||||
pulse_amplitude (float): The pulse amplitude
|
pulse_amplitude (float): The pulse amplitude
|
||||||
|
sequence (QuackSequence): The pulse sequence to run
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
list: The offsets for the limr object
|
list: The offsets for the limr object
|
||||||
"""
|
"""
|
||||||
blank_durations = self.get_blank_durations_before_event(events, current_event)
|
blank_durations = self.get_blank_durations_before_event(events, current_event, sequence)
|
||||||
|
|
||||||
# Calculate the total time that has passed before the current event
|
# Calculate the total time that has passed before the current event
|
||||||
total_blank_duration = sum(blank_durations)
|
total_blank_duration = sum(blank_durations)
|
||||||
|
@ -518,31 +519,35 @@ class LimeNQRController(SpectrometerController):
|
||||||
return pof
|
return pof
|
||||||
|
|
||||||
# This method could be refactored in a potential pulse sequence module
|
# This method could be refactored in a potential pulse sequence module
|
||||||
def get_blank_durations_before_event(self, events, current_event) -> list:
|
def get_blank_durations_before_event(self, events, current_event, sequence) -> list:
|
||||||
"""This method returns the blank durations before the current event.
|
"""This method returns the blank durations before the current event.
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
events (list): The pulse sequence events
|
events (list): The pulse sequence events
|
||||||
current_event (Event): The current event
|
current_event (Event): The current event
|
||||||
|
sequence (QuackSequence): The pulse sequence to run
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
list: The blank durations before the current event
|
list: The blank durations before the current event
|
||||||
"""
|
"""
|
||||||
blank_durations = []
|
blank_durations = []
|
||||||
previous_events_without_tx_pulse = self.get_previous_events_without_tx_pulse(
|
previous_events_without_tx_pulse = self.get_previous_events_without_tx_pulse(
|
||||||
events, current_event
|
events, current_event, sequence
|
||||||
)
|
)
|
||||||
for event in previous_events_without_tx_pulse:
|
for event in previous_events_without_tx_pulse:
|
||||||
blank_durations.append(float(event.duration))
|
blank_durations.append(float(event.duration))
|
||||||
return blank_durations
|
return blank_durations
|
||||||
|
|
||||||
# This method could be refactored in a potential pulse sequence module
|
# This method could be refactored in a potential pulse sequence module
|
||||||
def get_previous_events_without_tx_pulse(self, events : list, current_event : "Event") -> list:
|
def get_previous_events_without_tx_pulse(
|
||||||
|
self, events: list, current_event: "Event", sequence: QuackSequence
|
||||||
|
) -> list:
|
||||||
"""This method returns the previous events without a transmit pulse.
|
"""This method returns the previous events without a transmit pulse.
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
events (list): The pulse sequence events
|
events (list): The pulse sequence events
|
||||||
current_event (Event): The current event
|
current_event (Event): The current event
|
||||||
|
sequence (QuackSequence): The pulse sequence to run
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
list: The previous events without a transmit pulse
|
list: The previous events without a transmit pulse
|
||||||
|
@ -552,7 +557,7 @@ class LimeNQRController(SpectrometerController):
|
||||||
result = []
|
result = []
|
||||||
for event in reversed(previous_events):
|
for event in reversed(previous_events):
|
||||||
translatable = any(
|
translatable = any(
|
||||||
self.is_translatable_tx_parameter(param)
|
self.is_translatable_tx_parameter(param, sequence)
|
||||||
for param in event.parameters.values()
|
for param in event.parameters.values()
|
||||||
)
|
)
|
||||||
if not translatable:
|
if not translatable:
|
||||||
|
@ -609,7 +614,10 @@ class LimeNQRController(SpectrometerController):
|
||||||
for parameter in event.parameters.values():
|
for parameter in event.parameters.values():
|
||||||
logger.debug(f"Event: {event.name}")
|
logger.debug(f"Event: {event.name}")
|
||||||
logger.debug(f"Parameter: {parameter}")
|
logger.debug(f"Parameter: {parameter}")
|
||||||
if parameter.name == sequence.RX_READOUT and parameter.get_option_by_name(RXReadout.RX).value:
|
if (
|
||||||
|
parameter.name == sequence.RX_READOUT
|
||||||
|
and parameter.get_option_by_name(RXReadout.RX).value
|
||||||
|
):
|
||||||
self.log_event_details(event)
|
self.log_event_details(event)
|
||||||
self.log_parameter_details(parameter)
|
self.log_parameter_details(parameter)
|
||||||
return event
|
return event
|
||||||
|
|
Loading…
Reference in a new issue