P-unit_model/stimuli/StepStimulus.py

33 lines
870 B
Python

from stimuli.AbstractStimulus import AbstractStimulus
class StepStimulus(AbstractStimulus):
def __init__(self, start, duration, value, base_value=0, seconds=True):
self.start = 0
self.duration = 0
self.base_value = base_value
self.value = value
if seconds:
self.start = start
self.duration = duration
else:
self.start = start / 1000
self.duration = duration / 1000
def value_at_time_in_s(self, time_point):
if self.start <= time_point <= self.start + self.duration:
return self.value
else:
return self.base_value
def get_stimulus_start_ms(self):
return self.start
def get_stimulus_duration_ms(self):
return self.duration
def get_amplitude(self):
return self.value - self.base_value