Skip to content

Commit d6c3418

Browse files
committed
Allow for setting the synth trigger mode.
Right now, only the 'rf enable' mode is correctly programmed by labscript directly (via DDS.gates).
1 parent d093a4f commit d6c3418

File tree

3 files changed

+28
-4
lines changed

3 files changed

+28
-4
lines changed

labscript_devices/Windfreak/blacs_tabs.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,8 +69,10 @@ def initialise_workers(self):
6969

7070
conn_obj = self.settings['connection_table'].find_by_name(self.device_name).properties
7171
self.com_port = conn_obj.get('com_port',None)
72+
self.trigger_mode = conn_obj.get('trigger_mode','disabled')
7273

7374
self.create_worker('main_worker',self.device_worker_class,{'com_port':self.com_port,
74-
'allowed_chans':self.allowed_chans})
75+
'allowed_chans':self.allowed_chans,
76+
'trigger_mode':self.trigger_mode})
7577

7678
self.primary_worker = 'main_worker'

labscript_devices/Windfreak/blacs_workers.py

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,14 +24,34 @@ def init(self):
2424
self.smart_cache = {'STATIC_DATA':None}
2525
self.subchnls = ['freq','amp','phase']
2626

27+
Worker.init(self)
28+
2729
# connect to synth
2830
self.synth = windfreak.SynthHD(self.com_port)
29-
30-
Worker.init(self)
31+
self.valid_modes = self.synth.trigger_modes
32+
# set trigger mode from connection_table_properties
33+
self.set_trigger_mode(self.trigger_mode)
3134

3235
# populate smart chache
3336
self.smart_cache['STATIC_DATA'] = self.check_remote_values()
3437

38+
def set_trigger_mode(self,mode):
39+
"""Sets the synth trigger mode.
40+
41+
Provides basic error checking to confirm setting is valid.
42+
43+
Args:
44+
mode (str): Trigger mode to set.
45+
46+
Raises:
47+
ValueError: If `mode` is not a valid setting for the device.
48+
"""
49+
50+
if mode in self.valid_modes:
51+
self.synth.trigger_mode = mode
52+
else:
53+
raise ValueError(f'{mode} not in {self.valid_modes}')
54+
3555
def check_remote_values(self):
3656

3757
results = {}

labscript_devices/Windfreak/labscript_devices.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,12 +80,14 @@ class WindfreakSynth(Device):
8080
'amp_res',
8181
'phase_limits',
8282
'phase_res',
83+
'trigger_mode',
8384
]
8485
})
85-
def __init__(self, name, com_port="", **kwargs):
86+
def __init__(self, name, com_port="", trigger_mode='disabled', **kwargs):
8687

8788
Device.__init__(self, name, None, com_port, **kwargs)
8889
self.BLACS_connection = com_port
90+
self.trigger_mode = trigger_mode
8991

9092
def add_device(self, device):
9193
Device.add_device(self, device)

0 commit comments

Comments
 (0)