Here is a snippet of the original code without the build() and prepare() functions:
@kernel # noqa F405
def run_doppler_cooling(self):
self.core.break_realtime()
with parallel: # noqa F405
with sequential:
self.ddses[0].sw.on()
self.ddses[1].sw.on()
self.ddses[0].set(frequency=200.0*MHz, amplitude=0.67) # noqa F405
self.ddses[1].set(frequency=85.0*MHz, amplitude=0.39) # noqa F405
delay(0.2*ms)
self.ddses[0].sw.off()
self.ddses[1].sw.off()
def run_397_photon_generation(self):
self.core.break_realtime()
with sequential: # noqa F405
self.ddses[0].sw.on()
self.ddses[0].set(frequency=200.0*MHz, amplitude=0.67) # noqa F405
delay(5*us) # noqa F405
self.ddses[0].sw.off()
delay(1*us) # noqa F405
def run_866_photon_generation(self):
self.core.break_realtime()
with sequential: # noqa F405
self.ddses[1].sw.on()
self.ddses[1].set(frequency=85.0*MHz, amplitude=0.39) # noqa F405
delay(5*us) # noqa F405
self.ddses[1].sw.off()
delay(0.5*us) # noqa F405
@kernel # noqa F405
def run(self):
self.core.reset()
self.init_dds()
# Delay just in case
delay(5*ms) # noqa F405
while True:
self.core.break_realtime()
with parallel: # noqa F405
self.run_doppler_cooling()
for i in range(250):
self.core.break_realtime()
self.run_397_photon_generation()
with parallel:
self.run_trigger(n=5, unit=us)
self.run_866_photon_generation()
delay(1*us) # noqa F405