diff --git a/SpectrumAWG/blacs_workers.py b/SpectrumAWG/blacs_workers.py index aba623a864a56712a3926a26f6639f66d0e3886a..82621f327773b28242009e88cef4ab4a4ce72697 100644 --- a/SpectrumAWG/blacs_workers.py +++ b/SpectrumAWG/blacs_workers.py @@ -72,6 +72,7 @@ class SpectrumAWGWorker(Worker): with h5py.File(h5_file,'r') as f: group = f[f"devices/{device_name}"] function_conditional_programming = group.attrs.get("function_conditional_programming", "") + function_conditional_programming_args = group.attrs.get("function_conditional_programming_args", ()) for ch in self.channels: if fresh or len(self.smart_cache)+len(group[ch].attrs) > self.memory_segments: # Reset smart programming and start writing memory from the beginning @@ -136,8 +137,8 @@ class SpectrumAWGWorker(Worker): freq = instruction[1:num_tones+1] ampl = instruction[num_tones+1:2*num_tones+1] phase= instruction[2*num_tones+1:] + self.occupation_receiver.set_function(function_conditional_programming, function_conditional_programming_args) self.occupation_receiver.last_tweezer_params(index+1, len(self.smart_cache), freq, ampl, phase, num_samples, self.sample_rate) - self.occupation_receiver.set_function(function_conditional_programming) return initial_values diff --git a/SpectrumAWG/labscript_devices.py b/SpectrumAWG/labscript_devices.py index b58c58fbdfb5be4cfc5a15bf9519ec873c58ebef..84ce9028bce44a7f14fd1f219989629fd6c32b28 100644 --- a/SpectrumAWG/labscript_devices.py +++ b/SpectrumAWG/labscript_devices.py @@ -154,8 +154,9 @@ class SpectrumAWG(Device): internal_memory = 2**32 # 4GB self.max_sample_size = internal_memory//2//memory_segments - def set_conditional_reprogramming(self, function_name): + def set_conditional_reprogramming(self, function_name, function_args=None): self.function_conditional_programming = function_name + self.function_conditional_programming_args = function_args def do_checks(self): if len(self.child_devices)>1: @@ -174,6 +175,7 @@ class SpectrumAWG(Device): group[output.connection].require_group("labels") group.attrs["function_conditional_programming"] = getattr(self,"function_conditional_programming","") + group.attrs["function_conditional_programming_args"] = getattr(self,"function_conditional_programming_args",tuple()) for i,t in enumerate(np.sort(change_times)): group[output.connection].attrs[str(i)] = output.instructions[t][:-1]