Open
Description
Original report (archived issue) by Philip Starkey (Bitbucket: pstarkey, GitHub: philipstarkey).
Take this simple connection table:
#!python
from labscript import *
from labscript_devices.PineBlaster import PineBlaster
from labscript_utils.unitconversions import *
from labscript_devices.NI_PCI_6733 import NI_PCI_6733
PineBlaster(name='pineblaster_0', trigger_device = None, trigger_connection = None, usbport='com6')
NI_PCI_6733(name='ni_card_1', parent_device=pineblaster_0.clockline, clock_terminal='ni_pcie_6733_0/PFI0', MAX_name='ni_pci_6733_0')
start()
stop(1)
This produces the traceback
#!python
Traceback (most recent call last):
File "C:\user_scripts\labscriptlib\example_experiment\connectiontable.py", line 8, in <module>
stop(0.1)
File "C:\pythonlib\labscript\labscript.py", line 1772, in stop
generate_code()
File "C:\pythonlib\labscript\labscript.py", line 1686, in generate_code
device.generate_code(hdf5_file)
File "C:\pythonlib\labscript_devices\PineBlaster.py", line 76, in generate_code
PseudoclockDevice.generate_code(self, hdf5_file)
File "C:\pythonlib\labscript\labscript.py", line 763, in generate_code
Device.generate_code(self, hdf5_file)
File "C:\pythonlib\labscript\labscript.py", line 276, in generate_code
device.generate_code(hdf5_file)
File "C:\pythonlib\labscript\labscript.py", line 659, in generate_code
Device.generate_code(self, hdf5_file)
File "C:\pythonlib\labscript\labscript.py", line 276, in generate_code
device.generate_code(hdf5_file)
File "C:\pythonlib\labscript\labscript.py", line 276, in generate_code
device.generate_code(hdf5_file)
File "C:\pythonlib\labscript_devices\NI_PCI_6733.py", line 31, in generate_code
parent.NIBoard.generate_code(self, hdf5_file)
File "C:\pythonlib\labscript_devices\NIBoard.py", line 56, in generate_code
times = pseudoclock.times[clockline]
KeyError: <labscript.labscript.ClockLine object at 0x07153530>
Adding two AnalogOut
s to the connection table allows it to be successfully compiled.
We should fix this, but we also need to make sure that BLACS isn't going to get upset if an experiment is submitted with a device that has no outputs.