Skip to content

Commit c92a4e0

Browse files
committed
Update to use FreqConversion class in mainline labscript_utils.
Also cleans up a few linter warnings.
1 parent 6d6ffe2 commit c92a4e0

File tree

1 file changed

+11
-50
lines changed

1 file changed

+11
-50
lines changed

labscript_devices/Windfreak/labscript_devices.py

Lines changed: 11 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -13,61 +13,23 @@
1313

1414
from labscript import LabscriptError, set_passed_properties, config, StaticDDS, IntermediateDevice, Device
1515
from labscript_utils import dedent
16-
from labscript_utils.unitconversions.UnitConversionBase import UnitConversion
17-
18-
class FreqConversion(UnitConversion):
19-
"""
20-
A Generic frequency conversion class that covers standard SI prefixes from a base of Hz.
21-
"""
22-
23-
base_unit = 'Hz' # must be defined here and match default hardware unit in BLACS tab
24-
25-
def __init__(self, calibration_parameters = None):
26-
self.parameters = calibration_parameters
27-
if hasattr(self, 'derived_units'):
28-
self.derived_units += ['kHz', 'MHz', 'GHz']
29-
else:
30-
self.derived_units = ['kHz', 'MHz', 'GHz']
31-
UnitConversion.__init__(self,self.parameters)
32-
33-
def kHz_to_base(self,kHz):
34-
Hz = kHz*1e3
35-
return Hz
36-
37-
def kHz_from_base(self,Hz):
38-
kHz = Hz*1e-3
39-
return kHz
40-
41-
def MHz_to_base(self,MHz):
42-
Hz = MHz*1e6
43-
return Hz
44-
45-
def MHz_from_base(self,Hz):
46-
MHz = Hz*1e-6
47-
return MHz
48-
49-
def GHz_to_base(self,GHz):
50-
Hz = GHz*1e9
51-
return Hz
52-
53-
def GHz_from_base(self,Hz):
54-
GHz = Hz*1e-9
55-
return GHz
16+
from labscript_utils.unitconversions.generic_frequency import FreqConversion
5617

5718
import numpy as np
5819

20+
5921
class WindfreakSynth(Device):
6022
description = 'Windfreak HDPro Synthesizer'
6123
allowed_children = [StaticDDS]
6224
# note, box labels 'A', 'B' map to programming channels 0, 1
63-
allowed_chans = [0,1]
25+
allowed_chans = [0, 1]
6426

6527
# define output limitations for the SynthHDPro
66-
freq_limits = (10e6,24e9) # set in Hz
67-
freq_res = 1 # number of sig digits after decimal
68-
amp_limits = (-40.0,20.0) # set in dBm
28+
freq_limits = (10e6, 24e9) # set in Hz
29+
freq_res = 1 # number of sig digits after decimal
30+
amp_limits = (-40.0, 20.0) # set in dBm
6931
amp_res = 2
70-
phase_limits = (0.0,360.0) # in deg
32+
phase_limits = (0.0, 360.0) # in deg
7133
phase_res = 2
7234

7335
@set_passed_properties(property_names={
@@ -85,7 +47,7 @@ class WindfreakSynth(Device):
8547
})
8648
def __init__(self, name, com_port="", trigger_mode='disabled', **kwargs):
8749
"""Creates a Windfreak HDPro Synthesizer
88-
50+
8951
Args:
9052
name (str): python variable name to assign the device to.
9153
com_port (str): COM port connection string.
@@ -110,15 +72,15 @@ def add_device(self, device):
11072

11173
def get_default_unit_conversion_classes(self, device):
11274
"""Child devices call this during their `__init__` to get default unit conversions.
113-
75+
11476
If user has not overridden, will use generic FreqConversion class.
11577
"""
11678

11779
return FreqConversion, None, None
11880

11981
def validate_data(self, data, limits, device):
12082
"""Tests that requested data is within limits.
121-
83+
12284
Args:
12385
data (iterable or numeric): Data to be checked.
12486
Input is cast to a numpy array of type float64.
@@ -135,11 +97,10 @@ def validate_data(self, data, limits, device):
13597
{limits[0]:E}Hz and {limits[1]:E}Hz, {data} given
13698
'''
13799
raise LabscriptError(dedent(msg))
138-
return data
100+
return data
139101

140102
def generate_code(self, hdf5_file):
141103
DDSs = {}
142-
143104

144105
for output in self.child_devices:
145106

0 commit comments

Comments
 (0)