Spaces:
Sleeping
Sleeping
import time | |
from portiloop.src.stimulation import Stimulator | |
class DemoSleepSpindleRealTimeStimulator(Stimulator): | |
def __init__(self): | |
self.last_detected_ts = time.time() | |
self.wait_t = 0.4 # 400 ms | |
def stimulate(self, detection_signal): | |
stim = False | |
for sig in detection_signal: | |
# We detect a stimulation | |
if sig: | |
# Record time of stimulation | |
ts = time.time() | |
# Check if time since last stimulation is long enough | |
if ts - self.last_detected_ts > self.wait_t: | |
if self.delayer is not None: | |
# If we have a delayer, notify it | |
self.delayer.detected() | |
stim = True | |
self.last_detected_ts = ts | |
return stim | |
def add_delayer(self, delayer): | |
self.delayer = delayer | |
self.delayer.stimulate = lambda: True |