Skip to content

Commit dd195a5

Browse files
committed
Implemented review changes
1 parent 4a4096f commit dd195a5

File tree

2 files changed

+22
-4
lines changed

2 files changed

+22
-4
lines changed

labscript_devices/DummyPseudoclock/labscript_devices.py

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,24 +18,33 @@
1818
from labscript import PseudoclockDevice, Pseudoclock, ClockLine, config, LabscriptError
1919
import numpy as np
2020

21+
class _DummyPseudoclock(Pseudoclock):
22+
def add_device(self, device):
23+
if isinstance(device, ClockLine):
24+
# only allow one child
25+
if self.child_devices:
26+
raise LabscriptError('The pseudoclock of the DummyPseudoclock %s only supports 1 clockline, which is automatically created. Please use the clockline located at %s.clockline'%(self.parent_device.name, self.parent_device.name))
27+
Pseudoclock.add_device(self, device)
28+
else:
29+
raise LabscriptError('You have connected %s to %s (the Pseudoclock of %s), but %s only supports children that are ClockLines. Please connect your device to %s.clockline instead.'%(device.name, self.name, self.parent_device.name, self.name, self.parent_device.name))
30+
2131

2232
class DummyPseudoclock(PseudoclockDevice):
2333

2434
description = 'Dummy pseudoclock'
2535
clock_limit = 10e6
2636
clock_resolution = 25e-9
27-
clock_type = 'fast clock'
2837
trigger_delay = 350e-9
2938
wait_delay = 2.5e-6
30-
allowed_children = None
39+
allowed_children = [_DummyPseudoclock]
3140
max_instructions = 1e5
3241

3342
def __init__(
3443
self, name='dummy_pseudoclock', BLACS_connection='dummy_connection', **kwargs
3544
):
3645
self.BLACS_connection = BLACS_connection
3746
PseudoclockDevice.__init__(self, name, None, None, **kwargs)
38-
self._pseudoclock = Pseudoclock(
47+
self._pseudoclock = _DummyPseudoclock(
3948
name=f'{name}_pseudoclock',
4049
pseudoclock_device=self,
4150
connection='pseudoclock',
@@ -54,6 +63,16 @@ def pseudoclock(self):
5463
def clockline(self):
5564
return self._clock_line
5665

66+
def add_device(self, device):
67+
if not self.child_devices and isinstance(device, Pseudoclock):
68+
PseudoclockDevice.add_device(self, device)
69+
elif isinstance(device, Pseudoclock):
70+
raise LabscriptError('The %s %s automatically creates a Pseudoclock because it only supports one. '%(self.description, self.name) +
71+
'Instead of instantiating your own Pseudoclock object, please use the internal' +
72+
' one stored in %s.pseudoclock'%self.name)
73+
else:
74+
raise LabscriptError('You have connected %s (class %s) to %s, but %s does not support children with that class.'%(device.name, device.__class__, self.name, self.name))
75+
5776
def generate_code(self, hdf5_file):
5877
PseudoclockDevice.generate_code(self, hdf5_file)
5978
group = self.init_device_group(hdf5_file)

labscript_devices/DummyPseudoclock/runviewer_parsers.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55

66
class DummyPseudoclockParser(object):
77
clock_resolution = 25e-9
8-
clock_type = 'fast clock'
98
trigger_delay = 350e-9
109
wait_delay = 2.5e-6
1110

0 commit comments

Comments
 (0)