Skip to content

Commit 9f37751

Browse files
committed
Compute scale factors separately from quantising data.
This handles the case where static and dynamic channels are mixed a bit better.
1 parent 0fe0504 commit 9f37751

File tree

1 file changed

+7
-10
lines changed

1 file changed

+7
-10
lines changed

labscript_devices/AD9959DDSSweeper/labscript_devices.py

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -256,13 +256,6 @@ def generate_code(self, hdf5_file):
256256
dyn_table['amp%d' % i][:] = dds.amplitude.raw_output
257257
dyn_table['phase%d' % i][:] = dds.phase.raw_output
258258

259-
# conversion to AD9959 units is done on the Pi Pico
260-
for connection in stat_DDSs:
261-
dds = stat_DDSs[connection]
262-
dds.frequency.scale_factor = 1.0
263-
dds.phase.scale_factor = 1.0
264-
dds.amplitude.scale_factor = 1.0
265-
266259
static_dtypes = {
267260
'names':['%s%d' % (k, i) for i in stat_DDSs for k in ['freq', 'amp', 'phase'] ],
268261
'formats':[f for i in stat_DDSs for f in ('float', 'float', 'float')]
@@ -286,6 +279,10 @@ def generate_code(self, hdf5_file):
286279
grp.create_dataset('dds_data', compression=config.compression, data=dyn_table)
287280
if stat_DDSs:
288281
grp.create_dataset('static_data', compression=config.compression, data=static_table)
289-
self.set_property('frequency_scale_factor', dds.frequency.scale_factor, location='device_properties')
290-
self.set_property('amplitude_scale_factor', dds.amplitude.scale_factor, location='device_properties')
291-
self.set_property('phase_scale_factor', dds.phase.scale_factor, location='device_properties')
282+
# Store parameter scale factors
283+
_, frequency_scale_factor = self.quantise_freq([], None)
284+
_, amplitude_scale_factor = self.quantise_amp([], None)
285+
_, phase_scale_factor = self.quantise_phase([], None)
286+
self.set_property('frequency_scale_factor', frequency_scale_factor, location='device_properties')
287+
self.set_property('amplitude_scale_factor', amplitude_scale_factor, location='device_properties')
288+
self.set_property('phase_scale_factor', phase_scale_factor, location='device_properties')

0 commit comments

Comments
 (0)