1313
1414from labscript import LabscriptError , set_passed_properties , config , StaticDDS , IntermediateDevice , Device
1515from 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
5718import numpy as np
5819
20+
5921class 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