From c414371475376aeebce354be1040665bf1511c0f Mon Sep 17 00:00:00 2001 From: John Griffiths Date: Fri, 5 Dec 2025 18:25:38 -0500 Subject: [PATCH 1/3] added send triggers method --- eegnb/experiments/Experiment.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/eegnb/experiments/Experiment.py b/eegnb/experiments/Experiment.py index c2a006cc..70ca8a83 100644 --- a/eegnb/experiments/Experiment.py +++ b/eegnb/experiments/Experiment.py @@ -339,6 +339,15 @@ def run(self, instructions=True): # Closing the window self.window.close() + + + def send_triggers(self, marker): + """Send timing triggers to recording device[s]""" + for dev in self.devices: + timestmamp = time() + dev.push_sample(marker=marker, timestamp=timestamp) + + @property def name(self) -> str: """ This experiment's name """ From 1dd096b6e4fe55c7ad45ef2a46f8e529cbaf435b Mon Sep 17 00:00:00 2001 From: John Griffiths Date: Fri, 5 Dec 2025 18:27:10 -0500 Subject: [PATCH 2/3] added multi trigger functionality to experiment device --- eegnb/experiments/visual_n170/n170.py | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/eegnb/experiments/visual_n170/n170.py b/eegnb/experiments/visual_n170/n170.py index 66bb3e7d..a91cdf70 100644 --- a/eegnb/experiments/visual_n170/n170.py +++ b/eegnb/experiments/visual_n170/n170.py @@ -45,13 +45,24 @@ def present_stimulus(self, idx: int): # Draw the image image.draw() + # Pushing the sample to the EEG if self.eeg: timestamp = time() + if self.eeg.backend == "muselsl": marker = [self.markernames[label]] else: marker = self.markernames[label] + self.eeg.push_sample(marker=marker, timestamp=timestamp) - - self.window.flip() \ No newline at end of file + + + if self.devices: + marker = self.markernames[label] + self.send_triggers(marker) + + + self.window.flip() + + From 66c40417615df14f1a42ba9695a8608d0d6e5171 Mon Sep 17 00:00:00 2001 From: John Griffiths Date: Mon, 8 Dec 2025 18:40:18 -0500 Subject: [PATCH 3/3] updates to get test working --- eegnb/experiments/Experiment.py | 5 +++-- eegnb/experiments/visual_n170/n170.py | 5 ++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/eegnb/experiments/Experiment.py b/eegnb/experiments/Experiment.py index 70ca8a83..0fd89e6f 100644 --- a/eegnb/experiments/Experiment.py +++ b/eegnb/experiments/Experiment.py @@ -27,7 +27,7 @@ class BaseExperiment(ABC): def __init__(self, exp_name, duration, eeg, save_fn, n_trials: int, iti: float, soa: float, jitter: float, - use_vr=False, use_fullscr = True, screen_num=0, stereoscopic = False): + use_vr=False, use_fullscr = True, screen_num=0, stereoscopic = False, devices = list): """ Initializer for the Base Experiment Class Args: @@ -50,6 +50,7 @@ def __init__(self, exp_name, duration, eeg, save_fn, n_trials: int, iti: float, Press spacebar to continue. \n""".format(self.exp_name) self.duration = duration self.eeg: EEG = eeg + self.devices = devices self.save_fn = save_fn self.n_trials = n_trials self.iti = iti @@ -344,7 +345,7 @@ def run(self, instructions=True): def send_triggers(self, marker): """Send timing triggers to recording device[s]""" for dev in self.devices: - timestmamp = time() + timestamp = time() dev.push_sample(marker=marker, timestamp=timestamp) diff --git a/eegnb/experiments/visual_n170/n170.py b/eegnb/experiments/visual_n170/n170.py index a91cdf70..231381ff 100644 --- a/eegnb/experiments/visual_n170/n170.py +++ b/eegnb/experiments/visual_n170/n170.py @@ -15,14 +15,13 @@ class VisualN170(Experiment.BaseExperiment): - def __init__(self, duration=120, eeg: Optional[EEG]=None, save_fn=None, - + def __init__(self, duration=120, eeg: Optional[EEG]=None, devices: Optional[list]=None,save_fn=None, n_trials = 2010, iti = 0.4, soa = 0.3, jitter = 0.2, use_vr = False): # Set experiment name exp_name = "Visual N170" # Calling the super class constructor to initialize the experiment variables - super(VisualN170, self).__init__(exp_name, duration, eeg, save_fn, n_trials, iti, soa, jitter, use_vr) + super(VisualN170, self).__init__(exp_name, duration, eeg, save_fn, n_trials, iti, soa, jitter, use_vr, devices=devices) def load_stimulus(self):