Hello,
I am working on a project where we update hardware instructions just before shots begin running (we use this to stabilize the magnetic field in our experiments). We are going to publish a paper about this in the coming weeks -- I want to work on making this solution more accessible for other groups.
So far, I've landed on a solution that unfortunately requires a small modification to experiment_queue.py. I attached the relevant code - the modification starts at line 580 in transition_to_buffered.
The modification is very simple - before the hardware instructions are read (line 588), I open the .h5 file in write mode, shift all voltage values for a specific analog channel in the .h5 file, save the changes and close the file. Then, blacs operates as usual. We have tested this for many months without any issues.
I am wondering if there is a "kosher" way to do this without modifying the blacs codebase, instead having this as a standalone blacs plugin.
Far as I can tell, the only reason I can't do this with a blacs plugin is because they all run after transition_to_buffered.
I'd like to make this a blacs plugin by doing these modifications to the next anticipated shot in the queue, but the ability for the user to move shots around at will and repeats make the stability of such a solution questionable in my eyes.
Penny for your thoughts.
All the best,
Edvinas