Allow same hardware configuration file to be used with spectroscopy experiments and time-domain experiments
Description
Currently, there are two distinct hardware configuration files used when doing experiments involving a UHFQA and an HDAWG. These differ in whether the UFHQA will wait for a trigger from the HDAWG or if the UHFQA will auto trigger by itself.
This results in manually having to change the configuration files depending on the experiment that is performed. Using the following code snippet:
quantum_device.hardware_config()['devices'][1]['channel_0']['triggers'] = []
quantum_device.hardware_config()['devices'][1]['channel_0']['triggers'] = [2]
This behavior is incorrect. The desired behavior is that the same hardware configuration file should always be used, and that the compilation ensures that everything gets configured correctly.
There are two possible solutions:
- auto-detect if an HDAWG is in use, and depending on that enable the wait for trigger in the UHFQA
- always rely on a trigger from the HDAWG, but ensure an (empty) trigger sequence of the appropriate duration is added.
My preference is for option 2. for the following reason.
- most setups typically involve both an HDAWG and a UHF, making it always require the trigger allows debugging some cable/triggering errors in a simpler context.
- there is a subtle bug in relation to the time duration of experiments that only involve a UHFQA where it just triggers itself back to back ignoring the schedule information. (there is no issue on this bug).
Edited by Adriaan