sb10q
ARTIQ with Kasli-SoC, artiq8.9009 in windows
I can't terminate just basic output sequences like:
`
from artiq.experiment import *
class Pulses(EnvExperiment):
def build(self):
self.setattr_device("core")
self.ttl = self.get_device("ttl0")
@kernel
def run(self):
self.core.reset()
for _ in range(1000):
delay(50us)
self.ttl.pulse(50us)
It seems that I need add specific method likescheduler.check_pause()` to use "Request Termination"? I have tried like:
`from artiq.experiment import *
import msvcrt
class LongTimeDDSOutput(EnvExperiment):
def build(self):
self.setattr_device("core")
self.setattr_device("scheduler")
self.cpld0 = self.get_device("urukul0_cpld")
self.dds0 = self.get_device("urukul0_ch0")
def check_keyboard(self) -> TBool:
if msvcrt.kbhit():
msvcrt.getch()
print("Keyboard stop request detected.")
return True
return False
@kernel
def run_kernel(self):
self.core.reset()
self.cpld0.init()
self.dds0.init()
self.dds0.set(frequency=1*MHz, amplitude=1.0, phase=0.0)
self.dds0.sw.on()
for i in range(3600):
delay(1*s)
if self.scheduler.check_pause() or self.check_keyboard():
break
self.cleanup()
@kernel
def cleanup(self):
self.core.break_realtime()
self.dds0.sw.off()
print("Experiment completed.")
def run(self):
try:
self.run_kernel()
except TerminationRequested:
print("Termination requested")
self.cleanup()
except KeyboardInterrupt:
print("Keyboard Interrupt detected (Ctrl+C)")
self.cleanup()`
and still failed.